From 78999ce1626d2a786f3a705281eeba79c2f1d6dd Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 22 十月 2024 09:32:27 +0800
Subject: [PATCH] 工艺页面缓存优化

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

diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
index 970961b..f654b3e 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-10-06 16:48:25
+ * @LastEditTime: 2024-10-22 09:28:36
  */
 
 import { Ref, h, ref, render, unref } from 'vue';
@@ -29,13 +29,15 @@
 import { ContextMenuItem } from '/@/components/TigerTree';
 import { useForm } from '/@/components/Form';
 import { mesApi } from '/@/api/tigerapi/mes/mesApi';
-import { BAS_LABEL_VAR_WO } from '/@/api/tigerapi/model/mesModel';
+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;
@@ -80,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: 鑾峰彇鏍戝舰鏁版嵁
@@ -90,19 +92,27 @@
      */
     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' };
+      if (
+        !useProdRoute.changeToCPPage ||
+        !useProdRoute.curProdRotTree.some((q) => q.name == itemCode)
+      ) {
+        /* 淇濆瓨宸ヨ壓鏍戝舰鏁版嵁鍒扮姸鎬佺鐞� */
+        useProdRoute.setCurProdRotTree({
+          name: itemCode,
+          treeInfo: _treeData as unknown as MesRotTree[],
+        });
+      }
+      useProdRoute.setItemCode(itemCode);
+      if (useProdRoute.curProdRotTree.some((q) => q.name == itemCode)) {
+        data.treeData = useProdRoute.curProdRotTree.filter((q) => q.name == itemCode)[0].treeInfo;
+      }
       return data;
     },
     /**
@@ -274,6 +284,7 @@
               ItemCode: false,
             };
           }
+          useProdRoute.setcurDtl(result);
           resolve(result);
         } catch (e) {
           reject(e);
@@ -296,6 +307,9 @@
         }
         values.AUTH_ORG = useUserStore().getUserInfo.orgCode;
         values.AUTH_PROD = useUserStore().getUserInfo.prodCode;
+        if (type == 'Action') {
+          values.OPTION_1 = JSON.stringify(useProdRoute.getcurDtl['BAS_PKG_DTL']);
+        }
         SaveEntity(values, true, entityName).then((action) => {
           if (action.IsSuccessed) {
             emit('success');
@@ -512,11 +526,13 @@
           // searchInfo: { TABLE_NAME: 'V_BAS_PKG_DTL' },
           dataSource: data.value['BAS_PKG_DTL'],
           columns: GetBaseColumns('BAS_PKG_DTL', args[0], data),
-          maxHeight: 520,
+          // maxHeight: 520,
+          // scroll: { y: window.screen.width == 1366? 400: 450 },
+          isCanResizeParent: true,
           useSearchForm: false,
           showTableSetting: false,
           bordered: true,
-          canResize: true,
+          // canResize: false,
           showIndexColumn: false,
           // rowSelection: {
           //   type: 'radio', //'checkbox'
@@ -610,7 +626,7 @@
      * @param {Ref} selectedNodes
      * @return {*}
      */
-    SelectNode: (selectedNodes: Ref<any[]>) => {
+    SelectNode: (selectedNodes: Ref<any[]>, code: string) => {
       let result = {
         showConfig: false,
         showNav: false,
@@ -631,6 +647,8 @@
         result.showConfig = true;
         result.showOtherTable = { BAS_PKG_DTL: false, ItemCode: false };
       }
+      /* 淇濆瓨褰撳墠閫夋嫨鐨勮妭鐐规暟鎹埌鐘舵�佺鐞� */
+      useProdRoute.setCurSelectedNodes({ name: code, SelectedNodes: selectedNodes.value });
       return result;
     },
     /**
@@ -841,22 +859,9 @@
                 param.values as unknown as BAS_LABEL_VAR_WO,
               );
               resolve(action);
-            case 'isDefault' /* 璁剧疆榛樿宸ヨ壓璺嚎 */:
-              var action = await SetDefaultRoute({
-                rotCode: param.others['code'],
-                prodCode: param.keyCode,
-                rotId: '',
-                options: {
-                  //鏍规嵁鎹偣鏌ヨ锛屽繀闇�甯﹁繖涓弬鏁�
-                  UserId: useUserStore().getUserInfo.userId as string,
-                  ByOrg: true,
-                  CurOrg: useUserStore().getUserInfo.orgCode as string,
-                  ByProd: false,
-                  ByWh: false,
-                  OrgCode: useUserStore().getUserInfo.orgCode as string,
-                },
-                isDefault: param.others['isDefault'],
-              });
+            case 'isDefault':
+              /* 璁剧疆榛樿宸ヨ壓璺嚎 */
+              var action = await useProdRoute.setDefaulRoute(param);
               resolve(action);
           }
         } catch (e) {
@@ -1805,7 +1810,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', //鏄摢涓〉闈�
@@ -1814,20 +1820,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'], //琛ㄥ崟璁板綍
     });
@@ -1863,8 +1863,8 @@
     {
       title: '榛樿鍊�',
       dataIndex: 'DEFAULT_VALUE',
-      editRow: true,
-      editRule: true,
+      // editRow: true,
+      // editRule: true,
     },
   ] as BasicColumn[];
 

--
Gitblit v1.9.3