- 字典管理页面改为左右分栏 a-menu 布局,对齐系统配置页面风格 - 左侧菜单项显示字典名称、编码(hover展开)及数据数量徽标 - 修复部门人员操作列因 ProTable dataIndex='action' 拦截导致按钮不显示 - 字典类型编辑/删除移至右侧工具栏,操作列增加序号列 - 新增 LDAP 配置管理与同步功能(UnboundID LDAP SDK) - 清理废弃的 fantastic-admin 目录
126 lines
3.8 KiB
Markdown
126 lines
3.8 KiB
Markdown
# Tansci — IT 资产管理平台
|
||
|
||
企业级 IT 资产全生命周期管理系统,覆盖设备、许可证、配件、耗材的采购、分配、折旧、盘点、报修全流程。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
tansci/
|
||
├── antdv-next-admin/ # 前端管理后台 (Vue 3 + TypeScript + Ant Design Vue)
|
||
├── our-itam/ # 后端服务 (Java Spring Boot + magic-api)
|
||
├── ciyo-itasset/ # CIYO IT资产模块 (功能参考)
|
||
└── magic-script-skill/ # Claude Code 自定义 Skill
|
||
```
|
||
|
||
## 技术栈
|
||
|
||
| 层级 | 技术 | 说明 |
|
||
|------|------|------|
|
||
| 前端框架 | Vue 3.4 + TypeScript + Vite | 现代化 SPA 开发 |
|
||
| UI 组件 | Ant Design Vue (antdv-next) | 企业级 UI 组件库 |
|
||
| 状态管理 | Pinia | Vue 3 官方状态管理 |
|
||
| 后端框架 | Spring Boot | Java 微服务框架 |
|
||
| 低代码接口 | magic-api 2.2.2 | 在线编写 API 脚本,热加载 |
|
||
| 认证鉴权 | Sa-Token | 轻量级权限认证框架 |
|
||
| 数据库 | MySQL 8.0 | 关系型数据库 |
|
||
|
||
## 功能模块
|
||
|
||
### 资产管理
|
||
- **设备管理** — 资产登记、状态跟踪(在库/在用/维修中/已报废)
|
||
- **许可证管理** — 软件许可证、序列号、到期管理
|
||
- **配件管理** — 配件库存、关联资产
|
||
- **耗材管理** — 耗材库存、最小库存预警
|
||
- **折旧规则** — 折旧月数、残值配置
|
||
- **服务管理** — 云服务/订阅服务跟踪
|
||
|
||
### 基础数据
|
||
- **分类管理** — 多级分类(设备/许可证/配件/耗材/服务)
|
||
- **位置管理** — 物理位置/楼栋/城市
|
||
- **制造商** — 厂商信息、支持链接
|
||
- **型号管理** — 型号关联制造商和分类
|
||
- **供应商** — 供应商信息、联系方式
|
||
|
||
### 业务管理
|
||
- **故障报修** — 报修工单、状态流转
|
||
- **资产盘点** — 盘点计划、执行跟踪
|
||
- **资产分配** — 资产领用/归还
|
||
- **资产申请** — 采购申请、审批流程
|
||
- **交易记录** — 操作审计日志
|
||
|
||
### 系统管理
|
||
- 用户/角色/部门管理
|
||
- 菜单与权限管理(RBAC 按钮级权限)
|
||
- 字典管理(系统枚举值统一维护)
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- **前端**: Node.js >= 16, pnpm >= 8
|
||
- **后端**: JDK >= 17, Maven >= 3.8
|
||
- **数据库**: MySQL 8.0 (192.168.2.1:3307, 库名 `our_itam`)
|
||
|
||
### 1. 数据库初始化
|
||
|
||
```bash
|
||
mysql -h 192.168.2.1 -P 3307 -u root -p our_itam < our-itam/db/init.sql
|
||
```
|
||
|
||
### 2. 启动后端服务
|
||
|
||
```bash
|
||
cd our-itam
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
后端默认端口 **9999**,API 前缀 `/magic-api/`。
|
||
magic-api 管理平台: http://localhost:9999/magic/web/index.html
|
||
|
||
### 3. 启动前端服务
|
||
|
||
```bash
|
||
cd antdv-next-admin
|
||
pnpm install
|
||
pnpm dev
|
||
```
|
||
|
||
默认地址 http://localhost:3000/
|
||
|
||
### 4. 测试账号
|
||
|
||
| 账号 | 密码 | 角色 |
|
||
|------|------|------|
|
||
| admin | 123456 | 超级管理员 |
|
||
|
||
## 开发指南
|
||
|
||
### magic-api 开发注意事项
|
||
|
||
- 文件位于 `our-itam/data/magic-api/api/`,按模块分目录
|
||
- 每个分组目录必须有 `group.json`,接口文件为 `.ms` 后缀
|
||
- `.ms` 文件包含 JSON 元数据头(name/method/path)和 magic-script 脚本体
|
||
- 脚本语法限制:仅支持 `for (val in list)` 和 `for (index, val in list)`
|
||
- 响应格式统一为 `{ code: 1, message: "success", data: ... }`
|
||
- **文件变更后需重启后端才能生效**
|
||
|
||
### 前端开发注意事项
|
||
|
||
- 权限指令: `v-permission="'asset:device:add'"` 控制按钮显隐
|
||
- ProTable 组件使用 `dataIndex: 'operations'` 渲染操作列
|
||
- 表单下拉选项统一使用 `:options` 属性模式,避免 `<a-select-option>` 子组件
|
||
- 字典数据通过 `getDictDataByType(typeCode)` 获取
|
||
|
||
### 接口约定
|
||
|
||
| 场景 | HTTP 方法 |
|
||
|------|-----------|
|
||
| 分页查询 | POST `/xxx/page` |
|
||
| 新增/修改 | POST `/xxx/save` |
|
||
| 删除 | POST `/xxx/delete` |
|
||
| 列表查询 | GET `/xxx/list` |
|
||
|
||
## 变更记录
|
||
|
||
详见 `.claude/conversation-history/` 中的对话历史 JSONL 文件。
|