本设计文档描述了将物料采购模块(dingdan/manage-vue)整合到芋道管理后台项目的技术方案。整合工作包括:
整合采用前端模块化架构,遵循现有项目的目录结构和菜单配置模式:
yudao-ui/yudao-ui-admin-vue3/
├── src/
│ └── views/
│ └── caigou/ # 物料采购模块目录
│ ├── index.vue # 现有的物料交货计划分析
│ ├── MaterialPurchaseOrder.vue # 物料采购订单
│ ├── SubcontractOrder.vue # 委外加工订单
│ └── MaterialPurchaseRequest.vue # 物料采购申请
└── sql/
└── mysql/
└── material_purchase_menu.sql # 菜单配置SQL
graph TD
A[物料采购 ID:6500] --> B[物料采购订单 ID:6501]
A --> C[委外加工订单 ID:6502]
A --> D[物料采购申请 ID:6503]
| 组件名 | 源路径 | 目标路径 | 功能 |
|---|---|---|---|
| MaterialPurchaseOrder.vue | dingdan/manage-vue/src/views/purchase-order/ | src/views/caigou/ | 物料采购订单管理 |
| SubcontractOrder.vue | dingdan/manage-vue/src/views/purchase-order/ | src/views/caigou/ | 委外加工订单管理 |
| MaterialPurchaseRequest.vue | dingdan/manage-vue/src/views/purchase-order/ | src/views/caigou/ | 物料采购申请管理 |
| 菜单ID | 名称 | 父ID | 路径 | 组件路径 | 权限标识 |
|---|---|---|---|---|---|
| 6500 | 物料采购 | 0 | /caigou | - | - |
| 6501 | 物料采购订单 | 6500 | material-purchase-order | caigou/MaterialPurchaseOrder | caigou:purchase-order:list |
| 6502 | 委外加工订单 | 6500 | subcontract-order | caigou/SubcontractOrder | caigou:subcontract-order:list |
| 6503 | 物料采购申请 | 6500 | material-purchase-request | caigou/MaterialPurchaseRequest | caigou:purchase-request:list |
CREATE TABLE `system_menu` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '菜单名称',
`permission` varchar(100) DEFAULT '' COMMENT '权限标识',
`type` tinyint NOT NULL COMMENT '菜单类型(1目录 2菜单 3按钮)',
`sort` int NOT NULL DEFAULT '0' COMMENT '显示顺序',
`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父菜单ID',
`path` varchar(200) DEFAULT '' COMMENT '路由地址',
`icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
`component` varchar(255) DEFAULT NULL COMMENT '组件路径',
`component_name` varchar(255) DEFAULT NULL COMMENT '组件名称',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
`visible` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否可见',
`keep_alive` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否缓存',
`always_show` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否总是显示',
PRIMARY KEY (`id`)
);
A property is a characteristic or behavior that should hold true across all valid executions of a system-essentially, a formal statement about what the system should do. Properties serve as the bridge between human-readable specifications and machine-verifiable correctness guarantees.
基于 prework 分析,本模块主要涉及配置和文件操作,大部分验收标准是具体的示例验证而非通用属性。以下是可测试的属性:
For any menu record in the 6500-6599 ID range with type=2 (menu), the component field should start with "caigou/" prefix Validates: Requirements 2.4
For any menu record in the 6500-6599 ID range with a non-empty permission field, the permission should follow the pattern "caigou:{module}:{action}" Validates: Requirements 5.3
For any localStorage key used in the caigou module components, the key should be prefixed with "caigou-" or "material-purchase-" to avoid conflicts Validates: Requirements 4.3
由于本模块主要是配置和文件复制工作,单元测试主要验证:
使用手动验证方式检查: