src/views/wls/outsourceissue/modules/line-form.vue
@@ -14,6 +14,10 @@
  updateOutsourceIssueLine,
} from '#/api/mes/wm/outsourceissue/line';
import { $t } from '#/locales';
import {
  getEnterUnitRate,
  omitLineTempFields,
} from '#/views/wls/utils/item-unit-convert';
import { useLineFormSchema } from '../data';
@@ -36,7 +40,7 @@
    labelWidth: 90,
  },
  layout: 'horizontal',
  schema: useLineFormSchema(),
  schema: [],
  showDefaultActions: false,
  wrapperClass: 'grid-cols-3',
});
@@ -48,9 +52,10 @@
      return;
    }
    modalApi.lock();
    // 提交表单
    const data =
      (await formApi.getValues()) as MesWmOutsourceIssueLineApi.OutsourceIssueLine;
    // 提交表单(剔除仅用于前端换算/展示的临时字段)
    const data = omitLineTempFields(
      (await formApi.getValues()) as MesWmOutsourceIssueLineApi.OutsourceIssueLine,
    );
    data.issueId = issueId.value;
    try {
      await (formData.value?.id
@@ -69,6 +74,7 @@
      formData.value = undefined;
      return;
    }
    formApi.setState({ schema: useLineFormSchema(formApi) });
    // 加载数据
    const data = modalApi.getData<{
      id?: number;
@@ -80,9 +86,25 @@
    }
    modalApi.lock();
    try {
      formData.value = await getOutsourceIssueLine(data.id);
      // 设置到 values
      await formApi.setValues(formData.value);
      const line = await getOutsourceIssueLine(data.id);
      formData.value = line;
      // 设置到 values;详情里的 unitMeasureId/unitMeasureName 即物料主单位,补到前端换算用的隐藏字段上
      await formApi.setValues({
        ...line,
        itemPrimaryUnitId: line.unitMeasureId,
        itemPrimaryUnitName: line.unitMeasureName,
      });
      // 回显录入单位时补齐换算比率(前端预览换算需要)
      if (line.enterUnitMeasureId) {
        await formApi.setFieldValue(
          'enterUnitRate',
          await getEnterUnitRate(
            line.itemId,
            line.itemModelId,
            line.enterUnitMeasureId,
          ),
        );
      }
    } finally {
      modalApi.unlock();
    }