编辑 | blame | 历史 | 原始文档

物料主数据新增辅单位与默认仓库字段

涉及页面

  • 物料主数据新增/编辑页面
  • 物料主数据列表页面
  • 物料详情页面

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)为冗余字段,选择仓库后自动填充,无需用户手动输入
  • 辅单位和默认仓库均为非必填字段
  • 列表页如字段较多,可考虑将辅单位信息折叠展示或仅在详情页显示