tansci/antdv-next-admin/mock/handlers/config.mock.ts
xuewuerduo f468d532b1 feat: 初始化tansci资产管理项目
包含以下模块:
- 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>
2026-05-17 21:41:22 +08:00

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 };
},
},
]);