Ben Lin
2024-08-05 16257dd099d9811fb5caf78047ffc2425c401e0e
src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
@@ -4,11 +4,16 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-22 18:38:48
 * @LastEditTime: 2024-08-05 00:43:08
 */
import { Ref, h, ref, render, unref } from 'vue';
import { GetRoutePTree, GetWoPTree, RouteToCust, RouteToProd, SP_MES_PROD2WO, SP_MES_WO2CUST } from '/@/api/tigerapi/mes/router';
import {
  DeleteWoRoute,
  GetWoPTree,
  SP_MES_PROD2WO,
  SP_MES_WO2CUST,
} from '/@/api/tigerapi/mes/router';
import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
import { useLocale } from '/@/locales/useLocale';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
@@ -16,10 +21,13 @@
import { NavItem } from '/@/api/tigerapi/model/basModel';
import { useMessage } from '/@/hooks/web/useMessage';
import { useModal } from '/@/components/Modal';
import { FormSchema } from '/@/components/Table';
import { initRoute } from '../data';
import { BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
import { useUserStore } from '/@/store/modules/user';
import { EventDataNode } from 'ant-design-vue/lib/tree';
import { ContextMenuItem } from '/@/components/TigerTree';
import { UpdateWoStatus } from '/@/api/tigerapi/mes/wo';
import { useForm } from '/@/components/Form';
const { t } = useI18n();
const { createErrorModal } = useMessage();
@@ -78,7 +86,7 @@
     */
    fetchTreeData: async (type: string, wo: string) => {
      let data = { title: '', treeData: [] as any[], fieldNames: {} };
      let prodTreeData = await GetWoPTree({wo: wo});
      let prodTreeData = await GetWoPTree({ wo: wo });
      // let uniqueArr = prodTreeData.reduce((acc, current) => {
      //   if (!acc.some((x) => x.pid == current.pid && x.id == current.id && x.seq == current.seq && x.type == current.type)) {
      //     acc.push(current);
@@ -86,7 +94,7 @@
      //   return acc;
      // }, [] as V_MES_ROUTE_PTREE[]);
      data.treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
      if(data.treeData.length == 0){
      if (data.treeData.length == 0) {
        data.treeData.push({
          pid: 'root',
          tid: '',
@@ -94,7 +102,7 @@
          wo: wo,
          prod: '',
          name: wo,
          type: 'WorkOrder'
          type: 'WorkOrder',
        });
      }
      data.title = '工单工艺路线';
@@ -115,6 +123,9 @@
        case 'Node':
          form = nodeFormShema;
          break;
        case 'BAS_PKG_DTL':
          form = crudForms[type];
          break;
      }
      return form;
    },
@@ -126,73 +137,162 @@
      return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd'];
    },
    /**
     * @description: 获取表格use列表
     * @param {string} type
     * @param {array} args
     * @return {*}
     */
    GetUseTables: (data: Ref<{}>, ...args) => {
      return {
        Table: useTable({
          title: '列表信息',
          // api: getListByPage,
          // searchInfo: { TABLE_NAME: 'V_BAS_PKG_DTL' },
          dataSource: data.value['Table'],
          columns: GetBaseColumns('', args[0], data),
          maxHeight: 520,
          useSearchForm: false,
          showTableSetting: false,
          bordered: true,
          canResize: true,
          showIndexColumn: false,
          // rowSelection: {
          //   type: 'radio', //'checkbox'
          // },
          actionColumn: {
            width: 100,
            title: '操作',
            dataIndex: 'action',
            slots: { customRender: 'action' },
            fixed: 'right',
          }, //自定义操作列
        }),
      };
    },
    GetUseForm: () => {
      return {
        Action: useForm({
          labelWidth: 145,
          schemas: methods.GetCrudForm('Action'),
          actionColOptions: {
            offset: 8,
            span: 24,
          },
          wrapperCol: {
            span: 15,
          },
          showActionButtonGroup: true,
          submitButtonOptions: {
            text: '保存',
          },
        }),
        Node: useForm({
          labelWidth: 145,
          schemas: methods.GetCrudForm('Node'),
          actionColOptions: {
            offset: 8,
            span: 24,
          },
          wrapperCol: {
            span: 15,
          },
          showActionButtonGroup: true,
          submitButtonOptions: {
            text: '保存',
          },
        }),
      };
    },
    /**
     * @description: 切换节点时事件方法
     * @return {*}
     */
    nodeChange: (params: {
      resetFields: any;
      setFieldsValue: any;
      objParams: Ref<any>;
      selectedNodes: Ref<any[]>;
    }) => {
      let sqlcmd = ' 1=1 ';
      if (!isNullOrEmpty(params['objParams'].value['CODE'])) {
        sqlcmd += `And WORK_ORDER = '${params['objParams'].value['CODE']}'`;
      }
      if (!isNullOrEmpty(params['selectedNodes'].value[0].id)) {
        sqlcmd +=
          params['selectedNodes'].value[0].type == 'Action'
            ? `And ACT_ID = '${params['selectedNodes'].value[0].id}'`
            : `And NODE_ID = '${params['selectedNodes'].value[0].id}'`;
      }
      getEntity({
        sqlcmd: sqlcmd,
        entityName:
          params['selectedNodes'].value[0].type == 'Action' ? 'MES_WO_ACTION' : 'MES_WO_OPER',
        order: '',
      }).then((res) => {
        params['resetFields']();
        if (params['selectedNodes'].value[0].type == 'Action') {
          params['setFieldsValue']({
            ID: res.Data.Items[0].ID,
            ACT_ID: res.Data.Items[0].ACT_ID,
            ROT_ID: res.Data.Items[0].ROT_ID,
            NODE_ID: res.Data.Items[0].NODE_ID,
            IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
            ITEM_CODE: res.Data.Items[0].ITEM_CODE,
            RULE_CODE: res.Data.Items[0].RULE_CODE,
            TEST_CODE: res.Data.Items[0].TEST_CODE,
            SAPL_CODE: res.Data.Items[0].SAPL_CODE,
            LABEL_CODE: res.Data.Items[0].LABEL_CODE,
            PKG_CODE: res.Data.Items[0].PKG_CODE,
            ACT_CODE: res.Data.Items[0].ACT_CODE,
            REMARK: res.Data.Items[0].REMARK,
            WORK_ORDER: params['objParams'].value['CODE'],
            ACT_TYPE: res.Data.Items[0].ACT_TYPE,
            CUST_CODE: params['selectedNodes'].value[0].cust,
            PROD_CODE: params['selectedNodes'].value[0].prod,
          });
    nodeChange: (params: { useForms: Ref<any>; objParams: Ref<any>; selectedNodes: any[] }) =>
      new Promise<any>(async (resolve, reject) => {
        let result = {};
        let sqlcmd = ' 1=1 ';
        if (!isNullOrEmpty(params['objParams'].value['CODE'])) {
          sqlcmd += `And WORK_ORDER = '${params['objParams'].value['CODE']}'`;
        }
        if (params['selectedNodes'].value[0].type == 'Node') {
          params['setFieldsValue']({
            ID: res.Data.Items[0].ID,
            OPER_CODE: res.Data.Items[0].OPER_CODE,
            ROT_ID: res.Data.Items[0].ROT_ID,
            NODE_ID: res.Data.Items[0].NODE_ID,
            NODE_NAME: res.Data.Items[0].NODE_NAME,
            IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
            IS_CALC_FPY: res.Data.Items[0].IS_CALC_FPY,
            CAN_SKIP: res.Data.Items[0].CAN_SKIP,
            IS_INPUT: res.Data.Items[0].IS_INPUT,
            IS_OUTPUT: res.Data.Items[0].IS_OUTPUT,
            REMARK: res.Data.Items[0].REMARK,
            WORK_ORDER: params['objParams'].value['CODE'],
            CUST_CODE: params['selectedNodes'].value[0].cust,
            PROD_CODE: params['selectedNodes'].value[0].prod,
          });
        if (!isNullOrEmpty(params['selectedNodes'][0].id)) {
          sqlcmd +=
            params['selectedNodes'][0].type == 'Action'
              ? `And ACT_ID = '${params['selectedNodes'][0].id}'`
              : `And NODE_ID = '${params['selectedNodes'][0].id}'`;
        }
      });
    },
        try {
          const res = await getEntity({
            sqlcmd: sqlcmd,
            entityName:
              params['selectedNodes'][0].type == 'Action' ? 'MES_WO_ACTION' : 'MES_WO_OPER',
            order: '',
          });
          const setFieldsValue = params['useForms'].value['Action'][1]['setFieldsValue'];
          const setFieldsValueNode = params['useForms'].value['Node'][1]['setFieldsValue'];
          const resetFields = params['useForms'].value['Action'][1]['resetFields'];
          const resetFieldsNode = params['useForms'].value['Node'][1]['resetFields'];
          if (params['selectedNodes'][0].type == 'Action') {
            resetFields();
            setFieldsValue({
              ID: res.Data.Items[0].ID,
              ACT_ID: res.Data.Items[0].ACT_ID,
              ROT_ID: res.Data.Items[0].ROT_ID,
              NODE_ID: res.Data.Items[0].NODE_ID,
              IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
              ITEM_CODE: res.Data.Items[0].ITEM_CODE,
              RULE_CODE: res.Data.Items[0].RULE_CODE,
              TEST_CODE: res.Data.Items[0].TEST_CODE,
              SAPL_CODE: res.Data.Items[0].SAPL_CODE,
              LABEL_CODE: res.Data.Items[0].LABEL_CODE,
              PKG_CODE: res.Data.Items[0].PKG_CODE,
              ACT_CODE: res.Data.Items[0].ACT_CODE,
              REMARK: res.Data.Items[0].REMARK,
              WORK_ORDER: params['objParams'].value['CODE'],
              ACT_TYPE: res.Data.Items[0].ACT_TYPE,
              CUST_CODE: params['selectedNodes'][0].cust,
              PROD_CODE: params['selectedNodes'][0].prod,
              OPTION_1: res.Data.Items[0].OPTION_1,
            });
            result['isShow'] = isNullOrEmpty(res.Data.Items[0].PKG_CODE) ? false : true;
            const ents = await getEntity({
              sqlcmd: `RULE_CODE ='${res.Data.Items[0].PKG_CODE}'`,
              entityName: 'V_BAS_PKG_DTL',
              order: '',
            });
            result['Table'] = isNullOrEmpty(res.Data.Items[0].OPTION_1)
              ? ents.Data.Items
              : JSON.parse(res.Data.Items[0].OPTION_1);
            /* 如果OPTION_1字段为空就把包装信息转JSON存到OPTION_1字段 */
            res.Data.Items[0].OPTION_1 = isNullOrEmpty(res.Data.Items[0].OPTION_1)
              ? JSON.stringify(ents.Data.Items)
              : res.Data.Items[0].OPTION_1;
            result['Action'] = res.Data.Items;
          }
          if (params['selectedNodes'][0].type == 'Node') {
            resetFieldsNode();
            setFieldsValueNode({
              ID: res.Data.Items[0].ID,
              OPER_CODE: res.Data.Items[0].OPER_CODE,
              ROT_ID: res.Data.Items[0].ROT_ID,
              NODE_ID: res.Data.Items[0].NODE_ID,
              NODE_NAME: res.Data.Items[0].NODE_NAME,
              IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
              IS_CALC_FPY: res.Data.Items[0].IS_CALC_FPY,
              CAN_SKIP: res.Data.Items[0].CAN_SKIP,
              IS_INPUT: res.Data.Items[0].IS_INPUT,
              IS_OUTPUT: res.Data.Items[0].IS_OUTPUT,
              ALLOW_DFT_IN: res.Data.Items[0].ALLOW_DFT_IN,
              REMARK: res.Data.Items[0].REMARK,
              WORK_ORDER: params['objParams'].value['CODE'],
              CUST_CODE: params['selectedNodes'][0].cust,
              PROD_CODE: params['selectedNodes'][0].prod,
            });
          }
          resolve(result);
        } catch (e) {
          reject(e);
        }
      }),
    /**
     * @description: 自定义提交方法
     * @return {*}
@@ -247,28 +347,47 @@
     * @param {*} u
     * @return {*}
     */
    GetSelectSuccess: (d, u, ...args) => {
    GetSelectSuccess: async (d, u, ...args) => {
      let value = {};
      switch (args[0]) {
        case 'scanadd':
          value = {
            RULE_CODE: d.values['val'],
            value: {
              RULE_CODE: d.values['val'],
            },
            isShow: false,
          };
          break;
        case 'assyadd':
          value = {
            ITEM_CODE: d.values['val'],
            value: {
              ITEM_CODE: d.values['val'],
            },
            isShow: false,
          };
          break;
        case 'printadd':
          value = {
            LABEL_CODE: d.values['val'],
            value: {
              LABEL_CODE: d.values['val'],
            },
            isShow: false,
          };
          break;
        case 'pkgadd':
          const ents = await getEntity({
            sqlcmd: `RULE_CODE ='${d.values['val']}'`,
            entityName: 'V_BAS_PKG_DTL',
            order: '',
          });
          value = {
            pkgRULE_CODE: d.values['val'],
            value: {
              PKG_CODE: d.values['val'],
            },
            isShow: true,
            data: ents.Data.Items,
          };
          break;
        case 'addRoute':
          if (isNullOrEmpty(args[1]['CODE'])) {
            createErrorModal({
@@ -277,15 +396,37 @@
            });
            return;
          }
          let codes = d.values.id.split(',');
          var i;
          for (i = 0; i < codes.length; i++) {
            if (d.which == 'addRoute') {
              SP_MES_PROD2WO({ rotId: codes[i], wo: args[1]['CODE'] });
          /* 更新工单状态并生成工单的工艺路线 */
          UpdateWoStatus({
            UserId: useUserStore().getUserInfo.userId as string,
            WorkOrder: args[1]['CODE'],
            Status: -1,
            RouteStatus: 1,
          }).then((action) => {
            if (action.IsSuccessed) {
              SP_MES_PROD2WO({ rotId: d.values.id, wo: args[1]['CODE'] }).then((action) => {
                if (action.IsSuccessed) {
                  args[2]();
                } else {
                  UpdateWoStatus({
                    UserId: useUserStore().getUserInfo.userId as string,
                    WorkOrder: args[1]['CODE'],
                    Status: -1,
                    RouteStatus: 0,
                  });
                  createErrorModal({
                    title: t('sys.api.errorTip'),
                    content: t(action.LocaleMsg),
                  });
                }
              });
            } else {
              createErrorModal({
                title: t('sys.api.errorTip'),
                content: t(action.LocaleMsg),
              });
            }
          }
          args[2]();
          });
          break;
        case 'addCustomer':
          if (isNullOrEmpty(args[1]['CODE'])) {
@@ -295,7 +436,7 @@
            });
            return;
          }
          SP_MES_WO2CUST({ wo: args[1]['CODE']});
          SP_MES_WO2CUST({ wo: args[1]['CODE'] });
          args[2]();
          break;
@@ -311,6 +452,12 @@
        addRoute: useModal(),
        addCustomer: useModal(),
        editRoute: useModal(),
        scanadd: useModal(),
        assyadd: useModal(),
        testadd: useModal(),
        auditadd: useModal(),
        printadd: useModal(),
        pkgadd: useModal(),
      };
    },
    /**
@@ -322,6 +469,7 @@
      return {
        configTitle: type == 'Action' ? '行为配置' : '工序配置',
        navTitle: type == 'Product' ? '添加工艺路线' : '工艺路线维护',
        tableTitle: type == 'Action' ? '包装层级列表' : '',
      };
    },
    /**
@@ -335,6 +483,7 @@
        showNav: false,
        type: selectedNodes.value[0].type,
        nodes: selectedNodes.value,
        showOtherTable: false,
      };
      if (isNullOrUnDef(selectedNodes)) {
        return result;
@@ -342,10 +491,16 @@
      if (selectedNodes.value[0].type == 'WorkOrder' || selectedNodes.value[0].type == 'Route') {
        result.showNav = true;
        result.showConfig = false;
        result.showOtherTable = false;
      }
      if (selectedNodes.value[0].type == 'Action' || selectedNodes.value[0].type == 'Node') {
        result.showNav = false;
        result.showConfig = true;
        if (selectedNodes.value[0].type == 'Action') {
          result.showOtherTable = true;
        } else {
          result.showOtherTable = false;
        }
      }
      return result;
    },
@@ -442,10 +597,10 @@
            });
            return;
          }
          SP_MES_WO2CUST({ wo: args[2][0]['wo']});
          SP_MES_WO2CUST({ wo: args[2][0]['wo'] });
          break;
        case 'editRoute':
          args[1](true, { rotId: args[2][0].id, slotName: '' });
          args[1](true, { rotId: args[2][0].wo, slotName: '', rotType: 'Wo' });
          break;
      }
    },
@@ -456,7 +611,7 @@
    GetBaseCards: (type: string) => {
      let reusts: any[] = [];
      switch (type) {
        case 'Product':
        case 'WorkOrder':
          reusts = [];
          break;
        case 'Route':
@@ -500,18 +655,110 @@
     * @param {array} args
     * @return {*}
     */
    CustFunc: (param: CustModalParams) => {
      if (param.cType == 'Route') {
        // initRoute(args[0], args[1]);
      }
    CustFunc: async (param: CustModalParams) => {
      param.data.value['Table'].map((x) => {
        if (x.PKG_CODE == param.values['PKG_CODE']) {
          x.LABEL_CODE = param.values['LABEL_CODE'];
        }
      });
      param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(param.data.value['Table']);
    },
    GetUseForm: () => {
      return {};
    /**
     * @description: 获取右键菜单列表
     * @param {EventDataNode} node
     * @return {*}
     */
    GetRightMenuList: (node: EventDataNode, ...args): ContextMenuItem[] => {
      const emit = args[0];
      const menu = [
        // {
        //   label: '新增',
        //   handler: () => {
        //     console.log('点击了新增', node);
        //   },
        //   icon: 'bi:plus',
        // },
        {
          label: '删除',
          handler: () => {
            console.log('点击了删除', node);
            DeleteWoRoute({ rotId: '', rotCode: node.code, wo: node.wo }).then((action) => {
              if (action.IsSuccessed) {
                emit('deletenode', node);
              } else {
                createErrorModal({
                  title: t('sys.api.errorTip'),
                  content: t(action.LocaleMsg),
                });
              }
            });
          },
          icon: 'bx:bxs-folder-open',
        },
      ];
      return node.type == 'Route' ? menu : [];
    },
  };
  /* 以下是内部方法,不export,供上面的方法调用 */
  let columns: BasicColumn[] = [];
  /**
   * @description: 获取表格字段Json
   * @param {string} type
   * @return {*}
   */
  function GetBaseColumns(type: string, emit, data: Ref<{}>) {
    columns = [
      {
        dataIndex: 'PKG_RULE_ID',
        title: '包装规则ID',
        ifShow: false,
        sorter: true,
        resizable: true,
      },
      {
        dataIndex: 'PKG_CODE',
        title: '包装编码',
        ifShow: false,
        sorter: true,
        resizable: true,
        customRender: () => {},
      },
      {
        dataIndex: 'PKG_NAME',
        title: '包装名称',
        ifShow: true,
        sorter: true,
        resizable: true,
        customRender: () => {},
      },
      {
        dataIndex: 'PKG_QTY',
        title: '包装数量',
        ifShow: true,
        sorter: true,
        resizable: true,
        customRender: () => {},
      },
      {
        dataIndex: 'PKG_LEVEL',
        title: '包装层级',
        ifShow: true,
        sorter: true,
        resizable: true,
        customRender: () => {},
      },
      {
        dataIndex: 'LABEL_CODE',
        title: '标签模板编码',
        ifShow: true,
        sorter: true,
        resizable: true,
      },
    ];
    return columns;
  }
  /**
   * @description: 弹出选择框-物料选择框配置
   * @return {*}
@@ -758,7 +1005,7 @@
      field: 'RULE_CODE',
      label: '扫码验证',
      component: 'Input',
      colProps: { span: 10 },
      colProps: { span: 11 },
      ifShow: ({ values }) => isScan(values.ACT_TYPE),
    },
    {
@@ -766,14 +1013,14 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isScan(values.ACT_TYPE),
      colSlot: 'scanadd',
    },
    {
      field: 'ITEM_CODE',
      label: '组装上料',
      colProps: { span: 10 },
      colProps: { span: 11 },
      component: 'Input',
      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
    },
@@ -782,14 +1029,14 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
      colSlot: 'assyadd',
    },
    {
      field: 'TEST_CODE',
      label: '产品测试',
      colProps: { span: 10 },
      colProps: { span: 11 },
      component: 'Input',
      ifShow: ({ values }) => isTest(values.ACT_TYPE),
    },
@@ -798,14 +1045,14 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isTest(values.ACT_TYPE),
      colSlot: 'testadd',
    },
    {
      field: 'SAPL_CODE',
      label: '产品抽检',
      colProps: { span: 10 },
      colProps: { span: 11 },
      component: 'Input',
      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
    },
@@ -814,14 +1061,14 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
      colSlot: 'auditadd',
    },
    {
      field: 'LABEL_CODE',
      label: '标签打印',
      colProps: { span: 10 },
      colProps: { span: 11 },
      component: 'Input',
      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
    },
@@ -830,14 +1077,14 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
      colSlot: 'printadd',
    },
    {
      field: 'pkgRULE_CODE',
      field: 'PKG_CODE',
      label: '包装规则',
      colProps: { span: 10 },
      colProps: { span: 11 },
      component: 'Input',
      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
    },
@@ -846,7 +1093,7 @@
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      colProps: { span: 1, pull: 1 },
      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
      colSlot: 'pkgadd',
    },
@@ -855,6 +1102,13 @@
      label: '备注',
      component: 'Input',
      colProps: { span: 12 },
    },
    {
      field: 'OPTION_1',
      label: '行为选项1',
      component: 'Input',
      colProps: { span: 12 },
      show: false,
    },
  ];
@@ -1027,6 +1281,27 @@
      },
    },
    {
      field: 'ALLOW_DFT_IN',
      label: '是否允许不良品进站',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'REMARK',
      label: '备注',
      component: 'Input',
@@ -1034,6 +1309,102 @@
    },
  ];
  const crudForms = {
    BAS_PKG_DTL: [
      {
        label: '包装规则ID',
        field: 'PKG_RULE_ID',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        label: '包装层级',
        field: 'PKG_LEVEL',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        field: 'PKG_CODE',
        label: '包装/载具编码',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        label: '包装数量',
        field: 'PKG_QTY',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        field: 'LABEL_CODE',
        label: '模板编码',
        component: 'Input',
        show: true,
        // required: true,
        colProps: {
          span: 22,
        },
      },
      {
        field: 'BAS_LABEL_TEMP1PSelect_0', //按低代码配置的规则,实体名+序号+PSelect_0,序号用来区分多个的时候,PSelect_0这是个固定后缀
        label: '1',
        defaultValue: 'BAS_LABEL_TEMP',
        component: 'Input',
        colProps: { span: 2 },
        colSlot: 'BAS_LABEL_TEMP1add', //按低代码配置的规则,实体名+序号+add,序号用来区分多个的时候,add这是个固定后缀
      },
      {
        label: '包装名称',
        field: 'PKG_NAME',
        component: 'Input',
        colProps: {
          span: 24,
        },
        show: false,
      },
      {
        label: '备注',
        field: 'REMARK',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        label: 'ID',
        field: 'ID',
        component: 'Input',
        colProps: {
          span: 24,
        },
        show: false,
      },
    ] as FormSchema[],
  };
  return [methods];
}