feat: init

This commit is contained in:
ygx
2026-03-05 23:45:39 +08:00
commit 8fab91c5c7
214 changed files with 33682 additions and 0 deletions

24
src/mock/index.ts Normal file
View File

@@ -0,0 +1,24 @@
import Mock from 'mockjs'
import './user'
import './message-box'
import '@/views/dashboard/workplace/mock'
/** simple */
import '@/views/dashboard/monitor/mock'
import '@/views/list/card/mock'
import '@/views/list/search-table/mock'
import '@/views/profile/basic/mock'
import '@/views/visualization/data-analysis/mock'
import '@/views/visualization/multi-dimension-data-analysis/mock'
import '@/views/user/info/mock'
import '@/views/user/setting/mock'
/** simple end */
Mock.setup({
timeout: '600-1000',
})

82
src/mock/message-box.ts Normal file
View File

@@ -0,0 +1,82 @@
import Mock from 'mockjs'
import setupMock, { successResponseWrap } from '@/utils/setup-mock'
const haveReadIds: number[] = []
const getMessageList = () => {
return [
{
id: 1,
type: 'message',
title: '郑曦月',
subTitle: '的私信',
avatar: '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/8361eeb82904210b4f55fab888fe8416.png~tplv-uwbnlip3yd-webp.webp',
content: '审批请求已发送,请查收',
time: '今天 12:30:01',
},
{
id: 2,
type: 'message',
title: '宁波',
subTitle: '的回复',
avatar: '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp',
content: '此处 bug 已经修复',
time: '今天 12:30:01',
},
{
id: 3,
type: 'message',
title: '宁波',
subTitle: '的回复',
avatar: '//p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp',
content: '此处 bug 已经修复',
time: '今天 12:20:01',
},
{
id: 4,
type: 'notice',
title: '续费通知',
subTitle: '',
avatar: '',
content: '您的产品使用期限即将截止,如需继续使用产品请前往购…',
time: '今天 12:20:01',
messageType: 3,
},
{
id: 5,
type: 'notice',
title: '规则开通成功',
subTitle: '',
avatar: '',
content: '内容屏蔽规则于 2021-12-01 开通成功并生效',
time: '今天 12:20:01',
messageType: 1,
},
{
id: 6,
type: 'todo',
title: '质检队列变更',
subTitle: '',
avatar: '',
content: '内容质检队列于 2021-12-01 19:50:23 进行变更,请重新…',
time: '今天 12:20:01',
messageType: 0,
},
].map((item) => ({
...item,
status: haveReadIds.indexOf(item.id) === -1 ? 0 : 1,
}))
}
setupMock({
setup: () => {
Mock.mock(new RegExp('/api/message/list'), () => {
return successResponseWrap(getMessageList())
})
Mock.mock(new RegExp('/api/message/read'), (params: { body: string }) => {
const { ids } = JSON.parse(params.body)
haveReadIds.push(...(ids || []))
return successResponseWrap(true)
})
},
})

101
src/mock/user.ts Normal file
View File

@@ -0,0 +1,101 @@
import setupMock, { failResponseWrap, successResponseWrap } from '@/utils/setup-mock'
import Mock from 'mockjs'
import { MockParams } from '@/types/mock'
import { isLogin } from '@/utils/auth'
setupMock({
setup() {
// Mock.XHR.prototype.withCredentials = true;
// 用户信息
Mock.mock(new RegExp('/api/user/info'), () => {
if (isLogin()) {
const role = window.localStorage.getItem('userRole') || 'admin'
return successResponseWrap({
name: '王立群',
avatar: 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif',
email: 'xxx.com',
job: 'frontend',
jobName: 'xxx',
organization: 'Frontend',
organizationName: 'xx',
location: 'beijing',
locationName: '北京',
introduction: '人潇洒,性温存',
personalWebsite: 'wwww.baidu.com',
phone: '150****0000',
registrationDate: '2013-05-10 12:10:00',
accountId: 'xxxxx',
certification: 1,
role,
})
}
return failResponseWrap(null, '未登录', 50008)
})
// 登录
Mock.mock(new RegExp('/api/user/login'), (params: MockParams) => {
const { username, password } = JSON.parse(params.body)
if (!username) {
return failResponseWrap(null, '用户名不能为空', 50000)
}
if (!password) {
return failResponseWrap(null, '密码不能为空', 50000)
}
if (username === 'admin' && password === 'admin') {
window.localStorage.setItem('userRole', 'admin')
return successResponseWrap({
token: '12345',
})
}
if (username === 'user' && password === 'user') {
window.localStorage.setItem('userRole', 'user')
return successResponseWrap({
token: '54321',
})
}
return failResponseWrap(null, '账号或者密码错误', 50000)
})
// 登出
Mock.mock(new RegExp('/api/user/logout'), () => {
return successResponseWrap(null)
})
// 用户的服务端菜单
Mock.mock(new RegExp('/api/user/menu'), () => {
const menuList = [
{
path: '/dashboard',
name: 'dashboard',
meta: {
locale: 'menu.server.dashboard',
requiresAuth: true,
icon: 'icon-dashboard',
order: 1,
},
children: [
{
path: 'workplace',
name: 'Workplace',
meta: {
locale: 'menu.server.workplace',
requiresAuth: true,
},
},
{
path: 'https://arco.design',
name: 'arcoWebsite',
meta: {
locale: 'menu.arcoWebsite',
requiresAuth: true,
},
},
],
},
]
return successResponseWrap(menuList)
})
},
})