# MDM 物料同步 MES 优化 - 前端联调方案 ## 涉及页面 - 基础数据 > MDM > 物料管理(列表页) - 基础数据 > MDM > 物料管理(新增/编辑弹窗) ## 变更概述 1. **移除 `syncMes` 复选框**:创建/编辑物料时不再需要手动勾选"同步到 MES",后端自动同步 2. **列表新增同步状态列**:显示物料是否已同步到 MES 3. **状态/删除实时同步**:MDM 侧更新状态或删除物料时,自动同步到 MES ## API 变更 ### 1. GET `/mdm/item/page` - 响应新增字段 **响应字段新增:** | 字段 | 类型 | 说明 | |------|------|------| | syncedMes | Boolean | 是否已同步到 MES。true=已同步,false/null=未同步 | **响应示例:** ```json { "code": 0, "data": { "list": [ { "id": 1, "code": "ITEM001", "name": "螺丝", "syncedMes": true, "...": "..." }, { "id": 2, "code": "ITEM002", "name": "螺母", "syncedMes": false, "...": "..." } ], "total": 100 } } ``` ### 2. GET `/mdm/item/get` - 响应新增字段 同上,`syncedMes` 表示该物料是否已同步到 MES。 ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | syncedMes | 列表新增列 | true 时显示绿色"已同步"标签,false 时显示灰色"未同步"标签 | ## 业务规则说明 | 场景 | 规则 | |------|------| | 新增物料 | 后端自动同步到 MES,列表中 syncedMes 为 true | | 编辑物料 | 后端自动同步到 MES | | 更新物料状态 | 后端自动同步状态到 MES(启用/禁用) | | 删除物料 | 后端自动同步删除 MES 中的对应记录(如存在) | | 表单中的 syncMes 字段 | 前端可保留但不再生效,建议隐藏"同步到 MES"开关 | ## 前端修改点 ### 1. TypeScript 类型定义 `src/api/mdm/item/index.ts` 中 `MdmItemApi.Item` 接口新增 `syncedMes?: boolean` 字段。 ### 2. 列表新增同步状态列 `src/views/basicData/mdm/data.ts` 中 `useGridColumns()` 新增一列: - field: `syncedMes` - title: "同步状态" - 使用插槽渲染 Tag 组件 ### 3. 列表页模板 `src/views/basicData/mdm/index.vue` 中新增 `syncedMes` 插槽模板,展示同步状态标签。 ### 4. 表单移除 syncMes 开关(可选) `src/views/basicData/mdm/data.ts` 中 `useFormSchema()` 可隐藏或移除 `syncMes` 表单项,后端已忽略此参数。 ## 注意事项 - 历史数据中未同步到 MES 的物料,`syncedMes` 为 false;可通过编辑物料触发自动同步 - MES 同步失败会回滚 MDM 操作(保持数据一致性),前端需关注接口返回的错误信息 - `syncedMes` 字段在详情页(getItem)也会返回,可用于详情页显示同步状态