feat:kini-admin 新增校验规则

This commit is contained in:
ktianc 2023-06-17 21:08:43 +08:00
parent 8e986bfa5a
commit f5d5de8785
3 changed files with 33 additions and 13 deletions

View File

@ -79,11 +79,6 @@ service.interceptors.response.use(
wsCache.set(appStore.getToken, `${res.data.token_type} ${res.data.access_token}`) wsCache.set(appStore.getToken, `${res.data.token_type} ${res.data.access_token}`)
wsCache.set(appStore.getRefreshToken, res.data.refresh_token) wsCache.set(appStore.getRefreshToken, res.data.refresh_token)
}) })
// .catch(() => {
// const authStore = useAuthStore()
// authStore.logout()
// ElMessage.error('未认证,请登录')
// })
} }
return response.data return response.data
} else if (code === unauthorized_code) { } else if (code === unauthorized_code) {
@ -94,11 +89,6 @@ service.interceptors.response.use(
wsCache.set(appStore.getRefreshToken, res.data.refresh_token) wsCache.set(appStore.getRefreshToken, res.data.refresh_token)
ElMessage.error('操作失败,请重试') ElMessage.error('操作失败,请重试')
}) })
// .catch(() => {
// const authStore = useAuthStore()
// authStore.logout()
// ElMessage.error('未认证,请登录')
// })
} else { } else {
ElMessage.error(message) ElMessage.error(message)
} }

View File

@ -1,4 +1,5 @@
import { useI18n } from '@/hooks/web/useI18n' import { useI18n } from '@/hooks/web/useI18n'
import { isEmpty, isNullOrUnDef } from '@/utils/is'
const { t } = useI18n() const { t } = useI18n()
@ -55,6 +56,9 @@ export const useValidator = () => {
} }
const isEmail = (rule: any, val: any, callback: Callback) => { const isEmail = (rule: any, val: any, callback: Callback) => {
if (isEmpty(val) || isNullOrUnDef(val)) {
callback()
}
// 判断是否为邮箱地址 // 判断是否为邮箱地址
if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val)) { if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val)) {
callback() callback()
@ -63,12 +67,38 @@ export const useValidator = () => {
} }
} }
const isTelephone = (rule: any, val: any, callback: Callback) => {
if (isEmpty(val) || isNullOrUnDef(val)) {
callback()
}
// 判断是否为正确手机号
if (/^1[3-9]\d{9}$/.test(val)) {
callback()
} else {
callback(new Error('请填写正确的手机号'))
}
}
const isAmount = (rule: any, val: any, callback: Callback) => {
if (isEmpty(val) || isNullOrUnDef(val)) {
callback()
}
// 判断是否为正确金额
if (/^\d+(\.\d{1,2})?$/.test(val)) {
callback()
} else {
callback(new Error('请填写正确的金额格式'))
}
}
return { return {
required, required,
lengthRange, lengthRange,
notSpace, notSpace,
notSpecialCharacters, notSpecialCharacters,
isEqual, isEqual,
isEmail isEmail,
isTelephone,
isAmount
} }
} }

View File

@ -6,7 +6,7 @@ import { useValidator } from '@/hooks/web/useValidator'
import { schema } from './user.data' import { schema } from './user.data'
import { getRoleOptionsApi } from '@/api/vadmin/auth/role' import { getRoleOptionsApi } from '@/api/vadmin/auth/role'
const { required, isEmail } = useValidator() const { required, isEmail, isTelephone } = useValidator()
const props = defineProps({ const props = defineProps({
currentRow: { currentRow: {
@ -20,7 +20,7 @@ const rules = reactive({
is_active: [required()], is_active: [required()],
is_staff: [required()], is_staff: [required()],
role_ids: [required()], role_ids: [required()],
telephone: [required()], telephone: [required(), { validator: isTelephone, trigger: 'blur' }],
email: [required(), { validator: isEmail, trigger: 'blur' }] email: [required(), { validator: isEmail, trigger: 'blur' }]
}) })