From cc88111d61a350a4d24cf339b526d4357f934ddf Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 30 七月 2024 00:31:12 +0800
Subject: [PATCH] 标签模板维护变量更新

---
 src/api/tigerapi/mes/mesApi.ts                                      |    4 
 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts |    2 
 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts   |    6 
 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts    |  510 +++++++++++++++++------
 src/api/tigerapi/model/basModel.ts                                  |    3 
 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts     |    2 
 src/api/tigerapi/mes/label.ts                                       |   34 +
 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts       |    2 
 src/views/tigerprojects/system/lowcode/high/edit/index.vue          |  103 ++++
 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts     |    2 
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts        |    2 
 src/views/tigerprojects/system/lowcode/high/baseForm.vue            |  120 +++++
 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts   |   91 ++-
 src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts       |    2 
 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts      |    2 
 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts       |    2 
 src/api/tigerapi/model/systemModel.ts                               |    2 
 src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts       |    4 
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts    |    4 
 src/api/tigerapi/model/mesModel.ts                                  |   62 ++
 src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue        |  134 ++++--
 src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts   |    6 
 src/views/tigerprojects/system/lowcode/detail/detail.vue            |    7 
 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts     |    2 
 src/api/tigerapi/system.ts                                          |    4 
 src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts     |  112 +++++
 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts      |    2 
 27 files changed, 939 insertions(+), 287 deletions(-)

diff --git a/src/api/tigerapi/mes/label.ts b/src/api/tigerapi/mes/label.ts
new file mode 100644
index 0000000..f754109
--- /dev/null
+++ b/src/api/tigerapi/mes/label.ts
@@ -0,0 +1,34 @@
+import { BasLabelTempInput } from '../model/mesModel';
+import { genAction, Api, genActionPage } from '../system';
+import { defHttp } from '/@/utils/http/axios';
+import { mesApi } from './mesApi';
+
+/**
+ * @description: 淇濆瓨鏍囩妯℃澘鏂规硶
+ * @param {BasLabelTempInput} params
+ * @return {*}
+ */
+export const SaveLabelTemplate = async (params: BasLabelTempInput) => {
+  const data = await defHttp.post(
+    { url: mesApi.SaveLabelTemplate, params: genAction('', params) },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+    },
+  );
+  return data;
+};
+
+/*
+ * 鍒犻櫎鏍囩妯℃澘
+ */
+export const DeleteLabelTemplate = async (params: string) => {
+  const usParams = genAction('', params);
+  return await defHttp.post(
+    { url: mesApi.DeleteLabelTemplate, params: usParams },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+    },
+  );
+};
diff --git a/src/api/tigerapi/mes/mesApi.ts b/src/api/tigerapi/mes/mesApi.ts
index 895e075..80d8944 100644
--- a/src/api/tigerapi/mes/mesApi.ts
+++ b/src/api/tigerapi/mes/mesApi.ts
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-04-27 15:54:50
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-23 21:59:18
+ * @LastEditTime: 2024-07-29 21:17:12
  */
 export enum mesApi {
   GetRoute = '/MES/GetRoute',
@@ -27,4 +27,6 @@
   DeleteWoRoute = '/MES/DeleteWoRoute',
   DeleteProdRoute = '/MES/DeleteProdRoute',
   UpdateWoStatus = '/MES/UpdateWoStatus',
+  SaveLabelTemplate = '/MES/SaveLabelTemplate',
+  DeleteLabelTemplate = '/MES/DeleteLabelTemplate',
 }
diff --git a/src/api/tigerapi/model/basModel.ts b/src/api/tigerapi/model/basModel.ts
index 19e4325..1d726be 100644
--- a/src/api/tigerapi/model/basModel.ts
+++ b/src/api/tigerapi/model/basModel.ts
@@ -123,7 +123,7 @@
  * @return {*}
  */
 export interface EntityCustFunctionType {
-  CreateAction: (fnName: string) => {};
+  CreateAction: (type: string) => {};
   ActionItem: (params: Recordable<any>, data, ...args) => ActionItem[];
   EditOperation: (data: Ref<any[]>, d, u, item: string | undefined) => void;
   OpenSelectItem: (openItemModal: Fn, ...args) => void;
@@ -155,4 +155,5 @@
   CustInitData: (data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) => void | any;
   GetCustData: () => {};
   GetRightMenuList: (node: EventDataNode, ...args) => ContextMenuItem[];
+  GetNewRow: (type: string) => {};
 }
diff --git a/src/api/tigerapi/model/mesModel.ts b/src/api/tigerapi/model/mesModel.ts
index f43a0a0..697e949 100644
--- a/src/api/tigerapi/model/mesModel.ts
+++ b/src/api/tigerapi/model/mesModel.ts
@@ -315,3 +315,65 @@
   Status: number;
   RouteStatus: number;
 }
+
+export interface BAS_LABEL_VAR_WO {
+	ID: string;
+	CREATE_TIME: Date;
+	CREATE_USER: string;
+	UPDATE_TIME: Date;
+	UPDATE_USER: string;
+	GHOST_ROW: boolean;
+	AUTH_ORG: string;
+	AUTH_PROD: string;
+	AUTH_WH: string;
+	LABEL_ID: string;
+	VAR_NAME: string;
+	VAR_VALUE: string;
+	REMARK: string;
+	LABEL_VIEW_PATH: string;
+	WORK_ORDER: string;
+	CUST_CODE: string;
+	PROD_CODE: string;
+}
+
+export interface BAS_LABEL_TEMP {
+	ID: string;
+	CREATE_TIME: Date;
+	CREATE_USER: string;
+	UPDATE_TIME: Date;
+	UPDATE_USER: string;
+	GHOST_ROW: boolean;
+	AUTH_ORG: string;
+	AUTH_PROD: string;
+	AUTH_WH: string;
+	LABEL_CODE: string;
+	LABEL_NAME: string;
+	TEMP_TYPE: number;
+	TEMP_PATH: string;
+	CUST_CODE: string;
+	PROD_CODE: string;
+	REMARK: string;
+}
+
+export interface BAS_LABEL_VAR {
+	ID: string;
+	CREATE_TIME: Date;
+	CREATE_USER: string;
+	UPDATE_TIME: Date;
+	UPDATE_USER: string;
+	GHOST_ROW: boolean;
+	AUTH_ORG: string;
+	AUTH_PROD: string;
+	AUTH_WH: string;
+	LABEL_ID: string;
+	VAR_NAME: string;
+	VAR_TYPE: number;
+	VAR_VALUE: string;
+	REMARK: string;
+}
+
+export interface BasLabelTempInput {
+  Label: BAS_LABEL_TEMP;
+  LabelVars: BAS_LABEL_VAR[];
+  LabelVarWos: BAS_LABEL_VAR_WO[];
+}
diff --git a/src/api/tigerapi/model/systemModel.ts b/src/api/tigerapi/model/systemModel.ts
index 709ebab..a53e8a9 100644
--- a/src/api/tigerapi/model/systemModel.ts
+++ b/src/api/tigerapi/model/systemModel.ts
@@ -1,3 +1,4 @@
+import { Ref } from 'vue';
 import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
 
 export type AD_INFO = {
@@ -347,6 +348,7 @@
   values: {}; //Modal妗嗗唴琛ㄥ崟鏁版嵁
   initFnName: string; //鍒濆鍖栨柟娉曞悕
   FnName: string; //鑷畾涔夋柟娉曞悕
+  data: Ref<any[]>; //鏁版嵁锛岃繖閲屼竴鑸槸琛ㄦ牸鏁版嵁
 }
 
 export type pParams = {
diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts
index 1afc595..d3ad65c 100644
--- a/src/api/tigerapi/system.ts
+++ b/src/api/tigerapi/system.ts
@@ -779,6 +779,10 @@
 
 export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) {
   let data;
+  /* 閽堝妯℃澘鍦板潃鍋氭浛鎹紝鐗规畩澶勭悊 */
+  if(params['TEMP_PATH']){
+    params['TEMP_PATH'] = params['TEMP_PATH'].toString().replace('/','//');
+  }
   if (isUpdate) {
     data = await defHttp.post(
       { url: Api.UpdateEntity, params: genAction(entityName, params) },
diff --git a/src/views/tigerprojects/system/lowcode/detail/detail.vue b/src/views/tigerprojects/system/lowcode/detail/detail.vue
index 14ba342..dfffafd 100644
--- a/src/views/tigerprojects/system/lowcode/detail/detail.vue
+++ b/src/views/tigerprojects/system/lowcode/detail/detail.vue
@@ -226,16 +226,17 @@
       });
     } else {
       const [{ CreateAction }] = custImport.value['default']();
-      const result = CreateAction(fnName);
+      const result = CreateAction(props.entityName);
       switch (result.action) {
         case 'go':
+          sessionStorage.removeItem(`${result.params.Name}_update_params`);
           // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
           sessionStorage.setItem(
-            `${result.params.Name}_params`,
+            `${result.params.Name}_update_params`,
             encodeURI(JSON.stringify(result.params)),
           );
           go(
-            `/${result.url}/${encodeURI(JSON.stringify({ sName: result.params.Name, Name: result.params.Name }))}`,
+            `/${result.url}/${encodeURI(JSON.stringify({ sName: `${result.params.Name}_update`, Name: result.params.Name }))}`,
           );
           break;
         case 'drawer':
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts
new file mode 100644
index 0000000..da7dd1e
--- /dev/null
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts
@@ -0,0 +1,112 @@
+/*
+ * @Description: 瀹㈡埛鐩稿叧
+ * @Author: Ben Lin
+ * @version:
+ * @Date: 2024-06-19 20:34:27
+ * @LastEditors: Ben Lin
+ * @LastEditTime: 2024-07-29 16:53:24
+ */
+
+import { ActionItem, BasicColumn } from '/@/components/Table';
+import { useI18n } from '/@/hooks/web/useI18n';
+
+const { t } = useI18n();
+
+function _default() {
+  const ActionColumn: BasicColumn = {
+    width: 80,
+    title: '鎿嶄綔',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: undefined,
+  };
+
+  /**
+   * @description: 涓�浜涜嚜瀹氫箟鏂规硶
+   * @return {*}
+   */
+  const methods = {
+    /**
+     * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
+     * @return {*}
+     */
+    CreateAction: (type: string) => {
+      return {
+        action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+      };
+    },
+    /**
+     * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽�
+     * @return {*}
+     */
+    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
+      return data;
+    },
+    /**
+     * @description: 閫夋嫨杩囩▼鍙橀噺寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炶祴鍊兼柟娉�
+     * @param {*} d
+     * @param {*} u
+     * @return {*}
+     */
+    GetSelectSuccess: (d, u) => {
+      return {
+        CUST_CODE: d.values['val'],
+      };
+    },
+    /**
+     * @description: 鎵撳紑瀹㈡埛寮瑰嚭閫夋嫨妗�
+     * @param {Fn} openItemModal
+     * @param {array} args
+     * @return {*}
+     */    
+    OpenSelectItem: (openItemModal: Fn, ...args) => {
+      openItemModal(true, {
+        title: '瀹㈡埛鍒楄〃',
+        schemas: [
+          {
+            field: 'CUST_CODE',
+            component: 'Input',
+            label: '瀹㈡埛缂栫爜',
+            colProps: {
+              span: 12,
+            },
+          },
+          {
+            field: 'CUST_NAME_CN',
+            component: 'Input',
+            label: '瀹㈡埛鍚嶇О',
+            colProps: {
+              span: 12,
+            },
+          },
+        ],
+        ItemColumns: [
+          {
+            title: t('瀹㈡埛缂栫爜'),
+            dataIndex: 'CUST_CODE',
+            resizable: true,
+            sorter: true,
+            width: 200,
+          },
+          {
+            title: t('瀹㈡埛鍚嶇О'),
+            dataIndex: 'CUST_NAME_CN',
+            resizable: true,
+            sorter: true,
+            width: 180,
+          },
+        ],
+        tableName: 'BAS_CUSTOMER',
+        rowKey: 'CUST_CODE',
+        searchInfo: { TABLE_NAME: 'BAS_CUSTOMER' },
+      });
+    },
+    GetUseForm: () => {
+      return {};
+    },
+  };
+
+  return [methods, ActionColumn];
+}
+
+export default _default;
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
index b1f73b3..b38697d 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
@@ -38,7 +38,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
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 ea24486..e49286b 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-20 21:26:24
+ * @LastEditTime: 2024-07-28 12:46:53
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -30,9 +30,9 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
-        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
         url: 'BAS_DEFECT/High',
         params: {
           CODE: '0',
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts
index 2c18319..aa75575 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts
@@ -30,7 +30,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts
index 4ef3a4c..b880b06 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-27 13:20:29
+ * @LastEditTime: 2024-07-29 23:38:12
  */
 
 import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
@@ -30,9 +30,9 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
-        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
         url: 'BAS_LABEL_VAR/High',
         params: {
           CODE: '0',
@@ -40,17 +40,28 @@
           Name: 'BAS_LABEL_VAR', //瀹炰綋鍚�
           Title: '鏂板妯℃澘', //鏍囬
           pCode: 'LABEL_CODE', //涓讳俊鎭叧閿瓧娈礐ODE
-          IsID: false, //鏄惁甯﹁繃鍘讳晶杈规鐨勬槸ID锛宖alse灏辨槸CODE锛宼rue鏄疘D
+          IsID: true, //鏄惁甯﹁繃鍘讳晶杈规鐨勬槸ID锛宖alse灏辨槸CODE锛宼rue鏄疘D
+          colSlots: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
           drawers: [
-            { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' },
-            // {
-            //   name: 'MES_SHIFT_PRD',
-            //   code: 'SFT_CODE',
-            //   type: 'all',
-            //   keyName: 'MES_SHIFT',
-            //   order: 'SFT_CODE, SEQ',
-            // },
-          ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
+            {
+              name: 'BAS_LABEL_VAR', //瀹炰綋鍚�
+              code: 'LABEL_ID', //浼犻�掕繃鍘婚珮绾ц〃鍗曢〉闈㈢殑鍏抽敭瀛楁鍚�
+              type: 'one', //one-琛ㄧず闇�瑕乧ode鐨勪竴涓�硷紝榛樿鏄繖涓�
+              keyName: 'BAS_LABEL_VAR', //鍏抽敭琛ㄥ悕锛堝疄浣撳悕锛�
+              order: 'VAR_NAME', //鎺掑簭
+              showTbButton: false, //鏄惁鏄剧ず宸ュ叿鏍忔寜閽�
+              FnName: '', //鑷畾涔夋柟娉曞悕
+            },
+            {
+              name: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚�
+              code: 'LABEL_ID', //浼犻�掕繃鍘婚珮绾ц〃鍗曢〉闈㈢殑鍏抽敭瀛楁鍚�
+              type: 'one', //all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊�
+              keyName: 'BAS_LABEL_VAR_WO', //鍏抽敭琛ㄥ悕锛堝疄浣撳悕锛�
+              order: '',
+              showTbButton: true, //鏄惁鏄剧ず宸ュ叿鏍忔寜閽�
+              FnName: 'AddRow', //鑷畾涔夋柟娉曞悕
+            },
+          ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃锛屽強鎸夐挳鐨勬墽琛屾柟娉�
         },
       };
     },
@@ -80,7 +91,7 @@
       const webSocketStore = useWebSocketStore();
       if (webSocketStore.GetSocketState == 1) {
         webSocketStore.sendMessage(
-          `wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}`
+          `wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}`,
         );
       }
     },
@@ -94,21 +105,6 @@
    * @return {*}
    */
   function goDetail(go: Fn, params: Recordable) {
-    // const id = {
-    //   ID: params['record'].ID,
-    //   CODE: params['record']['LABEL_CODE'],
-    //   Name: 'BAS_LABEL_VAR',
-    //   firstTabName: '鏍囩妯℃澘鍙橀噺',
-    //   secondTabName: '', //'鏍囩杩囩▼鍙橀噺',
-    //   firstTitle: '妯℃澘鍙橀噺',
-    //   secondTitle: '', //'杩囩▼鍙橀噺',
-    //   pageTitle: '鏍囩妯℃澘鍙橀噺', //璇︽儏椤甸潰鏍囬
-    //   contentStr: '杩欓噷鏄爣绛炬ā鏉垮彉閲忕鐞嗛〉闈紝鍙互绠$悊鏍囩鐨勬ā鏉垮彉閲忔垨鑰呮墦鍗拌繃绋嬩腑鐨勫彉閲�',
-    //   detailName: `妯℃澘[${params['record'].LABEL_NAME}]`,
-    //   keyFieldValues: { LABEL_ID: params['record'].ID },
-    //   colSlots: ['BAS_LABEL_PV1add'],
-    //   SessionName: 'BAS_LABEL_VAR_update',
-    // };
     const id = {
       CODE: params['record']['LABEL_CODE'],
       ID: params['record']['ID'],
@@ -117,21 +113,40 @@
       Title: `缂栬緫妯℃澘${params['record']['LABEL_CODE']}鐨勫彉閲廯,
       pCode: 'LABEL_CODE',
       IsID: true,
+      colSlots: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
       drawers: [
-        { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' },
-        // {
-        //   name: 'MES_SHIFT_PRD',
-        //   code: 'SFT_CODE',
-        //   type: 'all',
-        //   keyName: 'MES_SHIFT',
-        //   order: 'SFT_CODE, SEQ',
-        // },
+        {
+          name: 'BAS_LABEL_VAR',
+          code: 'LABEL_ID',
+          type: 'one',
+          keyName: 'BAS_LABEL_VAR',
+          order: 'VAR_NAME',
+          showTbButton: false,
+          FnName: '',
+        },
+        {
+          name: 'BAS_LABEL_VAR_WO',
+          code: 'LABEL_ID',
+          type: 'one',
+          keyName: 'BAS_LABEL_VAR_WO',
+          order: '',
+          showTbButton: true,
+          FnName: 'AddRow',
+        },
       ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃
     };
+    // const webSocketStore = useWebSocketStore();
+    // if (webSocketStore.GetSocketState == 1) {
+    //   webSocketStore.sendMessage(
+    //     `wsSubStrings 1d441e20c43a469286319de9b0df5d7b_#_http://localhost:8800/files/10浣嶅敮涓�ID.btw`,
+    //   );
+    // }
     // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
     sessionStorage.removeItem(`${id.SessionName}_params`);
     sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
-    go(`/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`);
+    go(
+      `/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`,
+    );
   }
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts
index c3d087d..3622424 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts
@@ -4,7 +4,7 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-27 13:22:30
+ * @LastEditTime: 2024-07-29 23:10:18
  */
 
 import { Tag, Tooltip } from 'ant-design-vue';
@@ -15,8 +15,13 @@
 import { useLocale } from '/@/locales/useLocale';
 import { useDrawer } from '/@/components/Drawer';
 import { formatTime } from '/@/utils/dateUtil';
-import { Search } from '../data';
+import { custDel, EditOperation, Search } from '../data';
 import { buildUUID } from '/@/utils/uuid';
+import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel';
+import { useModal } from '/@/components/Modal';
+import { SaveLabelTemplate } from '/@/api/tigerapi/mes/label';
+import { BAS_LABEL_TEMP, BAS_LABEL_VAR, BAS_LABEL_VAR_WO, BasLabelTempInput } from '/@/api/tigerapi/model/mesModel';
+import { useUserStore } from '/@/store/modules/user';
 
 const { getLocale } = useLocale();
 
@@ -40,16 +45,29 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓猴紝蹇呴渶瑕佹湁鐨勬柟娉�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
-      return {
-        action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
-      };
+    CreateAction: (type: string) => {
+      let action = {} as any;
+      switch (type) {
+        case 'BAS_LABEL_VAR':
+        case 'BAS_LABEL_VAR_WO':
+          action = {
+            action: 'edit', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
+          };
+          break;
+      }
+      return action;
     },
     /**
-     * @description: 浜у搧缁戝畾宸ヨ壓璺嚎鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉�
+     * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉�
      * @return {*}
      */
     ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
+      data.map((x) => {
+        if (x.name == 'Delete') {
+          x.popConfirm.confirm = custDel.bind(null, args, params);
+          x.tooltip = '鍒犻櫎';
+        }
+      });
       return data;
     },
     /**
@@ -70,6 +88,7 @@
           label: '鏍囩妯℃澘缂栫爜',
           component: 'Input',
           required: true,
+          isexist: 'Y',
           colProps: {
             span: 8,
           },
@@ -111,11 +130,49 @@
           },
         },
         {
+          field: 'PROD_CODE',
+          label: '浜у搧缂栫爜',
+          component: 'Input',
+          isexist: 'N',
+          show: true,
+          required: true,
+          colProps: {
+            span: 7,
+          },
+        },
+        {
+          field: 'BAS_LABEL_VAR1PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂�
+          label: '1',
+          defaultValue: 'BAS_LABEL_VAR',
+          component: 'Input',
+          colProps: { span: 1 },
+          colSlot: 'BAS_LABEL_VAR1add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂�
+        },
+        {
+          field: 'CUST_CODE',
+          label: '瀹㈡埛缂栫爜',
+          component: 'Input',
+          isexist: 'N',
+          show: true,
+          // required: true,
+          colProps: {
+            span: 7,
+          },
+        },
+        {
+          field: 'BAS_LABEL_VAR2PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂�
+          label: '1',
+          defaultValue: 'BAS_CUSTOMER',
+          component: 'Input',
+          colProps: { span: 1 },
+          colSlot: 'BAS_LABEL_VAR2add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂�
+        },
+        {
           label: '澶囨敞',
           field: 'REMARK',
           component: 'Input',
           colProps: {
-            span: 16,
+            span: 24,
           },
         },
         {
@@ -129,8 +186,26 @@
         },
       ];
     },
-    GetBaseColumns: () => {
-      return [];
+    /**
+     * @description: 寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炶祴鍊兼柟娉�
+     * @param {*} d
+     * @param {*} u
+     * @return {*}
+     */
+    GetSelectSuccess: (d, u) => {
+      return {
+        PROD_CODE: d.values['val'],
+      };
+    },
+    /**
+     * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃
+     * @return {*}
+     */
+    GetUseModals: () => {
+      return {
+        BAS_LABEL_VAR1add: useModal(),
+        BAS_LABEL_VAR2add: useModal(),
+      };
     },
     GetSearchForm: () => {
       return [
@@ -223,6 +298,27 @@
         },
       ];
     },
+    /**
+     * @description: 鑾峰彇鏂板琛岀殑鏁版嵁
+     * @param {string} type
+     * @return {*}
+     */
+    GetNewRow: (type: string) => {
+      let values = {};
+      switch (type) {
+        case 'BAS_LABEL_VAR_WO':
+          values = {
+            ID: buildUUID(),
+            LABEL_ID: '',
+            VAR_NAME: '',
+            VAR_TYPE: '',
+            VAR_VALUE: '',
+            REMARK: '',
+          };
+          break;
+      }
+      return values;
+    },
     KeyFieldValues: (val: string, id: string) => {
       return { LABEL_ID: id };
     },
@@ -240,7 +336,7 @@
         pageContent: '杩欓噷鍙互娣诲姞鍜屼慨鏀规ā鏉垮拰妯℃澘鍙橀噺鍙婂伐鍗曟ā鏉垮彉閲忋��',
         tableTitle: {
           BAS_LABEL_VAR: '妯℃澘鍙橀噺绠$悊',
-          MES_SHIFT_PRD: '鏃舵绠$悊',
+          BAS_LABEL_VAR_WO: '宸ュ崟妯℃澘鍙橀噺绠$悊',
         },
       };
     },
@@ -268,7 +364,7 @@
         {
           BAS_LABEL_VAR: useDrawer(),
         },
-        // { MES_SHIFT_PRD: useDrawer() },
+        { BAS_LABEL_VAR_WO: useDrawer() },
       ];
     } /**
      * @description: 鑾峰彇琛ㄦ牸use鍒楄〃
@@ -282,8 +378,8 @@
         BAS_LABEL_VAR: useTable({
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['BAS_LABEL_VAR'],
-          columns: baseColumns['BAS_LABEL_VAR'],
-          maxHeight: 560,
+          columns: GetBaseColumns('BAS_LABEL_VAR', args[0]),
+          maxHeight: 520,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['BAS_LABEL_VAR'],
@@ -294,6 +390,32 @@
           bordered: true,
           canResize: true,
           showIndexColumn: false,
+          // rowSelection: {
+          //   type: 'radio', //'checkbox'
+          // },
+          // actionColumn: {
+          //   width: 130,
+          //   title: '鎿嶄綔',
+          //   dataIndex: 'action',
+          //   slots: { customRender: 'action' },
+          //   fixed: 'right',
+          // }, //鑷畾涔夋搷浣滃垪
+        }),
+        BAS_LABEL_VAR_WO: useTable({
+          title: '鍒楄〃淇℃伅',
+          dataSource: data.value['BAS_LABEL_VAR_WO'],
+          columns: baseColumns['BAS_LABEL_VAR_WO'],
+          maxHeight: 550,
+          formConfig: {
+            labelWidth: 140,
+            schemas: searchForms['BAS_LABEL_VAR_WO'],
+            submitFunc: () => Search('BAS_LABEL_VAR_WO', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
+          },
+          useSearchForm: false,
+          showTableSetting: false,
+          bordered: true,
+          canResize: false,
+          showIndexColumn: false,
           actionColumn: {
             width: 130,
             title: '鎿嶄綔',
@@ -302,29 +424,6 @@
             fixed: 'right',
           }, //鑷畾涔夋搷浣滃垪
         }),
-        //  MES_SHIFT_PRD: useTable({
-        //    title: '鍒楄〃淇℃伅',
-        //    dataSource: data.value['MES_SHIFT_PRD'],
-        //    columns: baseColumns['MES_SHIFT_PRD'],
-        //    maxHeight: 550,
-        //    formConfig: {
-        //      labelWidth: 140,
-        //      schemas: searchForms['MES_SHIFT_PRD'],
-        //      submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
-        //    },
-        //    useSearchForm: false,
-        //    showTableSetting: false,
-        //    bordered: true,
-        //    canResize: false,
-        //    showIndexColumn: false,
-        //    actionColumn: {
-        //      width: 130,
-        //      title: '鎿嶄綔',
-        //      dataIndex: 'action',
-        //      slots: { customRender: 'action' },
-        //      fixed: 'right',
-        //    }, //鑷畾涔夋搷浣滃垪
-        //  }),
       };
     },
     /**
@@ -332,10 +431,34 @@
      * @return {*}
      */
     SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => {
-      const drawers = [
-        { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' },
-        // { name: 'MES_SHIFT_PRD', code: 'SFT_CODE', type: 'all', keyName: 'MES_SHIFT', order: '' },
-      ];
+      const cancel = args[0];
+      const drawers = args[1];
+      const label = args[2]['BaseForm'];
+      // const input: BasLabelTempInput ={
+      //   Label: undefined,
+      //   LabelVar: undefined,
+      //   LabelVarWo: undefined
+      // };
+      const input: BasLabelTempInput = {
+        Label: {
+          ID: buildUUID(),
+          CREATE_USER: useUserStore().getUserInfo.userId as string,
+          UPDATE_USER: useUserStore().getUserInfo.userId as string,
+          GHOST_ROW: false,
+          AUTH_ORG: useUserStore().getUserInfo.orgCode,
+          AUTH_PROD: useUserStore().getUserInfo.prodCode,
+          AUTH_WH: '',
+          LABEL_CODE: label.LABEL_CODE,
+          LABEL_NAME: label.LABEL_NAME,
+          TEMP_TYPE: label.TEMP_TYPE,
+          TEMP_PATH: label.TEMP_PATH[0],
+          CUST_CODE: label.CUST_CODE,
+          PROD_CODE: label.PROD_CODE,
+          REMARK: ''
+        } as unknown as BAS_LABEL_TEMP,
+        LabelVars: {} as unknown as BAS_LABEL_VAR[],
+        LabelVarWos: {} as unknown as BAS_LABEL_VAR_WO[],
+      };
       drawers.forEach((d) => {
         let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`;
         /* type: all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� */
@@ -344,32 +467,87 @@
         }
         data.value[d['name']].map((item) => {
           item.ID = buildUUID();
-          // if (d['name'] == 'MES_SHIFT') {
-          //   item.SFT_BEGIN = tsToHHmm(item.SFT_BEGIN);
-          //   item.SFT_END = tsToHHmm(item.SFT_END);
-          // }
-          // if (d['name'] == 'MES_SHIFT_PRD') {
-          //   item.PRD_BEGIN = tsToHHmm(item.PRD_BEGIN);
-          //   item.PRD_END = tsToHHmm(item.PRD_END);
-          // }
         });
-        AddAfterDelete(d['name'], data.value[d['name']], where).then((action) => {
-          if (action.IsSuccessed) {
-            args[0]();
-          }
-        });
+        if(d.name == 'BAS_LABEL_VAR'){
+          input.LabelVars =  data.value[d['name']];
+        }
+        if(d.name == 'BAS_LABEL_VAR_WO'){
+          input.LabelVarWos =  data.value[d['name']];
+        }
       });
+      SaveLabelTemplate(input).then((action) => {
+        if (action.IsSuccessed) {
+          cancel();
+        }
+      });
+    },
+    /**
+     * @description: 鑷畾涔夋柟娉�
+     * @param {string} type
+     * @param {array} args
+     * @return {*}
+     */
+    CustFunc: (param: CustModalParams) => {
+      switch (param.cType) {
+        case 'BAS_LABEL_VAR':
+        case 'BAS_LABEL_VAR_WO':
+          return getFns[param.FnName](param) as Promise<any>;
+        // break;
+        default:
+          return new Promise((resolve, reject) => {
+            try {
+              (e) => {};
+              resolve(true);
+            } catch {
+              reject(false);
+            } finally {
+              // args[0][0]({ confirmLoading: false });
+            }
+          });
+        // break;
+      }
     },
   };
 
   /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport */
 
   /**
-   * @description: 琛ㄦ牸鍩烘湰瀛楁
+   * @description: 鑷畾涔夋柟娉�
    * @return {*}
    */
-  const baseColumns = {
-    BAS_LABEL_VAR: [
+  const getFns: Record<string, FunctionType> = {
+    /**
+     * @description: 鏂板琛屾柟娉�
+     * @param {*} e
+     * @param {array} args
+     * @return {*}
+     */
+    AddRow: (param: CustModalParams) => {
+      return new Promise((resolve, reject) => {
+        try {
+          console.log('AddRow');
+          EditOperation(
+            param.data,
+            { ...param.values, ...param.others },
+            { isUpdate: false },
+            param.cType,
+            {},
+          );
+        } catch {
+          reject(false);
+        }
+      });
+    },
+  };
+
+  let columns: BasicColumn[] = [];
+  /**
+   * @description: 鑾峰彇琛ㄦ牸瀛楁Json
+   * @param {string} type
+   * @return {*}
+   */
+  function GetBaseColumns(type: string, emit) {
+    columns = [
       {
         dataIndex: 'LABEL_ID',
         title: '鏍囩妯℃澘ID',
@@ -388,10 +566,62 @@
       {
         dataIndex: 'VAR_TYPE',
         title: '鍙橀噺绫诲瀷',
+        edit: true,
+        editRule: true,
         ifShow: true,
         sorter: true,
         resizable: true,
-        customRender: ({ record }) => {
+        editComponent: 'ApiSelect',
+        editComponentProps: (column) => {
+          return {
+            api: GetEnum,
+            params: { name: 'BAS_LABEL_VAR+VAR_TYPEs' },
+            resultField: 'Data',
+            labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
+            valueField: 'Value',
+            onChange: (e, v) => {
+              if (e == 1) {
+                emit('opencust', {
+                  data: column.record,
+                  name: 'BAS_LABEL_VAR',
+                  modalSchema: {
+                    title: '杩囩▼鍙橀噺鍒楄〃',
+                    schemas: [
+                      {
+                        field: 'VAR_CODE',
+                        component: 'Input',
+                        label: '杩囩▼鍙橀噺缂栫爜',
+                        colProps: {
+                          span: 12,
+                        },
+                      },
+                    ],
+                    ItemColumns: [
+                      {
+                        title: t('杩囩▼鍙橀噺缂栫爜'),
+                        dataIndex: 'VAR_CODE',
+                        resizable: true,
+                        sorter: true,
+                        width: 200,
+                      },
+                      {
+                        title: t('杩囩▼鍙橀噺鍚嶇О'),
+                        dataIndex: 'VAR_NAME',
+                        resizable: true,
+                        sorter: true,
+                        width: 180,
+                      },
+                    ],
+                    tableName: 'BAS_LABEL_PV',
+                    rowKey: 'VAR_CODE',
+                    searchInfo: { TABLE_NAME: 'BAS_LABEL_PV' },
+                  },
+                });
+              }
+            },
+          };
+        },
+        editRender: ({ record }) => {
           let color = '';
           let text = '';
           switch (record.VAR_TYPE) {
@@ -415,105 +645,97 @@
           return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
         },
       },
+    ];
+    switch (type) {
+      case 'BAS_LABEL_VAR':
+        columns = [
+          ...columns,
+          ...[
+            {
+              dataIndex: 'VAR_VALUE',
+              title: '鍙橀噺鍊�',
+              edit: true,
+              // editable: true,
+              editRule: true,
+              ifShow: (column) => true,
+              sorter: true,
+              resizable: true,
+            },
+            {
+              dataIndex: 'REMARK',
+              title: '澶囨敞',
+              ifShow: true,
+              sorter: true,
+              resizable: true,
+            },
+          ],
+        ] as BasicColumn[];
+        break;
+    }
+    return columns;
+  }
+
+  /**
+   * @description: 琛ㄦ牸鍩烘湰瀛楁
+   * @return {*}
+   */
+  const baseColumns = {
+    BAS_LABEL_VAR: [],
+    BAS_LABEL_VAR_WO: [
+      {
+        dataIndex: 'LABEL_ID',
+        title: '鏍囩妯℃澘ID',
+        ifShow: false,
+        sorter: true,
+        resizable: true,
+      },
+      {
+        title: '宸ュ崟鍙�',
+        dataIndex: 'WORK_ORDER',
+        edit: true,
+        editRule: true,
+        editable: true,
+        ifShow: true,
+      },
+      {
+        dataIndex: 'VAR_NAME',
+        title: '鍙橀噺鍚嶇О',
+        edit: true,
+        editRule: true,
+        editable: true,
+        ifShow: true,
+        sorter: true,
+        resizable: true,
+        customRender: () => {},
+      },
       {
         dataIndex: 'VAR_VALUE',
         title: '鍙橀噺鍊�',
+        edit: true,
+        editRule: true,
+        editable: true,
         ifShow: true,
         sorter: true,
         resizable: true,
       },
       {
-        dataIndex: 'REMARK',
-        title: '澶囨敞',
-        ifShow: true,
-        sorter: true,
-        resizable: true,
-      },
-    ],
-    MES_SHIFT_PRD: [
-      {
-        title: '鏃舵缂栫爜',
-        dataIndex: 'PRD_CODE',
-        // ifShow: false,
-        width: 180,
-      },
-      {
-        title: '鏃舵鍚嶇О',
-        dataIndex: 'PRD_NAME',
-      },
-      {
-        title: '鐝缂栫爜',
-        dataIndex: 'SFT_CODE',
-      },
-      {
-        title: '鏃舵寮�濮嬫椂闂�',
-        dataIndex: 'PRD_BEGIN',
-        customRender: ({ record }) => {
-          return formatTime(new Date(record.PRD_BEGIN));
-        },
-      },
-      {
-        title: '鏃舵缁撴潫鏃堕棿',
-        dataIndex: 'PRD_END',
-        customRender: ({ record }) => {
-          return formatTime(new Date(record.PRD_END));
-        },
-      },
-      {
-        title: '鏄惁璺ㄥぉ',
-        dataIndex: 'IS_ACROSS',
-        customRender: ({ record }) => {
-          const type = record.IS_ACROSS;
-          var text = '';
-          var color = 'green';
-          switch (type) {
-            case 'Y':
-              text = '鏄�';
-              break;
-            case 'N':
-              color = 'blue';
-              text = '鍚�';
-              break;
-          }
-          return h(Tag, { color: color }, () => text);
-        },
-      },
-      {
-        title: '鏄惁浼戞伅鏃舵',
-        dataIndex: 'IS_REST',
-        customRender: ({ record }) => {
-          const type = record.IS_REST;
-          var text = '';
-          var color = 'green';
-          switch (type) {
-            case 'Y':
-              text = '鏄�';
-              break;
-            case 'N':
-              color = 'blue';
-              text = '鍚�';
-              break;
-          }
-          return h(Tag, { color: color }, () => text);
-        },
-      },
-      {
-        title: '鏃舵鎺掑簭',
-        dataIndex: 'SEQ',
+        title: '鏍囩妯℃澘棰勮鍦板潃',
+        dataIndex: 'LABEL_VIEW_PATH',
+        ifShow: false,
       },
       {
         title: '澶囨敞',
         dataIndex: 'REMARK',
       },
-      {
-        title: '鏇存柊鏃堕棿',
-        dataIndex: 'UPDATE_TIME',
-      },
-      {
-        title: '鏇存柊浜�',
-        dataIndex: 'UPDATE_USER',
-      },
-    ],
+      // {
+      //   title: '鏇存柊鏃堕棿',
+      //   dataIndex: 'UPDATE_TIME',
+      // },
+      // {
+      //   title: '鏇存柊浜�',
+      //   dataIndex: 'UPDATE_USER',
+      // },
+    ] as BasicColumn[],
   };
 
   /**
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 457ad5e..eb6da34 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
@@ -34,7 +34,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
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 a02f8aa..5bfd5e4 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
@@ -29,7 +29,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
         url: 'BAS_PKG_DTL/High',
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
index b560106..aeaf0d0 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
@@ -35,7 +35,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
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 0e64210..7520e65 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-04 09:26:04
+ * @LastEditTime: 2024-07-28 17:28:46
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -32,9 +32,9 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
-        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
         url: 'BAS_REASON/High',
         params: {
           CODE: '0',
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 3dabce7..dda5d59 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts
@@ -43,7 +43,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts
index e4768bb..8801d77 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts
@@ -40,7 +40,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓猴紝蹇呴渶瑕佹湁鐨勬柟娉�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
index 93073b2..9e92d60 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -38,7 +38,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
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 06d636e..6f351bd 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
@@ -30,9 +30,9 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
-        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+        action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
         url: 'MES_SHIFT/High',
         params: {
           CODE: '0',
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 0d2d1bb..903354d 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
@@ -60,7 +60,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
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 c659f15..dbb1a31 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
@@ -31,7 +31,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
         url: 'QMS_INS_ITEM/High',
diff --git a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts
index ff02c43..75e7265 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts
@@ -27,9 +27,9 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
-        action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
+        action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�)
       };
     },
     /**
diff --git a/src/views/tigerprojects/system/lowcode/high/baseForm.vue b/src/views/tigerprojects/system/lowcode/high/baseForm.vue
index fd9dbdc..970ce45 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-07-27 13:17:08
+ * @LastEditTime: 2024-07-29 16:25:07
 -->
 <template>
   <a-card
@@ -13,15 +13,30 @@
     v-for="(item, index) in _baseCards"
     :key="item.name"
   >
-    <BasicForm @register="useFormData[item.name][0]" />
+    <BasicForm @register="useFormData[item.name][0]">
+      <template #[l]="{ field }" v-for="l in colSlots" :key="l">
+        <a-button
+          v-if="field"
+          class="mt-1 ml-1"
+          size="small"
+          @click="handleSelectItem(l)"
+          preIcon="search|svg"
+        />
+        <GeneralModal @register="useModals[l]" @success="(d, u) => handleItemSuccess(d, u, l)" />
+      </template>
+    </BasicForm>
   </a-card>
 </template>
 <script lang="ts" setup>
   import { Ref, inject, nextTick, onMounted, ref, watch } from 'vue';
   import { BasicForm, useForm } from '/@/components/Form/index';
+  import GeneralModal from '/@/views/components/GeneralModal.vue';
   import { Card } from 'ant-design-vue';
   import { getEntity } from '/@/api/tigerapi/system';
   import { isNullOrEmpty } from '/@/utils/is';
+  import { useI18n } from '/@/hooks/web/useI18n';
+  
+  const { t } = useI18n();
   const props = defineProps({
     entityName: { type: String },
   });
@@ -29,19 +44,14 @@
   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/${props.entityName}.ts`),
-  );
-  const [
-    {
-      GetBaseForm,
-      GetBaseCards,
-    },
-  ] = custImport.value['default']();
+  const custImport = ref<any[]>(await import(`../entityts/${props.entityName}.ts`));
+  const [{ GetBaseForm, GetBaseCards, GetUseModals }] = custImport.value['default']();
   const formSchemas = ref({
     BaseForm: GetBaseForm(),
-  }); 
-  
+  });
+  const colSlots = ref<any[]>(objParams.value['colSlots']);
+  const useModals = ref<any>(GetUseModals());
+
   //寮瑰嚭妗嗘垨楂樼骇椤甸潰澶氳〃鍗曠粨鏋�
   useFormData.value = {
     BaseForm: useForm({
@@ -61,15 +71,95 @@
     getEntity({
       sqlcmd: ` ID = '${objParams.value['ID']}'`,
       entityName: _baseCards.value[0]['entityName'],
-      order: ''
+      order: '',
     }).then((res) => {
       if (!isNullOrEmpty(res.Data.Items)) {
         useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(res.Data.Items[0]);
-      }else{
+      } else {
         useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue({
           ID: objParams.value['ID'],
         });
       }
     });
   });
+
+  
+  /**
+   * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛鍚庝簨浠�
+   * @param {*} d
+   * @param {*} u
+   * @param {*} item 椤甸潰涓婂惊鐜娊灞夊垪琛ㄤ紶鍏ョ殑瀹炰綋鍚嶅瓧锛屼綔涓哄悇琛ㄦ牸鐩稿叧鏂规硶鐨刱ey锛屼粠鑰岃皟鐢ㄥ悇琛ㄦ牸鐩稿叧鐨勬柟娉曪紝濡傦細useFormData.value[_baseCards.value[0]['name']][1].getForm()
+   * @return {*}
+   */
+   function handleItemSuccess(d, u, item) {
+    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+    try {
+      import(
+        `../entityts/${useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}.ts`
+      )
+        .then((m) => {
+          const [{ GetSelectSuccess }] = m.default();
+          useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(GetSelectSuccess(d, u));
+        })
+        .catch(() => {
+          useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue({
+            ITEM_CODE: d.values['val'],
+          });
+        });
+    } catch (e) {}
+  }
+
+  /**
+   * @description: 寮瑰嚭閫夋嫨妗�
+   * @param {*} item
+   * @return {*}
+   */
+  function handleSelectItem(item) {
+    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+    const name = useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`];
+    const openModal = useModals.value[item][1].openModal;
+    try {
+      import(
+        `../entityts/${name}.ts`
+      )
+        .then((m) => {
+          const [{ OpenSelectItem }] = m.default();
+          OpenSelectItem(openModal);
+        })
+        .catch(() => {
+          openModal(true, {
+            title: '鐗╂枡鍒楄〃',
+            schemas: [
+              {
+                field: 'ITEM_CODE',
+                component: 'Input',
+                label: '鐗╂枡缂栫爜',
+                colProps: {
+                  span: 12,
+                },
+              },
+            ],
+            ItemColumns: [
+              {
+                title: t('鐗╂枡缂栫爜'),
+                dataIndex: 'ITEM_CODE',
+                resizable: true,
+                sorter: true,
+                width: 200,
+              },
+              {
+                title: t('鐗╂枡鍚嶇О'),
+                dataIndex: 'ITEM_NAME',
+                resizable: true,
+                sorter: true,
+                width: 180,
+              },
+            ],
+            tableName: 'BAS_ITEM',
+            rowKey: 'ITEM_CODE',
+            searchInfo: { TABLE_NAME: 'BAS_ITEM' },
+          });
+        });
+    } catch (e) {}
+  }
 </script>
diff --git a/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue b/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue
index c3b5fd0..1109204 100644
--- a/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue
+++ b/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue
@@ -8,8 +8,15 @@
     >
       <BasicTable @register="useTables[item.name]">
         <template #toolbar>
-          <a-button type="primary" @click="handleCreate(index, item)" preIcon="add_02|svg">
-            鏂板
+          <a-button
+            v-if="item.showTbButton"
+            type="primary"
+            v-for="d in buttons.filter((m) => m['BUTTON_TYPE'] == 0)"
+            @click="handleCreate(index, item, d)"
+            :preIcon="d['ICON_URL']"
+            :key="d"
+          >
+            {{ d['FUNC_NAME'] }}
           </a-button>
         </template>
         <template #action="{ record }">
@@ -49,10 +56,14 @@
   import { useI18n } from '/@/hooks/web/useI18n';
   import { Card } from 'ant-design-vue';
   import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel';
+  import { useRouter } from 'vue-router';
+  import { getRoleButtons } from '/@/api/sys/menu';
+  import { GenerateActionButton } from '../../data';
+  import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
 
   const { t } = useI18n();
   const ACard = Card;
-  const emit = defineEmits(['search']);
+  const emit = defineEmits(['search', 'opencust', 'gettables']);
   const props = defineProps({
     colSlots: { type: Array as PropType<any[]> },
     useTableData: { type: Object as PropType<{}>, default: { table: [] } },
@@ -67,6 +78,7 @@
   const keyFieldValues = inject('keyFieldValues') as Ref<Recordable[]>;
 
   const go = useGo();
+  const { currentRoute } = useRouter();
   const [registerItemAdd, { openModal: openItemModal }] = useModal();
   const cType = ref('');
   const dtlSlots = ref([] as any[]);
@@ -82,6 +94,7 @@
       GetUseTables(data: Ref<Recordable[]>, ...args) {},
       GetUseDrawers() {},
       CustInitData(data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) {},
+      GetNewRow(type: string) {},
     } as EntityCustFunctionType,
   ]);
   /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
@@ -98,10 +111,14 @@
       GetUseTables,
       GetUseDrawers,
       CustInitData,
+      CreateAction,
+      CustFunc,
+      GetNewRow,
     },
   ] = isNullOrUnDef(custImport.value['default'])
     ? EntityCustFunction.value
     : custImport.value['default']();
+  const buttons = ref<[]>(await getRoleButtons(currentRoute.value.meta.menuCode as string));
   keyFieldValues.value = KeyFieldValues(objParams.value['CODE'], objParams.value['ID']); //鑾峰彇涓�浜涘叾浠栨湁闇�瑕佹彁渚涚殑鍊硷紝杩欓噷鏄富椤甸潰璺宠浆杩囨潵鏃跺甫鐨勫叧閿瓧娈靛��
   const drawers = ref<any[]>(objParams.value['drawers']); //鏄彸渚ц竟妗嗗垪琛紝閲岄潰鐨刵ame琛ㄧず鏄摢涓�涓疄浣擄紝涔熷氨鏄珮绾ц〃鍗曚腑琛ㄦ牸鐨勫悕瀛楋紝寰堝鏂规硶闇�瑕佷互杩欎釜鍚嶅瓧涓簁ey
   const useTables = GetUseTables(data, emit); //楂樼骇琛ㄥ崟涓悇涓〃鏍�(Table)鐨剈seTable鏂规硶瀹炵幇鍒楄〃
@@ -161,6 +178,7 @@
           dataSource: data.value[drawers.value[i].name],
         });
         useTables[drawers.value[i].name][1].reload();
+        emit('gettables', useTables);
       }
     }
   });
@@ -186,21 +204,12 @@
       name: item.name, //drawers鍒楄〃閲岄潰鐨刵ame锛岃〃绀烘槸鍝竴涓疄浣擄紝涔熷氨鏄珮绾ц〃鍗曚腑琛ㄦ牸鐨勫悕瀛�
       keyName: item.keyName,
     };
-    const actionItem = [
-      {
-        icon: 'clarity:note-edit-line',
-        onClick: editRecord.bind(null, useDrawers[index][item.name][1].openDrawer, params),
-      },
-      {
-        icon: 'ant-design:delete-outlined',
-        color: 'error',
-        popConfirm: {
-          title: '鏄惁纭鍒犻櫎?',
-          placement: 'left',
-          confirm: deleteRecord.bind(null, useTables[item.name][1].reload, params),
-        },
-      },
-    ];
+    const actionItem = GenerateActionButton(
+      params,
+      buttons,
+      useDrawers[index][item.name][1].openDrawer,
+      useTables[item.name][1].reload(),
+    );
     if (isNullOrUnDef(custImport.value)) {
       return actionItem;
     }
@@ -214,32 +223,6 @@
       useModal,
       go,
     );
-  }
-
-  /**
-   * @description: 鍏敤缂栬緫鏂规硶
-   * @param {Fn} fn
-   * @param {*} params
-   * @return {*}
-   */
-  function editRecord(fn: Fn, params: {}) {
-    fn(true, params);
-  }
-
-  /**
-   * @description: 鍏敤鍒犻櫎鏂规硶
-   * @param {Fn} fn
-   * @param {*} params
-   * @return {*}
-   */
-  function deleteRecord(fn: Fn, params: {}) {
-    console.log(params['record']);
-    //鍒犻櫎
-    DeleteEntity(params['record'], params['entityName']).then((action) => {
-      if (action.IsSuccessed) {
-        fn();
-      }
-    });
   }
 
   /**
@@ -257,18 +240,19 @@
   }
 
   /**
-   * @description: 鏂板鎸夐挳鏂规硶
+   * @description: 鎵撳紑鎶藉眽鏂规硶
    * @param {*} index
    * @param {*} item
    * @return {*}
    */
-  function handleCreate(index, item) {
+  function CreateopenDrawer(index, item) {
     validate().then((res) => {
       const Keys = Object.getOwnPropertyNames(useFormData.value);
       for (const i in Keys) {
         keyFieldValues.value[item['code']] = objParams.value['IsID']
           ? res[Keys[i]]['ID']
           : res[Keys[i]][item['code']];
+        console.log(i);
       }
       useDrawers[index][item['name']][1].openDrawer(true, {
         isUpdate: false,
@@ -285,6 +269,64 @@
   }
 
   /**
+   * @description: 鏂板鎸夐挳鏂规硶
+   * @param {*} index
+   * @param {*} item
+   * @return {*}
+   */
+  function handleCreate(index, item, d) {
+    const _cruds = GetCrudForm();
+    let isExistSql = '';
+    for (const i in _cruds) {
+      if (_cruds[i].isexist == 'Y') {
+        isExistSql = _cruds[i].field;
+      }
+    }
+
+    if (isNullOrUnDef(custImport.value['default'])) {
+      CreateopenDrawer(index, item);
+    } else {
+      const result = CreateAction(item.name);
+      /* 鏍规嵁涓婚〉闈㈣烦杞紶杩囨潵鐨勫弬鏁扮‘瀹氭柊澧炴寜閽殑鎵ц鏂规硶 */
+      switch (result.action) {
+        case 'go':
+          sessionStorage.removeItem(`${result.params.Name}_update_params`);
+          // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage
+          sessionStorage.setItem(
+            `${result.params.Name}_update_params`,
+            encodeURI(JSON.stringify(result.params)),
+          );
+          go(
+            `/${result.url}/${encodeURI(JSON.stringify({ sName: `${result.params.Name}_update`, Name: result.params.Name }))}`,
+          );
+          break;
+        case 'drawer':
+          CreateopenDrawer(index, item);
+          break;
+        case 'edit':
+          const params: CustModalParams = {
+            mValues: {},
+            others: keyFieldValues.value,
+            cType: item.name,
+            values: GetNewRow(item.name),
+            initFnName: '',
+            FnName: item.FnName,
+            data: data,
+          };
+          CustFunc(params);
+          useTables[item.name][1].setProps({
+            dataSource: [],
+          });
+          useTables[item.name][1].setProps({
+            dataSource: data.value[item.name],
+          });
+          useTables[item.name][1].reload();
+          break;
+      }
+    }
+  }
+
+  /**
    * @description: 鏂板缂栬緫杩斿洖鎴愬姛鏂规硶
    * @param {*} d
    * @param {*} u
diff --git a/src/views/tigerprojects/system/lowcode/high/edit/index.vue b/src/views/tigerprojects/system/lowcode/high/edit/index.vue
index 9160eda..457bbb8 100644
--- a/src/views/tigerprojects/system/lowcode/high/edit/index.vue
+++ b/src/views/tigerprojects/system/lowcode/high/edit/index.vue
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-06-18 15:09:48
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-27 12:59:25
+ * @LastEditTime: 2024-07-29 21:26:39
 -->
 <template>
   <PageWrapper
@@ -18,7 +18,12 @@
     </Suspense>
     <!-- <a-card :title="titleInfo['baseTableTitle']" :bordered="false" class="!mt-5"> -->
     <Suspense>
-      <Editdtl :entityName="entityName" @search="dtlFormSearch" />
+      <Editdtl
+        :entityName="entityName"
+        @search="dtlFormSearch"
+        @gettables="GetTablesData"
+        @opencust="OpenCust"
+      />
     </Suspense>
     <!-- </a-card> -->
     <a-card
@@ -64,6 +69,7 @@
         </template>
       </CustModal>
     </Suspense>
+    <GeneralModal @register="register" @success="handleCustSuccess" />
   </PageWrapper>
 </template>
 <script lang="ts" setup>
@@ -135,7 +141,8 @@
   provide<Ref<any>>('baseCards', baseCards);
   provide<Ref<any>>('useTables', useTables);
 
-  const [registerCust, { openModal: openCustomModal, closeModal }] = useModal();
+  const [registerCust] = useModal();
+  const [register, { openModal, closeModal }] = useModal();
   const { setTitle } = useTabs();
   setTitle(objParams.value.Title); //璁剧疆鏍囩椤垫爣棰�
 
@@ -160,32 +167,84 @@
   });
 
   /**
+   * @description: 鑾峰彇useTable
+   * @param {*} d
+   * @return {*}
+   */
+  function GetTablesData(d) {
+    useTableData.value = d;
+  }
+
+  const currTableName = ref('');
+  const currRecordId = ref('');
+  /**
+   * @description: 鎵撳紑寮规
+   * @param {*} d
+   * @return {*}
+   */
+  function OpenCust(d) {
+    console.log(d.name);
+    currTableName.value = d.name;
+    currRecordId.value = d.data.ID;
+    data.value[d.name].map((x) => {
+      if (x.ID == currRecordId.value && x.VAR_TYPE != d.data.VAR_TYPE) {
+        x.VAR_TYPE = d.data.VAR_TYPE;
+      }
+    });
+    openModal(true, d.modalSchema);
+  }
+
+  /**
+   * @description:
+   * @param {*} d
+   * @param {*} u
+   * @return {*}
+   */
+  function handleCustSuccess(d, u) {
+    const _data = data.value[currTableName.value].map((x) => {
+      if (x.ID == currRecordId.value) {
+        x.VAR_VALUE = d.values.val;
+      }
+      return x;
+    });
+    data.value[currTableName.value] = [];
+    useTables.value[currTableName.value][1].setProps({
+      dataSource: [],
+    });
+    data.value[currTableName.value] = _data;
+    useTables.value[currTableName.value][1].setProps({
+      dataSource: data.value[currTableName.value],
+    });
+    useTables.value[currTableName.value][1].reload();
+  }
+
+  /**
    * @description: 寮傛鍏ㄩ儴鎻愪氦鏂规硶
    * @return {*}
    */
   async function submitAll() {
     try {
       const validates = await validate();
-      const Keys = Object.getOwnPropertyNames(useFormData.value);
-      let i;
-      let p = [] as Promise<any>[];
-      for (i = 0; i < Keys.length; i++) {
-        p.push(
-          SaveEntity(
-            validates[Keys[i]],
-            unref(isAllUpdate),
-            baseCards.value[i]['entityName'],
-            `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`,
-            true,
-          ),
-        );
-      }
-      await Promise.all(p);
       if (
         !custImport.value['default']()[0].SubmitAll &&
         !isFunction(custImport.value['default']()[0].SubmitAll)
       ) {
         /* 榛樿鎻愪氦 */
+        const Keys = Object.getOwnPropertyNames(useFormData.value);
+        let i;
+        let p = [] as Promise<any>[];
+        for (i = 0; i < Keys.length; i++) {
+          p.push(
+            SaveEntity(
+              validates[Keys[i]],
+              unref(isAllUpdate),
+              baseCards.value[i]['entityName'],
+              `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`,
+              true,
+            ),
+          );
+        }
+        await Promise.all(p);
         objParams.value['drawers'].forEach((d) => {
           let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`;
           /* type: all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� */
@@ -206,7 +265,13 @@
         });
       } else {
         /* 濡傛灉鑷畾涔夋彁浜ゆ柟娉曞瓨鍦ㄥ氨鐢ㄨ嚜瀹氫箟鎻愪氦 */
-        custImport.value['default']()[0].SubmitAll(data, keyFieldValues, cancel);
+        custImport.value['default']()[0].SubmitAll(
+          data,
+          keyFieldValues,
+          cancel,
+          objParams.value['drawers'],
+          validates,
+        );
       }
     } catch (error) {}
   }

--
Gitblit v1.9.3