Initial commit: One Pipe System
完整的管理系统,包含账户管理、卡片管理、套餐管理、财务管理等功能模块。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
163
src/mock/auth.ts
Normal file
163
src/mock/auth.ts
Normal file
@@ -0,0 +1,163 @@
|
||||
/**
|
||||
* 登录模块 Mock 数据
|
||||
*/
|
||||
|
||||
import type { LoginData, UserInfo } from '@/types/api'
|
||||
import { UserRole } from '@/types/api'
|
||||
|
||||
/**
|
||||
* Mock 用户账号
|
||||
*/
|
||||
export interface MockAccount {
|
||||
key: string
|
||||
label: string
|
||||
username: string
|
||||
password: string
|
||||
role: UserRole
|
||||
userInfo: UserInfo
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock 账号列表
|
||||
*/
|
||||
export const MOCK_ACCOUNTS: MockAccount[] = [
|
||||
{
|
||||
key: 'super',
|
||||
label: '超级管理员',
|
||||
username: 'super',
|
||||
password: '123456',
|
||||
role: UserRole.SUPER_ADMIN,
|
||||
userInfo: {
|
||||
id: '1',
|
||||
username: 'Super',
|
||||
realName: '超级管理员',
|
||||
roles: [UserRole.SUPER_ADMIN],
|
||||
permissions: ['*:*:*'], // 所有权限
|
||||
avatar: '',
|
||||
email: 'super@example.com',
|
||||
phone: '13800138000'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'admin',
|
||||
label: '平台管理员',
|
||||
username: 'admin',
|
||||
password: '123456',
|
||||
role: UserRole.ADMIN,
|
||||
userInfo: {
|
||||
id: '2',
|
||||
username: 'admin',
|
||||
realName: '平台管理员',
|
||||
roles: [UserRole.ADMIN],
|
||||
permissions: [
|
||||
'account:*:*',
|
||||
'card:*:*',
|
||||
'package:*:*',
|
||||
'device:*:*',
|
||||
'commission:view:*'
|
||||
],
|
||||
avatar: '',
|
||||
email: 'admin@example.com',
|
||||
phone: '13800138001'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'agent',
|
||||
label: '代理商',
|
||||
username: 'agent',
|
||||
password: '123456',
|
||||
role: UserRole.AGENT,
|
||||
userInfo: {
|
||||
id: '3',
|
||||
username: 'agent',
|
||||
realName: '一级代理商',
|
||||
roles: [UserRole.AGENT],
|
||||
permissions: [
|
||||
'card:view:*',
|
||||
'card:operation:*',
|
||||
'package:view:*',
|
||||
'device:view:*',
|
||||
'commission:view:own',
|
||||
'commission:withdraw:*'
|
||||
],
|
||||
avatar: '',
|
||||
email: 'agent@example.com',
|
||||
phone: '13800138002',
|
||||
agentId: '100'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'enterprise',
|
||||
label: '企业客户',
|
||||
username: 'enterprise',
|
||||
password: '123456',
|
||||
role: UserRole.ENTERPRISE,
|
||||
userInfo: {
|
||||
id: '4',
|
||||
username: 'enterprise',
|
||||
realName: '测试企业',
|
||||
roles: [UserRole.ENTERPRISE],
|
||||
permissions: [
|
||||
'card:view:own',
|
||||
'card:operation:own',
|
||||
'package:view:*',
|
||||
'device:view:own'
|
||||
],
|
||||
avatar: '',
|
||||
email: 'enterprise@example.com',
|
||||
phone: '13800138003',
|
||||
enterpriseId: '200'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
/**
|
||||
* Mock 登录响应
|
||||
*/
|
||||
export const mockLogin = (username: string, password: string): LoginData | null => {
|
||||
const account = MOCK_ACCOUNTS.find(
|
||||
(acc) => acc.username === username && acc.password === password
|
||||
)
|
||||
|
||||
if (!account) {
|
||||
return null
|
||||
}
|
||||
|
||||
// 生成 Mock Token
|
||||
const mockToken = `mock_token_${account.key}_${Date.now()}`
|
||||
const mockRefreshToken = `mock_refresh_${account.key}_${Date.now()}`
|
||||
|
||||
return {
|
||||
token: mockToken,
|
||||
refreshToken: mockRefreshToken,
|
||||
expiresIn: 7200 // 2小时
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock 获取用户信息
|
||||
*/
|
||||
export const mockGetUserInfo = (token: string): UserInfo | null => {
|
||||
// 从 token 中提取用户类型
|
||||
const match = token.match(/mock_token_(\w+)_/)
|
||||
if (!match) {
|
||||
return null
|
||||
}
|
||||
|
||||
const accountKey = match[1]
|
||||
const account = MOCK_ACCOUNTS.find((acc) => acc.key === accountKey)
|
||||
|
||||
return account ? account.userInfo : null
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 Mock 账号选项(用于登录页下拉框)
|
||||
*/
|
||||
export const getMockAccountOptions = () => {
|
||||
return MOCK_ACCOUNTS.map((acc) => ({
|
||||
key: acc.key,
|
||||
label: acc.label,
|
||||
username: acc.username,
|
||||
password: acc.password
|
||||
}))
|
||||
}
|
||||
25643
src/mock/json/chinaMap.json
Normal file
25643
src/mock/json/chinaMap.json
Normal file
File diff suppressed because it is too large
Load Diff
194
src/mock/temp/articleList.ts
Normal file
194
src/mock/temp/articleList.ts
Normal file
@@ -0,0 +1,194 @@
|
||||
import cover1 from '@imgs/cover/img1.webp'
|
||||
import cover2 from '@imgs/cover/img2.webp'
|
||||
import cover3 from '@imgs/cover/img3.webp'
|
||||
import cover4 from '@imgs/cover/img4.webp'
|
||||
import cover5 from '@imgs/cover/img5.webp'
|
||||
import cover6 from '@imgs/cover/img6.webp'
|
||||
import cover7 from '@imgs/cover/img7.webp'
|
||||
import cover8 from '@imgs/cover/img8.webp'
|
||||
import cover9 from '@imgs/cover/img9.webp'
|
||||
import cover10 from '@imgs/cover/img10.webp'
|
||||
import { ArticleType } from '@/api/modules'
|
||||
|
||||
export const ArticleList: ArticleType[] = [
|
||||
{
|
||||
id: 452,
|
||||
blog_class: '42',
|
||||
title: 'Node.js + Docker自动化部署',
|
||||
count: 56,
|
||||
create_time: '2024-08-26T00:00:00.000Z',
|
||||
home_img: cover1,
|
||||
brief:
|
||||
'本章将介绍 Node.js 使用 Docker 、Webhook 自动化部署、蓝绿部署、项目到服务器。1、Mac os 安装 Docker 客户端 OrbStack我这里使用的是第三方客户端,相比于官方的,较轻量,启动速度快OrbStack 是一种快速、轻便且简单的运行 Docker 容器和 Linux 的方法。使用我们的 Docker Desktop 替代方案以光速进行开发。下载地址: http',
|
||||
type_name: 'Node.js',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 451,
|
||||
blog_class: '36',
|
||||
title: 'HTTP 协议',
|
||||
count: 109,
|
||||
create_time: '2024-02-22T00:00:00.000Z',
|
||||
home_img: cover2,
|
||||
brief:
|
||||
'概念HTTP(hypertext transport protocol)协议;中文叫超文本传输协议是一种基于TCP/IP的应用层通信协议这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容客户端:用来向服务器发送数据,可以被称之为请求报文服务端:向客户端返回数据,可以被称之为响应报文报文:可以简单理解为就是一堆字符串请求报文的组成请求行请求头空行请求体H',
|
||||
type_name: '浏览器',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 450,
|
||||
blog_class: '40',
|
||||
title: 'MongoDB 数据库基本操作',
|
||||
count: 66,
|
||||
create_time: '2023-11-30T00:00:00.000Z',
|
||||
home_img: cover3,
|
||||
brief:
|
||||
'简介Mongodb 是什么MongoDB 是一个基于分布式文件存储的数据库,官方地址 https://www.mongodb.com/ 数据库是什么数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序数据库的作用数据库的主要作用就是 管理数据 ,对数据进行 增(c)、删(d)、改(u)、查(r)数据库管理数据的特点相比于纯文件管理数据,数据库管理数据有如下特点:1. 速度更快',
|
||||
type_name: 'MongoDB',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 449,
|
||||
blog_class: '40',
|
||||
title: 'Mac os 安装 MongoDB',
|
||||
count: 59,
|
||||
create_time: '2023-11-15T00:00:00.000Z',
|
||||
home_img: cover4,
|
||||
brief:
|
||||
'下载MongoDB安装包官网下载地址:https://www.mongodb.com/try/download/community?tck=docs_server安装MongoDB# 将压缩包解压到 /usr/local/目录下\nsudo tar -zxvf mongodb-macos-x86_64-5.0.24.tgz -C /usr/local\n\n# 重命名\nsudo mv mongodb-o',
|
||||
type_name: 'MongoDB',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 448,
|
||||
blog_class: '42',
|
||||
title: 'npm、yarn、nrm 常用命令',
|
||||
count: 91,
|
||||
create_time: '2023-11-07T00:00:00.000Z',
|
||||
home_img: cover5,
|
||||
brief:
|
||||
'设置镜像源#1,淘宝镜像源\nnpm config set registry https://registry.npmmirror.com\nnpm config set registry https://registry.npm.taobao.org\n\n#2,腾讯云镜像源\nnpm config set registry http://mirrors.cloud.tencent.com/npm/\n\n#',
|
||||
type_name: 'Node.js',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 447,
|
||||
blog_class: '42',
|
||||
title: 'Node.js 包管理工具',
|
||||
count: 53,
|
||||
create_time: '2023-10-31T00:00:00.000Z',
|
||||
home_img: cover6,
|
||||
brief:
|
||||
'介绍包是什么『包』英文单词是 package ,代表了一组特定功能的源码集合包管理工具管理『包』的应用软件,可以对「包」进行 下载安装 , 更新 , 删除 , 上传 等操作借助包管理工具,可以快速开发项目,提升开发效率包管理工具是一个通用的概念,很多编程语言都有包管理工具,所以 掌握好包管理工具非常重要常用的包管理工具下面列举了前端常用的包管理工具npmyarncnpmnpmnpm 全称 Node',
|
||||
type_name: 'Node.js',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 446,
|
||||
blog_class: '42',
|
||||
title: 'Node.js 模块化',
|
||||
count: 40,
|
||||
create_time: '2023-10-25T00:00:00.000Z',
|
||||
home_img: cover7,
|
||||
brief:
|
||||
'介绍什么是模块化与模块 ?将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为其中拆分出的 每个文件就是一个模块 ,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用什么是模块化项目 ?编码时是按照模块一个一个编码的, 整个项目就是一个模块化的项目模块化好处下面是模块化的一些好处:1.防止命名冲突2.高复用性3.高维护性模块暴露数据模块初体验可以通过下面的操作步骤,快速',
|
||||
type_name: 'Node.js',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 445,
|
||||
blog_class: '42',
|
||||
title: 'Node.js学习笔记',
|
||||
count: 198,
|
||||
create_time: '2023-10-15T00:00:00.000Z',
|
||||
home_img: cover8,
|
||||
brief:
|
||||
'fs 模块fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块 ,可以对计算机中的磁盘进行操作。例如文件的创建、删除、修改移动,文件内容的写入、读取,以及文件夹的相关操作// 1 ------------------------------------------------------\n/**\n * 需求\n * 新建一个文件,写入内容\n */\n\n// 1',
|
||||
type_name: 'Node.js',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 444,
|
||||
blog_class: '41',
|
||||
title: '最好用的ChatGPT应用',
|
||||
count: 78,
|
||||
create_time: '2023-05-22T00:00:00.000Z',
|
||||
home_img: cover9,
|
||||
brief:
|
||||
'目前为止最好用的ChatGPT网站,支持6种AI模型和每日一次GPT4的使用机会,有网页版和ios应用程序,可以使用邮箱和手机号等方式注册,中国大陆可放心使用(需要科学上网),下面就介绍一下如何使用吧。网站地址:https://poe.com/进去之后可以选择邮箱或手机号等其他方式注册。除了网页版,你还可以到AppStore搜索poe下载ios客户端',
|
||||
type_name: 'GPT',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 443,
|
||||
blog_class: '35',
|
||||
title: 'Nuxt 百度收录 robots 和 sitemap',
|
||||
count: 109,
|
||||
create_time: '2023-04-07T00:00:00.000Z',
|
||||
home_img: cover10,
|
||||
brief:
|
||||
'前言robots 和 sitemap 文件,前者的作用是减少百度蜘蛛在站内的无谓爬取,后者增加百度蜘蛛在站内的有效爬取,对百度收录和自己网站的SEO推广都十分重要。robots只有一个:robot.txt,这是一个文本文件,主要利用Allow(允许)和DisAllow(禁止)两个命令,(这两个重要的是禁止),禁止百度蜘蛛爬取一些无谓的文件和文件夹,增加百度搜录速度。具体原理和写法网上去搜,制作简单',
|
||||
type_name: 'Nuxt',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 442,
|
||||
blog_class: '12',
|
||||
title: 'Vue3+TS+Vite 项目搭建笔记(更新中)',
|
||||
count: 516,
|
||||
create_time: '2023-04-03T00:00:00.000Z',
|
||||
home_img: cover4,
|
||||
brief:
|
||||
'介绍本章会教你在真实项目中如何搭建 VueRouter、Vuex、pinia、axios、主题切换等,你会见证一个后台管理系统的详细搭建过程。效果图:功能:后台管理系统常用模块登录加密多标签页全局面包屑国际化异常处理Utils工具包可配置的菜单栏徽标亮色 / 暗色 侧边栏浅色主题 / 暗黑主题丰富的个性化配置可折叠侧边栏支持内嵌页面重载当前页面动态路由支持自动重载支持多级路由嵌套及菜单栏嵌套分离路',
|
||||
type_name: 'Vue',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 441,
|
||||
blog_class: '9',
|
||||
title: 'CSS 根据系统自动切换主题方案',
|
||||
count: 184,
|
||||
create_time: '2023-04-01T00:00:00.000Z',
|
||||
home_img: cover8,
|
||||
brief:
|
||||
'原理是改变 css 变量 + window.matchMedia 来监听系统主题变,从而实现点击改变主题和监听系统主题变化1、首先定义 css 全局变量创建 variables.scss 文件light color(浅色模式)定义浅色模式下 css 主题变量dark color(深色模式)定义深色模式下 css 主题变量// css全局变量\n:root {\n // 文字大小\n --art-fo',
|
||||
type_name: 'CSS',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 440,
|
||||
blog_class: '36',
|
||||
title: '浏览器-安全',
|
||||
count: 116,
|
||||
create_time: '2023-03-28T00:00:00.000Z',
|
||||
home_img: cover2,
|
||||
brief:
|
||||
'通过这篇文章你可以了解到同源策略、跨站脚本攻击(xss)、跨域请求伪造(CSRF)以及安全沙箱相关知识;以下是本文的思维导图:(手机端可能看不清)获取高清 PDF,请在微信公众号【小狮子前端】回复【浏览器安全】同源策略什么是同源策略如果两个 URL 的协议、域名和端口都相同,我们就称这两个 URL 同源。两个不同的源之间若想要相互访问资源或者操作 DOM,那么会有一套基础的安全策略的制约,我们把这',
|
||||
type_name: '浏览器',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 439,
|
||||
blog_class: '12',
|
||||
title: 'Vue-Router4',
|
||||
count: 135,
|
||||
create_time: '2023-02-08T00:00:00.000Z',
|
||||
home_img: cover3,
|
||||
brief:
|
||||
"路由模式构建 router.tsimport { createRouter, createWebHistory, createWebHashHistory, createMemoryHistory, createRouterMatcher } from 'vue-router'\nimport Home from '../views/home/index.vue'\nimport Login from",
|
||||
type_name: 'Vue',
|
||||
html_content: ''
|
||||
},
|
||||
{
|
||||
id: 438,
|
||||
blog_class: '10',
|
||||
title: 'Event Loop(事件循环)',
|
||||
count: 161,
|
||||
create_time: '2023-01-03T00:00:00.000Z',
|
||||
home_img: cover1,
|
||||
brief:
|
||||
'js是单线程的,一次只能执行一段代码。单线程会导致很多任务需要排队,一个个去执行,如果此时某个任务执行时间太长,就会出现阻塞,为了解决这个问题,js引入了事件循环机制。为什么要区分宏任务和微任务?js是单线程的,但是分同步异步微任务和宏任务皆为异步任务,它们都属于一个队列宏任务:script(整体代码)、setTimeout、setInterval、I/O、UI、 renderingsetImme',
|
||||
type_name: 'JavaScript',
|
||||
html_content: ''
|
||||
}
|
||||
]
|
||||
79
src/mock/temp/commentDetail.ts
Normal file
79
src/mock/temp/commentDetail.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
export interface Comment {
|
||||
id: number
|
||||
author: string
|
||||
content: string
|
||||
timestamp: string
|
||||
replies: Comment[]
|
||||
}
|
||||
|
||||
export const commentList = ref<Comment[]>([
|
||||
{
|
||||
id: 1,
|
||||
author: '白夜',
|
||||
content: '黑神话悟空的打斗场面真的燃爆了!期待上线!',
|
||||
timestamp: '2024-09-04 09:00',
|
||||
replies: [
|
||||
{
|
||||
id: 101,
|
||||
author: '星河',
|
||||
content: '是啊,特别是那些技能特效,简直帅炸!',
|
||||
timestamp: '2024-09-04 09:15',
|
||||
replies: [
|
||||
{
|
||||
id: 201,
|
||||
author: '光芒',
|
||||
content: '希望优化能跟上,不然这么好的画面如果卡顿就可惜了。',
|
||||
timestamp: '2024-09-04 09:30',
|
||||
replies: []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
author: '浮生',
|
||||
content: '据说黑神话悟空需要很高的配置,不知道我的电脑能不能跑起来。',
|
||||
timestamp: '2024-09-04 10:00',
|
||||
replies: [
|
||||
{
|
||||
id: 102,
|
||||
author: '晨曦',
|
||||
content: '同担心啊,听说需要至少RTX 3070才能高效运行。',
|
||||
timestamp: '2024-09-04 10:20',
|
||||
replies: [
|
||||
{
|
||||
id: 202,
|
||||
author: '流光',
|
||||
content: '我是打算升级配置,等这款游戏就是了。',
|
||||
timestamp: '2024-09-04 10:40',
|
||||
replies: []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
author: '风铃',
|
||||
content: '130GB的存储要求有点夸张啊,不过画质这么好,也情有可原。',
|
||||
timestamp: '2024-09-04 11:00',
|
||||
replies: [
|
||||
{
|
||||
id: 103,
|
||||
author: '云端',
|
||||
content: '确实有点高,不过为了这种品质的游戏,值得。',
|
||||
timestamp: '2024-09-04 11:15',
|
||||
replies: [
|
||||
{
|
||||
id: 203,
|
||||
author: '梦境',
|
||||
content: '希望发售后能优化一下安装包体积。',
|
||||
timestamp: '2024-09-04 11:30',
|
||||
replies: []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
])
|
||||
242
src/mock/temp/commentList.ts
Normal file
242
src/mock/temp/commentList.ts
Normal file
@@ -0,0 +1,242 @@
|
||||
export const commentList = reactive([
|
||||
{
|
||||
id: 1,
|
||||
date: '2024-9-3',
|
||||
content: '发现了一个超级好用的工具,开心',
|
||||
collection: 5,
|
||||
comment: 8,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
date: '2024-9-3',
|
||||
content: '今天的代码写得很顺利!',
|
||||
collection: 3,
|
||||
comment: 2,
|
||||
userName: 'Coder123'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
date: '2024-9-4',
|
||||
content: '遇到个bug,调试了一整天',
|
||||
collection: 7,
|
||||
comment: 10,
|
||||
userName: 'DebugMaster'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
date: '2024-9-4',
|
||||
content: '学Node真的是一件很有趣的事',
|
||||
collection: 9,
|
||||
comment: 4,
|
||||
userName: 'NodeLover'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
date: '2024-9-5',
|
||||
content: '今天的进度有点慢,需要加把劲了',
|
||||
collection: 2,
|
||||
comment: 3,
|
||||
userName: '努力中的小白'
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
date: '2024-9-5',
|
||||
content: '太好了,终于解决了一个难题!',
|
||||
collection: 11,
|
||||
comment: 5,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
date: '2024-9-6',
|
||||
content: '学会了新的Node技巧,开心!',
|
||||
collection: 4,
|
||||
comment: 7,
|
||||
userName: '开心每一天'
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
date: '2024-9-6',
|
||||
content: '代码优化真的是一个细致活',
|
||||
collection: 6,
|
||||
comment: 4,
|
||||
userName: '精益求精'
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
date: '2024-9-7',
|
||||
content: '今天的工作太顺利了,完美!',
|
||||
collection: 10,
|
||||
comment: 9,
|
||||
userName: '完美主义者'
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
date: '2024-9-7',
|
||||
content: '需要多练习,才能掌握更多技能',
|
||||
collection: 5,
|
||||
comment: 6,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
date: '2024-9-8',
|
||||
content: '每天进步一点点,终会成功',
|
||||
collection: 8,
|
||||
comment: 7,
|
||||
userName: '逐梦者'
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
date: '2024-9-8',
|
||||
content: '与其抱怨,不如努力改变',
|
||||
collection: 12,
|
||||
comment: 10,
|
||||
userName: '改变命运'
|
||||
},
|
||||
{
|
||||
id: 13,
|
||||
date: '2024-9-9',
|
||||
content: '今天尝试了新的库,感觉不错',
|
||||
collection: 9,
|
||||
comment: 8,
|
||||
userName: '新手尝试'
|
||||
},
|
||||
{
|
||||
id: 14,
|
||||
date: '2024-9-9',
|
||||
content: '写代码也需要灵感,今天灵感不错',
|
||||
collection: 6,
|
||||
comment: 5,
|
||||
userName: '灵感源泉'
|
||||
},
|
||||
{
|
||||
id: 15,
|
||||
date: '2024-9-10',
|
||||
content: '感谢社区的帮助,让我解决了问题',
|
||||
collection: 7,
|
||||
comment: 4,
|
||||
userName: '受益匪浅'
|
||||
},
|
||||
{
|
||||
id: 16,
|
||||
date: '2024-9-10',
|
||||
content: '学习的路上要保持耐心和恒心',
|
||||
collection: 3,
|
||||
comment: 2,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 17,
|
||||
date: '2024-9-11',
|
||||
content: '今天学习了异步编程的知识,受益匪浅',
|
||||
collection: 10,
|
||||
comment: 9,
|
||||
userName: '异步学习者'
|
||||
},
|
||||
{
|
||||
id: 18,
|
||||
date: '2024-9-11',
|
||||
content: '今天的代码质量提升了不少',
|
||||
collection: 11,
|
||||
comment: 6,
|
||||
userName: '代码匠人'
|
||||
},
|
||||
{
|
||||
id: 19,
|
||||
date: '2024-9-12',
|
||||
content: '感觉学习编程真的很有成就感',
|
||||
collection: 8,
|
||||
comment: 7,
|
||||
userName: '成就感满满'
|
||||
},
|
||||
{
|
||||
id: 20,
|
||||
date: '2024-9-12',
|
||||
content: '要加倍努力,才能超越昨天的自己',
|
||||
collection: 5,
|
||||
comment: 4,
|
||||
userName: '努力超越'
|
||||
},
|
||||
{
|
||||
id: 21,
|
||||
date: '2024-9-13',
|
||||
content: '今天的代码写得很顺手,继续保持',
|
||||
collection: 9,
|
||||
comment: 8,
|
||||
userName: '顺风顺水'
|
||||
},
|
||||
{
|
||||
id: 22,
|
||||
date: '2024-9-13',
|
||||
content: '写代码也需要创意,今天很有创意',
|
||||
collection: 7,
|
||||
comment: 5,
|
||||
userName: '创意无限'
|
||||
},
|
||||
{
|
||||
id: 23,
|
||||
date: '2024-9-14',
|
||||
content: '遇到的难题解决了,感觉很有成就感',
|
||||
collection: 10,
|
||||
comment: 9,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 24,
|
||||
date: '2024-9-14',
|
||||
content: '今天的编程练习很有收获',
|
||||
collection: 8,
|
||||
comment: 7,
|
||||
userName: '收获满满'
|
||||
},
|
||||
{
|
||||
id: 25,
|
||||
date: '2024-9-15',
|
||||
content: '学习编程的路上,有苦有甜',
|
||||
collection: 6,
|
||||
comment: 4,
|
||||
userName: '苦乐编程'
|
||||
},
|
||||
{
|
||||
id: 26,
|
||||
date: '2024-9-15',
|
||||
content: '今天的代码写得特别流畅,开心!',
|
||||
collection: 11,
|
||||
comment: 6,
|
||||
userName: '流畅编程'
|
||||
},
|
||||
{
|
||||
id: 27,
|
||||
date: '2024-9-16',
|
||||
content: '今天的编程练习让我更有信心',
|
||||
collection: 9,
|
||||
comment: 8,
|
||||
userName: '信心满满'
|
||||
},
|
||||
{
|
||||
id: 28,
|
||||
date: '2024-9-16',
|
||||
content: '今天的编程学习让我收获很多',
|
||||
collection: 7,
|
||||
comment: 5,
|
||||
userName: '匿名'
|
||||
},
|
||||
{
|
||||
id: 29,
|
||||
date: '2024-9-17',
|
||||
content: '编程是一门艺术,今天体会到了',
|
||||
collection: 12,
|
||||
comment: 10,
|
||||
userName: '编程艺术家'
|
||||
},
|
||||
{
|
||||
id: 30,
|
||||
date: '2024-9-17',
|
||||
content: '今天的代码写得很顺利,继续加油!',
|
||||
collection: 10,
|
||||
comment: 9,
|
||||
userName: '匿名'
|
||||
}
|
||||
])
|
||||
273
src/mock/temp/formData.ts
Normal file
273
src/mock/temp/formData.ts
Normal file
@@ -0,0 +1,273 @@
|
||||
import avatar1 from '@/assets/img/avatar/avatar1.webp'
|
||||
import avatar2 from '@/assets/img/avatar/avatar2.webp'
|
||||
import avatar3 from '@/assets/img/avatar/avatar3.webp'
|
||||
import avatar4 from '@/assets/img/avatar/avatar4.webp'
|
||||
import avatar5 from '@/assets/img/avatar/avatar5.webp'
|
||||
import avatar6 from '@/assets/img/avatar/avatar6.webp'
|
||||
import avatar7 from '@/assets/img/avatar/avatar7.webp'
|
||||
import avatar8 from '@/assets/img/avatar/avatar8.webp'
|
||||
import avatar9 from '@/assets/img/avatar/avatar9.webp'
|
||||
import avatar10 from '@/assets/img/avatar/avatar10.webp'
|
||||
|
||||
export interface User {
|
||||
id: number
|
||||
username: string
|
||||
gender: 1 | 0
|
||||
mobile: string
|
||||
email: string
|
||||
dep: string
|
||||
status: string
|
||||
create_time: string
|
||||
avatar: string
|
||||
}
|
||||
|
||||
// 用户列表
|
||||
export const ACCOUNT_TABLE_DATA: User[] = [
|
||||
{
|
||||
id: 1,
|
||||
username: 'alexmorgan',
|
||||
gender: 1,
|
||||
mobile: '18670001591',
|
||||
email: 'alexmorgan@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-09-09 10:01:10',
|
||||
avatar: avatar1
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
username: 'sophiabaker',
|
||||
gender: 1,
|
||||
mobile: '17766664444',
|
||||
email: 'sophiabaker@company.com',
|
||||
dep: '电商部',
|
||||
status: '1',
|
||||
create_time: '2020-10-10 13:01:12',
|
||||
avatar: avatar2
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
username: 'liampark',
|
||||
gender: 1,
|
||||
mobile: '18670001597',
|
||||
email: 'liampark@company.com',
|
||||
dep: '人事部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:45',
|
||||
avatar: avatar3
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
username: 'oliviagrant',
|
||||
gender: 0,
|
||||
mobile: '18670001596',
|
||||
email: 'oliviagrant@company.com',
|
||||
dep: '产品部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 09:01:20',
|
||||
avatar: avatar4
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
username: 'emmawilson',
|
||||
gender: 0,
|
||||
mobile: '18670001595',
|
||||
email: 'emmawilson@company.com',
|
||||
dep: '财务部',
|
||||
status: '1',
|
||||
create_time: '2020-11-13 11:01:05',
|
||||
avatar: avatar5
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
username: 'noahevan',
|
||||
gender: 1,
|
||||
mobile: '18670001594',
|
||||
email: 'noahevan@company.com',
|
||||
dep: '运营部',
|
||||
status: '1',
|
||||
create_time: '2020-10-11 13:10:26',
|
||||
avatar: avatar6
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
username: 'avamartin',
|
||||
gender: 1,
|
||||
mobile: '18123820191',
|
||||
email: 'avamartin@company.com',
|
||||
dep: '客服部',
|
||||
status: '2',
|
||||
create_time: '2020-05-14 12:05:10',
|
||||
avatar: avatar7
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
username: 'jacoblee',
|
||||
gender: 1,
|
||||
mobile: '18670001592',
|
||||
email: 'jacoblee@company.com',
|
||||
dep: '总经办',
|
||||
status: '3',
|
||||
create_time: '2020-11-12 07:22:25',
|
||||
avatar: avatar8
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
username: 'miaclark',
|
||||
gender: 0,
|
||||
mobile: '18670001581',
|
||||
email: 'miaclark@company.com',
|
||||
dep: '研发部',
|
||||
status: '4',
|
||||
create_time: '2020-06-12 05:04:20',
|
||||
avatar: avatar9
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
username: 'ethanharris',
|
||||
gender: 1,
|
||||
mobile: '13755554444',
|
||||
email: 'ethanharris@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-12 16:01:10',
|
||||
avatar: avatar10
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
username: 'isabellamoore',
|
||||
gender: 1,
|
||||
mobile: '13766660000',
|
||||
email: 'isabellamoore@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:20',
|
||||
avatar: avatar6
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
username: 'masonwhite',
|
||||
gender: 1,
|
||||
mobile: '18670001502',
|
||||
email: 'masonwhite@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:20',
|
||||
avatar: avatar7
|
||||
},
|
||||
{
|
||||
id: 13,
|
||||
username: 'charlottehall',
|
||||
gender: 1,
|
||||
mobile: '13006644977',
|
||||
email: 'charlottehall@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:20',
|
||||
avatar: avatar8
|
||||
},
|
||||
{
|
||||
id: 14,
|
||||
username: 'benjaminscott',
|
||||
gender: 0,
|
||||
mobile: '13599998888',
|
||||
email: 'benjaminscott@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:20',
|
||||
avatar: avatar9
|
||||
},
|
||||
{
|
||||
id: 15,
|
||||
username: 'ameliaking',
|
||||
gender: 1,
|
||||
mobile: '13799998888',
|
||||
email: 'ameliaking@company.com',
|
||||
dep: '研发部',
|
||||
status: '1',
|
||||
create_time: '2020-11-14 12:01:20',
|
||||
avatar: avatar10
|
||||
}
|
||||
]
|
||||
|
||||
export interface Role {
|
||||
roleName: string
|
||||
roleCode: string
|
||||
des: string
|
||||
date: string
|
||||
enable: boolean
|
||||
}
|
||||
|
||||
// 角色列表
|
||||
export const ROLE_LIST_DATA: Role[] = [
|
||||
{
|
||||
roleName: '超级管理员',
|
||||
roleCode: 'R_SUPER',
|
||||
des: '拥有系统全部权限',
|
||||
date: '2025-05-15 12:30:45',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '管理员',
|
||||
roleCode: 'R_ADMIN',
|
||||
des: '拥有系统管理权限',
|
||||
date: '2025-05-15 12:30:45',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '普通用户',
|
||||
roleCode: 'R_USER',
|
||||
des: '拥有系统普通权限',
|
||||
date: '2025-05-15 12:30:45',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '财务管理员',
|
||||
roleCode: 'R_FINANCE',
|
||||
des: '管理财务相关权限',
|
||||
date: '2025-05-16 09:15:30',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '数据分析师',
|
||||
roleCode: 'R_ANALYST',
|
||||
des: '拥有数据分析权限',
|
||||
date: '2025-05-16 11:45:00',
|
||||
enable: false
|
||||
},
|
||||
{
|
||||
roleName: '客服专员',
|
||||
roleCode: 'R_SUPPORT',
|
||||
des: '处理客户支持请求',
|
||||
date: '2025-05-17 14:30:22',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '营销经理',
|
||||
roleCode: 'R_MARKETING',
|
||||
des: '管理营销活动权限',
|
||||
date: '2025-05-17 15:10:50',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '访客用户',
|
||||
roleCode: 'R_GUEST',
|
||||
des: '仅限浏览权限',
|
||||
date: '2025-05-18 08:25:40',
|
||||
enable: false
|
||||
},
|
||||
{
|
||||
roleName: '系统维护员',
|
||||
roleCode: 'R_MAINTAINER',
|
||||
des: '负责系统维护和更新',
|
||||
date: '2025-05-18 09:50:12',
|
||||
enable: true
|
||||
},
|
||||
{
|
||||
roleName: '项目经理',
|
||||
roleCode: 'R_PM',
|
||||
des: '管理项目相关权限',
|
||||
date: '2025-05-19 13:40:35',
|
||||
enable: true
|
||||
}
|
||||
]
|
||||
1006
src/mock/upgrade/changeLog.ts
Normal file
1006
src/mock/upgrade/changeLog.ts
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user