物料主数据新增辅单位与默认仓库字段
涉及页面
- 物料主数据新增/编辑页面
- 物料主数据列表页面
- 物料详情页面
API
| 方法 |
路径 |
说明 |
| POST |
/mdm/item/create |
创建物料(新增辅单位、仓库字段) |
| PUT |
/mdm/item/update |
更新物料(新增辅单位、仓库字段) |
| GET |
/mdm/item/get |
获取物料详情(新增辅单位名称、仓库名称) |
| GET |
/mdm/item/page |
获取物料分页(新增辅单位名称、仓库名称) |
请求参数(新增字段):
| 参数 |
类型 |
必填 |
说明 |
| unitMeasureId2 |
Long |
否 |
辅单位1编号,关联计量单位表 |
| unitMeasureRate1 |
BigDecimal |
否 |
辅单位1换算比率(主单位与辅单位1的换算比率,如1箱=12个,则比率为12) |
| unitMeasureId3 |
Long |
否 |
辅单位2编号,关联计量单位表 |
| unitMeasureRate2 |
BigDecimal |
否 |
辅单位2换算比率 |
| warehouseId |
Long |
否 |
默认仓库编号,关联仓库表 |
| warehouseCode |
String |
否 |
默认仓库编码 |
响应(新增字段):
| 参数 |
类型 |
说明 |
| unitMeasureId2 |
Long |
辅单位1编号 |
| unitMeasureName2 |
String |
辅单位1名称 |
| unitMeasureRate1 |
BigDecimal |
辅单位1换算比率 |
| unitMeasureId3 |
Long |
辅单位2编号 |
| unitMeasureName3 |
String |
辅单位2名称 |
| unitMeasureRate2 |
BigDecimal |
辅单位2换算比率 |
| warehouseId |
Long |
默认仓库编号 |
| warehouseCode |
String |
默认仓库编码 |
| warehouseName |
String |
默认仓库名称 |
前端修改点
1. 新增/编辑表单 - 添加辅单位和仓库字段
<!-- 辅单位1 -->
<el-form-item label="辅单位1" prop="unitMeasureId2">
<el-select v-model="form.unitMeasureId2" placeholder="请选择辅单位1" clearable>
<el-option
v-for="item in unitMeasureList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="辅单位1换算比率" prop="unitMeasureRate1">
<el-input-number v-model="form.unitMeasureRate1" :precision="6" :min="0" placeholder="请输入换算比率" />
</el-form-item>
<!-- 辅单位2 -->
<el-form-item label="辅单位2" prop="unitMeasureId3">
<el-select v-model="form.unitMeasureId3" placeholder="请选择辅单位2" clearable>
<el-option
v-for="item in unitMeasureList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="辅单位2换算比率" prop="unitMeasureRate2">
<el-input-number v-model="form.unitMeasureRate2" :precision="6" :min="0" placeholder="请输入换算比率" />
</el-form-item>
<!-- 默认仓库 -->
<el-form-item label="默认仓库" prop="warehouseId">
<el-select v-model="form.warehouseId" placeholder="请选择默认仓库" clearable
@change="handleWarehouseChange">
<el-option
v-for="item in warehouseList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
2. data 数据
data() {
return {
// ... 原有数据
form: {
// ... 原有字段
unitMeasureId2: undefined,
unitMeasureRate1: undefined,
unitMeasureId3: undefined,
unitMeasureRate2: undefined,
warehouseId: undefined,
warehouseCode: undefined,
},
warehouseList: [], // 仓库下拉列表
}
}
3. 列表表格 - 添加列
<el-table-column label="辅单位1" align="center" prop="unitMeasureName2" />
<el-table-column label="辅单位1换算比率" align="center" prop="unitMeasureRate1" width="140" />
<el-table-column label="辅单位2" align="center" prop="unitMeasureName3" />
<el-table-column label="辅单位2换算比率" align="center" prop="unitMeasureRate2" width="140" />
<el-table-column label="默认仓库" align="center" prop="warehouseName" />
4. 方法
// 仓库选择变更时,同步设置仓库编码
handleWarehouseChange(warehouseId) {
const warehouse = this.warehouseList.find(w => w.id === warehouseId);
this.form.warehouseCode = warehouse ? warehouse.code : undefined;
},
// 打开新增/编辑弹窗时,加载仓库下拉列表
async openForm(id) {
// ... 原有逻辑
this.warehouseList = await getWarehouseSimpleList();
// ...
}
5. API 接口调用
// 需要引入仓库 API
import { getWarehouseSimpleList } from '@/api/mdm/warehouse';
// 或在物料 API 文件中新增仓库简单列表接口
// api/mdm/warehouse.js
export function getWarehouseSimpleList() {
return request({ url: '/mdm/warehouse/simple-list', method: 'get' });
}
注意事项
- 辅单位1和辅单位2均关联计量单位表(mdm_unit_measure),下拉选项与主单位共用同一数据源
- 换算比率为 BigDecimal(24,6),前端使用
el-input-number 组件时需设置 :precision="6" 保持精度一致
- 默认仓库编码(warehouseCode)为冗余字段,选择仓库后自动填充,无需用户手动输入
- 辅单位和默认仓库均为非必填字段
- 列表页如字段较多,可考虑将辅单位信息折叠展示或仅在详情页显示