parent
f0307e8cbf
commit
d9d3291fb1
@ -1,18 +0,0 @@
|
|||||||
import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
|
|
||||||
|
|
||||||
const modules = import.meta.glob('./**/*.ts', {
|
|
||||||
import: 'default',
|
|
||||||
eager: true
|
|
||||||
})
|
|
||||||
|
|
||||||
const mockModules: any[] = []
|
|
||||||
Object.keys(modules).forEach(async (key) => {
|
|
||||||
if (key.includes('_')) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
mockModules.push(...(modules[key] as any))
|
|
||||||
})
|
|
||||||
|
|
||||||
export function setupProdMockServer() {
|
|
||||||
createProdMockServer(mockModules)
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 分析页统计接口
|
|
||||||
{
|
|
||||||
url: '/analysis/total',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
users: 102400,
|
|
||||||
messages: 81212,
|
|
||||||
moneys: 9280,
|
|
||||||
shoppings: 13600
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 用户来源
|
|
||||||
{
|
|
||||||
url: '/analysis/userAccessSource',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{ value: 1000, name: 'analysis.directAccess' },
|
|
||||||
{ value: 310, name: 'analysis.mailMarketing' },
|
|
||||||
{ value: 234, name: 'analysis.allianceAdvertising' },
|
|
||||||
{ value: 135, name: 'analysis.videoAdvertising' },
|
|
||||||
{ value: 1548, name: 'analysis.searchEngines' }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 每周用户活跃量
|
|
||||||
{
|
|
||||||
url: '/analysis/weeklyUserActivity',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{ value: 13253, name: 'analysis.monday' },
|
|
||||||
{ value: 34235, name: 'analysis.tuesday' },
|
|
||||||
{ value: 26321, name: 'analysis.wednesday' },
|
|
||||||
{ value: 12340, name: 'analysis.thursday' },
|
|
||||||
{ value: 24643, name: 'analysis.friday' },
|
|
||||||
{ value: 1322, name: 'analysis.saturday' },
|
|
||||||
{ value: 1324, name: 'analysis.sunday' }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 每月销售额
|
|
||||||
{
|
|
||||||
url: '/analysis/monthlySales',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{ estimate: 100, actual: 120, name: 'analysis.january' },
|
|
||||||
{ estimate: 120, actual: 82, name: 'analysis.february' },
|
|
||||||
{ estimate: 161, actual: 91, name: 'analysis.march' },
|
|
||||||
{ estimate: 134, actual: 154, name: 'analysis.april' },
|
|
||||||
{ estimate: 105, actual: 162, name: 'analysis.may' },
|
|
||||||
{ estimate: 160, actual: 140, name: 'analysis.june' },
|
|
||||||
{ estimate: 165, actual: 145, name: 'analysis.july' },
|
|
||||||
{ estimate: 114, actual: 250, name: 'analysis.august' },
|
|
||||||
{ estimate: 163, actual: 134, name: 'analysis.september' },
|
|
||||||
{ estimate: 185, actual: 56, name: 'analysis.october' },
|
|
||||||
{ estimate: 118, actual: 99, name: 'analysis.november' },
|
|
||||||
{ estimate: 123, actual: 123, name: 'analysis.december' }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,205 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
import { toAnyString } from '@/utils'
|
|
||||||
import Mock from 'mockjs'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const departmentList: any = []
|
|
||||||
|
|
||||||
const citys = ['厦门总公司', '北京分公司', '上海分公司', '福州分公司', '深圳分公司', '杭州分公司']
|
|
||||||
|
|
||||||
for (let i = 0; i < 5; i++) {
|
|
||||||
departmentList.push({
|
|
||||||
// 部门名称
|
|
||||||
departmentName: citys[i],
|
|
||||||
id: toAnyString(),
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
// 备注
|
|
||||||
remark: '@cword(10, 15)',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '研发部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '产品部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '运营部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '市场部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '销售部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// 部门名称
|
|
||||||
departmentName: '客服部',
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 状态
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: toAnyString(),
|
|
||||||
remark: '@cword(10, 15)'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 列表接口
|
|
||||||
{
|
|
||||||
url: '/department/list',
|
|
||||||
method: 'get',
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
list: departmentList
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/department/table/list',
|
|
||||||
method: 'get',
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
list: departmentList,
|
|
||||||
total: 5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/department/users',
|
|
||||||
method: 'get',
|
|
||||||
timeout: 1000,
|
|
||||||
response: ({ query }) => {
|
|
||||||
const { pageSize } = query
|
|
||||||
// 根据pageSize来创建数据
|
|
||||||
const mockList: any = []
|
|
||||||
for (let i = 0; i < pageSize; i++) {
|
|
||||||
mockList.push(
|
|
||||||
Mock.mock({
|
|
||||||
// 用户名
|
|
||||||
username: '@cname',
|
|
||||||
// 账号
|
|
||||||
account: '@first',
|
|
||||||
// 邮箱
|
|
||||||
email: '@EMAIL',
|
|
||||||
// 创建时间
|
|
||||||
createTime: '@datetime',
|
|
||||||
// 角色
|
|
||||||
role: '@first',
|
|
||||||
// 用户id
|
|
||||||
id: toAnyString()
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
total: 100,
|
|
||||||
list: mockList
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 保存接口
|
|
||||||
{
|
|
||||||
url: '/department/user/save',
|
|
||||||
method: 'post',
|
|
||||||
timeout: 1000,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 删除接口
|
|
||||||
{
|
|
||||||
url: '/department/user/delete',
|
|
||||||
method: 'post',
|
|
||||||
response: ({ body }) => {
|
|
||||||
const ids = body.ids
|
|
||||||
if (!ids) {
|
|
||||||
return {
|
|
||||||
code: 500,
|
|
||||||
message: '请选择需要删除的数据'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 保存接口
|
|
||||||
{
|
|
||||||
url: '/department/save',
|
|
||||||
method: 'post',
|
|
||||||
timeout: 1000,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 删除接口
|
|
||||||
{
|
|
||||||
url: '/department/delete',
|
|
||||||
method: 'post',
|
|
||||||
response: ({ body }) => {
|
|
||||||
const ids = body.ids
|
|
||||||
if (!ids) {
|
|
||||||
return {
|
|
||||||
code: 500,
|
|
||||||
message: '请选择需要删除的数据'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,63 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
const dictObj: Recordable = {
|
|
||||||
importance: [
|
|
||||||
{
|
|
||||||
value: 0,
|
|
||||||
label: 'tableDemo.commonly'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 1,
|
|
||||||
label: 'tableDemo.good'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 2,
|
|
||||||
label: 'tableDemo.important'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 字典接口
|
|
||||||
{
|
|
||||||
url: '/dict/list',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: dictObj
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取某个字典
|
|
||||||
{
|
|
||||||
url: '/dict/one',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
label: 'test1',
|
|
||||||
value: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'test2',
|
|
||||||
value: 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'test3',
|
|
||||||
value: 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,265 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
import Mock from 'mockjs'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 列表接口
|
|
||||||
{
|
|
||||||
url: '/menu/list',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
path: '/dashboard',
|
|
||||||
component: '#',
|
|
||||||
redirect: '/dashboard/analysis',
|
|
||||||
name: 'Dashboard',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 1,
|
|
||||||
title: '首页',
|
|
||||||
meta: {
|
|
||||||
title: '首页',
|
|
||||||
icon: 'ant-design:dashboard-filled',
|
|
||||||
alwaysShow: true
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'analysis',
|
|
||||||
component: 'views/Dashboard/Analysis',
|
|
||||||
name: 'Analysis',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 2,
|
|
||||||
title: '分析页',
|
|
||||||
meta: {
|
|
||||||
title: '分析页',
|
|
||||||
noCache: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'workplace',
|
|
||||||
component: 'views/Dashboard/Workplace',
|
|
||||||
name: 'Workplace',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 3,
|
|
||||||
title: '工作台',
|
|
||||||
meta: {
|
|
||||||
title: '工作台',
|
|
||||||
noCache: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/external-link',
|
|
||||||
component: '#',
|
|
||||||
title: '文档',
|
|
||||||
meta: {
|
|
||||||
title: '文档',
|
|
||||||
icon: 'clarity:document-solid'
|
|
||||||
},
|
|
||||||
name: 'ExternalLink',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 4,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'https://element-plus-admin-doc.cn/',
|
|
||||||
name: 'DocumentLink',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 5,
|
|
||||||
title: '文档',
|
|
||||||
meta: {
|
|
||||||
title: '文档'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/level',
|
|
||||||
component: '#',
|
|
||||||
redirect: '/level/menu1/menu1-1/menu1-1-1',
|
|
||||||
name: 'Level',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 6,
|
|
||||||
title: '菜单',
|
|
||||||
meta: {
|
|
||||||
title: '菜单',
|
|
||||||
icon: 'carbon:skill-level-advanced'
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1',
|
|
||||||
name: 'Menu1',
|
|
||||||
component: '##',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 7,
|
|
||||||
redirect: '/level/menu1/menu1-1/menu1-1-1',
|
|
||||||
title: '菜单1',
|
|
||||||
meta: {
|
|
||||||
title: '菜单1'
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1-1',
|
|
||||||
name: 'Menu11',
|
|
||||||
component: '##',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 8,
|
|
||||||
redirect: '/level/menu1/menu1-1/menu1-1-1',
|
|
||||||
title: '菜单1-1',
|
|
||||||
meta: {
|
|
||||||
title: '菜单1-1',
|
|
||||||
alwaysShow: true
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'menu1-1-1',
|
|
||||||
name: 'Menu111',
|
|
||||||
component: 'views/Level/Menu111',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 9,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '菜单1-1-1',
|
|
||||||
meta: {
|
|
||||||
title: '菜单1-1-1'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu1-2',
|
|
||||||
name: 'Menu12',
|
|
||||||
component: 'views/Level/Menu12',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 10,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '菜单1-2',
|
|
||||||
meta: {
|
|
||||||
title: '菜单1-2'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'menu2',
|
|
||||||
name: 'Menu2Demo',
|
|
||||||
component: 'views/Level/Menu2',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 11,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '菜单2',
|
|
||||||
meta: {
|
|
||||||
title: '菜单2'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/example',
|
|
||||||
component: '#',
|
|
||||||
redirect: '/example/example-dialog',
|
|
||||||
name: 'Example',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 12,
|
|
||||||
title: '综合示例',
|
|
||||||
meta: {
|
|
||||||
title: '综合示例',
|
|
||||||
icon: 'ep:management',
|
|
||||||
alwaysShow: true
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'example-dialog',
|
|
||||||
component: 'views/Example/Dialog/ExampleDialog',
|
|
||||||
name: 'ExampleDialog',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 13,
|
|
||||||
title: '综合示例-弹窗',
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
meta: {
|
|
||||||
title: '综合示例-弹窗',
|
|
||||||
permission: ['edit', 'add']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'example-page',
|
|
||||||
component: 'views/Example/Page/ExamplePage',
|
|
||||||
name: 'ExamplePage',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 14,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '综合示例-页面',
|
|
||||||
meta: {
|
|
||||||
title: '综合示例-页面',
|
|
||||||
permission: ['edit', 'add']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'example-add',
|
|
||||||
component: 'views/Example/Page/ExampleAdd',
|
|
||||||
name: 'ExampleAdd',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 15,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '综合示例-新增',
|
|
||||||
meta: {
|
|
||||||
title: '综合示例-新增',
|
|
||||||
noTagsView: true,
|
|
||||||
noCache: true,
|
|
||||||
hidden: true,
|
|
||||||
showMainRoute: true,
|
|
||||||
activeMenu: '/example/example-page',
|
|
||||||
permission: ['delete', 'add']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'example-edit',
|
|
||||||
component: 'views/Example/Page/ExampleEdit',
|
|
||||||
name: 'ExampleEdit',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 16,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '综合示例-编辑',
|
|
||||||
meta: {
|
|
||||||
title: '综合示例-编辑',
|
|
||||||
noTagsView: true,
|
|
||||||
noCache: true,
|
|
||||||
hidden: true,
|
|
||||||
showMainRoute: true,
|
|
||||||
activeMenu: '/example/example-page',
|
|
||||||
permission: ['delete', 'add']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'example-detail',
|
|
||||||
component: 'views/Example/Page/ExampleDetail',
|
|
||||||
name: 'ExampleDetail',
|
|
||||||
status: Mock.Random.integer(0, 1),
|
|
||||||
id: 17,
|
|
||||||
permission: ['edit', 'add', 'delete'],
|
|
||||||
title: '综合示例-详情',
|
|
||||||
meta: {
|
|
||||||
title: '综合示例-详情',
|
|
||||||
noTagsView: true,
|
|
||||||
noCache: true,
|
|
||||||
hidden: true,
|
|
||||||
showMainRoute: true,
|
|
||||||
activeMenu: '/example/example-page',
|
|
||||||
permission: ['delete', 'edit']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,64 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
|
|
||||||
const timeout = 600000
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
export default [
|
|
||||||
{
|
|
||||||
url: '/request/1',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'request-1'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/request/2',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'request-2'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/request/3',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'request-3'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/request/4',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'request-4'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/request/5',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'request-5'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
File diff suppressed because it is too large
Load Diff
@ -1,256 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
import { toAnyString } from '@/utils'
|
|
||||||
import Mock from 'mockjs'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
const count = 100
|
|
||||||
|
|
||||||
const baseContent =
|
|
||||||
'<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>'
|
|
||||||
|
|
||||||
interface ListProps {
|
|
||||||
id: string
|
|
||||||
author: string
|
|
||||||
title: string
|
|
||||||
content: string
|
|
||||||
importance: number
|
|
||||||
display_time: string
|
|
||||||
pageviews: number
|
|
||||||
image_uri: string
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TreeListProps {
|
|
||||||
id: string
|
|
||||||
author: string
|
|
||||||
title: string
|
|
||||||
content: string
|
|
||||||
importance: number
|
|
||||||
display_time: string
|
|
||||||
pageviews: number
|
|
||||||
children: TreeListProps[]
|
|
||||||
}
|
|
||||||
|
|
||||||
let List: ListProps[] = []
|
|
||||||
|
|
||||||
for (let i = 0; i < count; i++) {
|
|
||||||
List.push(
|
|
||||||
Mock.mock({
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(100, 500)',
|
|
||||||
image_uri: Mock.Random.image('@integer(100, 500)x@integer(100, 500)')
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const treeList: TreeListProps[] = []
|
|
||||||
|
|
||||||
for (let i = 0; i < count; i++) {
|
|
||||||
treeList.push(
|
|
||||||
Mock.mock({
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: toAnyString(),
|
|
||||||
// timestamp: +Mock.Random.date('T'),
|
|
||||||
author: '@first',
|
|
||||||
title: '@title(5, 10)',
|
|
||||||
content: baseContent,
|
|
||||||
importance: '@integer(1, 3)',
|
|
||||||
display_time: '@datetime',
|
|
||||||
pageviews: '@integer(300, 5000)'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
// image_uri
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 树形列表接口
|
|
||||||
{
|
|
||||||
url: '/example/treeList',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: ({ query }) => {
|
|
||||||
const { title, pageIndex, pageSize } = query
|
|
||||||
const mockList = treeList.filter((item) => {
|
|
||||||
if (title && item.title.indexOf(title) < 0) return false
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
const pageList = mockList.filter(
|
|
||||||
(_, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1)
|
|
||||||
)
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
total: mockList.length,
|
|
||||||
list: pageList
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 列表接口
|
|
||||||
{
|
|
||||||
url: '/example/list',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: ({ query }) => {
|
|
||||||
const { title, pageIndex, pageSize } = query
|
|
||||||
const mockList = List.filter((item) => {
|
|
||||||
if (title && item.title.indexOf(title) < 0) return false
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
const pageList = mockList.filter(
|
|
||||||
(_, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1)
|
|
||||||
)
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
total: mockList.length,
|
|
||||||
list: pageList
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 保存接口
|
|
||||||
{
|
|
||||||
url: '/example/save',
|
|
||||||
method: 'post',
|
|
||||||
timeout,
|
|
||||||
response: ({ body }) => {
|
|
||||||
if (!body.id) {
|
|
||||||
List = [
|
|
||||||
Object.assign(body, {
|
|
||||||
id: toAnyString()
|
|
||||||
})
|
|
||||||
].concat(List)
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
List.map((item) => {
|
|
||||||
if (item.id === body.id) {
|
|
||||||
for (const key in item) {
|
|
||||||
item[key] = body[key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 详情接口
|
|
||||||
{
|
|
||||||
url: '/example/detail',
|
|
||||||
method: 'get',
|
|
||||||
response: ({ query }) => {
|
|
||||||
const { id } = query
|
|
||||||
for (const example of List) {
|
|
||||||
if (example.id === id) {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: example
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 删除接口
|
|
||||||
{
|
|
||||||
url: '/example/delete',
|
|
||||||
method: 'post',
|
|
||||||
response: ({ body }) => {
|
|
||||||
const ids = body.ids
|
|
||||||
if (!ids) {
|
|
||||||
return {
|
|
||||||
code: 500,
|
|
||||||
message: '请选择需要删除的数据'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let i = List.length
|
|
||||||
while (i--) {
|
|
||||||
if (ids.indexOf(List[i].id) !== -1) {
|
|
||||||
List.splice(i, 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: 'success'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,135 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
const List: {
|
|
||||||
username: string
|
|
||||||
password: string
|
|
||||||
role: string
|
|
||||||
roleId: string
|
|
||||||
permissions: string | string[]
|
|
||||||
}[] = [
|
|
||||||
{
|
|
||||||
username: 'admin',
|
|
||||||
password: 'o9%2B2oAvFf9DHDj1yBTJHhw%3D%3D',
|
|
||||||
role: 'admin',
|
|
||||||
roleId: '1',
|
|
||||||
permissions: ['*.*.*']
|
|
||||||
},
|
|
||||||
{
|
|
||||||
username: 'test',
|
|
||||||
password: 'test',
|
|
||||||
role: 'test',
|
|
||||||
roleId: '2',
|
|
||||||
permissions: ['example:dialog:create', 'example:dialog:delete']
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 列表接口
|
|
||||||
{
|
|
||||||
url: '/user/list',
|
|
||||||
method: 'get',
|
|
||||||
response: ({ query }) => {
|
|
||||||
const { username, pageIndex, pageSize } = query
|
|
||||||
|
|
||||||
const mockList = List.filter((item) => {
|
|
||||||
if (username && item.username.indexOf(username) < 0) return false
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
const pageList = mockList.filter(
|
|
||||||
(_, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1)
|
|
||||||
)
|
|
||||||
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
total: mockList.length,
|
|
||||||
list: pageList
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 登录接口
|
|
||||||
{
|
|
||||||
url: '/user/login',
|
|
||||||
method: 'post',
|
|
||||||
timeout,
|
|
||||||
response: ({ body }) => {
|
|
||||||
const data = body
|
|
||||||
let hasUser = false
|
|
||||||
for (const user of List) {
|
|
||||||
if (user.username === data.username && user.password === data.password) {
|
|
||||||
hasUser = true
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: user
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!hasUser) {
|
|
||||||
return {
|
|
||||||
code: 500,
|
|
||||||
message: '账号或密码错误'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/mobile/login',
|
|
||||||
method: 'post',
|
|
||||||
timeout,
|
|
||||||
response: ({ body }) => {
|
|
||||||
debugger
|
|
||||||
const data = body
|
|
||||||
let hasUser = false
|
|
||||||
for (const user of List) {
|
|
||||||
if (user.username === data.username && user.password === data.password) {
|
|
||||||
hasUser = true
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: user
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
code: 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!hasUser) {
|
|
||||||
return {
|
|
||||||
code: 500,
|
|
||||||
message: '账号或密码错误'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 退出接口
|
|
||||||
{
|
|
||||||
url: '/user/loginOut',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/mobile/logout',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
@ -1,172 +0,0 @@
|
|||||||
import config from '@/config/axios/config'
|
|
||||||
import { MockMethod } from 'vite-plugin-mock'
|
|
||||||
|
|
||||||
const { code } = config
|
|
||||||
|
|
||||||
const timeout = 1000
|
|
||||||
|
|
||||||
export default [
|
|
||||||
// 获取统计
|
|
||||||
{
|
|
||||||
url: '/workplace/total',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: {
|
|
||||||
project: 40,
|
|
||||||
access: 2340,
|
|
||||||
todo: 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取项目
|
|
||||||
{
|
|
||||||
url: '/workplace/project',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
name: 'Github',
|
|
||||||
icon: 'akar-icons:github-fill',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Vue',
|
|
||||||
icon: 'logos:vue',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Angular',
|
|
||||||
icon: 'logos:angular-icon',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'React',
|
|
||||||
icon: 'logos:react',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Webpack',
|
|
||||||
icon: 'logos:webpack',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Vite',
|
|
||||||
icon: 'vscode-icons:file-type-vite',
|
|
||||||
message: 'workplace.introduction',
|
|
||||||
personal: 'Archer',
|
|
||||||
time: new Date()
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取动态
|
|
||||||
{
|
|
||||||
url: '/workplace/dynamic',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
keys: ['workplace.push', 'Github'],
|
|
||||||
time: new Date()
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取团队信息
|
|
||||||
{
|
|
||||||
url: '/workplace/team',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
name: 'Github',
|
|
||||||
icon: 'akar-icons:github-fill'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Vue',
|
|
||||||
icon: 'logos:vue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Angular',
|
|
||||||
icon: 'logos:angular-icon'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'React',
|
|
||||||
icon: 'logos:react'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Webpack',
|
|
||||||
icon: 'logos:webpack'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Vite',
|
|
||||||
icon: 'vscode-icons:file-type-vite'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取指数
|
|
||||||
{
|
|
||||||
url: '/workplace/radar',
|
|
||||||
method: 'get',
|
|
||||||
timeout,
|
|
||||||
response: () => {
|
|
||||||
return {
|
|
||||||
code: code,
|
|
||||||
data: [
|
|
||||||
{ name: 'workplace.quote', max: 65, personal: 42, team: 50 },
|
|
||||||
{ name: 'workplace.contribution', max: 160, personal: 30, team: 140 },
|
|
||||||
{ name: 'workplace.hot', max: 300, personal: 20, team: 28 },
|
|
||||||
{ name: 'workplace.yield', max: 130, personal: 35, team: 35 },
|
|
||||||
{ name: 'workplace.follow', max: 100, personal: 80, team: 90 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
] as MockMethod[]
|
|
Loading…
Reference in new issue