Files
SecMPS/warehouse/docs/钥匙管理组件/TASK_钥匙管理组件.md
2026-05-15 23:22:48 +08:00

168 lines
3.7 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.
# 钥匙管理组件 - 任务拆分文档
## 任务依赖图
```mermaid
graph TD
T1[创建文件夹结构] --> T2[创建KeyInfo组件]
T2 --> T3[实现钥匙柜选择功能]
T2 --> T4[实现钥匙矩阵展示]
T2 --> T5[实现钥匙状态显示]
T2 --> T6[实现操作历史Dialog]
T3 --> T7[集成API获取钥匙数据]
T5 --> T7
T6 --> T8[集成API获取操作记录]
T7 --> T9[更新路由配置]
T8 --> T9
T9 --> T10[更新Main.vue]
```
## 子任务详细信息
### T1: 创建文件夹结构
**输入契约**
- 项目根目录:`h:/Code/仓库管理系统/warehouse`
**输出契约**
- 创建文件夹:`src/view/key`
**实现约束**
- 使用标准的文件夹创建命令
- 确保文件夹结构与项目其他功能模块保持一致
### T2: 创建KeyInfo组件
**输入契约**
- 已创建的`src/view/key`文件夹
- 参考项目中其他组件的结构和样式
**输出契约**
- 创建文件:`src/view/key/KeyInfo.vue`
- 组件基本结构完整
**实现约束**
- 使用Vue 3 Composition API
- 遵循项目现有的组件开发规范
### T3: 实现钥匙柜选择功能
**输入契约**
- `KeyInfo.vue`组件
- 三个钥匙柜的配置信息
**输出契约**
- 完整的钥匙柜选择下拉框
- 选择事件处理逻辑
**实现约束**
- 使用ElementPlus的`<el-select>`组件
- 提供默认选中项
### T4: 实现钥匙矩阵展示
**输入契约**
- `KeyInfo.vue`组件
- 钥匙柜选择功能
**输出契约**
- 根据选中钥匙柜动态生成方格矩阵
- 矩阵中格子显示正确的序号
**实现约束**
- 矩阵布局合理,美观
- 序号从左上角1号开始按从左到右、从上到下的顺序排列
### T5: 实现钥匙状态显示
**输入契约**
- `KeyInfo.vue`组件
- 钥匙矩阵展示功能
- 钥匙数据
**输出契约**
- 在对应位置显示钥匙图标
- 根据KeyState属性设置图标颜色
**实现约束**
- "在位"状态显示绿色
- "离位"状态显示红色
- 图标清晰可见
### T6: 实现操作历史Dialog
**输入契约**
- `KeyInfo.vue`组件
- 钥匙状态显示功能
**输出契约**
- 点击钥匙图标显示Dialog
- Dialog中包含操作历史表格
- 正确处理Dialog的显示和隐藏
**实现约束**
- 使用ElementPlus的`<el-dialog>``<el-table>`组件
- Dialog内容布局合理
### T7: 集成API获取钥匙数据
**输入契约**
- `KeyInfo.vue`组件
- 项目中的http.js
- API接口`/api/warehouse_keys/GetPageData`
**输出契约**
- 成功从API获取钥匙数据
- 正确处理和存储数据
- 错误处理机制
**实现约束**
- 使用项目现有的http.js进行请求
- 处理API返回的数据格式
- 添加适当的加载状态
### T8: 集成API获取操作记录
**输入契约**
- `KeyInfo.vue`组件
- 项目中的http.js
- API接口`/api/warehouse_keylog/GetPageData`
**输出契约**
- 成功从API获取钥匙操作记录
- 正确显示在Dialog中
- 错误处理机制
**实现约束**
- 使用项目现有的http.js进行请求
- 动态传递KeyId参数
- 添加适当的加载状态
### T9: 更新路由配置
**输入契约**
- `src/router/index.ts`文件
- `KeyInfo.vue`组件
**输出契约**
- 在路由配置中添加KeyInfo组件的路由
- 设置正确的路径和参数
**实现约束**
- 路由路径:`/index/key/info`
- 设置`meta.requiresAuth: true`
### T10: 更新Main.vue
**输入契约**
- `src/view/Main.vue`文件
- 新增的KeyInfo组件
- 更新后的路由配置
**输出契约**
- 在Main.vue中导入KeyInfo组件
- 在handleMenuSelect函数中添加对新路由的处理
**实现约束**
- 导入路径正确
- 处理逻辑与其他组件保持一致