From 7f5b781c9b476eb1c74dd637cbf9ee54bc71acfd Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 11:16:59 +0800
Subject: [PATCH] 页面跳转更新

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

diff --git a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
index f654b3e..e47366c 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
@@ -1,19 +1,20 @@
+/* eslint-disable no-var */
+/* eslint-disable no-fallthrough */
 /*
  * @Description: 浜у搧宸ヨ壓璺嚎鐩稿叧
  * @Author: Ben Lin
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-10-22 09:28:36
+ * @LastEditTime: 2024-10-24 01:21:57
  */
 
-import { Ref, h, ref, render, unref } from 'vue';
+import { Ref, unref } from 'vue';
 import {
   DeleteProdRoute,
   GetRoutePTree,
   RouteToCust,
   RouteToProd,
-  SetDefaultRoute,
 } from '/@/api/tigerapi/mes/router';
 import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
 import { useLocale } from '/@/locales/useLocale';
@@ -33,6 +34,7 @@
 import { buildUUID } from '/@/utils/uuid';
 import { AddOrEditLabelVarByWorkOrder } from '/@/api/tigerapi/mes/wo';
 import { useProdRouteStore } from '/@/store/modules/prodRoute';
+import { useWebSocketStore } from '/@/store/modules/websocket';
 
 const { t } = useI18n();
 const { createErrorModal } = useMessage();
@@ -83,7 +85,7 @@
      * @return {*}
      */
     GetHomeUrl: (params) => {
-      return `/V_BAS_PROD_R/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD_R', colSlots: [], crudColSlots: [], sName: params['sName'] }))}`;
+      return `/V_BAS_PROD_R/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD_R',"EntityName":"V_BAS_PROD_R", colSlots: [], crudColSlots: [], sName: params['sName'] }))}`;
     },
     /**
      * @description: 鑾峰彇鏍戝舰鏁版嵁
@@ -91,12 +93,12 @@
      * @return {*}
      */
     fetchTreeData: async (type: string, itemCode: string) => {
-      let data = { title: '', treeData: [] as any[], fieldNames: {} };
-      let prodTreeData = (await GetRoutePTree({
+      const data = { title: '', treeData: [] as any[], fieldNames: {} };
+      const prodTreeData = (await GetRoutePTree({
         prodCode: itemCode,
         orgCode: useUserStore().getUserInfo.orgCode,
       })) as unknown as MesRotTree[];
-      let _treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
+      const _treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root');
       data.title = '宸ヨ壓璺嚎';
       data.fieldNames = { key: 'tid', title: 'name' };
       if (
@@ -110,6 +112,7 @@
         });
       }
       useProdRoute.setItemCode(itemCode);
+      useProdRoute.setname(itemCode);
       if (useProdRoute.curProdRotTree.some((q) => q.name == itemCode)) {
         data.treeData = useProdRoute.curProdRotTree.filter((q) => q.name == itemCode)[0].treeInfo;
       }
@@ -160,7 +163,7 @@
         { name: 'auditadd', icon: 'search|svg' },
         { name: 'printadd', icon: 'search|svg' },
         { name: 'pkgadd', icon: 'search|svg' },
-        { name: 'labeladd', icon: 'search|svg' },
+        { name: 'labeladd', icon: 'template|svg' },
       ];
     },
     /**
@@ -170,14 +173,13 @@
     nodeChange: (params: { useForms: Ref<any>; objParams: Ref<any>; selectedNodes: any[] }) =>
       new Promise<any>(async (resolve, reject) => {
         // params['useForms'].value = methods.GetUseForm();
-        let result = { isShow: {} };
+        const result = { isShow: {} };
         let sqlcmd = ' 1=1 ';
         if (!isNullOrEmpty(params['objParams'].value['CODE'])) {
           sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`;
         }
-        if (!isNullOrEmpty(params['selectedNodes'][0].cust)) {
-          sqlcmd += `And CUST_CODE = '${params['selectedNodes'][0].cust}'`;
-        }
+        sqlcmd += `And ISNULL(CUST_CODE, '') = ISNULL('${params['selectedNodes'][0].cust}', '')`;
+        
         if (!isNullOrEmpty(params['selectedNodes'][0].id)) {
           sqlcmd +=
             params['selectedNodes'][0].type == 'Action'
@@ -233,9 +235,7 @@
                 ? ents.Data.Items
                 : JSON.parse(res.Data.Items[0].OPTION_1);
               /* 濡傛灉OPTION_1瀛楁涓虹┖灏辨妸鍖呰淇℃伅杞琂SON瀛樺埌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;
+              res.Data.Items[0].OPTION_1 = JSON.stringify(result['BAS_PKG_DTL']);
             } /* 濡傛灉鏄粍瑁呬笂鏂� */
             if (res.Data.Items[0].ACT_TYPE == 2) {
               result['name'] = 'ItemCode';
@@ -249,34 +249,38 @@
           }
           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: isNullOrEmpty(res.Data.Items[0].IS_ACTIVE)
-                ? 'N'
-                : res.Data.Items[0].IS_ACTIVE,
-              IS_CALC_FPY: isNullOrEmpty(res.Data.Items[0].IS_CALC_FPY)
-                ? 'N'
-                : res.Data.Items[0].IS_CALC_FPY,
-              CAN_SKIP: isNullOrEmpty(res.Data.Items[0].CAN_SKIP)
-                ? 'N'
-                : res.Data.Items[0].CAN_SKIP,
-              IS_INPUT: isNullOrEmpty(res.Data.Items[0].IS_INPUT)
-                ? 'N'
-                : res.Data.Items[0].IS_INPUT,
-              IS_OUTPUT: isNullOrEmpty(res.Data.Items[0].IS_OUTPUT)
-                ? 'N'
-                : res.Data.Items[0].IS_OUTPUT,
-              ALLOW_DFT_IN: isNullOrEmpty(res.Data.Items[0].ALLOW_DFT_IN)
-                ? 'N'
-                : res.Data.Items[0].ALLOW_DFT_IN,
-              REMARK: res.Data.Items[0].REMARK,
-              PROD_CODE: params['objParams'].value['CODE'],
-              CUST_CODE: params['selectedNodes'][0].cust,
-            });
+            if(isNullOrEmpty(res.Data.Items[0].IS_ACTIVE)){
+              res.Data.Items[0].IS_ACTIVE = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_CALC_FPY)){
+              res.Data.Items[0].IS_CALC_FPY = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].CAN_SKIP)){
+              res.Data.Items[0].CAN_SKIP = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_INPUT)){
+              res.Data.Items[0].IS_INPUT = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IS_OUTPUT)){
+              res.Data.Items[0].IS_OUTPUT = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].ALLOW_DFT_IN)){
+              res.Data.Items[0].ALLOW_DFT_IN = 'N'
+            }
+            if(isNullOrEmpty(res.Data.Items[0].IF_DFT_OFFLINE)){
+              res.Data.Items[0].IF_DFT_OFFLINE = 'N'
+            }
+            if(!isNullOrEmpty(params['objParams'].value['CODE'])){
+              res.Data.Items[0].PROD_CODE = params['objParams'].value['CODE']
+            }
+            if(!isNullOrEmpty(params['selectedNodes'][0].cust)){
+              res.Data.Items[0].CUST_CODE = params['selectedNodes'][0].cust
+            }
+            setFieldsValueNode(res.Data.Items[0]);
+
+            /* 榛樿淇濆瓨 */
+            SaveEntity(res.Data.Items[0], true, 'MES_PROD_OPER');
+
             // result['Node'] = res.Data.Items;
             result['name'] = 'Node';
             result['isShow'] = {
@@ -355,6 +359,11 @@
           ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯
           schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯
           others: { WORK_ORDER: OrderNo }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
+          alertConfig: {
+            showAlert: false,
+            message: '閿�鍞鍗曞娉�',
+            description: '',
+          },
           searchInfo: {
             TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
             LabelId: record.LABEL_CODE, //妯℃澘ID
@@ -395,7 +404,7 @@
           break;
         case 'assyadd':
           const items = d.values['val'].split(',');
-          let data: any[] = [];
+          const data: any[] = [];
           if (!isNullOrEmpty(items) && items.length > 0) {
             items.map((x) => {
               data.push({
@@ -446,7 +455,7 @@
             });
             return;
           }
-          let codes = d.values.id.split(',');
+          const codes = d.values.id.split(',');
           var i;
           for (i = 0; i < codes.length; i++) {
             if (d.which == 'addRoute') {
@@ -464,7 +473,7 @@
             });
             return;
           }
-          let rotIds = d.ROT_ID.split(',');
+          const 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 });
@@ -518,13 +527,17 @@
      * @return {*}
      */
     GetUseTables: (data: Ref<{}>, ...args) => {
-      // data.value['Table'] = [];
+      let sortData = isNullOrUnDef(data.value['BAS_PKG_DTL'])
+        ? data.value['BAS_PKG_DTL']
+        : data.value['BAS_PKG_DTL'].sort((a, b) => {
+            return a.PKG_LEVEL - b.PKG_LEVEL;
+          });
       return {
         BAS_PKG_DTL: useTable({
           title: '鍒楄〃淇℃伅',
           // api: getListByPage,
           // searchInfo: { TABLE_NAME: 'V_BAS_PKG_DTL' },
-          dataSource: data.value['BAS_PKG_DTL'],
+          dataSource: sortData,
           columns: GetBaseColumns('BAS_PKG_DTL', args[0], data),
           // maxHeight: 520,
           // scroll: { y: window.screen.width == 1366? 400: 450 },
@@ -627,7 +640,7 @@
      * @return {*}
      */
     SelectNode: (selectedNodes: Ref<any[]>, code: string) => {
-      let result = {
+      const result = {
         showConfig: false,
         showNav: false,
         type: selectedNodes.value[0].type,
@@ -853,7 +866,7 @@
               resolve('OK');
               break;
             case 'BAS_LABEL_VAR_WO':
-              param.values['WORK_ORDER'] = param.others['WORK_ORDER'];
+              param.values['PROD_CODE'] = param.others['PROD_CODE'];
               param.values['ID'] = buildUUID();
               var action = await AddOrEditLabelVarByWorkOrder(
                 param.values as unknown as BAS_LABEL_VAR_WO,
@@ -863,6 +876,14 @@
               /* 璁剧疆榛樿宸ヨ壓璺嚎 */
               var action = await useProdRoute.setDefaulRoute(param);
               resolve(action);
+            case 'delete':
+              const webSocketStore = useWebSocketStore();
+              if (webSocketStore.GetSocketState == 1) {
+                webSocketStore.sendMessage(
+                  `wsGetNew ${param.values['LABEL_ID']}_#_${param.values['PROD_CODE']}`,
+                );
+              }
+              break;
           }
         } catch (e) {
           reject(e);
@@ -888,18 +909,21 @@
           label: '鍒犻櫎',
           handler: () => {
             console.log('鐐瑰嚮浜嗗垹闄�', node);
-            DeleteProdRoute({ rotId: node.id, rotCode: node.code, prodCode: args[1] }).then(
-              (action) => {
-                if (action.IsSuccessed) {
-                  emit('deletenode', node);
-                } else {
-                  createErrorModal({
-                    title: t('sys.api.errorTip'),
-                    content: t(action.LocaleMsg),
-                  });
-                }
-              },
-            );
+            DeleteProdRoute({
+              rotId: node.id,
+              rotCode: node.code,
+              prodCode: args[1],
+              custCode: node.cust,
+            }).then((action) => {
+              if (action.IsSuccessed) {
+                emit('deletenode', node);
+              } else {
+                createErrorModal({
+                  title: t('sys.api.errorTip'),
+                  content: t(action.LocaleMsg),
+                });
+              }
+            });
           },
           icon: 'bx:bxs-folder-open',
         },
@@ -1634,6 +1658,29 @@
       },
     },
     {
+      field: 'IF_DFT_OFFLINE',
+      label: '鍒ゆ柇涓嶈壇鍚庢槸鍚︿笅绾�',
+      required: true,
+      defaultValue: 'N',
+      component: 'Select',
+      colProps: { span: 12 },
+      componentProps: {
+        options: [
+          {
+            label: '鏄�',
+            value: 'Y',
+            key: 'Y',
+          },
+          {
+            label: '鍚�',
+            value: 'N',
+            key: 'N',
+          },
+        ],
+      },
+      ifShow: ({ values }) => values.OPER_CODE == 'TestNode',
+    },
+    {
       field: 'REMARK',
       label: '澶囨敞',
       component: 'Input',
@@ -1812,6 +1859,7 @@
     const openCrudModal = args[0];
     // const OrderNo = args[2];
     const ProdCode = args[2];
+    const WoRecord = args[4];
     openCrudModal(true, {
       isUpdate: true, //鏄惁鏇存柊鎿嶄綔
       entityName: 'ProdRouteBinding', //鏄摢涓〉闈�
@@ -1821,6 +1869,11 @@
       ItemColumns: TemplateBasColumn, //寮瑰嚭妗嗕腑琛ㄦ牸瀛楁缁撴瀯
       schemas: [], //鏌ヨ鏉′欢瀛楁缁撴瀯
       others: { WORK_ORDER: '', PROD_CODE: ProdCode }, //闇�瑕佸甫鍒板脊鍑虹獥鍙d腑鐨勬暟鎹�
+      alertConfig: {
+        showAlert: false,
+        message: '閿�鍞鍗曞娉�',
+        description: '',
+      },
       searchInfo: {
         TABLE_NAME: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚嶇О
         LabelId: params['record'].LABEL_ID, //妯℃澘ID
@@ -1846,11 +1899,17 @@
       title: '宸ュ崟鍙�',
       dataIndex: 'WORK_ORDER',
       width: 280,
-      editRow: true,
+      // editRow: true,
       // editable: true,
       ifShow: false,
     },
     {
+      title: '宸ュ崟鍙�',
+      dataIndex: 'PROD_CODE',
+      width: 280,
+      ifShow: false,
+    },
+    {
       title: '鍙橀噺鍚�',
       dataIndex: 'VAR_NAME',
     },

--
Gitblit v1.9.3