From 745815f637e5385b2cbc23a6ae02401bb8b6c675 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 14:22:36 +0800
Subject: [PATCH] 详情页面优化

---
 src/views/tigerprojects/system/lowcode/detail/detail.vue          |    7 
 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts     |   18 +
 src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts     |  112 ++-----------
 src/views/tigerprojects/system/lowcode/detail/index.vue           |   22 +-
 src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts |  276 ++++++++++++++++++---------------
 5 files changed, 193 insertions(+), 242 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/detail/detail.vue b/src/views/tigerprojects/system/lowcode/detail/detail.vue
index dd62fa0..4326f66 100644
--- a/src/views/tigerprojects/system/lowcode/detail/detail.vue
+++ b/src/views/tigerprojects/system/lowcode/detail/detail.vue
@@ -142,11 +142,12 @@
   /* 琛ㄥ崟涓彃妲芥覆鏌撴寜閽墦寮�妯℃�佹useModal鏂规硶 */
   const modals = GetUseModals && isFunction(GetUseModals) ? GetUseModals() : { useModalData: {} };
   const useModalData = ref(modals['useModalData']);
+  const CurrTabInfo = objParams['Tabs'].filter(q=>q.entityName == props.entityName)[0];
   const [registerTable, { getForm, reload, setProps }] = useTable({
-    title: `${objParams['firstTitle']}鍒楄〃`,
+    title: `${CurrTabInfo.tableTitle}鍒楄〃`,
     api: getListByPage,
-    searchInfo: { TABLE_NAME: objParams['Name'], ...objParams['keyFieldValues'] },
-    columns: GetBaseColumns(),
+    searchInfo: { TABLE_NAME: CurrTabInfo.entityName, ...objParams['keyFieldValues'] },
+    columns: GetBaseColumns(CurrTabInfo.entityName),
     formConfig: {
       labelWidth: 140,
       schemas: GetSearchForm(),
diff --git a/src/views/tigerprojects/system/lowcode/detail/index.vue b/src/views/tigerprojects/system/lowcode/detail/index.vue
index f64f685..0d23006 100644
--- a/src/views/tigerprojects/system/lowcode/detail/index.vue
+++ b/src/views/tigerprojects/system/lowcode/detail/index.vue
@@ -10,14 +10,13 @@
   <PageWrapper :title="pageTitle" :content="contentStr" contentBackground @back="goBack">
     <template #footer>
       <a-tabs default-active-key="detail" v-model:activeKey="currentKey" @tabClick="tabClkcallback">
-        <a-tab-pane key="detailfirst" :tab="firstTabName" />
-        <a-tab-pane key="detailsecond" :tab="secondTabName" />
+        <a-tab-pane v-for="t in TabList" :tab="t.name" :key="t.key" />
       </a-tabs>
     </template>
     <div>
-      <div v-if="currentKey == 'detailfirst'">
+      <div  v-for="t in TabList" :key="t.key">
         <Suspense>
-          <detail :entityName="entityName" />
+          <detail :entityName="t.entityName" v-if="currentKey == t.key"/>
         </Suspense>
       </div>
     </div>
@@ -25,20 +24,17 @@
 </template>
 
 <script lang="ts" setup>
-  import { ref, provide, Ref, defineAsyncComponent } from 'vue';
+  import { ref, reactive, provide, Ref, defineAsyncComponent } from 'vue';
   import { useRoute } from 'vue-router';
   import { PageWrapper } from '/@/components/Page';
   import { useTabs } from '/@/hooks/web/useTabs';
   import { Tabs } from 'ant-design-vue';
   import { useGo } from '/@/hooks/web/usePage';
-  import { OpenCustModal, custOnChange } from '../data';
+  import { custOnChange } from '../data';
   import { useI18n } from '/@/hooks/web/useI18n';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useGlobSetting } from '/@/hooks/setting';
 
   const { t } = useI18n();
   const detail = defineAsyncComponent(() => import('./detail.vue'));
-  const { createMessage } = useMessage();
   const route = useRoute();
   // const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
   const routeParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
@@ -51,17 +47,17 @@
   const go = useGo();
   const pageTitle = ref(objParams.value.pageTitle);
   const contentStr = ref(objParams.value.contentStr);
-  const firstTabName = ref(objParams.value.firstTabName);
-  const secondTabName = ref(objParams.value.secondTabName);
+  // const firstTabName = ref(objParams.value.firstTabName);
+  // const secondTabName = ref(objParams.value.secondTabName);
+  const TabList = reactive(objParams.value.Tabs);
   const entityName = ref(routeParams.value.Name);
   const detailName = ref(objParams.value.detailName);
-  const globSetting = useGlobSetting();
   const crudColSlots = ref<any>(objParams.value.colSlots);
   const keyFieldValues = ref<any>(null);
   provide<Ref<any>>('objParams', objParams.value);
   provide<Ref<any>>('keyFieldValues', keyFieldValues);
 
-  var currentKey = ref('detailfirst');
+  var currentKey = ref(TabList[0].key);
   const { setTitle } = useTabs();
 
   // 璁剧疆Tab鐨勬爣棰橈紙涓嶄細褰卞搷椤甸潰鏍囬锛�
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 82744a1..c121589 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
@@ -475,10 +475,20 @@
       ID: params['record'].ID,
       CODE: params['record']['ORDER_NO'],
       Name: 'BIZ_MES_WO_BATCH',
-      firstTabName: '宸ュ崟鎵规',
-      secondTabName: '', //'鏍囩杩囩▼鍙橀噺',
-      firstTitle: '鎵规',
-      secondTitle: '', //'杩囩▼鍙橀噺',
+      Tabs: [
+        {
+          name: '宸ュ崟鎵规',
+          tableTitle: '鎵规',
+          entityName: 'BIZ_MES_WO_BATCH',
+          key: 'batch'
+        },
+        // {
+        //   name: '宸ュ崟鎵规2',
+        //   tableTitle: '鎵规2',
+        //   entityName: 'BIZ_U9_ASN_DTL',
+        //   key: 'batch2'
+        // }
+      ],
       pageTitle: '宸ュ崟璇︽儏', //璇︽儏椤甸潰鏍囬
       contentStr: '杩欓噷鏄伐鍗曟壒娆$鐞嗛〉闈紝鍙互鏄剧ず宸ュ崟涓嬪彂鐨勬墍鏈夋壒娆¤鎯�',
       detailName: `宸ュ崟[${params['record'].ORDER_NO}]鎵规璇︽儏`,
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts
index 22dd283..019d370 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts
@@ -62,6 +62,9 @@
       });
       return data;
     },
+    /**
+     * @desc 鍒濆鍖栬〃鍗�
+     */
     GetUseForm: () => {
       return {
         forminfo: useForm({
@@ -266,101 +269,6 @@
   /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport锛屼緵涓婇潰鐨勬柟娉曡皟鐢� */
 
   /**
-   * @description: 鑷畾涔夋柟娉�
-   * @return {*}
-   */
-  const getWoFns: Record<string, FunctionType> = {
-    /**
-     * @description: 宸ュ崟閰嶇疆淇濆瓨鏂规硶
-     * @param {*} e
-     * @param {array} args
-     * @return {*}
-     */
-    SaveCofig: (param: CustModalParams) => {
-      return new Promise((resolve, reject) => {
-        try {
-          const form = param.values['prodinfo'];
-          const wo = param.values['mValues'];
-          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) {
-              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(action);
-            }
-          });
-        } catch {
-          reject(false);
-        }
-      });
-    },
-    /**
-     * @description: 宸ュ崟涓嬪彂淇濆瓨鏂规硶
-     * @param {CustModalParams} param
-     * @return {*}
-     */
-    SaveWoBatch: (param: CustModalParams) => {
-      return new Promise((resolve, reject) => {
-        try {
-          const form = param.values['forminfo'];
-          const wo = param.values['mValues'];
-          wo.STATUS = wo.STATUS == 3 ? wo.STATUS : 2;
-          let input: SaveWoBatchInput = {
-            Wo: wo,
-            WoBatch: {
-              ID: buildUUID(),
-              CREATE_TIME: new Date(),
-              CREATE_USER: useUserStore().getUserInfo.userId as string,
-              UPDATE_TIME: new Date(),
-              UPDATE_USER: useUserStore().getUserInfo.userId as string,
-              GHOST_ROW: false,
-              AUTH_ORG: useUserStore().getUserInfo.orgCode,
-              AUTH_PROD: useUserStore().getUserInfo.prodCode as string,
-              AUTH_WH: '',
-              ORDER_NO: wo.ORDER_NO,
-              STATUS: wo.STATUS,
-              ITEM_CODE: wo.ITEM_CODE,
-              CUST_CODE: wo.CUST_CODE,
-              FACTORY: wo.FACTORY,
-              WS_CODE: wo.WS_CODE,
-              ACT_LINE: form.ACT_LINE,
-              STD_WORKER_QTY: wo.STD_WORKER_QTY,
-              ACT_WORKER_QTY: wo.ACT_WORKER_QTY,
-              RELEASE_TIME: new Date(),
-              RELEASE_USER: useUserStore().getUserInfo.userId as string,
-              PLAN_QTY: form.RELEASE_QTY,
-              INPUT_QTY: wo.INPUT_QTY,
-              OUTPUT_QTY: wo.OUTPUT_QTY,
-              SCRAP_QTY: wo.SCRAP_QTY,
-              STOCK_IN_QTY: wo.STOCK_IN_QTY,
-              UPH: wo.UPH,
-              UPPH: wo.UPPH,
-              REMARK: wo.REMARK,
-              ACT_START_TIME: wo.ACT_START_TIME,
-              ACT_END_TIME: wo.ACT_END_TIME,
-              BATCH_NO: '',
-            },
-            IfToCust: form.IfToCust,
-          };
-          SaveMesBatchWo(input).then((action) => {
-            resolve(action);
-          });
-        } catch {
-          reject(false);
-        }
-      });
-    },
-    initRoute: () => {},
-  };
-
-  /**
    * @description: 璺宠浆鍒拌鎯呴〉闈㈡柟娉�
    * @param {Fn} go
    * @return {*}
@@ -374,6 +282,20 @@
       secondTabName: '閫佽揣鍗昐N', //'鏍囩杩囩▼鍙橀噺',
       firstTitle: '鏄庣粏',
       secondTitle: '', //'杩囩▼鍙橀噺',
+      Tabs: [
+        {
+          name: '閫佽揣鍗�(U9)',
+          tableTitle: '鏄庣粏',
+          entityName: 'BIZ_U9_ASN_DTL',
+          key: 'BIZ_U9_ASN_DTL'
+        },
+        {
+          name: '閫佽揣鍗昐N',
+          tableTitle: 'SN',
+          entityName: 'BIZ_U9_ASN_SN',
+          key: 'BIZ_U9_ASN_SN'
+        }
+      ],
       pageTitle: '閫佽揣鍗�(U9)璇︽儏', //璇︽儏椤甸潰鏍囬
       contentStr: '杩欓噷鏄�佽揣鍗�(U9)鏄庣粏绠$悊椤甸潰锛屽彲浠ユ樉绀洪�佽揣鍗�(U9)鐨勬墍鏈夋壒娆¤鎯�',
       detailName: `閫佽揣鍗昜${params['record'].ORDER_NO}]鎵规璇︽儏`,
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts
index 4ba3a7f..2216bdb 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts
@@ -8,21 +8,13 @@
  */
 
 import { Tag, Tooltip } from 'ant-design-vue';
-import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
+import { ActionItem, BasicColumn } from '/@/components/Table';
 import { useI18n } from '/@/hooks/web/useI18n';
 import { h } from 'vue';
-import { getEntity, SaveEntity } from '/@/api/tigerapi/system';
-import { useLocale } from '/@/locales/useLocale';
 import { useModal } from '/@/components/Modal';
-import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel';
+import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
 import { useForm } from '/@/components/Form';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { UpdateWoBatchStatus } from '/@/api/tigerapi/mes/wo';
-import { useUserStore } from '/@/store/modules/user';
-import { formatToDateTime } from '/@/utils/dateUtil';
 
-const { getLocale } = useLocale();
-const { createMessage, createErrorModal } = useMessage();
 const { t } = useI18n();
 
 function _default() {
@@ -79,123 +71,154 @@
      * @return {*}
      */
     GetHomeUrl: (params: {}) => {
-      return `/BIZ_U9_ASN/LC/${encodeURI(JSON.stringify({ ID: 'BIZ_U9_ASN',"EntityName":"BIZ_U9_ASN", colSlots: params['colSlots'], crudColSlots: [] }))}`;
+      return `/BIZ_U9_ASN/LC/${encodeURI(JSON.stringify({ ID: 'BIZ_U9_ASN', EntityName: 'BIZ_U9_ASN', colSlots: params['colSlots'], crudColSlots: [] }))}`;
     },
-    GetBaseColumns: () => {
-      return [
-        {
-          dataIndex: 'ORDER_NO',
-          title: '鍗曟嵁鍙�',
-          // ifShow: false,
-          sorter: true,
-          resizable: true,
-        },
-        // {
-        //   dataIndex: 'BATCH_NO',
-        //   title: '宸ュ崟鎵规鍙�',
-        //   ifShow: true,
-        //   sorter: true,
-        //   resizable: true,
-        //   customRender: () => {},
-        // },
-        {
-          dataIndex: 'STATUS',
-          title: '鐘舵��',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-          customRender: ({ record }) => {
-            let color = '';
-            let text = '';
-            switch (
-              record.STATUS //鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Release宸蹭笅鍙憒3Working鐢熶骇涓瓅4Paused宸叉殏鍋渱5Closed宸插叧闂�)
-            ) {
-              case 0:
-                text ='鍒濆鍖�';
-                color = '#8a8a8a';
-                break;
-              case 1:
-                text = '宸插鍏�';color = 'blue';
-                break;
-              case 2:
-                text = '宸查�佽揪';color = 'green';
-                break;
-              case 3:
-                text = '娓呯偣涓�';color = 'orange';
-                break;
-              case 4:
-                text = '涓婃灦涓�';color = 'red';
-                break;
-              case 5:
-                text = '寰呭鏍�';color = '#e1822c';
-                break;
-              case 6:
-                text = '宸插畬鎴�';color = '#009966';
-                break;
-              case 7:
-                text = '宸蹭綔搴�';color = '#CCCCCC';
-                break;
-            }
-            return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
-          },
-        },
-        {
-          dataIndex: 'SUPP_CODE',
-          title: '渚涘簲鍟嗙紪鐮�',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'SUPP_NAME',
-          title: '渚涘簲鍟嗗悕绉�',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'ORDER_DATE',
-          title: '鍗曟嵁鏃ユ湡',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'DELIVERY_DATE',
-          title: '閫佽揣鏃ユ湡',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'PLANARRIVED_DATE',
-          title: '棰勮閫佽揪鏃ユ湡',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'RECEIVER',
-          title: '鏀惰揣浜�',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'RECEIVE_DATE',
-          title: '鏀惰揣鏃ユ湡',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-        {
-          dataIndex: 'REMARK',
-          title: '澶囨敞',
-          ifShow: true,
-          sorter: true,
-          resizable: true,
-        },
-      ];
+    GetBaseColumns: (type: string) => {
+      switch (type) {
+        case 'BIZ_U9_ASN_DTL':
+          return [
+            {
+              dataIndex: 'ORDER_NO',
+              title: '鍗曟嵁鍙�',
+              // ifShow: false,
+              sorter: true,
+              resizable: true,
+            },
+            // {
+            //   dataIndex: 'BATCH_NO',
+            //   title: '宸ュ崟鎵规鍙�',
+            //   ifShow: true,
+            //   sorter: true,
+            //   resizable: true,
+            //   customRender: () => {},
+            // },
+            {
+              dataIndex: 'STATUS',
+              title: '鐘舵��',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+              customRender: ({ record }) => {
+                let color = '';
+                let text = '';
+                switch (
+                  record.STATUS //鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Release宸蹭笅鍙憒3Working鐢熶骇涓瓅4Paused宸叉殏鍋渱5Closed宸插叧闂�)
+                ) {
+                  case 0:
+                    text = '鍒濆鍖�';
+                    color = '#8a8a8a';
+                    break;
+                  case 1:
+                    text = '宸插鍏�';
+                    color = 'blue';
+                    break;
+                  case 2:
+                    text = '宸查�佽揪';
+                    color = 'green';
+                    break;
+                  case 3:
+                    text = '娓呯偣涓�';
+                    color = 'orange';
+                    break;
+                  case 4:
+                    text = '涓婃灦涓�';
+                    color = 'red';
+                    break;
+                  case 5:
+                    text = '寰呭鏍�';
+                    color = '#e1822c';
+                    break;
+                  case 6:
+                    text = '宸插畬鎴�';
+                    color = '#009966';
+                    break;
+                  case 7:
+                    text = '宸蹭綔搴�';
+                    color = '#CCCCCC';
+                    break;
+                }
+                return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+              },
+            },
+            {
+              dataIndex: 'SUPP_CODE',
+              title: '渚涘簲鍟嗙紪鐮�',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'SUPP_NAME',
+              title: '渚涘簲鍟嗗悕绉�',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'ORDER_DATE',
+              title: '鍗曟嵁鏃ユ湡',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'DELIVERY_DATE',
+              title: '閫佽揣鏃ユ湡',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'PLANARRIVED_DATE',
+              title: '棰勮閫佽揪鏃ユ湡',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'RECEIVER',
+              title: '鏀惰揣浜�',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'RECEIVE_DATE',
+              title: '鏀惰揣鏃ユ湡',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'REMARK',
+              title: '澶囨敞',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+          ];
+        case 'BIZ_U9_ASN_SN':
+          return [
+            {
+              dataIndex: 'ORDER_NO',
+              title: '鍗曟嵁鍙�',
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'LINE_NO',
+              title: '鍗曟嵁琛屽彿',
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'SN',
+              title: '鏉$爜',
+              sorter: true,
+              resizable: true,
+            },
+          ];
+      }
     },
     GetSearchForm: () => {
       return [
@@ -313,7 +336,6 @@
   };
 
   /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport锛屼緵涓婇潰鐨勬柟娉曡皟鐢� */
-
 
   return [methods, ActionColumn];
 }

--
Gitblit v1.9.3