src/views/wls/miscissue/modules/line-form.vue
@@ -14,6 +14,10 @@
  updateMiscIssueLine,
} from '#/api/mes/wm/miscissue/line';
import { $t } from '#/locales';
import {
  getEnterUnitRate,
  omitLineTempFields,
} from '#/views/wls/utils/item-unit-convert';
import { useLineFormSchema } from '../data';
@@ -48,9 +52,10 @@
      return;
    }
    modalApi.lock();
    // 提交表单
    const data =
      (await formApi.getValues()) as MesWmMiscIssueLineApi.MiscIssueLine;
    // 提交表单(剔除仅用于前端换算/展示的临时字段)
    const data = omitLineTempFields(
      (await formApi.getValues()) as MesWmMiscIssueLineApi.MiscIssueLine,
    );
    data.issueId = issueId.value;
    try {
      await (formData.value?.id
@@ -81,9 +86,25 @@
    }
    modalApi.lock();
    try {
      formData.value = await getMiscIssueLine(data.id);
      // 设置到 values
      await formApi.setValues(formData.value);
      const line = await getMiscIssueLine(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();
    }