hsy
4 天以前 5a581157ef99b336130265ee267458cf0c40165b
feat(returnvendor): 拣货明细增加库存记录的 batchId 传递

- 在 useDetailFormSchema 中新增 onStockChange 回调以暴露库存记录数据
- 在明细表单 detail-form.vue 中本地响应并保存所选库存记录的 batchId
- 修复点击确认新增/编辑拣货明细时,无法向后端传递 batchId 的问题
已修改2个文件
17 ■■■■ 文件已修改
src/views/wls/returnvendor/data.ts 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wls/returnvendor/modules/detail-form.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wls/returnvendor/data.ts
@@ -439,7 +439,10 @@
}
/** 拣货明细新增/修改的表单 */
export function useDetailFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
export function useDetailFormSchema(
  formApi?: VbenFormApi,
  onStockChange?: (stock?: MesWmMaterialStockApi.MaterialStock) => void,
): VbenFormSchema[] {
  return [
    {
      fieldName: 'quantityMax',
@@ -464,10 +467,10 @@
      componentProps: {
        // 选择库存记录后,自动回填仓库/库区/库位/批次/数量
        onChange: async (stock?: MesWmMaterialStockApi.MaterialStock) => {
          onStockChange?.(stock);
          await formApi?.setValues({
            areaId: stock?.areaId,
            batchCode: stock?.batchCode,
            batchId: stock?.batchId,
            locationId: stock?.locationId,
            quantity: stock?.quantity,
            quantityMax: stock?.quantity,
src/views/wls/returnvendor/modules/detail-form.vue
@@ -21,6 +21,7 @@
const formData = ref<MesWmReturnVendorDetailApi.ReturnVendorDetail>();
const returnId = ref<number>(); // 所属退货单编号
const lineId = ref<number>(); // 所属退货单行编号
const batchId = ref<number>(); // 当前选择库存的批次编号
const getTitle = computed(() => {
  return formData.value?.id
@@ -54,6 +55,7 @@
      (await formApi.getValues()) as MesWmReturnVendorDetailApi.ReturnVendorDetail;
    data.returnId = returnId.value;
    data.lineId = lineId.value;
    data.batchId = batchId.value;
    try {
      await (formData.value?.id
        ? updateReturnVendorDetail({ ...data, id: formData.value.id })
@@ -69,9 +71,14 @@
  async onOpenChange(isOpen: boolean) {
    if (!isOpen) {
      formData.value = undefined;
      batchId.value = undefined;
      return;
    }
    formApi.setState({ schema: useDetailFormSchema(formApi) });
    formApi.setState({
      schema: useDetailFormSchema(formApi, (stock) => {
        batchId.value = stock?.batchId;
      }),
    });
    // 加载数据
    const data = modalApi.getData<{
      detailId?: number;
@@ -85,6 +92,7 @@
      modalApi.lock();
      try {
        formData.value = await getReturnVendorDetail(data.detailId);
        batchId.value = formData.value.batchId;
        // 设置到 values
        await formApi.setValues(formData.value);
      } finally {