From 2069d53e9be24adec3c8d6717fd7317555bd9a52 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 02 七月 2024 23:02:51 +0800
Subject: [PATCH] 高级表单优化

---
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts      |  104 +++----
 src/views/tigerprojects/system/lowcode/high/baseForm.vue          |   10 
 src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts     |   80 +++--
 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts    |    8 
 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts     |   78 +++--
 src/views/tigerprojects/system/lowcode/data.ts                    |   73 ++++-
 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts |    8 
 src/views/tigerprojects/system/lowcode/high/index.vue             |   92 +++++-
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts  |    8 
 src/api/tigerapi/model/basModel.ts                                |    1 
 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts   |   80 +++--
 src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts |    8 
 src/views/tigerprojects/system/lowcode/high/dtl.vue               |   26 +
 src/views/tigerprojects/system/lowcode/normal/mainTable.vue       |    4 
 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts   |    8 
 src/api/tigerapi/system.ts                                        |   99 +++++--
 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts    |   79 +++--
 17 files changed, 460 insertions(+), 306 deletions(-)

diff --git a/src/api/tigerapi/model/basModel.ts b/src/api/tigerapi/model/basModel.ts
index 658acd4..c2a9d7e 100644
--- a/src/api/tigerapi/model/basModel.ts
+++ b/src/api/tigerapi/model/basModel.ts
@@ -143,6 +143,7 @@
   GetUseDrawers: () => [];
   GetUseTables: (data: Ref<Recordable[]>, ...args) => [];
   SubmitFunc: (values: Recordable<any>, type: string, emit) => void;
+  FormSearch: (d) => string | {};
   GetSlots: (type: string | undefined) => {};
   GenerateHtml: (type: string | null) => HTMLElement | null;
   CustFunc: (type: string | undefined, ...args) => void | any;
diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts
index 775bfba..0d53fb4 100644
--- a/src/api/tigerapi/system.ts
+++ b/src/api/tigerapi/system.ts
@@ -1,4 +1,3 @@
-import { UserConfigFn } from 'vite';
 import { useGlobSetting } from '/@/hooks/setting';
 import { buildUUID } from '../../utils/uuid';
 import { DateFormat } from '../../utils/dataformat';
@@ -31,7 +30,7 @@
   iSYS_ROLE_PROD,
 } from './model/systemModel';
 import { defHttp } from '/@/utils/http/axios';
-import { isArray, isDate, isNullOrEmpty, isTimeType, isTimeViaRegExp8601, isTimeViaRegExpSimple } from '/@/utils/is';
+import { isArray, isNullOrEmpty, isTimeViaRegExp8601 } from '/@/utils/is';
 
 export enum Api {
   QueryUrl = '/Base/Query',
@@ -39,6 +38,7 @@
   EntitySqlList = '/Base/QuerySQL',
   EntityPageList = '/Base/QueryCustomPage',
   IsAccountExist = '/Base/IsExist',
+  AddAfterDelete = '/Base/AddAfterDelete',
   setRoleStatus = '/system/setRoleStatus',
   MenuList = '/SYS/getMenuListAll',
   SaveMenu = '/SYS/SaveMenu',
@@ -704,9 +704,46 @@
  * @return {*}
  */
 export async function getListByPage<T>(params: T) {
+  const sqlcmd = ReturnSqlcmd(params);
+  let order = '';
+  if (!isNullOrEmpty(params['order'])) {
+    order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field'];
+  }
+  const rParams = genAction(params['TABLE_NAME'], {
+    QueryAble_T: '',
+    where: sqlcmd,
+    order: order,
+    page: {
+      pageAble_T: 'string',
+      draw: 1,
+      pageIndex: params['page'],
+      pageSize: params['pageSize'],
+    },
+  });
+  return getListByPageAsync(rParams);
+}
+async function getListByPageAsync(params: any) {
+  const data = await defHttp.post(
+    { url: Api.QueryUrl, params, timeout: 50000 },
+    {
+      isTransformResponse: false,
+    },
+  );
+  const model = {
+    items: data.Data.page.data,
+    total: data.Data.page.totals,
+  };
+  return model;
+}
+
+/**
+ * @description: 鏍规嵁鏌ヨ鏉′欢鍙傛暟鎷兼帴鏌ヨ鏉′欢
+ * @param {T} params
+ * @return {*}
+ */
+export function ReturnSqlcmd<T>(params: T) {
   const Keys = Object.getOwnPropertyNames(params);
   let sqlcmd = '1=1 ';
-  let order = '';
   for (const k in Keys) {
     console.log(`${k}:${Keys[k]}`);
     if (
@@ -727,34 +764,7 @@
       }
     }
   }
-  if (!isNullOrEmpty(params['order'])) {
-    order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field'];
-  }
-  const rParams = genAction(params['TABLE_NAME'], {
-    QueryAble_T: '',
-    where: sqlcmd,
-    order: order,
-    page: {
-      pageAble_T: 'string',
-      draw: 1,
-      pageIndex: params['page'],
-      pageSize: params['pageSize'],
-    },
-  });
-  return getListByPageAsync(rParams);
-}
-async function getListByPageAsync(params: any) {
-  const data = await defHttp.post(
-    { url: Api.QueryUrl, params,timeout:50000 },
-    {
-      isTransformResponse: false,
-    },
-  );
-  const model = {
-    items: data.Data.page.data,
-    total: data.Data.page.totals,
-  };
-  return model;
+  return sqlcmd;
 }
 
 export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) {
@@ -769,7 +779,7 @@
     );
   } else {
     var check = await isExist(genAction(entityName, args[0]));
-    if(check.Data){
+    if (check.Data) {
       check.IsSuccessed = false;
       check.Message = '璁板綍宸茬粡瀛樺湪锛屼笉鑳芥柊澧烇紒';
       return check;
@@ -809,6 +819,31 @@
 }
 
 /**
+ * @description: 鍏堝垹闄ゅ悗娣诲姞Api
+ * @param {T} params
+ * @param {string} entityName
+ * @param {*} items
+ * @return {*}
+ */
+export async function AddAfterDelete(entityName: string, items: [], where: string) {
+  let data = await defHttp.post(
+    {
+      url: Api.AddAfterDelete,
+      params: genAction(entityName, {
+        QueryAble_T: '',
+        where: where,
+        Items: items,
+      }),
+    },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+    },
+  );
+  return data;
+}
+
+/**
  * @description: 鏍规嵁鏉′欢鍒犻櫎
  * @param {string} sqlcmd
  * @param {string} entityName
diff --git a/src/views/tigerprojects/system/lowcode/data.ts b/src/views/tigerprojects/system/lowcode/data.ts
index d1ad12c..80cde58 100644
--- a/src/views/tigerprojects/system/lowcode/data.ts
+++ b/src/views/tigerprojects/system/lowcode/data.ts
@@ -4,27 +4,19 @@
  * @version:
  * @Date: 2024-06-02 17:52:35
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-29 06:12:26
+ * @LastEditTime: 2024-07-02 19:40:27
  */
 
-import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
+import { ActionItem, FormSchema } from '/@/components/Table';
 import { useI18n } from '/@/hooks/web/useI18n';
 import { isNullOrEmpty } from '/@/utils/is';
 import { woCustFn, woformSchema } from '/@/views/components/bizMesWo';
 import { useModal } from '/@/components/Modal';
-import LogicFlow from '@logicflow/core';
-import { BpmnElement } from '@logicflow/extension/es/bpmn';
-import { Ref, ref, unref } from 'vue';
-import customEdge from '/@/components/FlowChart/src/customEdge';
-import actionRect from '/@/components/FlowChart/src/actionRect';
-import TestNode from '/@/components/FlowChart/src/TestNode';
-import CollectNode from '/@/components/FlowChart/src/CollectNode';
-import AssemblyNode from '/@/components/FlowChart/src/AssemblyNode';
-import PackingNode from '/@/components/FlowChart/src/PackingNode';
-import RepairNode from '/@/components/FlowChart/src/RepairNode';
+import { Ref, unref } from 'vue';
 import { getRouteData } from '/@/api/tigerapi/mes/router';
-import { toLogicFlowData } from '/@/components/FlowChart/src/adpterForTurbo';
-import { SelectionSelect } from '@logicflow/extension';
+import { buildUUID } from '/@/utils/uuid';
+import { useUserStore } from '/@/store/modules/user';
+import { formatToDateTime } from '/@/utils/dateUtil';
 
 const { t } = useI18n();
 /**
@@ -157,10 +149,10 @@
 }
 
 /**
-   * @description: 宸ヨ壓璺嚎鍒濆鍖�
-   * @param {*} lf
-   * @return {*}
-   */
+ * @description: 宸ヨ壓璺嚎鍒濆鍖�
+ * @param {*} lf
+ * @return {*}
+ */
 export async function initRoute(lf, rotId, routeData, currlf) {
   currlf.value = unref(lf);
   //閫氳繃宸ヨ壓璺嚎ID鑾峰彇鍥惧舰鏁版嵁锛屽苟娓叉煋
@@ -184,3 +176,48 @@
     unref(lf).render(routeData.value);
   }
 }
+
+/* 楂樼骇琛ㄥ崟鍏敤鏂规硶 *********************************Start */
+
+/**
+ * @description: 鏌ヨ鑷畾涔夋柟娉曪紝褰撳湪楂樼骇琛ㄥ崟涓殑琛ㄦ牸涓煡璇㈡椂瑙﹀彂浜嬩欢锛屽苟鎶妠 type: type, data: data }浼犲埌鐖剁粍浠�
+ * @param {string} type 琛ㄦ牸鐨勫悕瀛楋紝濂界‘瀹氭槸鍝釜琛ㄦ牸瑕佹煡璇�
+ * @param {Ref} data 姝よ〃鏍肩殑鍘熸暟鎹�
+ * @param {*} emit dtl缁勪欢鐨勪簨浠讹紝瑙﹀彂涓�涓�'search'浜嬩欢
+ * @return {*}
+ */
+export async function Search(type: string, data: Ref<any>, emit) {
+  emit('search', { type: type, data: data });
+}
+
+/**
+ * @description: 楂樼骇琛ㄥ崟鏂板缂栬緫鏂规硶
+ * @param {Ref} data
+ * @param {*} d
+ * @param {*} u
+ * @param {*} item
+ * @param {*} updates
+ * @return {*}
+ */
+export function EditOperation(data: Ref<any[]>, d, u, item, updates) {
+  if (u.isUpdate) {
+    //鏇存柊
+    data.value[item] = updates;
+  } else {
+    //鏂板
+    d.ID = buildUUID();
+    d.CREATE_USER = useUserStore().getUserInfo.userId as string;
+    d.UPDATE_TIME = formatToDateTime(new Date());
+    d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
+    var _data2: any[] = [];
+    if (!isNullOrEmpty(data.value[item])) {
+      _data2 = data.value[item].map((item) => {
+        return item;
+      });
+    }
+    _data2.push(d);
+    data.value[item] = _data2;
+  }
+}
+
+/* 楂樼骇琛ㄥ崟鍏敤鏂规硶 *********************************End */
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
index 614a8d4..d2cd403 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
@@ -4,12 +4,12 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 17:04:43
+ * @LastEditTime: 2024-07-02 20:00:10
  */
 
 import { Ref, h, unref } from 'vue';
 import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { buildUUID } from '/@/utils/uuid';
 import { useUserStore } from '/@/store/modules/user';
@@ -17,6 +17,7 @@
 import { Tag } from 'ant-design-vue';
 import { useLocale } from '/@/locales/useLocale';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
 
 const { getLocale } = useLocale();
 function _default() {
@@ -145,15 +146,16 @@
      * @param {array} args
      * @return {*}
      */    
-    GetUseTables: (data: any[], ...args) => {
+    GetUseTables: (data: Ref<{}>, ...args) => {
       return {
         BAS_DEFECT: useTable({
           title: '鍒楄〃淇℃伅',
-          dataSource: data,
+          dataSource: data.value['BAS_DEFECT'],
           columns: baseColumns['BAS_DEFECT'],
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['BAS_DEFECT'],
+            submitFunc: () => Search('BAS_DEFECT', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -170,6 +172,26 @@
         })
       };
     },
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'BAS_DEFECT':
+          data = d.data.value[d.type].filter(
+            (item) =>
+              item.DFT_CODE.includes(d.values.DFT_CODE) || item.DFT_NAME == d.values.DFT_NAME,
+          );
+          if (isNullOrEmpty(d.values.DFT_CODE) && isNullOrEmpty(d.values.DFT_NAME)) {
+            data = d.data.value[d.type];
+          }
+          break;
+      }
+      return data;
+    },
     OthersValues: (val: string, id: string) => {
       return { DFTG_CODE: val };
     } /**
@@ -179,36 +201,20 @@
      * @param {*} u
      * @return {*}
      */,
-    EditOperation: (data: Ref<any[]>, d, u) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
-            return {
-              ...item,
-              DFT_CODE: d.DFT_CODE,
-              DFT_NAME: d.DFT_NAME,
-              DFT_LEVEL: d.DFT_LEVEL,
-              REMARK: d.REMARK,
-            };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value)) {
-          _data2 = data.value.map((item) => {
-            return item;
-          });
-        }
-        _data2.push(d);
-        data.value = _data2;
-      }
+    EditOperation: (data: Ref<any[]>, d, u, item) => {
+      //鏇存柊
+      var _data = data.value[item].map((item) => {
+        if (item['ID'] == d.ID)
+          return {
+            ...item,
+            DFT_CODE: d.DFT_CODE,
+            DFT_NAME: d.DFT_NAME,
+            DFT_LEVEL: d.DFT_LEVEL,
+            REMARK: d.REMARK,
+          };
+        return item;
+      });
+      EditOperation(data,d, u, item, _data);
     },
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
@@ -324,7 +330,7 @@
           span: 8,
         },
       },
-    ]
+    ] as FormSchema[],
   }
 
   const crudForms = {
@@ -398,7 +404,7 @@
         },
         show: false,
       },
-    ]
+    ] as FormSchema[],
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts
index ec51dd6..a450218 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 20:14:03
+ * @LastEditTime: 2024-07-02 21:06:18
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -120,12 +120,16 @@
       CODE: params['record']['DFTG_CODE'],
       ID: params['record']['ID'],
       Name: 'BAS_DEFECT',
+      SessionName: 'BAS_DEFECT_update',
       Title: `缂栬緫涓嶈壇浠g爜缁勶細${params['record']['DFTG_CODE']}`,
       pCode: 'DFTG_CODE',
       IsID: false,
       drawers: [{ name: 'BAS_DEFECT', code: 'DFTG_CODE' }], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
-    args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify(param))}`);
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${param.SessionName}_params`);
+    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
+    args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
index d957ead..d26dd9d 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
@@ -4,17 +4,18 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 17:08:25
+ * @LastEditTime: 2024-07-02 19:59:52
  */
 
 import { Ref } from 'vue';
 import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { buildUUID } from '/@/utils/uuid';
 import { useUserStore } from '/@/store/modules/user';
 import { formatToDateTime } from '/@/utils/dateUtil';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
 
 function _default(): any[] {
   const ActionColumn: BasicColumn = {
@@ -57,37 +58,21 @@
      * @param {*} u
      * @return {*}
      */
-    EditOperation: (data: Ref<any[]>, d, u) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
-            return {
-              ...item,
-              PKG_CODE: d.PKG_CODE,
-              PKG_LEVEL: d.PKG_LEVEL,
-              PKG_QTY: d.PKG_QTY,
-              LABEL_CODE: d.LABEL_CODE,
-              REMARK: d.REMARK,
-            };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value)) {
-          _data2 = data.value.map((item) => {
-            return item;
-          });
-        }
-        _data2.push(d);
-        data.value = _data2;
-      }
+    EditOperation: (data: Ref<any[]>, d, u, item) => {
+      //鏇存柊
+      var _data = data.value[item].map((item) => {
+        if (item['ID'] == d.ID)
+          return {
+            ...item,
+            PKG_CODE: d.PKG_CODE,
+            PKG_LEVEL: d.PKG_LEVEL,
+            PKG_QTY: d.PKG_QTY,
+            LABEL_CODE: d.LABEL_CODE,
+            REMARK: d.REMARK,
+          };
+        return item;
+      });
+      EditOperation(data,d, u, item, _data);
     },
     /**
      * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl
@@ -218,15 +203,16 @@
      * @param {array} args
      * @return {*}
      */
-    GetUseTables: (data: any[], ...args) => {
+    GetUseTables: (data: Ref<{}>, ...args) => {
       return {
         BAS_PKG_DTL: useTable({
           title: '鍒楄〃淇℃伅',
-          dataSource: data,
+          dataSource: data.value['BAS_PKG_DTL'],
           columns: baseColumns['BAS_PKG_DTL'],
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['BAS_PKG_DTL'],
+            submitFunc: () => Search('BAS_PKG_DTL', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -242,6 +228,23 @@
           }, //鑷畾涔夋搷浣滃垪
         }),
       };
+    },
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'BAS_PKG_DTL':
+          data = d.data.value[d.type].filter((item) => item.PKG_CODE.includes(d.values.PKG_CODE));
+          if (isNullOrEmpty(d.values.PKG_CODE)) {
+            data = d.data.value[d.type];
+          }
+          break;
+      }
+      return data;
     },
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
@@ -297,7 +300,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
   };
 
   const baseColumns = {
@@ -333,7 +336,7 @@
         title: '鏇存柊浜�',
         dataIndex: 'UPDATE_USER',
       },
-    ],
+    ] as BasicColumn[],
   };
 
   const crudForms = {
@@ -399,7 +402,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
index 8a3daed..a4ccad7 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 20:14:42
+ * @LastEditTime: 2024-07-02 21:03:23
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -69,12 +69,16 @@
       CODE: params['record']['RULE_CODE'],
       ID: params['record']['ID'],
       Name: 'BAS_PKG_DTL',
+      SessionName: 'BAS_PKG_DTL_update',
       Title: `缂栬緫鍖呰瑙勫垯锛�${params['record']['RULE_CODE']}`,
       pCode: 'PKG_RULE_ID',
       IsID: true,
       drawers: [{ name: 'BAS_PKG_DTL', code: 'PKG_RULE_ID' }], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
-    go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify(param))}`);
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${param.SessionName}_params`);
+    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
+    go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
index b1ff66d..2474329 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
@@ -4,17 +4,18 @@
  * @version:
  * @Date: 2024-06-22 00:58:43
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 17:13:16
+ * @LastEditTime: 2024-07-02 19:59:39
  */
 import { Ref, h } from 'vue';
 import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { buildUUID } from '/@/utils/uuid';
 import { useUserStore } from '/@/store/modules/user';
 import { formatToDateTime } from '/@/utils/dateUtil';
 import { Tag } from 'ant-design-vue';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
 
 function _default() {
   const ActionColumn: BasicColumn = {
@@ -56,36 +57,20 @@
      * @param {*} u
      * @return {*}
      */
-    EditOperation: (data: Ref<any[]>, d, u) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
-            return {
-              ...item,
-              RSN_CODE: d.RSN_CODE,
-              RSN_NAME: d.RSN_NAME,
-              NEED_REPLACE: d.NEED_REPLACE,
-              REMARK: d.REMARK,
-            };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value)) {
-          _data2 = data.value.map((item) => {
-            return item;
-          });
-        }
-        _data2.push(d);
-        data.value = _data2;
-      }
+    EditOperation: (data: Ref<any[]>, d, u, item) => {
+       //鏇存柊
+       var _data = data.value[item].map((item) => {
+        if (item['ID'] == d.ID)
+          return {
+            ...item,
+            RSN_CODE: d.RSN_CODE,
+            RSN_NAME: d.RSN_NAME,
+            NEED_REPLACE: d.NEED_REPLACE,
+            REMARK: d.REMARK,
+          };
+        return item;
+      });
+      EditOperation(data,d, u, item, _data);
     },
     /**
      * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl
@@ -170,15 +155,16 @@
      * @param {array} args
      * @return {*}
      */
-    GetUseTables: (data: any[], ...args) => {
+    GetUseTables: (data: Ref<{}>, ...args) => {
       return {
         BAS_REASON: useTable({
           title: '鍒楄〃淇℃伅',
-          dataSource: data,
+          dataSource: data.value['BAS_REASON'],
           columns: baseColumns['BAS_REASON'],
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['BAS_REASON'],
+            submitFunc: () => Search('BAS_REASON', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -194,6 +180,26 @@
           }, //鑷畾涔夋搷浣滃垪
         }),
       };
+    },
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'BAS_REASON':
+          data = d.data.value[d.type].filter(
+            (item) =>
+              item.RSN_CODE.includes(d.values.RSN_CODE) || item.RSN_NAME == d.values.RSN_NAME,
+          );
+          if (isNullOrEmpty(d.values.RSN_CODE) && isNullOrEmpty(d.values.RSN_NAME)) {
+            data = d.data.value[d.type];
+          }
+          break;
+      }
+      return data;
     },
     OthersValues: (val: string, id: string) => {
       return { RSNG_CODE: val };
@@ -289,7 +295,7 @@
         title: '鏇存柊浜�',
         dataIndex: 'UPDATE_USER',
       },
-    ],
+    ] as BasicColumn[],
   };
 
   const searchForms = {
@@ -310,7 +316,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
   };
 
   const crudForms = {
@@ -391,7 +397,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts
index ca3d931..7b03b74 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 20:15:46
+ * @LastEditTime: 2024-07-02 21:29:04
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -111,12 +111,16 @@
       CODE: params['record']['RSNG_CODE'],
       ID: params['record']['ID'],
       Name: 'BAS_REASON',
+      SessionName: 'BAS_REASON_update',
       Title: `缂栬緫涓嶈壇鍘熷洜缁勶細${params['record']['RSNG_CODE']}`,
       pCode: 'RSNG_CODE',
       IsID: false,
       drawers: [{ name: 'BAS_REASON', code: 'RSNG_CODE' }], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
-    args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify(param))}`);
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${param.SessionName}_params`);
+    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
+    args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
index 900d7f2..be4ec99 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -4,12 +4,12 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-02 03:40:15
+ * @LastEditTime: 2024-07-02 19:41:38
  */
 
 import { Ref, h, ref, unref } from 'vue';
 import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { buildUUID } from '/@/utils/uuid';
 import { useUserStore } from '/@/store/modules/user';
@@ -17,29 +17,11 @@
 import { Tag } from 'ant-design-vue';
 import { useLocale } from '/@/locales/useLocale';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
 
 const { getLocale } = useLocale();
 function _default() {
-  let _data = ref([
-    {
-      SFT_CODE: '1',
-      SFT_NAME: '1',
-      SFTS_CODE: '1',
-      SFT_BEGIN: 1,
-      SFT_END: 1,
-      IS_ACROSS_DAY: 'N',
-      REMARK: '1',
-      AUTH_ORG: '1',
-      AUTH_PROD: '1',
-      AUTH_WH: '1',
-      GHOST_ROW: false,
-      CREATE_TIME: '2024-07-01 12:34:29',
-      CREATE_USER: '1',
-      UPDATE_TIME: '2024-07-01 12:34:29',
-      UPDATE_USER: '1',
-      ID: '6632a14fec8c470c9216f5c7354baa22',
-    },
-  ] as Recordable<any>[]);
+  let _data = ref<any>({});
   const ActionColumn: BasicColumn = {
     width: 80,
     title: '鎿嶄綔',
@@ -203,9 +185,11 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT'],
           columns: baseColumns['MES_SHIFT'],
+          maxHeight: 230,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT'],
+            submitFunc: () => Search('MES_SHIFT', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -224,9 +208,11 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT_PRD'],
           columns: baseColumns['MES_SHIFT_PRD'],
+          maxHeight: 260,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT_PRD'],
+            submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -243,6 +229,28 @@
         }),
       };
     },
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'MES_SHIFT':
+          data = d.data.value[d.type].filter(
+            (item) =>
+              item.SFT_CODE.includes(d.values.SFT_CODE) || item.SFT_NAME == d.values.SFT_NAME,
+          );
+          if (isNullOrEmpty(d.values.SFT_CODE) && isNullOrEmpty(d.values.SFT_NAME)) {
+            data = d.data.value[d.type];
+          }
+          break;
+        case 'MES_SHIFT_PRD':
+          break;
+      }
+      return data;
+    },
     OthersValues: (val: string, id: string) => {
       return { SFTS_CODE: val };
     } /**
@@ -253,37 +261,21 @@
      * @return {*}
      */,
     EditOperation: (data: Ref<any[]>, d, u, item) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
-            return {
-              ...item,
-              SFT_CODE: d.SFT_CODE,
-              SFT_NAME: d.SFT_NAME,
-              SFT_BEGIN: d.SFT_BEGIN,
-              SFT_END: d.SFT_END,
-              IS_ACROSS_DAY: d.IS_ACROSS_DAY,
-              REMARK: d.REMARK,
-            };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value[item])) {
-          _data2 = data.value[item].map((item) => {
-            return item;
-          });
-        }
-        _data2.push(d);
-        data.value[item] = _data2;
-      }
+       //鏇存柊
+       var _data = data.value[item].map((item) => {
+        if (item['ID'] == d.ID)
+          return {
+            ...item,
+            SFT_CODE: d.SFT_CODE,
+            SFT_NAME: d.SFT_NAME,
+            SFT_BEGIN: d.SFT_BEGIN,
+            SFT_END: d.SFT_END,
+            IS_ACROSS_DAY: d.IS_ACROSS_DAY,
+            REMARK: d.REMARK,
+          };
+        return item;
+      });
+      EditOperation(data,d, u, item, _data);
     },
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
@@ -492,7 +484,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
     MES_SHIFT_PRD: [
       {
         field: 'PRD_CODE',
@@ -510,7 +502,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
   };
 
   const crudForms = {
@@ -643,7 +635,7 @@
           span: 24,
         },
         componentProps: () => {
-          const options = _data.map((entity) => ({
+          const options = _data.value['MES_SHIFT'].map((entity) => ({
             value: entity.SFT_CODE,
             label: entity.SFT_NAME,
           }));
diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
index ad2cdae..ab2ffb7 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-02 03:29:35
+ * @LastEditTime: 2024-07-02 21:28:53
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -123,6 +123,7 @@
       CODE: params['record']['SFTS_CODE'], //CODE鐨勫��
       ID: params['record']['ID'], //ID鍊�
       Name: 'MES_SHIFT', //瀹炰綋鍚�
+      SessionName: 'MES_SHIFT_update', //SessionStorage鐨刱ey
       Title: `缂栬緫鐝埗锛�${params['record']['SFTS_CODE']}`, //鏍囬
       // pCode: 'SFTS_CODE', //涓讳俊鎭叧閿瓧娈礐ODE锛岄珮绾ц〃鍗曠敤涓嬮潰drawers閲岀殑code
       IsID: false, //鏄惁甯﹁繃鍘讳晶杈规鐨勬槸ID锛宖alse灏辨槸CODE锛宼rue鏄疘D
@@ -131,7 +132,10 @@
         { name: 'MES_SHIFT_PRD', code: 'SFT_CODE' },
       ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
-    args[5](`/MES_SHIFT/High/${encodeURI(JSON.stringify(param))}`);
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${param.SessionName}_params`);
+    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
+    args[5](`/MES_SHIFT/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
index 73e3193..1efbb48 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
@@ -4,12 +4,12 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 17:17:58
+ * @LastEditTime: 2024-07-02 19:43:08
  */
 
 import { Ref, h, unref } from 'vue';
 import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 import { buildUUID } from '/@/utils/uuid';
 import { useUserStore } from '/@/store/modules/user';
@@ -17,6 +17,7 @@
 import { Tag } from 'ant-design-vue';
 import { useLocale } from '/@/locales/useLocale';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
 
 const { getLocale } = useLocale();
 function _default() {
@@ -33,36 +34,20 @@
    * @return {*}
    */
   const methods = {
-    EditOperation: (data: Ref<any[]>, d, u) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
-            return {
-              ...item,
-              STD_CODE: d.STD_CODE,
-              STD_NAME: d.STD_NAME,
-              STD_TYPE: d.STD_TYPE,
-              REMARK: d.REMARK,
-            };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value)) {
-          _data2 = data.value.map((item) => {
-            return item;
-          });
-        }
-        _data2.push(d);
-        data.value = _data2;
-      }
+    EditOperation: (data: Ref<any[]>, d, u, item) => {
+      //鏇存柊
+      var _data = data.value[item].map((item) => {
+        if (item['ID'] == d.ID)
+          return {
+            ...item,
+            STD_CODE: d.STD_CODE,
+            STD_NAME: d.STD_NAME,
+            STD_TYPE: d.STD_TYPE,
+            REMARK: d.REMARK,
+          };
+        return item;
+      });
+      EditOperation(data,d, u, item, _data);
     },
     /**
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
@@ -183,15 +168,16 @@
      * @param {array} args
      * @return {*}
      */
-    GetUseTables: (data: any[], ...args) => {
+    GetUseTables: (data: Ref<{}>, ...args) => {
       return {
         QMS_INS_ITEM: useTable({
           title: '鍒楄〃淇℃伅',
-          dataSource: data,
+          dataSource: data.value['QMS_INS_ITEM'],
           columns: baseColumns['QMS_INS_ITEM'],
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['QMS_INS_ITEM'],
+            submitFunc: () => Search('QMS_INS_ITEM', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
           showTableSetting: true,
@@ -208,6 +194,26 @@
         }),
         MES_SHIFT_PRD: useTable(),
       };
+    },
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'QMS_INS_ITEM':
+          data = d.data.value[d.type].filter(
+            (item) =>
+              item.INS_CODE.includes(d.values.INS_CODE) || item.INS_NAME == d.values.INS_NAME,
+          );
+          if (isNullOrEmpty(d.values.INS_CODE) && isNullOrEmpty(d.values.INS_NAME)) {
+            data = d.data.value[d.type];
+          }
+          break;
+      }
+      return data;
     },
     OthersValues: (val: string, id: string) => {
       return { TECH_STD: val };
@@ -359,7 +365,7 @@
         title: '鏇存柊浜�',
         dataIndex: 'UPDATE_USER',
       },
-    ],
+    ] as BasicColumn[],
   };
 
   const searchForms = {
@@ -380,7 +386,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
   };
 
   const crudForms = {
@@ -462,7 +468,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
index 4352564..78087a2 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-01 20:16:53
+ * @LastEditTime: 2024-07-02 21:29:12
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -122,13 +122,17 @@
       CODE: params['record']['STD_CODE'],
       ID: params['record']['ID'],
       Name: 'QMS_INS_ITEM', //涓�鑸槸鏄庣粏琛ㄥ疄浣�
+      SessionName: 'QMS_INS_ITEM_update', //SessionStorage鐨刱ey
       Title: `缂栬緫妫�楠岄」鐩細${params['record']['STD_CODE']}`,
       pCode: 'TECH_STD', //璺宠浆鍒伴珮绾ц〃鍗曠殑鍏抽敭瀛楁鍚�
       mCode: 'STD_CODE', //璺宠浆鍒伴珮绾ц〃鍗曠殑鍏抽敭瀛楁鍚嶆槧灏勫瓧娈�
       IsID: false,
       drawers: [{ name: 'QMS_INS_ITEM', code: 'STD_CODE' }], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
-    args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify(param))}`);
+    // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+    sessionStorage.removeItem(`${param.SessionName}_params`);
+    sessionStorage.setItem(`${param.SessionName}_update_params`, encodeURI(JSON.stringify(param)));
+    args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/high/baseForm.vue b/src/views/tigerprojects/system/lowcode/high/baseForm.vue
index 1549a67..80bf4ef 100644
--- a/src/views/tigerprojects/system/lowcode/high/baseForm.vue
+++ b/src/views/tigerprojects/system/lowcode/high/baseForm.vue
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-06-23 17:21:29
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-23 18:08:08
+ * @LastEditTime: 2024-07-02 21:26:46
 -->
 <template>
   <a-card
@@ -22,13 +22,15 @@
   import { Card } from 'ant-design-vue';
   import { getEntity } from '/@/api/tigerapi/system';
   import { isNullOrEmpty } from '/@/utils/is';
-
+  const props = defineProps({
+    entityName: { type: String },
+  });
   const ACard = Card;
   const objParams = inject('objParams') as Ref<any>;
   const useFormData = inject('useFormData') as Ref<{}>;
   const baseCards = inject('baseCards') as Ref<any>;
   const custImport = ref<any[]>(
-    await import(`../entityts/${objParams['Name']}.ts`),
+    await import(`../entityts/${props.entityName}.ts`),
   );
   const [
     {
@@ -55,7 +57,7 @@
   onMounted(() => {
     useFormData.value[_baseCards.value[0]['name']][1].resetFields();
     getEntity({
-      sqlcmd: ` ID = '${objParams['ID']}'`,
+      sqlcmd: ` ID = '${objParams.value['ID']}'`,
       entityName: _baseCards.value[0]['entityName'],
     }).then((res) => {
       if (!isNullOrEmpty(res.Data.Items)) {
diff --git a/src/views/tigerprojects/system/lowcode/high/dtl.vue b/src/views/tigerprojects/system/lowcode/high/dtl.vue
index f7b1691..389a2b9 100644
--- a/src/views/tigerprojects/system/lowcode/high/dtl.vue
+++ b/src/views/tigerprojects/system/lowcode/high/dtl.vue
@@ -53,6 +53,7 @@
 
   const { t } = useI18n();
   const ACard = Card;
+  const emit = defineEmits(['search']);
   const props = defineProps({
     colSlots: { type: Array as PropType<any[]> },
     useTableData: { type: Object as PropType<{}>, default: { table: [] } },
@@ -61,6 +62,7 @@
   });
   const objParams = inject('objParams') as Ref<any>;
   const data = inject('data') as Ref<any>;
+  const _useTables = inject('useTables') as Ref<any>;
   const useFormData = inject('useFormData') as Ref<{}>;
   const others = inject('others') as Ref<Recordable[]>;
   const go = useGo();
@@ -103,10 +105,11 @@
   ] = isNullOrUnDef(custImport.value['default'])
     ? EntityCustFunction.value
     : custImport.value['default']();
-  others.value = OthersValues(objParams['CODE'], objParams['ID']);
-  const drawers = ref<any[]>(objParams['drawers']);
-  const useTables = GetUseTables(data);
+  others.value = OthersValues(objParams.value['CODE'], objParams.value['ID']);
+  const drawers = ref<any[]>(objParams.value['drawers']);
+  const useTables = GetUseTables(data, emit);
   const useDrawers = GetUseDrawers();
+  _useTables.value = useTables;
   // watch(
   //   () => props.dataSource,
   //   (newVal, oldVal) => {
@@ -157,7 +160,7 @@
       isUpdate: true,
       ifSave: true,
       entityName: props.entityName,
-      formJson: GetCrudForm(item), //getFormSchema(`${entityName.value}_Crud`),
+      formJson: GetCrudForm(item, data), //getFormSchema(`${entityName.value}_Crud`),
       cType,
       dtlSlots,
       useModalData,
@@ -183,8 +186,7 @@
     if (isNullOrUnDef(custImport.value)) {
       return actionItem;
     }
-    const [{ ActionItem }] = custImport.value['default']();
-    return ActionItem(
+    return nActionItem(
       params,
       actionItem,
       useDrawers[index][item][1].openDrawer,
@@ -242,18 +244,18 @@
       const Keys = Object.getOwnPropertyNames(useFormData.value);
       let i;
       for (i = 0; i < Keys.length; i++) {
-        others.value[objParams['pCode']] = objParams['IsID']
+        others.value[objParams.value['pCode']] = objParams.value['IsID']
           ? res[Keys[i]]['ID']
-          : res[Keys[i]][objParams['pCode']] == '0' ||
-              isNullOrUnDef(res[Keys[i]][objParams['pCode']])
-            ? res[Keys[i]][objParams['mCode']]
-            : res[Keys[i]][objParams['pCode']];
+          : res[Keys[i]][objParams.value['pCode']] == '0' ||
+              isNullOrUnDef(res[Keys[i]][objParams.value['pCode']])
+            ? res[Keys[i]][objParams.value['mCode']]
+            : res[Keys[i]][objParams.value['pCode']];
       }
       useDrawers[index][item][1].openDrawer(true, {
         isUpdate: false,
         ifSave: true,
         entityName: props.entityName,
-        formJson: GetCrudForm(item), //getFormSchema(`${entityName.value}_Crud`),
+        formJson: GetCrudForm(item, data), //getFormSchema(`${entityName.value}_Crud`),
         crudColSlots: props.crudColSlots,
         others: others.value,
       });
diff --git a/src/views/tigerprojects/system/lowcode/high/index.vue b/src/views/tigerprojects/system/lowcode/high/index.vue
index 8a05ce8..2fc2b7a 100644
--- a/src/views/tigerprojects/system/lowcode/high/index.vue
+++ b/src/views/tigerprojects/system/lowcode/high/index.vue
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-06-18 15:09:48
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-02 03:42:25
+ * @LastEditTime: 2024-07-02 22:51:31
 -->
 <!--
  *                        _oo0oo_
@@ -49,12 +49,12 @@
     @back="goBack"
   >
     <Suspense>
-      <baseForm />
+      <baseForm :entityName="entityName" />
     </Suspense>
     <!-- <a-card :title="titleInfo['baseTableTitle']" :bordered="false" class="!mt-5"> -->
-      <Suspense>
-        <dtl :entityName="entityName" />
-      </Suspense>
+    <Suspense>
+      <dtl :entityName="entityName" @search="dtlFormSearch" />
+    </Suspense>
     <!-- </a-card> -->
     <a-card
       :title="item.title"
@@ -105,7 +105,13 @@
   import dtl from './dtl.vue';
   import baseForm from './baseForm.vue';
   import GeneralModal from '/@/views/components/GeneralModal.vue';
-  import { AddListEntity, DeleteWhere, SaveEntity, getEntity } from '/@/api/tigerapi/system';
+  import {
+    AddAfterDelete,
+    AddListEntity,
+    DeleteWhere,
+    SaveEntity,
+    getEntity,
+  } from '/@/api/tigerapi/system';
   import { useGlobSetting } from '/@/hooks/setting';
   import { useRoute, useRouter } from 'vue-router';
   import CustModal from '/@/views/components/CustModal.vue';
@@ -119,7 +125,6 @@
   import { buildUUID } from '/@/utils/uuid';
   import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
   import { useI18n } from '/@/hooks/web/useI18n';
-import { Reactified } from '@vueuse/core';
 
   const { t } = useI18n();
 
@@ -135,9 +140,12 @@
     return tabStore.getTabList.find((item) => item.fullPath === route.fullPath)!;
   }
   const currentTab = getCurrentTab();
-  const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
+  const routeParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
+  const entityName = ref(routeParams.value.Name);
+  // 浠巗essionStorage涓鍙栧弬鏁板苟杞崲鍥炲璞�
+  const savedParams = sessionStorage.getItem(`${routeParams.value.sName}_params`);
+  const objParams = savedParams ? ref(JSON.parse(decodeURI(savedParams))) : ref({});
   const titleInfo = ref({}); //getTitle(objParams.value.Name);
-  const entityName = ref(objParams.value.Name);
   const isAllUpdate = ref(objParams.value.CODE != '0');
   const globSetting = useGlobSetting();
   const formSchemas = ref({}); //寮瑰嚭妗嗘垨楂樼骇椤甸潰澶氳〃鍗曠粨鏋�
@@ -153,14 +161,16 @@
   const custImport = ref<any[]>([]);
   const others = ref<any>(null);
   const data = ref<any>({});
-  for(const i in objParams.value['drawers']){
+  const useTables = ref<any>({});
+  for (const i in objParams.value['drawers']) {
     data.value[objParams.value['drawers'][i]['name']] = ref<Recordable[]>([]);
   }
-  provide<Ref<any>>('objParams', objParams.value);
+  provide<Ref<any>>('objParams', objParams);
   provide<Ref<any>>('data', data);
   provide<Ref<any>>('others', others);
   provide<Ref<{}>>('useFormData', useFormData);
   provide<Ref<any>>('baseCards', baseCards);
+  provide<Ref<any>>('useTables', useTables);
 
   const [registerCust, { openModal: openCustomModal, closeModal }] = useModal();
   const { setTitle } = useTabs();
@@ -180,7 +190,7 @@
     /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
     try {
       custImport.value = await import(`../entityts/${entityName.value}.ts`);
-      const [{GetTitle}] = custImport.value['default']();
+      const [{ GetTitle }] = custImport.value['default']();
       titleInfo.value = GetTitle();
     } catch (e) {}
     isMounted.value = true;
@@ -200,19 +210,32 @@
           p.push(SaveEntity(res[Keys[i]], unref(isAllUpdate), baseCards.value[i]['entityName']));
         }
         Promise.all(p).then((action) => {
-          DeleteWhere(
-            ` ${objParams.value.pCode} = '${others.value[objParams.value.pCode]}'`,
-            entityName.value,
-          ).then((res) => {
-            if (res.IsSuccessed) {
-              data.value.forEach((item) => {
-                item.ID = buildUUID();
-              });
-              AddListEntity(data.value, entityName.value).then((action) => {
-                if (action.IsSuccessed) {
-                  cancel();
-                }
-              });
+          // DeleteWhere(
+          //   ` ${objParams.value.pCode} = '${others.value[objParams.value.pCode]}'`,
+          //   entityName.value,
+          // ).then((res) => {
+          //   if (res.IsSuccessed) {
+          //     data.value.forEach((item) => {
+          //       item.ID = buildUUID();
+          //     });
+          //     AddListEntity(data.value, entityName.value).then((action) => {
+          //       if (action.IsSuccessed) {
+          //         cancel();
+          //       }
+          //     });
+          //   }
+          // });
+          let where = `${objParams.value['drawers'][0]['code']} = '${others.value[objParams.value['drawers'][0]['code']]}'`;
+          data.value[objParams.value['drawers'][0]['name']].forEach((item) => {
+            item.ID = buildUUID();
+          });
+          AddAfterDelete(
+            objParams.value['drawers'][0]['name'],
+            data.value[objParams.value['drawers'][0]['name']],
+            where,
+          ).then((action) => {
+            if (action.IsSuccessed) {
+              cancel();
             }
           });
         });
@@ -249,6 +272,25 @@
   }
 
   /**
+   * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛屾牴鎹搴斿瓙缁勪欢涓〃鏍肩殑鏌ヨ鎸夐挳鎻愪氦浜嬩欢杞叆鍔ㄦ�佽皟鐢ㄧ殑瀹炰綋鍚嶆柟娉曞幓鎵ц瀵瑰簲鐨勬煡璇㈤�昏緫锛岃繑鍥炲悗鍒锋柊鏁版嵁
+   * @param {*} d
+   * @return {*}
+   */
+  function dtlFormSearch(d) {
+    try {
+      var values = useTables.value[d.type][1].getForm().getFieldsValue();
+      let data = custImport.value['default']()[0].FormSearch({ ...d, ...{ values: values } });
+      useTables.value[d.type][1].setProps({
+        dataSource: [],
+      });
+      useTables.value[d.type][1].setProps({
+        dataSource: data,
+      });
+      useTables.value[d.type][1].reload();
+    } catch (e) {}
+  }
+
+  /**
    * @description: Select 鑷畾涔塷nChange鏂规硶
    * @param {*} obj
    * @return {*}
diff --git a/src/views/tigerprojects/system/lowcode/normal/mainTable.vue b/src/views/tigerprojects/system/lowcode/normal/mainTable.vue
index ff8814e..22e76eb 100644
--- a/src/views/tigerprojects/system/lowcode/normal/mainTable.vue
+++ b/src/views/tigerprojects/system/lowcode/normal/mainTable.vue
@@ -254,7 +254,9 @@
       const result = CreateAction(fnName);
       switch (result.action) {
         case 'go':
-          go(`/${result.url}/${encodeURI(JSON.stringify(result.params))}`);
+          // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+          sessionStorage.setItem(`${result.params.Name}_params`, encodeURI(JSON.stringify(result.params)));
+          go(`/${result.url}/${encodeURI(JSON.stringify({ sName: result.params.Name, Name: result.params.Name }))}`);
           break;
         case 'drawer':
           openDrawer(true, {

--
Gitblit v1.9.3