src/views/mes/pro/task/modules/task-form.vue
@@ -9,6 +9,7 @@
import { useVbenForm } from '#/adapter/form';
import { createTask, getTask, updateTask } from '#/api/mes/pro/task';
import { getWorkOrder } from '#/api/mes/pro/workorder';
import { $t } from '#/locales';
import { useTaskFormSchema } from '../data';
@@ -23,6 +24,7 @@
  routeId?: number;
  workOrderId?: number;
}>({}); // 新增任务时的订单 / 工序上下文
const feedbackRole = ref<string>();
const getTitle = computed(() => {
  return formData.value?.id
@@ -72,8 +74,6 @@
      context.value = {};
      return;
    }
    formApi.setState({ schema: useTaskFormSchema(formApi, workOrderQuantity) });
    // 加载数据
    const data = modalApi.getData<{
      colorCode?: string;
      id?: number;
@@ -83,30 +83,46 @@
      routeId?: number;
      workOrderId?: number;
    }>();
    let wid: number | undefined;
    if (data?.id) {
      modalApi.lock();
      try {
        formData.value = await getTask(data.id);
        wid = formData.value.workOrderId;
        // 设置到 values
        await formApi.setValues(formData.value);
      } finally {
        modalApi.unlock();
      }
      return;
    } else {
      context.value = {
        colorCode: data.colorCode,
        itemId: data.itemId,
        processId: data.processId,
        routeId: data.routeId,
        workOrderId: data.workOrderId,
      };
      wid = data.workOrderId;
      workOrderQuantity.value = data.quantity;
      await formApi.setValues({
        colorCode: data.colorCode || '#00AEF3',
        duration: 1,
        quantity: data.quantity,
      });
    }
    context.value = {
      colorCode: data.colorCode,
      itemId: data.itemId,
      processId: data.processId,
      routeId: data.routeId,
      workOrderId: data.workOrderId,
    };
    workOrderQuantity.value = data.quantity;
    await formApi.setValues({
      colorCode: data.colorCode || '#00AEF3',
      duration: 1,
      quantity: data.quantity,
    });
    if (wid) {
      try {
        const wo = await getWorkOrder(wid);
        feedbackRole.value = wo.feedbackRole;
      } catch {
        // ignore
      }
    }
    formApi.setState({ schema: useTaskFormSchema(formApi, workOrderQuantity, feedbackRole) });
  },
});
</script>