src/views/mes/pro/feedback/data.ts
@@ -19,7 +19,13 @@
import { generateAutoCode } from '#/api/mes/md/autocode/record';
import { getRouteProcessByRouteAndProcess } from '#/api/mes/pro/route/process';
import { getSimpleUserList } from '#/api/system/user';
import { loadParamDetails } from './param-state';
import {
  loadParamDetails,
  resetWaitConfig,
  waitDuration,
  waitStartTime,
  waitTaskId,
} from './param-state';
import { getRangePickerDefaultProps } from '#/utils';
import { MdItemSelect } from '#/views/mes/md/item/components';
import { MdWorkstationSelect } from '#/views/mes/md/workstation/components';
@@ -195,6 +201,12 @@
      defaultValue: true,
    },
    {
      fieldName: 'needReportQuantity',
      component: 'Input',
      dependencies: { triggerFields: [''], show: () => false },
      defaultValue: true,
    },
    {
      fieldName: 'routeId',
      component: 'Input',
      dependencies: { triggerFields: [''], show: () => false },
@@ -255,8 +267,10 @@
        status: MesProWorkOrderStatusEnum.CONFIRMED,
        // 订单变更:清空任务及任务带出的产品信息、数量区域控制位
        onChange: async () => {
          resetWaitConfig();
          await formApi?.setValues({
            checkFlag: true,
            needReportQuantity: true,
            itemCode: undefined,
            itemId: undefined,
            itemName: undefined,
@@ -291,6 +305,8 @@
        onChange: async (task?: MesProTaskApi.Task) => {
          await loadParamDetails(task?.id);
          if (!task) {
            resetWaitConfig();
            await formApi?.setFieldValue('needReportQuantity', true);
            return;
          }
          await formApi?.setValues({
@@ -304,7 +320,9 @@
            workstationId: task.workstationId,
            reportableQuantity: task.reportableQuantity,
          });
          // 工艺路线工序的 checkFlag 决定数量区域展示
          waitTaskId.value = task.id;
          waitStartTime.value = task.waitStartTime;
          // 工艺路线工序的 checkFlag / 等待时长 / 报工数量规则决定展示
          if (task.routeId && task.processId) {
            try {
              const routeProcess = await getRouteProcessByRouteAndProcess(
@@ -315,9 +333,19 @@
                'checkFlag',
                routeProcess?.checkFlag ?? false,
              );
              await formApi?.setFieldValue(
                'needReportQuantity',
                routeProcess?.needReportQuantity ?? true,
              );
              waitDuration.value = routeProcess?.waitDuration;
            } catch {
              await formApi?.setFieldValue('checkFlag', true);
              await formApi?.setFieldValue('needReportQuantity', true);
              waitDuration.value = undefined;
            }
          } else {
            waitDuration.value = undefined;
            await formApi?.setFieldValue('needReportQuantity', true);
          }
        },
      },
@@ -405,7 +433,12 @@
        precision: 2,
        placeholder: '请输入报工数量',
      },
      rules: 'required',
      dependencies: {
        triggerFields: ['needReportQuantity'],
        show: (values) => values.needReportQuantity !== false,
        rules: (values) =>
          values.needReportQuantity === false ? null : 'required',
      },
    },
    {
      fieldName: 'feedbackUserId',