UNPKG

@opentiny/tiny-toolkit-pro

Version:

TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板

148 lines (141 loc) 4.54 kB
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;