tansci/README.md
李龙龙 a5176016b3 feat: 优化字典管理页面布局,修复部门人员操作列,完善LDAP集成
- 字典管理页面改为左右分栏 a-menu 布局,对齐系统配置页面风格
- 左侧菜单项显示字典名称、编码(hover展开)及数据数量徽标
- 修复部门人员操作列因 ProTable dataIndex='action' 拦截导致按钮不显示
- 字典类型编辑/删除移至右侧工具栏,操作列增加序号列
- 新增 LDAP 配置管理与同步功能(UnboundID LDAP SDK)
- 清理废弃的 fantastic-admin 目录
2026-05-18 18:00:41 +08:00

126 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 文件。