From 1b419ccf217dbcace15987f1c0fe26b9e15d1d4b Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 16 十月 2024 10:26:56 +0800
Subject: [PATCH] 工艺绑定优化

---
 src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts |  107 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 67 insertions(+), 40 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
index 864da48..8b9522a 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-09-25 15:08:58
+ * @LastEditTime: 2024-10-16 00:10:37
  */
 
 import { Ref, h, ref, render, unref } from 'vue';
@@ -13,6 +13,7 @@
   GetRoutePTree,
   RouteToCust,
   RouteToProd,
+  SetDefaultRoute,
 } from '/@/api/tigerapi/mes/router';
 import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
 import { useLocale } from '/@/locales/useLocale';
@@ -28,10 +29,15 @@
 import { ContextMenuItem } from '/@/components/TigerTree';
 import { useForm } from '/@/components/Form';
 import { mesApi } from '/@/api/tigerapi/mes/mesApi';
+import { BAS_LABEL_VAR_WO, MesRotTree } from '/@/api/tigerapi/model/mesModel';
+import { buildUUID } from '/@/utils/uuid';
+import { AddOrEditLabelVarByWorkOrder } from '/@/api/tigerapi/mes/wo';
+import { useProdRouteStore } from '/@/store/modules/prodRoute';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
 const { getLocale } = useLocale();
+const useProdRoute = useProdRouteStore();
 function _default() {
   /* 瀹氫箟鍙橀噺 */
   const isNormal = (type: number) => type === 0;
@@ -76,8 +82,8 @@
      * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl
      * @return {*}
      */
-    GetHomeUrl: () => {
-      return `/V_BAS_PROD_R/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD_R', colSlots: [], crudColSlots: [] }))}`;
+    GetHomeUrl: (params) => {
+      return `/V_BAS_PROD_R/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD_R', colSlots: [], crudColSlots: [], sName: params['sName'] }))}`;
     },
     /**
      * @description: 鑾峰彇鏍戝舰鏁版嵁
@@ -86,19 +92,17 @@
      */
     fetchTreeData: async (type: string, itemCode: string) => {
       let data = { title: '', treeData: [] as any[], fieldNames: {} };
-      let prodTreeData = await GetRoutePTree({
+      let prodTreeData = (await GetRoutePTree({
         prodCode: itemCode,
         orgCode: useUserStore().getUserInfo.orgCode,
-      });
-      // 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');
+      })) as unknown as MesRotTree[];
+      let _treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
       data.title = '宸ヨ壓璺嚎';
       data.fieldNames = { key: 'tid', title: 'name' };
+      /* 淇濆瓨宸ヨ壓鏍戝舰鏁版嵁鍒扮姸鎬佺鐞� */
+      useProdRoute.setCurProdRotTree(_treeData as unknown as MesRotTree[]);
+      useProdRoute.setItemCode(itemCode);
+      data.treeData = useProdRoute.getCurProdRotTree;
       return data;
     },
     /**
@@ -302,6 +306,7 @@
     /**
      * @description: 寮瑰嚭閫夋嫨妗嗘墦寮�鏂规硶
      * @param {Fn} openItemModal
+     * @param {array} args
      * @return {*}
      */
     OpenSelectItem: (openItemModal: Fn, ...args) => {
@@ -360,6 +365,7 @@
      * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛杩斿洖
      * @param {*} d
      * @param {*} u
+     * @param {array} args
      * @return {*}
      */
     GetSelectSuccess: async (d, u, ...args) => {
@@ -474,7 +480,7 @@
       };
     },
     /**
-     * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃
+     * @description: 鑾峰彇鍦ㄥ鍒犳敼琛ㄥ崟涓殑妯℃�佹搴旂敤鍒楄〃
      * @return {*}
      */
     GetUseCrudModals: () => {
@@ -548,6 +554,10 @@
         }),
       };
     },
+    /**
+     * @description: 鑾峰彇琛屼负鎴栬�呰妭鐐圭殑閰嶇疆琛ㄥ崟缁撴瀯锛屼娇鐢╱seForm()
+     * @return {*}
+     */
     GetUseForm: () => {
       return {
         Action: useForm({
@@ -585,6 +595,7 @@
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
      * @param {string} type
+     * @param {*} item
      * @return {*}
      */
     GetTitle: (type: string, item) => {
@@ -600,6 +611,8 @@
      * @return {*}
      */
     SelectNode: (selectedNodes: Ref<any[]>) => {
+      /* 淇濆瓨褰撳墠閫夋嫨鐨勮妭鐐规暟鎹埌鐘舵�佺鐞� */
+      useProdRoute.setCurSelectedNodes(selectedNodes.value);
       let result = {
         showConfig: false,
         showNav: false,
@@ -618,16 +631,13 @@
       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 = { BAS_PKG_DTL: false, ItemCode: false };
-        } else {
-          result.showOtherTable = { BAS_PKG_DTL: false, ItemCode: false };
-        }
+        result.showOtherTable = { BAS_PKG_DTL: false, ItemCode: false };
       }
       return result;
     },
     /**
      * @description: 鑾峰彇瀵艰埅椤�
+     * @param {string} type
      * @return {*}
      */
     GetNavItems: (type: string) => {
@@ -642,6 +652,7 @@
               url: '/addRoute',
               action: 'addRoute',
               isStep: false,
+              isCustEl: false,
             },
             {
               title: '娣诲姞瀹㈡埛宸ヨ壓璺嚎',
@@ -650,18 +661,29 @@
               url: '/addCustomer',
               action: 'addCustomer',
               isStep: true,
+              isCustEl: false,
             },
           ];
           break;
         case 'Route':
           item = [
             {
-              title: '缂栬緫宸ヨ壓璺嚎',
-              icon: 'clarity:note-edit-line',
+              title: '缂栬緫宸ヨ壓璺嚎', //鏍囬
+              icon: 'clarity:note-edit-line', //鍥炬爣
+              color: '#1fdaca', //瀛椾綋棰滆壊
+              url: '/editRoute', //瀵艰埅鍦板潃
+              action: 'editRoute', //瀵艰埅鎵ц鐨勬柟娉曪紝濡傛灉鎸夎繖涓猘ction鏉ユ墽琛岋紝涓婇潰鐨剈rl灏辨棤鏁�
+              isStep: false, //鏄惁鏄楠�
+              isCustEl: false, //鏄惁鏄嚜瀹氫箟html鍐呭
+            },
+            {
+              title: '璁剧疆榛樿宸ヨ壓璺嚎',
+              icon: '',
               color: '#1fdaca',
-              url: '/editRoute',
-              action: 'editRoute',
+              url: '',
+              action: '',
               isStep: false,
+              isCustEl: true,
             },
           ];
           break;
@@ -671,12 +693,15 @@
     /**
      * @description: 瀵艰埅椤甸潰鍒囨崲鎸夐挳鏃惰皟鐢ㄦ柟娉�
      * @param {any} action
+     * @param {array} args
      * @return {*}
      */
     navChangeItem: (action: any, ...args) => {
+      const openRvModal = args[1];
+      const openModal = args[0];
       switch (action) {
         case 'addRoute':
-          args[0](true, {
+          openModal(true, {
             title: '宸ヨ壓璺嚎鍒楄〃',
             schemas: [
               {
@@ -712,12 +737,12 @@
           });
           break;
         case 'addCustomer':
-          args[0](true, {
+          openModal(true, {
             title: '璇峰畬鎴愪互涓嬫楠�',
           });
           break;
         case 'editRoute':
-          args[1](true, {
+          openRvModal(true, {
             rotId: args[2][0].id,
             slotName: '',
             prodCode: args[3],
@@ -791,12 +816,13 @@
               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'];
+                  x.LABEL_ID = param.values['LABEL_CODE'];
                 }
               });
               param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(
                 param.data.value['BAS_PKG_DTL'],
               );
+              resolve('OK');
               break;
             case 'ItemCode':
               param.data.value['ItemCode'].map((x) => {
@@ -808,13 +834,20 @@
               param.data.value['Action'][0]['OPTION_1'] = JSON.stringify(
                 param.data.value['ItemCode'],
               );
+              resolve('OK');
               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);
+              var action = await AddOrEditLabelVarByWorkOrder(
+                param.values as unknown as BAS_LABEL_VAR_WO,
+              );
+              resolve(action);
+            case 'isDefault':
+              /* 璁剧疆榛樿宸ヨ壓璺嚎 */
+              var action = await useProdRoute.setDefaulRoute(param);
+              resolve(action);
           }
-          resolve('OK');
         } catch (e) {
           reject(e);
         }
@@ -1753,7 +1786,6 @@
     ] as FormSchema[],
   };
 
-  
   /**
    * @description: 妯℃澘缁存姢
    * @param {*} args
@@ -1762,7 +1794,8 @@
    */
   function handleTemplate(args, params: Recordable) {
     const openCrudModal = args[0];
-    const OrderNo = args[2];
+    // const OrderNo = args[2];
+    const ProdCode = args[2];
     openCrudModal(true, {
       isUpdate: true, //鏄惁鏇存柊鎿嶄綔
       entityName: 'ProdRouteBinding', //鏄摢涓〉闈�
@@ -1771,20 +1804,14 @@
       width: '1024px', //寮瑰嚭妗嗗搴�
       ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯
       schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯
-      others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
+      others: { WORK_ORDER: '', PROD_CODE: ProdCode }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
       searchInfo: {
         TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
         LabelId: params['record'].LABEL_ID, //妯℃澘ID
-        WorkOrder: OrderNo, //宸ュ崟鍙�
+        WorkOrder: '', //宸ュ崟鍙�
+        ProdCode: ProdCode,
+        CustCode: '',
         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'], //琛ㄥ崟璁板綍
     });

--
Gitblit v1.9.3