From 21a4e09672b1177d40c2bb5b937a8780c5eaa7fb Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 15:03:34 +0800
Subject: [PATCH] 一些更新

---
 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts | 1373 +++++++++++++++++------------------------------------------
 1 files changed, 407 insertions(+), 966 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
index c9242a1..c121589 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
@@ -4,310 +4,168 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-18 15:43:37
+ * @LastEditTime: 2024-10-23 20:48:14
  */
 
 import { Ref, h, ref, render, unref } from 'vue';
-import { GetRoutePTree, RouteToCust, RouteToProd } 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';
 import { useI18n } from '/@/hooks/web/useI18n';
-import { NavItem } from '/@/api/tigerapi/model/basModel';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { useModal } from '/@/components/Modal';
-import { FormSchema } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
 import { useUserStore } from '/@/store/modules/user';
 import { buildUUID } from '/@/utils/uuid';
 import { SaveWoBatchInput } from '/@/api/tigerapi/model/mesModel';
 import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel';
 import { SaveMesBatchWo } from '/@/api/tigerapi/mes/wo';
 import { useForm } from '/@/components/Form/index';
-import { uploadApi } from '/@/api/sys/upload';
+import { cloneDeep } from 'lodash-es';
+import { useProdRouteStore } from '/@/store/modules/prodRoute';
+import { Tag, Tooltip } from 'ant-design-vue';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
 const { getLocale } = useLocale();
 function _default() {
-  /* 瀹氫箟鍙橀噺 */
-  const isNormal = (type: number) => type === 0;
-  const isScan = (type: number) => type === 1;
-  const isAssy = (type: number) => type === 2;
-  const isTest = (type: number) => type === 3;
-  const isAudit = (type: number) => type === 4;
-  const isPrint = (type: number) => type === 5;
-  const isPackage = (type: number) => type === 6;
+  const ActionColumn: BasicColumn = {
+    width: 180,
+    title: '鎿嶄綔',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: 'right',
+  };
   /**
    * @description: 宸ュ崟绠$悊鐨勪竴浜涜嚜瀹氫箟鏂规硶
    * @return {*}
    */
   const methods = {
     /**
-     * @description: 鑾峰彇鏍戝舰鍥炬爣
-     * @param {Recordable} params
+     * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateIcon: (params: Recordable<any>) => {
-      let icon = '';
-      switch (params['type']) {
-        case 'Product':
-          icon = 'similar-product|svg';
+    CreateAction: (type: string, fnName: string) => {
+      let action = {} as any;
+      switch (fnName) {
+        case 'ImportExcel':
+          action = {
+            action: 'importModal', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+            params: {
+              tmpHeader: ['宸ュ崟鍙�', '璁″垝鏃ユ湡', '璁″垝鏁伴噺'] /* 涓嬭浇妯℃澘鐨勬爣棰樺瓧娈� */,
+              filename: '宸ュ崟璁″垝妯℃澘.xlsx' /* 涓嬭浇妯℃澘鐨勬枃浠跺悕 */,
+              entityName: 'BIZ_MES_WO_BATCH' /* 瀵煎叆琛ㄧ殑琛ㄥ悕 */,
+              checkJson: ['ORDER_NO', 'PLAN_DATE', 'PLAN_QTY'] /* 瀵煎叆琛ㄩ渶瑕佹鏌ョ殑瀛楁鍒楄〃 */,
+              where: ['ORDER_NO'] /* 瀵煎叆琛ㄩ渶瑕佹煡璇㈢殑瀛楁鍒楄〃 */,
+              typeFullName:
+                'Tiger.IBusiness.MES.IImportWoPlan,Tiger.IBusiness.MES' /* 瀵煎叆鐨勬柟娉曞叏鍚嶏紝閫氱敤瀵煎叆鐢ㄨ繖涓細Tiger.IBusiness.ICommonImportExcel,Tiger.IBusiness */,
+              baseColumns: [
+                /* 瀵煎叆鏃剁晫闈㈡樉绀烘暟鎹殑瀛楁 */
+                {
+                  title: '宸ュ崟鍙�',
+                  dataIndex: 'ORDER_NO',
+                  ifShow: true,
+                  width: 180,
+                },
+                // {
+                //   title: '宸ュ崟鎵规鍙�',
+                //   dataIndex: 'BATCH_NO',
+                //   ifShow: true,
+                //   width: 180,
+                //   // customRender: ({ record }) => {
+                //   //   record.BATCH_NO = record.ORDER_NO+'-01'
+                //   //   return record.BATCH_NO
+                //   // },
+                // },
+                {
+                  title: '璁″垝鏃ユ湡',
+                  dataIndex: 'PLAN_DATE',
+                  ifShow: true,
+                  width: 180,
+                },
+                {
+                  title: '璁″垝鏁伴噺',
+                  dataIndex: 'PLAN_QTY',
+                  ifShow: true,
+                  width: 100,
+                },
+                {
+                  title: '澶勭悊鏂瑰紡',
+                  dataIndex: 'VALIDATION_TYPE',
+                  ifShow: true,
+                  width: 100,
+                  customRender: ({ record }) => {
+                    const status = record.VALIDATION_TYPE;
+                    var text = '';
+                    var color = 'green';
+                    if (status == '寮傚父') {
+                      color = 'red';
+                      text = status;
+                    } else if (status == '鏇存柊') {
+                      color = 'orange';
+                      text = status;
+                    } else {
+                      text = status;
+                    }
+                    return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+                  },
+                },
+                {
+                  title: '澶勭悊鎻愮ず',
+                  dataIndex: 'VALIDATION_RESULT',
+                  ifShow: true,
+                  width: 280,
+                  customRender: ({ record }) => {
+                    const status = record.VALIDATION_TYPE;
+                    var text = record.VALIDATION_RESULT;
+                    var color = 'green';
+                    if (status == '寮傚父') {
+                      color = 'red';
+                    } else if (status == '鏇存柊') {
+                      color = 'orange';
+                    }
+                    return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+                  },
+                },
+              ],
+            },
+          };
           break;
-        case 'Route':
-          icon = 'route|svg';
-          break;
-        case 'Node':
-          icon = 'node|svg';
-          break;
-        case 'Action':
-          icon = 'rot_action|svg';
-          break;
-        case 'Customer':
-          icon = 'customer|svg';
+        case 'ToPrint':
+          action = {
+            action: 'ToPrint', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+          };
+        break;
+        default:
+          action = {
+            action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | modal(鎵撳紑妯℃�佺獥鍙�) | importModal(鎵撳紑瀵煎叆妯℃�佺獥鍙�) | ToPrint(鎵撳嵃鍔熻兘)
+          };
           break;
       }
-      return icon;
+      return action;
     },
     /**
-     * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl
+     * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽�
      * @return {*}
      */
-    GetHomeUrl: () => {
-      return `/V_BAS_PROD/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD', colSlots: [], crudColSlots: [] }))}`;
-    },
-    /**
-     * @description: 鑾峰彇鏍戝舰鏁版嵁
-     * @param {string} type
-     * @return {*}
-     */
-    fetchTreeData: async (type: string, itemCode: string) => {
-      let data = { title: '', treeData: [] as any[], fieldNames: {} };
-      let prodTreeData = await GetRoutePTree(itemCode);
-      // 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);
-      //   }
-      //   return acc;
-      // }, [] as V_MES_ROUTE_PTREE[]);
-      data.treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
-      data.title = '宸ヨ壓璺嚎';
-      data.fieldNames = { key: 'tid', title: 'name' };
+    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
+      data.map((x) => {
+        if (x.name == 'goDetail') {
+          x.onClick = goDetail.bind(null, args[5], params);
+          x.tooltip = '宸ュ崟鎵规';
+        }
+        if (x.name == 'handleConfig') {
+          x.onClick = handleConfig.bind(null, args, params);
+          x.tooltip = '閰嶇疆宸ヨ壓';
+        }
+        if (x.name == 'handleRelease') {
+          x.onClick = handleRelease.bind(null, args, params);
+          x.tooltip = '涓嬪彂';
+        }
+        if (x.name == 'ToPrint') {
+          x.tooltip = '鎵撳嵃娴佺▼鍗�';
+        }
+      });
       return data;
-    },
-    /**
-     * @description: 鑾峰彇閰嶇疆椤硅〃鍗曞瓧娈碉紝鏍规嵁鏍戝舰鑺傜偣type涓嶅悓鑰屼笉鍚�
-     * @param {string} type
-     * @return {*}
-     */
-    GetCrudForm: (type: string) => {
-      let form: FormSchema[] = [];
-      switch (type) {
-        case 'Action':
-          form = actionFormShema;
-          break;
-        case 'Node':
-          form = nodeFormShema;
-          break;
-      }
-      return form;
-    },
-    /**
-     * @description: 鑾峰彇琛ㄥ崟涓殑瀛楁鎻掓Ы鍒楄〃
-     * @return {*}
-     */
-    GetCrudColSlots: () => {
-      return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd'];
-    },
-    /**
-     * @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 PROD_CODE = '${params['objParams'].value['CODE']}'`;
-      }
-      if (!isNullOrEmpty(params['selectedNodes'].value[0].cust)) {
-        sqlcmd += `And CUST_CODE = '${params['selectedNodes'].value[0].cust}'`;
-      }
-      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_PROD_ACTION' : 'MES_PROD_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,
-            PROD_CODE: params['objParams'].value['CODE'],
-            ACT_TYPE: res.Data.Items[0].ACT_TYPE,
-            CUST_CODE: params['selectedNodes'].value[0].cust,
-          });
-        }
-        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,
-            PROD_CODE: params['objParams'].value['CODE'],
-            CUST_CODE: params['selectedNodes'].value[0].cust,
-          });
-        }
-      });
-    },
-    /**
-     * @description: 鑷畾涔夋彁浜ゆ柟娉�
-     * @return {*}
-     */
-    SubmitFunc: (values: Recordable<any>, type: string, emit) => {
-      let entityName = '';
-      switch (type) {
-        case 'Action':
-          entityName = 'MES_PROD_ACTION';
-          break;
-        case 'Node':
-          entityName = 'MES_PROD_OPER';
-          break;
-      }
-      SaveEntity(values, true, entityName).then((action) => {
-        if (action.IsSuccessed) {
-          emit('success');
-        }
-      });
-    },
-    /**
-     * @description: 寮瑰嚭閫夋嫨妗嗘墦寮�鏂规硶
-     * @param {Fn} openItemModal
-     * @return {*}
-     */
-    OpenSelectItem: (openItemModal: Fn, ...args) => {
-      let config = {};
-      switch (args[0]) {
-        case 'scanadd':
-          config = ruleModalCfg;
-          break;
-        case 'assyadd':
-          config = itemCodeModalCfg;
-          break;
-        case 'testadd':
-          config = itemCodeModalCfg;
-          break;
-        case 'printadd':
-          config = printModalCfg;
-          break;
-        case 'pkgadd':
-          config = pkgModalCfg;
-          break;
-      }
-      openItemModal(true, config);
-    },
-    /**
-     * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖
-     * @param {*} d
-     * @param {*} u
-     * @return {*}
-     */
-    GetSelectSuccess: (d, u, ...args) => {
-      let value = {};
-      switch (args[0]) {
-        case 'scanadd':
-          value = {
-            RULE_CODE: d.values['val'],
-          };
-          break;
-        case 'assyadd':
-          value = {
-            ITEM_CODE: d.values['val'],
-          };
-          break;
-        case 'printadd':
-          value = {
-            LABEL_CODE: d.values['val'],
-          };
-          break;
-        case 'pkgadd':
-          value = {
-            pkgRULE_CODE: d.values['val'],
-          };
-        case 'addRoute':
-          if (isNullOrEmpty(args[1]['CODE'])) {
-            createErrorModal({
-              title: t('sys.api.errorTip'),
-              content: '浜у搧涓虹┖锛屼笉鑳芥坊鍔犲伐鑹鸿矾绾匡紝璇风偣鍑诲乏渚ч�夋嫨浜у搧',
-            });
-            return;
-          }
-          let codes = d.values.id.split(',');
-          var i;
-          for (i = 0; i < codes.length; i++) {
-            if (d.which == 'addRoute') {
-              RouteToProd({ rotId: codes[i], prodCode: args[1]['CODE'] });
-            }
-          }
-
-          args[2]();
-          break;
-        case 'addCustomer':
-          if (isNullOrEmpty(args[1]['CODE'])) {
-            createErrorModal({
-              title: t('sys.api.errorTip'),
-              content: '浜у搧涓虹┖锛屼笉鑳芥坊鍔犲伐鑹鸿矾绾匡紝璇风偣鍑诲乏渚ч�夋嫨浜у搧',
-            });
-            return;
-          }
-          let rotIds = d.ROT_ID.split(',');
-          var i;
-          for (i = 0; i < rotIds.length; i++) {
-            RouteToCust({ rotId: rotIds[i], prodCode: args[1]['CODE'], custCode: d.CUST_CODE });
-          }
-
-          args[2]();
-          break;
-      }
-      return value;
-    },
-    /**
-     * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃
-     * @return {*}
-     */
-    GetUseModals: () => {
-      return {
-        addRoute: useModal(),
-        addCustomer: useModal(),
-        editRoute: useModal(),
-      };
     },
     GetUseForm: () => {
       return {
@@ -335,95 +193,129 @@
           },
           showActionButtonGroup: false,
         }),
+        tmpinfo: useForm({
+          labelWidth: 120,
+          schemas: prodCfgformSchema,
+          actionColOptions: {
+            span: 24,
+          },
+          showActionButtonGroup: false,
+        }),
       };
     },
     /**
-     * @description: 鑾峰彇鏍囬淇℃伅
+     * @description: 鑷畾涔夋柟娉�
      * @param {string} type
+     * @param {array} args
      * @return {*}
      */
-    GetTitle: (type: string) => {
-      return {
-        configTitle: type == 'Action' ? '琛屼负閰嶇疆' : '宸ュ簭閰嶇疆',
-        navTitle: type == 'Product' ? '娣诲姞宸ヨ壓璺嚎' : '宸ヨ壓璺嚎缁存姢',
-      };
+    CustFunc: (param: CustModalParams) => {
+      switch (param.cType) {
+        case 'BIZ_MES_WO':
+        case 'BIZ_MES_WO_Config':
+          return getWoFns[param.FnName](param) as Promise<any>;
+        // break;
+        default:
+          return new Promise((resolve, reject) => {
+            try {
+              (e) => {};
+              resolve(true);
+            } catch {
+              reject(false);
+            } finally {
+              // args[0][0]({ confirmLoading: false });
+            }
+          });
+        // break;
+      }
     },
     /**
-     * @description: 鏍规嵁閫変腑鐨勬爲鑺傜偣杩斿洖涓婚〉闈紝鑷畾涔夋柟娉曪紝杩欓噷鏄垽鏂鍒囨崲鍝釜缁勪欢
-     * @param {Ref} selectedNodes
+     * @description: 鑾峰彇澶氳〃鍗曟彃妲藉垪琛�
      * @return {*}
      */
-    SelectNode: (selectedNodes: Ref<any[]>) => {
-      let result = {
-        showConfig: false,
-        showNav: false,
-        type: selectedNodes.value[0].type,
-        nodes: selectedNodes.value,
-      };
-      if (isNullOrUnDef(selectedNodes)) {
-        return result;
-      }
-      if (selectedNodes.value[0].type == 'Product' || selectedNodes.value[0].type == 'Route') {
-        result.showNav = true;
-        result.showConfig = false;
-      }
-      if (selectedNodes.value[0].type == 'Action' || selectedNodes.value[0].type == 'Node') {
-        result.showNav = false;
-        result.showConfig = true;
+    GetDtlSlots: (type: string) => {
+      let result = [] as any[];
+      switch (type) {
+        case 'BIZ_MES_WO_Config':
+          result = [
+            { name: 'woinfo', slots: [], preIcons: {}, title: '宸ュ崟淇℃伅' },
+            {
+              name: 'prodinfo',
+              slots: ['addRot', 'setRot'],
+              preIcons: { addRot: 'search|svg', setRot: 'config|svg' },
+              title: '浜у搧淇℃伅',
+            },
+            { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: '宸ヨ壓淇℃伅' },
+          ];
+          break;
+        case 'BIZ_MES_WO':
+          result = [
+            {
+              name: 'forminfo',
+              slots: ['add', 'set'],
+              preIcons: { add: 'search|svg', set: 'config|svg' }, //濡傛灉鏄涓〃鍗曪紝澧炲姞澶氫釜鎻掓Ы銆俿lots鏄脊鍑烘鎸夐挳鐨勬彃妲斤紝preIcons鏄彃妲藉搴旂殑鎸夐挳鍥炬爣
+              title: '涓嬪彂閰嶇疆',
+            },
+          ];
+          break;
       }
       return result;
     },
     /**
-     * @description: 鑾峰彇瀵艰埅椤�
+     * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃
      * @return {*}
      */
-    GetNavItems: (type: string) => {
-      let item: NavItem[] = [];
-      switch (type) {
-        case 'Product':
-          item = [
-            {
-              title: '娣诲姞浜у搧宸ヨ壓璺嚎',
-              icon: 'add_green|svg',
-              color: '#1fdaca',
-              url: '/addRoute',
-              action: 'addRoute',
-              isStep: false,
-            },
-            {
-              title: '娣诲姞瀹㈡埛宸ヨ壓璺嚎',
-              icon: 'add_customer|svg',
-              color: '#bf0c2c',
-              url: '/addCustomer',
-              action: 'addCustomer',
-              isStep: true,
-            },
-          ];
-          break;
-        case 'Route':
-          item = [
-            {
-              title: '缂栬緫宸ヨ壓璺嚎',
-              icon: 'clarity:note-edit-line',
-              color: '#1fdaca',
-              url: '/editRoute',
-              action: 'editRoute',
-              isStep: false,
-            },
-          ];
-          break;
-      }
-      return item;
+    GetUseModals: () => {
+      return {
+        useModalData: {
+          add: useModal(),
+          set: useModal(),
+          addRot: useModal(),
+          setRot: useModal(),
+        },
+      };
     },
     /**
-     * @description: 瀵艰埅椤甸潰鍒囨崲鎸夐挳鏃惰皟鐢ㄦ柟娉�
-     * @param {any} action
+     * @description: 鑾峰彇鑷畾涔夋暟鎹�
      * @return {*}
      */
-    navChangeItem: (action: any, ...args) => {
-      switch (action) {
-        case 'addRoute':
-          args[0](true, {
+    GetCustData: () => {
+      return {
+        isCustEl: {
+          forminfo: false,
+          woinfo: false,
+          prodinfo: false,
+          rotinfo: true,
+        },
+      };
+    },
+    /**
+     * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖鏂规硶
+     * @param {*} d
+     * @param {*} u
+     * @return {*}
+     */
+    GetSelectSuccess: (d, u) => {
+      return {
+        ROUTE_CODE: d.values['val'],
+        // ID: d.values['id'],
+        ROT_ID: d.values['id'],
+      };
+    },
+    /**
+     * @description: 鎵撳紑寮瑰嚭閫夋嫨妗�
+     * @param {Fn} openItemModal
+     * @param {array} args
+     * @return {*}
+     */
+    OpenSelectItem: (openItemModal: Fn, ...args) => {
+      const slotName = args[0];
+      const openRvModal = args[1];
+      const selectVals = args[2];
+      switch (slotName) {
+        case 'addRot':
+        case 'add':
+          openItemModal(true, {
             title: '宸ヨ壓璺嚎鍒楄〃',
             schemas: [
               {
@@ -453,91 +345,26 @@
             ],
             tableName: 'MES_ROUTE',
             rowKey: 'ROT_CODE',
-            returnFieldName: 'ROUTE_CODE', //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О
+            returnFieldName: ['ROUTE_CODE', 'ROT_ID'], //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О
             searchInfo: { TABLE_NAME: 'MES_ROUTE' },
-            which: action,
           });
           break;
-        case 'addCustomer':
-          args[0](true, {
-            title: '璇峰畬鎴愪互涓嬫楠�',
-          });
+        case 'set':
+          openRvModal(true, { rotId: selectVals.value['ROUTE_CODE'], slotName: slotName });
           break;
-        case 'editRoute':
-          args[1](true, { rotId: args[2][0].id, slotName: '' });
+        case 'setRot':
           break;
       }
     },
     /**
-     * @description: 鑾峰彇鍗$墖鍐呴厤缃垪琛紝浠ュ惊鐜樉绀哄涓崱鐗囧苟閰嶇疆澶氫釜鎻掓Ы
-     * @return {*}
-     */
-    GetBaseCards: (type: string) => {
-      let reusts: any[] = [];
-      switch (type) {
-        case 'Product':
-          reusts = [];
-          break;
-        case 'Route':
-          reusts = [
-            {
-              name: 'RotInfo',
-              slots: [],
-              preIcons: {},
-              title: '宸ヨ壓璺嚎鍥�',
-              entityName: '',
-            },
-          ];
-          break;
-      }
-      return reusts;
-    },
-    /**
-     * @description: 鑾峰彇鎻掓Ы鍒楄〃
-     * @return {*}
-     */
-    GetSlots: () => {
-      return ['RotInfo'];
-    },
-    /**
-     * @description: 鐢熸垚html
-     * @return {*}
-     */
-    GenerateHtml: (type: string | null) => {
-      const newElement = document.createElement('div');
-      // newElement.textContent = 'New Element =>'+type;
-      // newElement.style.height = '250px';
-      newElement.id = 'lfContainer';
-      newElement.className = 'h-full';
-      // newElement.style.color = 'blue';
-      // newElement.style.fontSize = '16px';
-      return newElement;
-    },
-    /**
-     * @description: 鑷畾涔夋柟娉�
+     * @description: 鑾峰彇鏍囬淇℃伅
      * @param {string} type
-     * @param {array} args
      * @return {*}
      */
-    CustFunc: (param: CustModalParams) => {
-      switch (param.cType) {
-        case 'BIZ_MES_WO':
-        case 'BIZ_MES_WO_Config':
-          return getWoFns[param.FnName](param) as Promise<any>;
-        // break;
-        default:
-          return new Promise((resolve, reject) => {
-            try {
-              (e) => {};
-              resolve(true);
-            } catch {
-              reject(false);
-            } finally {
-              // args[0][0]({ confirmLoading: false });
-            }
-          });
-        // break;
-      }
+    GetTitle: () => {
+      return {
+        importTitle: '宸ュ崟璁″垝瀵煎叆' /* 鎵撳紑妯℃�佺獥鍙f樉绀虹殑鏍囬 */,
+      };
     },
   };
 
@@ -559,12 +386,19 @@
         try {
           const form = param.values['prodinfo'];
           const wo = param.values['mValues'];
-          wo.ROUTE_STATUS = 1;
-          SaveEntity(wo, true, 'BIZ_MES_WO').then((action) => {
+          const _wo = cloneDeep(wo);
+          _wo.ROUTE_STATUS = 1;
+          _wo.ROUTE_CODE = form.ROUTE_CODE;
+          SaveEntity(_wo, true, 'BIZ_MES_WO').then((action) => {
             if (action.IsSuccessed) {
-              resolve(true);
+              SP_MES_PROD2WO({ rotId: form.ROT_ID, wo: wo.ORDER_NO }).then((res) => {
+                if (!res.IsSuccessed) {
+                  SaveEntity(wo, true, 'BIZ_MES_WO');
+                }
+                resolve(res);
+              });
             } else {
-              reject(false);
+              reject(action);
             }
           });
         } catch {
@@ -582,8 +416,7 @@
         try {
           const form = param.values['forminfo'];
           const wo = param.values['mValues'];
-          wo.ROUTE_CODE = form.ROUTE_CODE;
-          wo.STATUS = 2;
+          wo.STATUS = wo.STATUS == 3 ? wo.STATUS : 2;
           let input: SaveWoBatchInput = {
             Wo: wo,
             WoBatch: {
@@ -593,7 +426,7 @@
               UPDATE_TIME: new Date(),
               UPDATE_USER: useUserStore().getUserInfo.userId as string,
               GHOST_ROW: false,
-              AUTH_ORG: '',
+              AUTH_ORG: useUserStore().getUserInfo.orgCode,
               AUTH_PROD: useUserStore().getUserInfo.prodCode as string,
               AUTH_WH: '',
               ORDER_NO: wo.ORDER_NO,
@@ -602,7 +435,7 @@
               CUST_CODE: wo.CUST_CODE,
               FACTORY: wo.FACTORY,
               WS_CODE: wo.WS_CODE,
-              ACT_LINE: form.PLAN_LINE,
+              ACT_LINE: form.ACT_LINE,
               STD_WORKER_QTY: wo.STD_WORKER_QTY,
               ACT_WORKER_QTY: wo.ACT_WORKER_QTY,
               RELEASE_TIME: new Date(),
@@ -619,6 +452,7 @@
               ACT_END_TIME: wo.ACT_END_TIME,
               BATCH_NO: '',
             },
+            IfToCust: form.IfToCust,
           };
           SaveMesBatchWo(input).then((action) => {
             resolve(action);
@@ -632,514 +466,103 @@
   };
 
   /**
-   * @description: 寮瑰嚭閫夋嫨妗�-鐗╂枡閫夋嫨妗嗛厤缃�
+   * @description: 璺宠浆鍒拌鎯呴〉闈㈡柟娉�
+   * @param {Fn} go
    * @return {*}
    */
-  const itemCodeModalCfg = {
-    title: '鐗╂枡鍒楄〃',
-    schemas: [
-      {
-        field: 'ITEM_CODE',
-        component: 'Input',
-        label: '鐗╂枡缂栫爜',
-        colProps: {
-          span: 12,
+  function goDetail(go: Fn, params: Recordable) {
+    const id = {
+      ID: params['record'].ID,
+      CODE: params['record']['ORDER_NO'],
+      Name: 'BIZ_MES_WO_BATCH',
+      Tabs: [
+        {
+          name: '宸ュ崟鎵规',
+          tableTitle: '鎵规',
+          entityName: 'BIZ_MES_WO_BATCH',
+          key: 'batch'
         },
-      },
-    ],
-    ItemColumns: [
-      {
-        title: t('鐗╂枡缂栫爜'),
-        dataIndex: 'ITEM_CODE',
-        resizable: true,
-        sorter: true,
-        width: 200,
-      },
-      {
-        title: t('鐗╂枡鍚嶇О'),
-        dataIndex: 'ITEM_NAME',
-        resizable: true,
-        sorter: true,
-        width: 180,
-      },
-    ],
-    tableName: 'BAS_ITEM',
-    rowKey: 'ITEM_CODE',
-    searchInfo: { TABLE_NAME: 'BAS_ITEM' },
-  };
+        // {
+        //   name: '宸ュ崟鎵规2',
+        //   tableTitle: '鎵规2',
+        //   entityName: 'BIZ_U9_ASN_DTL',
+        //   key: 'batch2'
+        // }
+      ],
+      pageTitle: '宸ュ崟璇︽儏', //璇︽儏椤甸潰鏍囬
+      contentStr: '杩欓噷鏄伐鍗曟壒娆$鐞嗛〉闈紝鍙互鏄剧ず宸ュ崟涓嬪彂鐨勬墍鏈夋壒娆¤鎯�',
+      detailName: `宸ュ崟[${params['record'].ORDER_NO}]鎵规璇︽儏`,
+      keyFieldValues: { ORDER_NO: params['record']['ORDER_NO'] },
+      colSlots: params['colSlots'].value,
+      SessionName: 'BIZ_MES_WO_BATCH_update',
+      ifSave: false,
+    };
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${id.SessionName}_params`);
+    sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
+    go(`/BIZ_MES_WO_BATCH/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`);
+  }
 
   /**
-   * @description: 寮瑰嚭閫夋嫨妗�-瑙勫垯閫夋嫨妗嗛厤缃�
+   * @description: 閰嶇疆宸ヨ壓
+   * @param {Recordable} record
+   * @param {array} args
    * @return {*}
    */
-  const ruleModalCfg = {
-    title: '瑙勫垯鍒楄〃',
-    schemas: [
-      {
-        field: 'RULE_CODE',
-        component: 'Input',
-        label: '瑙勫垯缂栫爜',
-        colProps: {
-          span: 12,
-        },
-      },
-    ],
-    ItemColumns: [
-      {
-        title: t('瑙勫垯缂栫爜'),
-        dataIndex: 'RULE_CODE',
-        resizable: true,
-        sorter: true,
-        width: 200,
-      },
-      {
-        title: t('瑙勫垯鍚嶇О'),
-        dataIndex: 'RULE_NAME',
-        resizable: true,
-        sorter: true,
-        width: 180,
-      },
-    ],
-    tableName: 'BAS_CODE_RULE',
-    rowKey: 'RULE_CODE',
-    searchInfo: { TABLE_NAME: 'BAS_CODE_RULE' },
-  };
+  function handleConfig(args, params: Recordable) {
+    const go = args[5];
+    const id = {
+      ID: params['record'].ID,
+      Name: 'WoRouteBinding',
+      CODE: params['record'].ORDER_NO,
+      Title: `宸ュ崟[${params['record'].ORDER_NO}]宸ヨ壓缁戝畾`,
+      colSlots:
+        params['colSlots'].value /* 琛ㄦ牸鍐呯殑鏌ヨ琛ㄥ崟瀛楁鐨勬彃妲藉垪琛紝涓�鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */,
+      crudColSlots: {
+        BAS_PKG_DTL: ['BAS_LABEL_TEMP1add'],
+        ItemCode: ['BAS_CODE_RULE1add'],
+      } /* 澧炲垹鏀硅〃鍗曞瓧娈电殑鎻掓Ы鍒楄〃锛屼竴鑸敤浜庡脊鍑洪�夋嫨妗嗘寜閽� */,
+      OtherTableName: [
+        'BAS_PKG_DTL',
+        'ItemCode',
+      ] /* 鑷畾涔夋樉绀哄垪琛ㄧ殑琛ㄥ悕锛岃窡涓婇潰澧炲垹鏀圭殑琛ㄥ悕涓�鑷达紝鏈夊涓氨鏀惧垪琛ㄤ腑 */,
+      record: params['record'],
+      dense: true,
+      pageTitle: `宸ュ崟宸ヨ壓缁戝畾`,
+      pageContent: `杩欓噷鏄鐞嗗伐鍗曠殑宸ヨ壓缁戝畾锛屼竴涓伐鍗曞彲浠ョ粦瀹氫竴涓伐鑹鸿矾绾匡紝骞跺彲浠ヤ繚瀛樹负瀹㈡埛涓撶敤鐨勫伐鑹鸿矾绾縛,
+      SessionName: 'WoRouteBinding_update',
+      ifSave: false,
+      rotType: 'Wo',
+    };
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${id.SessionName}_params`);
+    sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
+    /* 璁剧疆鏍囧織锛屼互鏍规嵁缂撳瓨鏁版嵁鍙栨暟鎹� */
+    const useProdRoute = useProdRouteStore();
+    useProdRoute.setChangeToCPPage(true);
+    go(`/WoRouteBinding/CP/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`);
+  }
 
   /**
-   * @description: 寮瑰嚭閫夋嫨妗�-鎵撳嵃妯℃澘閫夋嫨妗嗛厤缃�
+   * @description: 涓嬪彂
+   * @param {*} record
    * @return {*}
    */
-  const printModalCfg = {
-    title: '鎵撳嵃妯℃澘鍒楄〃',
-    schemas: [
-      {
-        field: 'LABEL_CODE',
-        component: 'Input',
-        label: '妯℃澘缂栫爜',
-        colProps: {
-          span: 12,
-        },
-      },
-    ],
-    ItemColumns: [
-      {
-        title: t('妯℃澘缂栫爜'),
-        dataIndex: 'LABEL_CODE',
-        resizable: true,
-        sorter: true,
-        width: 200,
-      },
-      {
-        title: t('妯℃澘鍚嶇О'),
-        dataIndex: 'LABEL_NAME',
-        resizable: true,
-        sorter: true,
-        width: 180,
-      },
-    ],
-    tableName: 'BAS_LABEL_TEMP',
-    rowKey: 'LABEL_CODE',
-    searchInfo: { TABLE_NAME: 'BAS_LABEL_TEMP' },
-  };
-
-  const pkgModalCfg = {
-    title: '鍖呰瑙勫垯鍒楄〃',
-    schemas: [
-      {
-        field: 'RULE_CODE',
-        component: 'Input',
-        label: '鍖呰瑙勫垯缂栫爜',
-        colProps: {
-          span: 12,
-        },
-      },
-    ],
-    ItemColumns: [
-      {
-        title: t('鍖呰瑙勫垯缂栫爜'),
-        dataIndex: 'RULE_CODE',
-        resizable: true,
-        sorter: true,
-        width: 200,
-      },
-      {
-        title: t('鍖呰瑙勫垯鍚嶇О'),
-        dataIndex: 'RULE_NAME',
-        resizable: true,
-        sorter: true,
-        width: 180,
-      },
-    ],
-    tableName: 'BAS_PKG_RULE',
-    rowKey: 'RULE_CODE',
-    searchInfo: { TABLE_NAME: 'BAS_PKG_RULE' },
-  };
-
-  /**
-   * @description: 琛屼负閰嶇疆琛ㄥ崟瀛楁
-   * @return {*}
-   */
-  const actionFormShema: FormSchema[] = [
-    {
-      field: 'PROD_CODE',
-      label: '浜у搧缂栫爜',
-      component: 'Input',
-      dynamicDisabled: ({ values }) => {
-        return true;
-      },
-      colProps: { span: 12 },
-    },
-    {
-      field: 'ID',
-      label: 'ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'ACT_ID',
-      label: 'ACT_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'ROT_ID',
-      label: 'ROT_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'ACT_CODE',
-      label: 'ACT_CODE',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'NODE_ID',
-      label: 'NODE_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'CUST_CODE',
-      label: '瀹㈡埛缂栫爜',
-      component: 'Input',
-      dynamicDisabled: ({ values }) => {
-        return true;
-      },
-      colProps: { span: 12 },
-    },
-    {
-      field: 'ACT_TYPE',
-      label: '琛屼负绫诲瀷',
-      component: 'ApiSelect',
-      colProps: { span: 12 },
-      defaultValue: 0,
-      componentProps: {
-        api: GetEnum,
-        params: { name: 'MES_PROD_ACTION+ACT_TYPEs' },
-        resultField: 'Data',
-        labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
-        valueField: 'Value',
-        // onChange: (e, v) => {
-        //   alert(e)
-        //   console.log('ApiSelect====>:', e, v);
-        // },
-      },
-    },
-    {
-      field: 'IS_ACTIVE',
-      label: '鏄惁鍚敤',
-      required: true,
-      component: 'Select',
-      colProps: { span: 12 },
-      componentProps: {
-        options: [
-          {
-            label: '鏄�',
-            value: 'Y',
-            key: 'Y',
-          },
-          {
-            label: '鍚�',
-            value: 'N',
-            key: 'N',
-          },
-        ],
-      },
-    },
-    {
-      field: 'RULE_CODE',
-      label: '鎵爜楠岃瘉',
-      component: 'Input',
-      colProps: { span: 10 },
-      ifShow: ({ values }) => isScan(values.ACT_TYPE),
-    },
-    {
-      field: '0',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isScan(values.ACT_TYPE),
-      colSlot: 'scanadd',
-    },
-    {
-      field: 'ITEM_CODE',
-      label: '缁勮涓婃枡',
-      colProps: { span: 10 },
-      component: 'Input',
-      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
-    },
-    {
-      field: '00',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
-      colSlot: 'assyadd',
-    },
-    {
-      field: 'TEST_CODE',
-      label: '浜у搧娴嬭瘯',
-      colProps: { span: 10 },
-      component: 'Input',
-      ifShow: ({ values }) => isTest(values.ACT_TYPE),
-    },
-    {
-      field: 'test0',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isTest(values.ACT_TYPE),
-      colSlot: 'testadd',
-    },
-    {
-      field: 'SAPL_CODE',
-      label: '浜у搧鎶芥',
-      colProps: { span: 10 },
-      component: 'Input',
-      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
-    },
-    {
-      field: 'audit0',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
-      colSlot: 'auditadd',
-    },
-    {
-      field: 'LABEL_CODE',
-      label: '鏍囩鎵撳嵃',
-      colProps: { span: 10 },
-      component: 'Input',
-      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
-    },
-    {
-      field: 'print0',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
-      colSlot: 'printadd',
-    },
-    {
-      field: 'pkgRULE_CODE',
-      label: '鍖呰瑙勫垯',
-      colProps: { span: 10 },
-      component: 'Input',
-      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
-    },
-    {
-      field: 'pkg0',
-      label: '1',
-      defaultValue: '',
-      component: 'Input',
-      colProps: { span: 2, pull: 1 },
-      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
-      colSlot: 'pkgadd',
-    },
-    {
-      field: 'REMARK',
-      label: '澶囨敞',
-      component: 'Input',
-      colProps: { span: 12 },
-    },
-  ];
-
-  /**
-   * @description: 宸ュ簭閰嶇疆琛ㄥ崟瀛楁
-   * @return {*}
-   */
-  const nodeFormShema: FormSchema[] = [
-    {
-      field: 'PROD_CODE',
-      label: '浜у搧缂栫爜',
-      component: 'Input',
-      dynamicDisabled: ({ values }) => {
-        return true;
-      },
-      colProps: { span: 12 },
-    },
-    {
-      field: 'ID',
-      label: 'ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'ACT_ID',
-      label: 'ACT_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'ROT_ID',
-      label: 'ROT_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'NODE_ID',
-      label: 'NODE_ID',
-      component: 'Input',
-      show: false,
-    },
-    {
-      field: 'NODE_NAME',
-      label: '宸ュ簭鑺傜偣鍚嶇О',
-      component: 'Input',
-    },
-    {
-      field: 'CUST_CODE',
-      label: '瀹㈡埛缂栫爜',
-      component: 'Input',
-      dynamicDisabled: ({ values }) => {
-        return true;
-      },
-      colProps: { span: 12 },
-    },
-    {
-      field: 'OPER_CODE',
-      label: '宸ュ簭缂栫爜',
-      component: 'Input',
-    },
-    {
-      field: 'IS_ACTIVE',
-      label: '鏄惁鍚敤',
-      required: true,
-      component: 'Select',
-      colProps: { span: 12 },
-      componentProps: {
-        options: [
-          {
-            label: '鏄�',
-            value: 'Y',
-            key: 'Y',
-          },
-          {
-            label: '鍚�',
-            value: 'N',
-            key: 'N',
-          },
-        ],
-      },
-    },
-    {
-      field: 'IS_CALC_FPY',
-      label: '鏄惁璁$畻鐩撮�氱巼',
-      required: true,
-      component: 'Select',
-      colProps: { span: 12 },
-      componentProps: {
-        options: [
-          {
-            label: '鏄�',
-            value: 'Y',
-            key: 'Y',
-          },
-          {
-            label: '鍚�',
-            value: 'N',
-            key: 'N',
-          },
-        ],
-      },
-    },
-    {
-      field: 'CAN_SKIP',
-      label: '鏄惁鍏佽璺崇珯',
-      required: true,
-      component: 'Select',
-      colProps: { span: 12 },
-      componentProps: {
-        options: [
-          {
-            label: '鏄�',
-            value: 'Y',
-            key: 'Y',
-          },
-          {
-            label: '鍚�',
-            value: 'N',
-            key: 'N',
-          },
-        ],
-      },
-    },
-    {
-      field: 'IS_INPUT',
-      label: '鏄惁鎶曞叆绔�',
-      required: true,
-      component: 'Select',
-      colProps: { span: 12 },
-      componentProps: {
-        options: [
-          {
-            label: '鏄�',
-            value: 'Y',
-            key: 'Y',
-          },
-          {
-            label: '鍚�',
-            value: 'N',
-            key: 'N',
-          },
-        ],
-      },
-    },
-    {
-      field: 'IS_OUTPUT',
-      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',
-      colProps: { span: 12 },
-    },
-  ];
+  function handleRelease(args, params: Recordable) {
+    const openCustModal = args[7];
+    openCustModal(true, {
+      isUpdate: true, //鏄惁鏇存柊鎿嶄綔
+      ctype: 'BIZ_MES_WO', //鏄摢涓〉闈�
+      title: '宸ュ崟涓嬪彂', //鏍囬
+      width: '900px', //寮瑰嚭妗嗗搴�
+      formEl: params['useFormData'].value,
+      formElName: ['forminfo'], //琛ㄥ崟鎻掓Ы鍚嶇О
+      RowKeys: { add: 'ROUTE_CODE', set: 'ROUTE_CODE' }, //鎻掓Ы鐨勫脊鍑烘閫夋嫨鐨刢ode
+      fnName: 'SaveWoBatch', //淇濆瓨鏂规硶鍚�
+      initFnName: {}, //鍒濆鍖栨柟娉曞悕锛屾病鏈夊氨鐣欑┖{}
+      values: params['record'], //琛ㄥ崟璁板綍
+    });
+  }
 
   const woformSchema: FormSchema[] = [
     {
@@ -1149,6 +572,9 @@
       required: true,
       colProps: {
         span: 24,
+      },
+      dynamicDisabled: ({ values }) => {
+        return true;
       },
     },
     {
@@ -1161,8 +587,8 @@
       },
     },
     {
-      label: '璁″垝浜х嚎',
-      field: 'PLAN_LINE',
+      label: '瀹為檯浜х嚎',
+      field: 'ACT_LINE',
       component: 'ApiSelect',
       required: true,
       colProps: {
@@ -1177,34 +603,44 @@
       },
     },
     {
-      label: '宸ヨ壓璺嚎',
-      field: 'ROUTE_CODE',
-      component: 'Input',
-      required: true,
+      field: 'IfToCust',
+      component: 'Switch',
+      label: '鏄惁淇濆瓨宸ヨ壓璺嚎鍒板鎴�',
+      defaultValue: true,
       colProps: {
-        span: 22,
+        span: 8,
       },
+      labelWidth: 200,
     },
-    {
-      field: 'add',
-      component: 'Input',
-      label: '1',
-      colSlot: 'add',
-      defaultValue: 'MES_ROUTE',
-      colProps: {
-        span: 1,
-      },
-    },
-    {
-      field: 'set',
-      component: 'Input',
-      label: '1',
-      colSlot: 'set',
-      defaultValue: 'MES_ROUTE',
-      colProps: {
-        span: 1,
-      },
-    },
+    // {
+    //   label: '宸ヨ壓璺嚎',
+    //   field: 'ROUTE_CODE',
+    //   component: 'Input',
+    //   required: true,
+    //   colProps: {
+    //     span: 22,
+    //   },
+    // },
+    // {
+    //   field: 'add',
+    //   component: 'Input',
+    //   label: '1',
+    //   colSlot: 'add',
+    //   defaultValue: 'MES_ROUTE',
+    //   colProps: {
+    //     span: 1,
+    //   },
+    // },
+    // {
+    //   field: 'set',
+    //   component: 'Input',
+    //   label: '1',
+    //   colSlot: 'set',
+    //   defaultValue: 'MES_ROUTE',
+    //   colProps: {
+    //     span: 1,
+    //   },
+    // },
   ];
 
   const woCfgformSchema: FormSchema[] = [
@@ -1225,23 +661,19 @@
     },
     {
       field: 'ORDER_TYPE',
-      component: 'Select',
+      component: 'ApiSelect',
       label: '宸ュ崟绫诲瀷',
       colProps: {
         span: 8,
       },
-      defaultValue: 'Normal',
+      defaultValue: 0,
       componentProps: {
-        options: [
-          {
-            label: '姝e父',
-            value: 'Normal',
-          },
-          {
-            label: '杩斿伐',
-            value: 'Rework',
-          },
-        ],
+        api: GetEnum,
+        params: { name: 'BIZ_MES_WO+ORDER_TYPEs' },
+        resultField: 'Data',
+        labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
+        valueField: 'Value',
+        placeholder: '璇烽�夋嫨宸ュ崟绫诲瀷',
       },
       dynamicDisabled: true,
     },
@@ -1311,21 +743,30 @@
       },
     },
     {
-      field: 'fieldsc',
-      component: 'Upload',
-      label: '鎵撳嵃妯℃澘',
+      label: '宸ヨ壓璺嚎',
+      field: 'ROT_ID',
+      component: 'Input',
+      show: false,
       colProps: {
-        span: 10,
-      },
-      rules: [{ required: true, message: '璇烽�夋嫨涓婁紶鏂囦欢' }],
-      componentProps: {
-        api: uploadApi,
-        multiple: false,
+        span: 12,
       },
     },
+    // {
+    //   field: 'fieldsc',
+    //   component: 'Upload',
+    //   label: '鎵撳嵃妯℃澘',
+    //   colProps: {
+    //     span: 10,
+    //   },
+    //   rules: [{ required: true, message: '璇烽�夋嫨涓婁紶鏂囦欢' }],
+    //   componentProps: {
+    //     api: uploadApi,
+    //     multiple: false,
+    //   },
+    // },
   ];
 
-  return [methods];
+  return [methods, ActionColumn];
 }
 
 export default _default;

--
Gitblit v1.9.3