@opentiny/tiny-toolkit-pro
Version:
TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板
148 lines (141 loc) • 4.54 kB
text/typescript
import {
successResponseWrap,
failResponseWrap,
initData,
} from '../utils/setup-mock';
import { isLogin } from '../utils/auth';
const positive = JSON.parse(JSON.stringify(initData.tableData));
const negative = JSON.parse(JSON.stringify(initData.tableData.reverse()));
const initlist = JSON.parse(JSON.stringify(initData.chartData[0].list));
const userInfo = JSON.parse(JSON.stringify(initData.userInfo));
export default [
// 注册
{
url: '/api/user/register',
method: 'post',
response: (params: { body: any; }) => {
localStorage.setItem('registerUser', JSON.stringify(params.body));
return successResponseWrap({ ...userInfo, role: 'admin' });
},
},
// 用户信息
{
url: '/api/user/userInfo',
method: 'get',
response: () => {
if (isLogin()) {
const role = window.localStorage.getItem('userRole') || 'admin';
return successResponseWrap({
...userInfo,
role,
});
}
return successResponseWrap(null);
},
},
// 修改用户信息
{
url: '/api/user/userInfo',
method: 'put',
response: () => {
if (isLogin()) {
const role = window.localStorage.getItem('userRole') || 'admin';
return successResponseWrap({
...userInfo,
role,
});
}
return successResponseWrap(null);
},
},
// 登录
{
url: '/api/user/login',
method: 'post',
response: (params: { body: any; }) => {
const registerUser = JSON.parse(
localStorage.getItem('registerUser') || '{}'
);
const { username, password } = JSON.parse(JSON.stringify(params.body));
if (!username) {
return failResponseWrap(null, '邮箱名不能为空', 'InvalidParameter');
}
if (!password) {
return failResponseWrap(null, '密码不能为空', 'InvalidParameter');
}
if (
(username === 'admin@example.com' && password === 'admin') ||
(username === registerUser.username &&
password === registerUser.password)
) {
window.localStorage.setItem('userRole', 'admin');
return successResponseWrap({
token: '12345',
userInfo: {
...userInfo,
},
});
}
return failResponseWrap(null, '账号或者密码错误', 'InvalidParameter');
},
},
// 登出
{
url: '/api/user/logout',
method: 'post',
response: () => {
return successResponseWrap(null);
},
},
// 用户中心数据
{
url: '/api/user/data',
method: 'post',
response: (params: any) => {
const { sort, startTime, endTime, filterStatus, filterType } = JSON.parse(
JSON.stringify(params.body)
);
initData.tableData = positive;
initData.chartData[0].list = initlist;
if (sort === 1 || sort === 3) {
initData.chartData[0].list.reverse();
initData.tableData = positive;
return successResponseWrap(initData);
}
if (sort === 2 || sort === 4) {
initData.chartData[0].list.reverse();
initData.tableData = negative;
return successResponseWrap(initData);
}
if (
startTime !== '' ||
endTime !== '' ||
filterStatus.length !== 0 ||
(filterType.length !== 0 && sort === undefined)
) {
const start = new Date(JSON.parse(JSON.stringify(startTime))).getTime();
const end = new Date(JSON.parse(JSON.stringify(endTime))).getTime();
// eslint-disable-next-line func-names
const table = initData.tableData.filter(function (item: any) {
return (
filterType.includes(item.bid) &&
filterStatus.includes(item.pid) &&
new Date(JSON.parse(JSON.stringify(item.time))).getTime() - start >
0 &&
new Date(JSON.parse(JSON.stringify(item.time))).getTime() - end < 0
);
});
// eslint-disable-next-line func-names
const chart = initData.chartData[0].list.filter(function (item: any) {
return (
filterType.includes(item.bid) && filterStatus.includes(item.pid)
);
});
initData.tableData = table;
initData.chartData[0].list = chart;
return successResponseWrap(initData);
}
return successResponseWrap(initData);
},
},
] as any;