98 lines
2.0 KiB
TypeScript
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'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|