refactor: 完善前后端校验

This commit is contained in:
2023-09-18 22:21:25 +08:00
parent 3fd0c08b80
commit 90d825a02f
23 changed files with 117 additions and 60 deletions

View File

@@ -15,7 +15,7 @@
<a-input
v-model="form.username"
:placeholder="$t('login.form.placeholder.username')"
max-length="50"
:max-length="64"
>
<template #prefix><icon-user /></template>
</a-input>
@@ -24,7 +24,7 @@
<a-input-password
v-model="form.password"
:placeholder="$t('login.form.placeholder.password')"
max-length="32"
:max-length="32"
allow-clear
>
<template #prefix><icon-lock /></template>
@@ -34,6 +34,7 @@
<a-input
v-model="form.captcha"
:placeholder="$t('login.form.placeholder.captcha')"
:max-length="4"
allow-clear
style="width: 63%"
>

View File

@@ -217,7 +217,7 @@
<a-input
v-model="form.title"
placeholder="请输入标题"
max-length="255"
:max-length="150"
style="width: 100%"
/>
</a-form-item>

View File

@@ -356,8 +356,14 @@
// 表单验证规则
rules: {
parentId: [{ required: true, message: '请选择上级部门' }],
name: [{ required: true, message: '请输入部门名称' }],
sort: [{ required: true, message: '请输入部门排序' }],
name: [
{ required: true, message: '请输入部门名称' },
{
match: /^[\u4e00-\u9fa5a-zA-Z0-9_-]{2,30}$/,
message:
'长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线',
},
],
},
});
const { queryParams, form, rules } = toRefs(data);

View File

@@ -271,8 +271,21 @@
form: {} as DataRecord,
// 表单验证规则
rules: {
name: [{ required: true, message: '字典名称不能为空' }],
code: [{ required: true, message: '字典编码不能为空' }],
name: [
{ required: true, message: '请输入字典名称' },
{
match: /^[\\u4e00-\\u9fa5a-zA-Z0-9_-]{2,30}$/,
message:
'长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线',
},
],
code: [
{ required: true, message: '请输入字典编码' },
{
match: /^[a-zA-Z][a-zA-Z0-9_]{1,29}$/,
message: '长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头',
},
],
},
});
const { queryParams, form, rules } = toRefs(data);
@@ -298,6 +311,7 @@
* @param params 查询参数
*/
const getList = (params: ListParam = { ...queryParams.value }) => {
dictId.value = null;
loading.value = true;
list(params)
.then((res) => {

View File

@@ -103,16 +103,25 @@
>
<a-form ref="formRef" :model="form" :rules="rules" size="large">
<a-form-item label="字典标签" field="label">
<a-input v-model="form.label" placeholder="请输入字典标签" />
<a-input
v-model="form.label"
placeholder="请输入字典标签"
:max-length="30"
/>
</a-form-item>
<a-form-item label="字典值" field="value">
<a-input v-model="form.value" placeholder="请输入字典值" />
<a-input
v-model="form.value"
placeholder="请输入字典值"
:max-length="30"
/>
</a-form-item>
<a-form-item label="背景颜色" field="color">
<a-auto-complete
v-model="form.color"
:data="colors"
placeholder="请选择或输入背景颜色"
:max-length="30"
allow-clear
>
<template #option="{ data }">
@@ -198,8 +207,8 @@
form: {} as DataRecord,
// 表单验证规则
rules: {
label: [{ required: true, message: '字典标签不能为空' }],
value: [{ required: true, message: '字典值不能为空' }],
label: [{ required: true, message: '请输入字典标签' }],
value: [{ required: true, message: '请输入字典值' }],
},
});
const { queryParams, form, rules } = toRefs(data);

View File

@@ -246,6 +246,7 @@
<a-input
v-model="form.title"
placeholder="请输入菜单标题"
:max-length="30"
style="width: 182px"
/>
</a-form-item>
@@ -266,6 +267,7 @@
<a-input
v-model="form.permission"
placeholder="请输入权限标识"
:max-length="100"
style="width: 182px"
/>
</a-form-item>
@@ -273,6 +275,7 @@
<a-input
v-model="form.path"
placeholder="请输入路由地址"
:max-length="255"
style="width: 473px"
/>
</a-form-item>
@@ -284,6 +287,7 @@
<a-input
v-model="form.name"
placeholder="请输入组件名称"
:max-length="50"
style="width: 182px"
/>
</a-form-item>
@@ -295,6 +299,7 @@
<a-input
v-model="form.component"
placeholder="请输入组件路径"
:max-length="255"
style="width: 182px"
/>
</a-form-item>

View File

@@ -494,20 +494,19 @@
name: [
{ required: true, message: '请输入角色名称' },
{
match: /^[\u4e00-\u9fa5a-zA-Z0-9_-]{1,20}$/,
match: /^[\u4e00-\u9fa5a-zA-Z0-9_-]{2,30}$/,
message:
'长度为 120 位,可以包含中文、字母、数字、下划线,短横线',
'长度为 230 位,可以包含中文、字母、数字、下划线,短横线',
},
],
code: [
{ required: true, message: '请输入角色编码' },
{
match: /^[a-zA-Z][a-zA-Z0-9_]{1,15}$/,
message: '长度为 2 到 16 位,可以包含字母、数字,下划线,以字母开头',
match: /^[a-zA-Z][a-zA-Z0-9_]{1,29}$/,
message: '长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头',
},
],
dataScope: [{ required: true, message: '请选择数据权限' }],
sort: [{ required: true, message: '请输入角色排序' }],
},
});
const { queryParams, form, rules } = toRefs(data);

View File

@@ -15,7 +15,7 @@
<a-input
v-model="form.username"
:placeholder="$t('userCenter.basicInfo.form.placeholder.username')"
max-length="16"
:max-length="64"
/>
</a-form-item>
<a-form-item
@@ -25,7 +25,7 @@
<a-input
v-model="form.nickname"
:placeholder="$t('userCenter.basicInfo.form.placeholder.nickname')"
max-length="20"
:max-length="30"
/>
</a-form-item>
<a-form-item

View File

@@ -71,7 +71,7 @@
'userCenter.securitySettings.updateEmail.form.placeholder.captcha'
)
"
max-length="6"
:max-length="6"
allow-clear
style="width: 80%"
/>
@@ -100,7 +100,7 @@
'userCenter.securitySettings.updateEmail.form.placeholder.currentPassword'
)
"
max-length="32"
:max-length="32"
allow-clear
/>
</a-form-item>

View File

@@ -55,7 +55,7 @@
'userCenter.securitySettings.updatePwd.form.placeholder.oldPassword'
)
"
max-length="32"
:max-length="32"
allow-clear
/>
</a-form-item>
@@ -72,7 +72,7 @@
'userCenter.securitySettings.updatePwd.form.placeholder.newPassword'
)
"
max-length="32"
:max-length="32"
allow-clear
/>
</a-form-item>
@@ -89,7 +89,7 @@
'userCenter.securitySettings.updatePwd.form.placeholder.rePassword'
)
"
max-length="32"
:max-length="32"
allow-clear
/>
</a-form-item>

View File

@@ -303,12 +303,14 @@
v-model="form.username"
placeholder="请输入用户名"
style="width: 162px"
:max-length="64"
/>
</a-form-item>
<a-form-item label="昵称" field="nickname">
<a-input
v-model="form.nickname"
placeholder="请输入昵称"
:max-length="30"
style="width: 162px"
/>
</a-form-item>
@@ -316,6 +318,7 @@
<a-input
v-model="form.email"
placeholder="请输入邮箱"
:max-length="255"
style="width: 162px"
/>
</a-form-item>
@@ -323,6 +326,7 @@
<a-input
v-model="form.phone"
placeholder="请输入手机号码"
:max-length="15"
style="width: 162px"
/>
</a-form-item>