Compare commits
4 Commits
36ce9a98cb
...
b254d008fc
| Author | SHA1 | Date |
|---|---|---|
|
|
b254d008fc | 2 months ago |
|
|
5782f42db3 | 2 months ago |
|
|
737d0fa94b | 2 months ago |
|
|
f2fa2e4efa | 2 months ago |
@ -0,0 +1,75 @@
|
|||||||
|
|
||||||
|
// 模拟获取computedWithEnumList页面所需接口
|
||||||
|
import { defineFakeRoute } from 'vite-plugin-fake-server/client';
|
||||||
|
import { faker } from '@faker-js/faker';
|
||||||
|
|
||||||
|
// 模拟后端延迟返回
|
||||||
|
const delay = (ms: number) => new Promise(res => setTimeout(res, ms));
|
||||||
|
|
||||||
|
// 模拟枚举值
|
||||||
|
const enums = {
|
||||||
|
// 性别
|
||||||
|
gender: [
|
||||||
|
{ label: '男', value: 1 },
|
||||||
|
{ label: '女', value: 2 },
|
||||||
|
{ label: '未知', value: 0 },
|
||||||
|
],
|
||||||
|
// 状态
|
||||||
|
status: [
|
||||||
|
{ label: '启用', value: 1 },
|
||||||
|
{ label: '禁用', value: 0 },
|
||||||
|
],
|
||||||
|
// 角色
|
||||||
|
role: [
|
||||||
|
{ label: '管理员', value: 'admin' },
|
||||||
|
{ label: '普通用户', value: 'common' },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default defineFakeRoute([
|
||||||
|
{
|
||||||
|
url: '/computed-with-enum-list/get-page-info',
|
||||||
|
method: 'post',
|
||||||
|
response: async ({ body }) => {
|
||||||
|
// 模拟延迟
|
||||||
|
await delay(faker.number.int({ min: 200, max: 500 }));
|
||||||
|
|
||||||
|
const list = [];
|
||||||
|
for (let i = 0; i < body.pageSize; i++) {
|
||||||
|
list.push({
|
||||||
|
id: faker.string.uuid(),
|
||||||
|
name: faker.person.fullName(),
|
||||||
|
gender: faker.helpers.arrayElement([0, 1, 2]),
|
||||||
|
status: faker.helpers.arrayElement([0, 1]),
|
||||||
|
role: faker.helpers.arrayElement(['admin', 'common']),
|
||||||
|
createTime: faker.date.past(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
code: 200,
|
||||||
|
data: {
|
||||||
|
list,
|
||||||
|
total: 100,
|
||||||
|
pageSize: body.pageSize,
|
||||||
|
pageNumber: body.pageNumber,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: '/computed-with-enum-list/get-enum-list',
|
||||||
|
method: 'get',
|
||||||
|
response: async ({ query }) => {
|
||||||
|
// 模拟超长延迟
|
||||||
|
await delay(faker.number.int({ min: 1000, max: 5000 }));
|
||||||
|
const type = query.type as keyof typeof enums;
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
code: 200,
|
||||||
|
data: enums[type] || [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]);
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
export const checkIdNumber = (context) => {
|
||||||
|
const { form } = context;
|
||||||
|
return (rule, value, callback) => {
|
||||||
|
if (!form.idType) {
|
||||||
|
return callback(new Error('请选择证件类型'));
|
||||||
|
}
|
||||||
|
if (form.idType === '身份证') {
|
||||||
|
if (!/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|21|22|23|24|25|26|27|28)\d{3}[0-9Xx]$/i.test(value)) {
|
||||||
|
callback(new Error('身份证格式不正确'));
|
||||||
|
}
|
||||||
|
} else if (form.idType === '护照') {
|
||||||
|
if (!/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|21|22|23|24|25|26|27|28)\d{3}[0-9Xx]$/i.test(value)) {
|
||||||
|
callback(new Error('护照格式不正确'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getRules = (context) => {
|
||||||
|
console.log(context, '传递过来的context内容');
|
||||||
|
return {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入名称',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
age: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入年龄',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
idType: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择证件类型',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// 这里演示证件号码校验,必须依赖证件类型的值,比如证件类型是身份证,校验一种格式,是护照,校验另一种格式,等等
|
||||||
|
idNumber: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入证件号码',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
validator: checkIdNumber(context),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue