gohttpdUi/mock/role/index.ts

98 lines
2.0 KiB
TypeScript

import wsCache from '@/cache'
import { Role } from './types'
import { checkedNodes, checkedkeys } from './admin-role'
import { checkedRoleNodes } from './test-role'
let List: Role[] = wsCache.get('roleList') || [
{
roleName: 'admin',
id: '1',
checkedNodes: checkedNodes,
checkedkeys: checkedkeys
},
{
roleName: 'test',
id: '2',
checkedNodes: checkedRoleNodes,
checkedkeys: []
}
]
export default [
// 列表接口
{
url: 'http://mockjs.test.cn/role/list',
type: 'get',
response: (config: any) => {
const {
roleName,
pageIndex,
pageSize
} = config.query
const mockList = List.filter(item => {
if (roleName && item.roleName.indexOf(roleName) < 0) return false
return true
})
const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
return {
code: '0000',
data: {
total: mockList.length,
list: pageList
}
}
}
},
// 详情接口
{
url: 'http://mockjs.test.cn/role/detail',
type: 'get',
response: (config: any) => {
const {
id
} = config.query
for (const role of List) {
if (role.id === id) {
return {
code: '0000',
data: role
}
}
}
}
},
// 保存接口
{
url: 'http://mockjs.test.cn/role/save',
type: 'post',
response: (config: any) => {
const data = config.body
if (!data.id) {
List = [data].concat(List)
return {
code: '0000',
data: 'success'
}
} else {
List.map(item => {
if (item.id === data.id) {
for (const key in item) {
item[key] = data[key]
}
}
})
// 存在缓存中,避免刷新没有掉
wsCache.set('roleList', List)
return {
code: '0000',
data: 'success'
}
}
}
}
]