src/views/mes/pro/workorder/data.ts
@@ -1,6 +1,7 @@
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesProWorkOrderApi } from '#/api/mes/pro/workorder';
import { type MesProWorkOrderApi, getWorkOrderApproveProcessList } from '#/api/mes/pro/workorder';
import { getSimpleRoleList } from '#/api/system/role';
import type { MesProWorkOrderBomApi } from '#/api/mes/pro/workorder/bom';
import type { MesProWorkOrderProcessApi } from '#/api/mes/pro/workorder/process';
@@ -126,6 +127,10 @@
          }
        },
      },
      help: (values: { orderSourceType?: number }) =>
        values.orderSourceType === MesProWorkOrderSourceTypeEnum.ORDER
          ? '已选客户订单:需补充来源单据编号与客户,便于追溯订单来源。'
          : '用于区分订单业务归属;选「客户订单」时才需关联来源单据与客户。',
      rules: 'selectRequired',
    },
    {
@@ -141,6 +146,7 @@
        show: (values) =>
          values.orderSourceType === MesProWorkOrderSourceTypeEnum.ORDER,
      },
      help: '填写上游单据(如销售订单)的编号,用于追溯该订单的来源。',
    },
    {
      fieldName: 'type',
@@ -160,6 +166,11 @@
          }
        },
      },
      help: (values: { type?: number }) =>
        values.type === MesProWorkOrderTypeEnum.OUTSOURCE ||
        values.type === MesProWorkOrderTypeEnum.PURCHASE
          ? '已选委外/采购生产:需指定供应商,委外报工与入库将按该供应商结算。'
          : '自营生产按本单工序排产;选「委外加工」或「采购生产」时需额外指定供应商。',
      rules: 'selectRequired',
    },
    {
@@ -170,6 +181,7 @@
        disabled: headerReadonly,
        placeholder: '请选择产品',
      },
      help: '选择产品后,工序将自动从其工艺路线带出并按需调整;产品需先在「工艺流程」中配置路线与投料 BOM。',
      rules: 'selectRequired',
    },
    {
@@ -198,6 +210,7 @@
        show: (values) =>
          values.orderSourceType === MesProWorkOrderSourceTypeEnum.ORDER,
      },
      help: '关联客户后,订单可在客户维度追溯并对接后续结算。',
    },
    {
      fieldName: 'vendorId',
@@ -213,6 +226,7 @@
          values.type === MesProWorkOrderTypeEnum.OUTSOURCE ||
          values.type === MesProWorkOrderTypeEnum.PURCHASE,
      },
      help: '委外/采购订单需指定供应商,委外报工与入库均以该供应商为准。',
    },
    {
      fieldName: 'batchCode',
@@ -232,10 +246,63 @@
        disabled: headerReadonly,
        format: 'YYYY-MM-DD',
        placeholder: '请选择需求日期',
        valueFormat: 'x',
        valueFormat: 'YYYY-MM-DD',
      },
      help: '预计交付/完成日期,用于排产、进度跟踪与交期预警。',
      rules: 'required',
    },
    // {
    //   fieldName: 'feedbackRole',
    //   label: '报工角色',
    //   component: 'ApiSelect',
    //   componentProps: {
    //     api: getSimpleRoleList,
    //     disabled: headerReadonly,
    //     labelField: 'name',
    //     valueField: 'code',
    //     mode: 'multiple',
    //     placeholder: '请选择报工角色',
    //   },
    //   rules: 'selectRequired',
    // },
    {
      fieldName: 'feedbackApprove',
      label: '是否报工审批',
      component: 'Switch',
      componentProps: {
        class: '!w-auto',
        checkedChildren: '是',
        unCheckedChildren: '否',
        disabled: headerReadonly,
      },
      defaultValue: false,
      help: '开启后,生产报工提交需经审批通过才计入产量;关闭则报工直接生效。',
      rules: 'required',
    },
    {
      fieldName: 'processDefinitionKey',
      label: '审批流程',
      component: 'ApiSelect',
      componentProps: {
        api: getWorkOrderApproveProcessList,
        disabled: headerReadonly,
        labelField: 'name',
        valueField: 'key',
        placeholder: '请选择审批流程',
      },
      dependencies: {
        triggerFields: ['feedbackApprove'],
        show: (values) => !!values.feedbackApprove,
        rules(values) {
          if (values.feedbackApprove) {
            return 'selectRequired';
          }
          return undefined;
        },
      },
      help: '选择报工提交后走的审批流程;流程需先在系统「流程管理」中部署,仅「报工审批」类流程可选。',
    },
    {
      fieldName: 'remark',
      label: '备注',
@@ -411,6 +478,27 @@
        name: 'CellDict',
        props: { type: DICT_TYPE.MES_PRO_WORK_ORDER_STATUS },
      },
    },
    {
      field: 'productionStatus',
      title: '生产状态',
      width: 100,
      cellRender: {
        name: 'CellDict',
        props: { type: DICT_TYPE.ORDER_PRODUCTION_STATUS },
      },
    },
    {
      field: 'processProgressList',
      title: '工序生产进度',
      width: 350,
      slots: { default: 'processProgressList' },
    },
    {
      field: 'completionProgress',
      title: '完成进度',
      width: 200,
      slots: { default: 'completionProgress' },
    },
    {
      field: 'createTime',
@@ -686,14 +774,9 @@
      slots: { default: 'backflushFlag' },
    },
    {
      field: 'outputItemCode',
      title: '产出物料编码',
      width: 120,
    },
    {
      field: 'outputItemName',
      title: '产出物料名称',
      width: 120,
      field: 'outputItemNames',
      title: '产出物料',
      width: 160,
    },
    {
      field: 'remark',