From 3bf0e1e45acfb85fb6054dc55d1c1204a6750998 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 24 九月 2024 23:53:53 +0800
Subject: [PATCH] 通用增删改模态窗口更新,工单维护更新

---
 src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts |  268 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 226 insertions(+), 42 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
index eb9076c..fdfb039 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/WoRouteBinding.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-08-21 01:51:03
+ * @LastEditTime: 2024-09-24 09:28:56
  */
 
 import { Ref, h, ref, render, unref } from 'vue';
@@ -21,13 +21,16 @@
 import { NavItem } from '/@/api/tigerapi/model/basModel';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { useModal } from '/@/components/Modal';
-import { BasicColumn, FormSchema, useTable } from '/@/components/Table';
+import { ActionItem, 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 { AddOrEditLabelVarByWorkOrder, UpdateWoStatus } from '/@/api/tigerapi/mes/wo';
 import { useForm } from '/@/components/Form';
+import { BAS_LABEL_VAR_WO } from '/@/api/tigerapi/model/mesModel';
+import { buildUUID } from '/@/utils/uuid';
+import { mesApi } from '/@/api/tigerapi/mes/mesApi';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
@@ -110,6 +113,19 @@
       return data;
     },
     /**
+     * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉�
+     * @return {*}
+     */
+    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
+      data.push({
+        icon: 'template|svg',
+        tooltip: '妯℃澘缁存姢',
+        onClick: handleTemplate.bind(null, args, params),
+        name: '妯℃澘缁存姢',
+      });
+      return data;
+    },
+    /**
      * @description: 鑾峰彇閰嶇疆椤硅〃鍗曞瓧娈碉紝鏍规嵁鏍戝舰鑺傜偣type涓嶅悓鑰屼笉鍚�
      * @param {string} type
      * @return {*}
@@ -134,7 +150,15 @@
      * @return {*}
      */
     GetCrudColSlots: () => {
-      return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd'];
+      return [
+        { name: 'scanadd', icon: 'search|svg' },
+        { name: 'assyadd', icon: 'search|svg' },
+        { name: 'testadd', icon: 'search|svg' },
+        { name: 'auditadd', icon: 'search|svg' },
+        { name: 'printadd', icon: 'search|svg' },
+        { name: 'pkgadd', icon: 'search|svg' },
+        { name: 'labeladd', icon: 'template|svg' },
+      ];
     },
     /**
      * @description: 鑾峰彇琛ㄦ牸use鍒楄〃
@@ -366,6 +390,9 @@
      */
     OpenSelectItem: (openItemModal: Fn, ...args) => {
       let config = {};
+      const openCrudModal = args[1];
+      const record = args[2];
+      const OrderNo = args[3];
       switch (args[0]) {
         case 'scanadd':
           config = ruleModalCfg;
@@ -383,7 +410,35 @@
           config = pkgModalCfg;
           break;
       }
-      openItemModal(true, config);
+      if (args[0] == 'labeladd') {
+        openCrudModal(true, {
+          isUpdate: true, //鏄惁鏇存柊鎿嶄綔
+          entityName: 'WoRouteBinding', //鏄摢涓〉闈�
+          ctype: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
+          title: '妯℃澘缁存姢', //鏍囬
+          width: '1024px', //寮瑰嚭妗嗗搴�
+          ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯
+          schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯
+          others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
+          searchInfo: {
+            TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
+            LabelId: record.LABEL_CODE, //妯℃澘ID
+            WorkOrder: OrderNo, //宸ュ崟鍙�
+            apiUrl: mesApi.GetLabelVarByWorkOrder, //鑷畾涔夎幏鍙栨暟鎹垎椤电殑api锛屼笉鐢ㄩ粯璁ょ殑鍩虹鏂规硶
+            // sqlcmd: ` (WORK_ORDER = '${OrderNo}' OR WORK_ORDER = '' OR WORK_ORDER IS NULL)`,
+            // option:
+            // {
+            //   //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁�
+            //   UserId: useUserStore().getUserInfo.userId,
+            //   ByOrg: true,
+            //   CurOrg: useUserStore().getUserInfo.orgCode,
+            // },
+          },
+          values: record, //琛ㄥ崟璁板綍
+        });
+      } else {
+        openItemModal(true, config);
+      }
     },
     /**
      * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖
@@ -432,6 +487,8 @@
             isShow: { BAS_PKG_DTL: false, ItemCode: false },
           };
           break;
+        case 'labeladd':
+          break;
         case 'pkgadd':
           const ents = await getEntity({
             sqlcmd: `RULE_CODE ='${d.values['val']}'`,
@@ -461,6 +518,7 @@
             WorkOrder: args[1]['CODE'],
             Status: -1,
             RouteStatus: 1,
+            WoBatch: '',
           }).then((action) => {
             if (action.IsSuccessed) {
               SP_MES_PROD2WO({ rotId: d.values.id, wo: args[1]['CODE'] }).then((action) => {
@@ -472,6 +530,7 @@
                     WorkOrder: args[1]['CODE'],
                     Status: -1,
                     RouteStatus: 0,
+                    WoBatch: '',
                   });
                   createErrorModal({
                     title: t('sys.api.errorTip'),
@@ -516,6 +575,25 @@
         testadd: useModal(),
         auditadd: useModal(),
         printadd: useModal(),
+        labeladd: useModal(),
+        pkgadd: useModal(),
+      };
+    },
+    /**
+     * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃
+     * @return {*}
+     */
+    GetUseCrudModals: () => {
+      return {
+        addRoute: useModal(),
+        addCustomer: useModal(),
+        editRoute: useModal(),
+        scanadd: useModal(),
+        assyadd: useModal(),
+        testadd: useModal(),
+        auditadd: useModal(),
+        printadd: useModal(),
+        labeladd: useModal(),
         pkgadd: useModal(),
       };
     },
@@ -659,7 +737,13 @@
           SP_MES_WO2CUST({ wo: args[2][0]['wo'] });
           break;
         case 'editRoute':
-          args[1](true, { rotId: args[2][0].wo, slotName: '', rotType: 'Wo', prodCode:args[3],custCode:args[2][0].cust });
+          args[1](true, {
+            rotId: args[2][0].wo,
+            slotName: '',
+            rotType: 'Wo',
+            prodCode: args[3],
+            custCode: args[2][0].cust,
+          });
           break;
       }
     },
@@ -715,35 +799,47 @@
      * @return {*}
      */
     CustFunc: async (param: CustModalParams) => {
-      switch (param['ctype']) {
-        case 'BAS_PKG_DTL':
-          // const ents = await getEntity({
-          //   sqlcmd: `PKG_RULE_ID ='${param.values['PKG_RULE_ID']}'`,
-          //   entityName: 'V_BAS_PKG_DTL',
-          //   order: '',
-          // });
-          // param.data.value['Table'] = ents.Data.Items;
-          param.data.value['BAS_PKG_DTL'].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['BAS_PKG_DTL'],
-          );
-          break;
-        case 'ItemCode':
-          param.data.value['ItemCode'].map((x) => {
-            if (x.ITEM_CODE == param.values['ITEM_CODE']) {
-              x.IsBatchItem = param.values['IsBatchItem'];
-              x.RULE_CODE = param.values['RULE_CODE'];
-            }
-          });
-          param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(
-            param.data.value['ItemCode'],
-          );
-          break;
-      }
+      return new Promise<any>(async (resolve, reject) => {
+        try {
+          switch (param['ctype']) {
+            case 'BAS_PKG_DTL':
+              // const ents = await getEntity({
+              //   sqlcmd: `PKG_RULE_ID ='${param.values['PKG_RULE_ID']}'`,
+              //   entityName: 'V_BAS_PKG_DTL',
+              //   order: '',
+              // });
+              // param.data.value['Table'] = ents.Data.Items;
+              param.data.value['BAS_PKG_DTL'].map((x) => {
+                if (x.PKG_CODE == param.values['PKG_CODE']) {
+                  x.LABEL_CODE = param.values['LABEL_CODE'];
+                  x.LABEL_ID =  param.values['LABEL_CODE'];
+                }
+              });
+              param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(
+                param.data.value['BAS_PKG_DTL'],
+              );
+              break;
+            case 'ItemCode':
+              param.data.value['ItemCode'].map((x) => {
+                if (x.ITEM_CODE == param.values['ITEM_CODE']) {
+                  x.IsBatchItem = param.values['IsBatchItem'];
+                  x.RULE_CODE = param.values['RULE_CODE'];
+                }
+              });
+              param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(
+                param.data.value['ItemCode'],
+              );
+              break;
+            case 'BAS_LABEL_VAR_WO':
+              param.values['WORK_ORDER'] = param.others['WORK_ORDER'];
+              param.values['ID'] = buildUUID();
+              await AddOrEditLabelVarByWorkOrder(param.values as unknown as BAS_LABEL_VAR_WO);
+          }
+          resolve('OK');
+        } catch (e) {
+          reject(e);
+        }
+      });
     },
     /**
      * @description: 鑾峰彇鍙抽敭鑿滃崟鍒楄〃
@@ -857,6 +953,12 @@
             //   };
             // },
           },
+          {
+            dataIndex: 'LABEL_ID',
+            title: '鏍囩妯℃澘ID',
+            ifShow: false,
+            customRender: () => {},
+          },
         ] as BasicColumn[];
         break;
       case 'ItemCode':
@@ -933,6 +1035,7 @@
     }
     return columns;
   }
+
   /**
    * @description: 寮瑰嚭閫夋嫨妗�-鐗╂枡閫夋嫨妗嗛厤缃�
    * @return {*}
@@ -1187,7 +1290,7 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isScan(values.ACT_TYPE),
       colSlot: 'scanadd',
     },
@@ -1203,7 +1306,7 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isAssy(values.ACT_TYPE),
       colSlot: 'assyadd',
     },
@@ -1219,7 +1322,7 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isTest(values.ACT_TYPE),
       colSlot: 'testadd',
     },
@@ -1235,14 +1338,14 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isAudit(values.ACT_TYPE),
       colSlot: 'auditadd',
     },
     {
       field: 'LABEL_CODE',
       label: '鏍囩鎵撳嵃',
-      colProps: { span: 11 },
+      colProps: { span: 9 },
       component: 'Input',
       ifShow: ({ values }) => isPrint(values.ACT_TYPE),
     },
@@ -1251,9 +1354,18 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 2 }, //{ span: 2, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isPrint(values.ACT_TYPE),
       colSlot: 'printadd',
+    },
+    {
+      field: 'print1',
+      label: '1',
+      defaultValue: '',
+      component: 'Input',
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
+      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
+      colSlot: 'labeladd',
     },
     {
       field: 'PKG_CODE',
@@ -1267,7 +1379,7 @@
       label: '1',
       defaultValue: '',
       component: 'Input',
-      colProps: { span: 1, pull: 1 },
+      colProps: { span: 1, pull: window.screen.width == 1366 ? -1 : 1 },
       ifShow: ({ values }) => isPackage(values.ACT_TYPE),
       colSlot: 'pkgadd',
     },
@@ -1277,6 +1389,7 @@
       required: true,
       component: 'Select',
       colProps: { span: 12 },
+      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
       componentProps: {
         options: [
           {
@@ -1665,6 +1778,77 @@
     ] as FormSchema[],
   };
 
+  /**
+   * @description: 妯℃澘缁存姢
+   * @param {*} args
+   * @param {Recordable} params
+   * @return {*}
+   */
+  function handleTemplate(args, params: Recordable) {
+    const openCrudModal = args[0];
+    const OrderNo = args[2];
+    openCrudModal(true, {
+      isUpdate: true, //鏄惁鏇存柊鎿嶄綔
+      entityName: 'WoRouteBinding', //鏄摢涓〉闈�
+      ctype: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
+      title: '妯℃澘缁存姢', //鏍囬
+      width: '1024px', //寮瑰嚭妗嗗搴�
+      ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯
+      schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯
+      others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
+      searchInfo: {
+        TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
+        LabelId: params['record'].LABEL_ID, //妯℃澘ID
+        WorkOrder: OrderNo, //宸ュ崟鍙�
+        apiUrl: mesApi.GetLabelVarByWorkOrder, //鑷畾涔夎幏鍙栨暟鎹垎椤电殑api锛屼笉鐢ㄩ粯璁ょ殑鍩虹鏂规硶
+        // sqlcmd: ` (WORK_ORDER = '${OrderNo}' OR WORK_ORDER = '' OR WORK_ORDER IS NULL)`,
+        // option:
+        // {
+        //   //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁�
+        //   UserId: useUserStore().getUserInfo.userId,
+        //   ByOrg: true,
+        //   CurOrg: useUserStore().getUserInfo.orgCode,
+        // },
+      },
+      values: params['record'], //琛ㄥ崟璁板綍
+    });
+  }
+
+  /* 涓嬪彂鐣岄潰涓殑琛ㄥ崟鍒楄〃 */
+  const TemplateBasColumn = [
+    {
+      dataIndex: 'LABEL_ID',
+      title: '鏍囩妯℃澘ID',
+      ifShow: false,
+      sorter: true,
+      resizable: true,
+    },
+    {
+      title: '宸ュ崟鍙�',
+      dataIndex: 'WORK_ORDER',
+      width: 280,
+      editRow: true,
+      // editable: true,
+      ifShow: false,
+    },
+    {
+      title: '鍙橀噺鍚�',
+      dataIndex: 'VAR_NAME',
+    },
+    {
+      title: '鍙橀噺鍊�',
+      dataIndex: 'VAR_VALUE',
+      editRow: true,
+      editRule: true,
+    },
+    {
+      title: '榛樿鍊�',
+      dataIndex: 'DEFAULT_VALUE',
+      editRow: true,
+      editRule: true,
+    },
+  ] as BasicColumn[];
+
   return [methods];
 }
 

--
Gitblit v1.9.3