You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.8 KiB
TypeScript

import Mock from 'mockjs';
import { isSSR } from '@/utils/is';
import setupMock from '@/utils/setupMock';
import { generatePermission } from '@/routes';
if (!isSSR) {
Mock.XHR.prototype.withCredentials = true;
setupMock({
setup: () => {
// 用户信息
const userRole = window.localStorage.getItem('userRole') || 'admin';
Mock.mock(new RegExp('/api/user/userInfo'), () => {
return Mock.mock({
name: 'admin',
avatar:
'https://lf1-xgcdn-tos.pstatp.com/obj/vcloud/vadmin/start.8e0e4855ee346a46ccff8ff3e24db27b.png',
email: 'wangliqun@email.com',
job: 'frontend',
jobName: '前端开发工程师',
organization: 'Frontend',
organizationName: '前端',
location: 'beijing',
locationName: '北京',
introduction: '王力群并非是一个真实存在的人。',
personalWebsite: 'https://www.arco.design',
verified: true,
phoneNumber: /177[*]{6}[0-9]{2}/,
accountId: /[a-z]{4}[-][0-9]{8}/,
registrationTime: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
permissions: generatePermission(userRole),
});
});
// 登录
Mock.mock(new RegExp('/api/user/login'), (params) => {
const { userName, password } = JSON.parse(params.body);
if (!userName) {
return {
status: 'error',
msg: '用户名不能为空',
};
}
if (!password) {
return {
status: 'error',
msg: '密码不能为空',
};
}
if (userName === 'admin' && password === 'admin') {
return {
status: 'ok',
};
}
return {
status: 'error',
msg: '账号或者密码错误',
};
});
},
});
}