包含以下模块: - antdv-next-admin: Vue 3 + TypeScript + Ant Design Vue 管理后台 - 设备/许可证/配件/耗材 CRUD 管理页面 - 基础数据管理 (分类/位置/制造商/型号/供应商) - 业务管理 (故障报修/盘点/资产分配/资产申请/交易记录) - 下拉选项改造 (ID输入框 → 搜索下拉选择) - 资产状态字典化 (接入sys_dict系统) - 界面文案优化 (设备→资产, 在库/在用/维修中/已报废) - 修复 console 警告 (popupClassName, 重复组件注册) - our-itam: Java Spring Boot + magic-api 后端服务 - fantastic-admin: 前端底层框架 (pnpm monorepo) - ciyo-itasset: CIYO 资产模块 - magic-script-skill: Claude Code skill 定义 - .claude: 对话历史记录 Co-Authored-By: Claude Code <noreply@anthropic.com>
115 lines
3.1 KiB
TypeScript
115 lines
3.1 KiB
TypeScript
import type { SysConfig } from "@/types/config";
|
|
|
|
import { defineMock } from "vite-plugin-mock-dev-server";
|
|
|
|
import { sysConfigs } from "../data/config.data";
|
|
|
|
export default defineMock([
|
|
{
|
|
url: "/api/config/list",
|
|
method: "GET",
|
|
body: (req) => {
|
|
const { name, key, group, page = 1, pageSize = 20 } = req.query;
|
|
let filtered = [...sysConfigs];
|
|
|
|
if (name)
|
|
filtered = filtered.filter((item) =>
|
|
item.name.includes(name as string),
|
|
);
|
|
if (key)
|
|
filtered = filtered.filter((item) => item.key.includes(key as string));
|
|
if (group) filtered = filtered.filter((item) => item.group === group);
|
|
|
|
filtered.sort((a, b) => a.sort - b.sort);
|
|
const start = (Number(page) - 1) * Number(pageSize);
|
|
const list = filtered.slice(start, start + Number(pageSize));
|
|
|
|
return {
|
|
code: 200,
|
|
message: "success",
|
|
success: true,
|
|
data: {
|
|
list,
|
|
total: filtered.length,
|
|
current: Number(page),
|
|
pageSize: Number(pageSize),
|
|
},
|
|
};
|
|
},
|
|
},
|
|
|
|
{
|
|
url: "/api/config/key/:key",
|
|
method: "GET",
|
|
body: (req) => {
|
|
const item = sysConfigs.find((c) => c.key === req.params.key);
|
|
return item
|
|
? { code: 200, message: "success", success: true, data: item }
|
|
: { code: 404, message: "Config not found", success: false };
|
|
},
|
|
},
|
|
|
|
{
|
|
url: "/api/config",
|
|
method: "POST",
|
|
body: (req) => {
|
|
const exists = sysConfigs.find((c) => c.key === req.body.key);
|
|
if (exists)
|
|
return {
|
|
code: 400,
|
|
message: "Config key already exists",
|
|
success: false,
|
|
};
|
|
const newConfig: SysConfig = {
|
|
id: String(Date.now()),
|
|
...req.body,
|
|
builtIn: false,
|
|
createTime: new Date().toISOString().replace("T", " ").slice(0, 19),
|
|
updateTime: new Date().toISOString().replace("T", " ").slice(0, 19),
|
|
};
|
|
sysConfigs.push(newConfig);
|
|
return { code: 200, message: "success", success: true, data: newConfig };
|
|
},
|
|
},
|
|
|
|
{
|
|
url: "/api/config/:id",
|
|
method: "PUT",
|
|
body: (req) => {
|
|
const index = sysConfigs.findIndex((item) => item.id === req.params.id);
|
|
if (index !== -1) {
|
|
sysConfigs[index] = {
|
|
...sysConfigs[index],
|
|
...req.body,
|
|
updateTime: new Date().toISOString().replace("T", " ").slice(0, 19),
|
|
};
|
|
return {
|
|
code: 200,
|
|
message: "success",
|
|
success: true,
|
|
data: sysConfigs[index],
|
|
};
|
|
}
|
|
return { code: 404, message: "Config not found", success: false };
|
|
},
|
|
},
|
|
|
|
{
|
|
url: "/api/config/:id",
|
|
method: "DELETE",
|
|
body: (req) => {
|
|
const index = sysConfigs.findIndex((item) => item.id === req.params.id);
|
|
if (index === -1)
|
|
return { code: 404, message: "Config not found", success: false };
|
|
if (sysConfigs[index].builtIn)
|
|
return {
|
|
code: 400,
|
|
message: "Built-in config cannot be deleted",
|
|
success: false,
|
|
};
|
|
sysConfigs.splice(index, 1);
|
|
return { code: 200, message: "success", success: true };
|
|
},
|
|
},
|
|
]);
|