# 物料主数据模块 (MDM) 前端变更文档
## 一、新增页面
### 1.1 物料主数据管理
#### 涉及页面
- 物料列表页 (`views/mdm/item/index.vue`)
- 物料新增/编辑弹窗 (`views/mdm/item/ItemForm.vue`)
- 物料详情页 (`views/mdm/item/detail.vue`)
#### API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /mdm/item/page | 物料分页查询 |
| GET | /mdm/item/list | 物料列表查询 |
| GET | /mdm/item/get | 获取物料详情 |
| POST | /mdm/item/create | 创建物料 |
| PUT | /mdm/item/update | 更新物料 |
| DELETE | /mdm/item/delete | 删除物料 |
| PUT | /mdm/item/update-status | 更新物料状态 |
**请求参数(物料查询):**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| code | String | 否 | 物料编码 |
| name | String | 否 | 物料名称 |
| categoryId | Long | 否 | 分类ID |
| itemType | Integer | 否 | 物料类型(1:原料,2:半成品,3:成品,4:辅料) |
| status | Integer | 否 | 状态 |
**响应:**
```json
{
"code": 200,
"data": {
"list": [
{
"id": 1,
"code": "M001",
"name": "物料名称",
"barCode": "条码",
"specification": "规格型号",
"categoryId": 10,
"categoryName": "分类名称",
"unitMeasureId": 1,
"unitMeasureName": "单位名称",
"brandId": 1,
"brandName": "品牌名称",
"itemType": 1,
"status": 0,
"purchasePrice": 100.00,
"salesPrice": 150.00,
"costPrice": 80.00,
"safetyStock": 50.00,
"minStock": 20.00,
"maxStock": 200.00,
"isBatchManaged": true,
"expiryDay": 365,
"remark": "备注"
}
],
"total": 100
}
}
```
#### 前端修改点
**1. 物料列表页面结构:**
```html
搜索
重置
新增
导出
是
否
编辑
删除
```
**2. 物料表单弹窗:**
```html
取消
确定
```
**3. 数据定义:**
```js
```
---
### 1.2 物料分类管理
#### 涉及页面
- 物料分类管理页 (`views/mdm/category/index.vue`)
#### API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /mdm/category/list | 分类列表查询 |
| GET | /mdm/category/get | 获取分类详情 |
| POST | /mdm/category/create | 创建分类 |
| PUT | /mdm/category/update | 更新分类 |
| DELETE | /mdm/category/delete | 删除分类 |
---
### 1.3 计量单位管理
#### 涉及页面
- 计量单位管理页 (`views/mdm/unit/index.vue`)
#### API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /mdm/unit/page | 单位分页查询 |
| GET | /mdm/unit/list | 单位列表查询 |
| POST | /mdm/unit/create | 创建单位 |
| PUT | /mdm/unit/update | 更新单位 |
| DELETE | /mdm/unit/delete | 删除单位 |
---
### 1.4 品牌管理
#### 涉及页面
- 品牌管理页 (`views/mdm/brand/index.vue`)
#### API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /mdm/brand/page | 品牌分页查询 |
| GET | /mdm/brand/list | 品牌列表查询 |
| POST | /mdm/brand/create | 创建品牌 |
| PUT | /mdm/brand/update | 更新品牌 |
| DELETE | /mdm/brand/delete | 删除品牌 |
---
## 二、修改页面
### 2.1 ERP 产品管理页面
#### 修改内容
**原页面**:`views/erp/product/index.vue`
**修改点**:
1. API 接口从 `/erp/product/*` 改为调用 `/mdm/item/*`
2. 数据字段映射调整(`productId` → `itemId`)
3. 增加物料类型筛选(原料/半成品/成品/辅料)
**注意事项**:
- ERP 产品页面数据来源从 MDM 物料获取
- 保留 ERP 特有字段(采购价、销售价、最低价)的编辑能力
---
### 2.2 MES 物料管理页面
#### 修改内容
**原页面**:`views/mes/md/item/index.vue`
**修改点**:
1. API 接口从 `/mes/md-item/*` 改为调用 `/mdm/item/*`
2. 数据字段映射调整(`itemTypeId` → `categoryId`)
3. 批次配置从独立页面改为物料详情页子模块
**注意事项**:
- MES 物料页面数据来源从 MDM 物料获取
- 批次属性配置保留在 MDM 模块管理
---
### 2.3 WMS 商品管理页面
#### 修改内容
**原页面**:`views/wms/item/index.vue`
**修改点**:
1. API 接口从 `/wms/item/*` 改为调用 `/mdm/item/*`
2. SKU 管理改为物料详情页子模块
3. 库存查询改用统一接口 `/wms/stock/*`
**注意事项**:
- WMS 商品页面数据来源从 MDM 物料获取
- SKU 作为物料的规格属性管理
---
## 三、新增字典类型
| 字典类型 | 字典值 | 说明 |
|---------|-------|------|
| MDM_ITEM_TYPE | 1 | 原料 |
| MDM_ITEM_TYPE | 2 | 半成品 |
| MDM_ITEM_TYPE | 3 | 成品 |
| MDM_ITEM_TYPE | 4 | 辅料 |
| STOCK_BIZ_TYPE | 10 | 采购入库 |
| STOCK_BIZ_TYPE | 20 | 销售出库 |
| STOCK_BIZ_TYPE | 30 | 生产入库 |
| STOCK_BIZ_TYPE | 40 | 生产领料 |
| STOCK_BIZ_TYPE | 50 | 生产退料 |
| STOCK_BIZ_TYPE | 60 | 采购退货出库 |
| STOCK_BIZ_TYPE | 70 | 销售退货入库 |
| STOCK_BIZ_TYPE | 80 | 调拨入库 |
| STOCK_BIZ_TYPE | 90 | 调拨出库 |
| STOCK_BIZ_TYPE | 100 | 盘盈入库 |
| STOCK_BIZ_TYPE | 110 | 盘亏出库 |
---
## 四、路由配置
```js
// 新增路由
{
path: '/mdm',
component: Layout,
name: 'MDM',
meta: { title: '主数据管理', icon: 'ep:goods' },
children: [
{
path: 'item',
name: 'MdmItem',
component: () => import('@/views/mdm/item/index.vue'),
meta: { title: '物料管理' }
},
{
path: 'category',
name: 'MdmCategory',
component: () => import('@/views/mdm/category/index.vue'),
meta: { title: '物料分类' }
},
{
path: 'unit',
name: 'MdmUnit',
component: () => import('@/views/mdm/unit/index.vue'),
meta: { title: '计量单位' }
},
{
path: 'brand',
name: 'MdmBrand',
component: () => import('@/views/mdm/brand/index.vue'),
meta: { title: '品牌管理' }
},
{
path: 'warehouse',
name: 'MdmWarehouse',
component: () => import('@/views/mdm/warehouse/index.vue'),
meta: { title: '仓库管理' }
}
]
}
```
---
## 五、注意事项
1. **数据迁移**:执行数据迁移 SQL 后,原有 ERP/MES/WMS 的物料页面将展示迁移后的 MDM 数据
2. **权限配置**:新增 MDM 模块菜单和权限配置
3. **API 对接**:前端需要新增 MDM 相关 API 文件 (`api/mdm/item.js`, `api/mdm/category.js` 等)
4. **字段兼容**:旧页面的字段名称需要映射到新字段,如 `productId` → `itemId`
5. **状态同步**:物料状态变更后,需要同步更新各模块引用状态
---
**文档版本**: v1.0
**创建日期**: 2026-06-29
**作者**: Claude Code