From f1d47feeee1ddb5751847b71f789f2c3b822ec32 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 23 六月 2024 23:55:33 +0800
Subject: [PATCH] 详情页面优化

---
 /dev/null                                                         |   64 ----
 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts |    6 
 src/views/tigerprojects/system/lowcode/detail/detail.vue          |  264 ++++++++++++++++++
 src/views/tigerprojects/system/lowcode/high/index.vue             |   18 -
 src/views/tigerprojects/system/lowcode/detail/index.vue           |  277 ------------------
 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts  |  172 ++++++++++++
 6 files changed, 453 insertions(+), 348 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/detail/basLabelVar.ts b/src/views/tigerprojects/system/lowcode/detail/basLabelVar.ts
deleted file mode 100644
index f3f37ae..0000000
--- a/src/views/tigerprojects/system/lowcode/detail/basLabelVar.ts
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * @Description: 鎵撳嵃妯℃澘鏂规硶鏁版嵁鐩稿叧
- * @Author: Ben Lin
- * @version: 
- * @Date: 2024-06-13 16:18:39
- * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-22 23:39:08
- */
-import { h, unref } from "vue";
-import { BasicColumn, FormSchema } from "/@/components/Table";
-import { Tag, Tooltip } from "ant-design-vue";
-import { GetEnum } from "/@/api/tigerapi/system";
-import { useLocale } from "/@/locales/useLocale";
-import { useI18n } from '/@/hooks/web/useI18n';
-
-const { t } = useI18n();
-const { getLocale } = useLocale();
-export const firstColumns: BasicColumn[] = [
-    {
-        dataIndex: "LABEL_ID",
-        title: "鏍囩妯℃澘ID",
-        ifShow: false,
-        sorter: true,
-        resizable: true,
-    },
-    {
-        dataIndex: "VAR_NAME",
-        title: "鍙橀噺鍚嶇О",
-        ifShow: true,
-        sorter: true,
-        resizable: true,
-        customRender: () => { }
-    },
-    {
-        dataIndex: "VAR_TYPE",
-        title: "鍙橀噺绫诲瀷",
-        ifShow: true,
-        sorter: true,
-        resizable: true,
-        customRender: ({ record }) => {
-            let color = ''; let text = '';
-            switch (record.VAR_TYPE) {
-                case 0:
-                    text = '甯搁噺';
-                    color = 'green';
-                    break;
-                case 1:
-                    text = '杩囩▼鍙橀噺';
-                    color = 'orange';
-                    break;
-                case 2:
-                    text = '鏃ユ湡鍙橀噺';
-                    color = '#4f68b0';
-                    break;
-                case 3:
-                    text = '鑷畾涔夊彉閲�';
-                    color = '#bfbfbf';
-                    break;
-            }
-            return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text),);
-        }
-    },
-    {
-        dataIndex: "VAR_VALUE",
-        title: "鍙橀噺鍊�",
-        ifShow: true,
-        sorter: true,
-        resizable: true,
-    },
-    {
-        dataIndex: "REMARK",
-        title: "澶囨敞",
-        ifShow: true,
-        sorter: true,
-        resizable: true,
-    }];
-
-export const secondColumns: BasicColumn[] = [];
-
-let isShow = false;
-export const firstFormSchemas: FormSchema[] = [
-    {
-        field: 'ID',
-        label: '鍙橀噺ID',
-        component: 'Input',
-        colProps: {
-            span: 20,
-        },
-        show: false,
-    },
-    {
-        field: 'LABEL_ID',
-        label: '鏍囩妯℃澘ID',
-        component: 'Input',
-        colProps: {
-            span: 20,
-        },
-        show: false,
-    },
-    {
-        field: 'VAR_NAME',
-        label: '鍙橀噺鍚�',
-        required: true,
-        component: 'Input',
-        colProps: {
-            span: 20,
-        },
-    },
-    {
-        field: 'VAR_TYPE',
-        label: '鍙橀噺绫诲瀷',
-        component: 'ApiSelect',
-        colProps: {
-            span: 20,
-        },
-        componentProps: {
-            api: GetEnum,
-            params: { name: 'BAS_LABEL_VAR+VAR_TYPEs' },
-            resultField: 'Data',
-            labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
-            valueField: 'Value',
-            onChange: (e) => {
-                if(e == 1){
-                    isShow = true;
-                }else{
-                    isShow = false;
-                }
-            }
-        },
-    },
-    {
-        field: 'VAR_VALUE',
-        label: '鍙橀噺鍊�',
-        required: true,
-        component: 'Input',
-        colProps: {
-            span: 20,
-        },
-    },
-    {
-        field:"BAS_LABEL_PV1PSelect_0", //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂�
-        label:"1",
-        defaultValue:"BAS_LABEL_PV",
-        component:"Input",
-        colProps:{"span":4},
-        ifShow: ({ values }) => isShow,
-        colSlot:"BAS_LABEL_PV1add" //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂�
-    },
-    {
-        field: 'REMARK',
-        label: '澶囨敞',
-        component: 'Input',
-        colProps: {
-            span: 20,
-        },
-    },
-];
-export const secondFormSchemas: FormSchema[] = [];
-
-export const firstSearchForm: FormSchema[] = [
-    {
-        field: 'VAR_NAME',
-        label: t('鍙橀噺鍚�'),
-        colProps: { span: 8 },
-        component: 'Input',
-    },
-];
\ No newline at end of file
diff --git a/src/views/tigerprojects/system/lowcode/detail/data.ts b/src/views/tigerprojects/system/lowcode/detail/data.ts
deleted file mode 100644
index 0ce0e55..0000000
--- a/src/views/tigerprojects/system/lowcode/detail/data.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * @Description: 璇︽儏椤甸潰鏁版嵁鐩稿叧
- * @Author: Ben Lin
- * @version: 
- * @Date: 2024-06-13 10:59:53
- * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-14 00:28:09
- */
-import { firstColumns, firstFormSchemas, firstSearchForm, secondColumns, secondFormSchemas } from "./basLabelVar";
-import { BasicColumn, FormSchema } from "/@/components/Table";
-
-/**
- * @description: 鑾峰彇琛ㄦ牸瀛楁
- * @param {string} entityName
- * @param {string} type
- * @return {*}
- */
-export function GetBaseColumns(entityName: string, type: string) {
-    let data: BasicColumn[] = [];
-    switch (entityName) {
-        case 'BAS_LABEL_VAR':
-            data =type=='detailfirst'? firstColumns: secondColumns;
-            break;
-        default:
-            break;
-    }
-    return data;
-}
-
-/**
- * @description: 鑾峰彇澧炲垹鏀硅〃鍗曞瓧娈�
- * @param {string} entityName
- * @param {string} type
- * @return {*}
- */
-export function GetFormColumns(entityName: string, type: string) {
-    let data: FormSchema[] = [];
-    switch (entityName) {
-        case 'BAS_LABEL_VAR':
-            data =type=='detailfirst'? firstFormSchemas: secondFormSchemas;
-            break;
-        default:
-            break;
-    }
-    return data;
-}
-
-/**
- * @description: 鑾峰彇鏌ヨ琛ㄥ崟瀛楁
- * @param {string} entityName
- * @param {string} type
- * @return {*}
- */
-export function GetSearchFormColumns(entityName: string, type: string) {
-    let data: FormSchema[] = [];
-    switch (entityName) {
-        case 'BAS_LABEL_VAR':
-            data =type=='detailfirst'? firstSearchForm: secondFormSchemas;
-            break;
-        default:
-            break;
-    }
-    return data;
-}
\ No newline at end of file
diff --git a/src/views/tigerprojects/system/lowcode/detail/detail.vue b/src/views/tigerprojects/system/lowcode/detail/detail.vue
new file mode 100644
index 0000000..0be5062
--- /dev/null
+++ b/src/views/tigerprojects/system/lowcode/detail/detail.vue
@@ -0,0 +1,264 @@
+<template>
+  <div>
+    <BasicTable @register="registerTable">
+      <template #toolbar>
+        <a-button type="primary" @click="handleCreate" preIcon="add_02|svg"> 鏂板 </a-button>
+      </template>
+      <template #action="{ record }">
+        <TableAction :actions="createActions(record)" />
+      </template>
+      <template #[item]="{ field }" v-for="item in colSlots" :key="item">
+        <!-- <template #form-BAS_REASON3aadd="{ field }"> -->
+        <a-button
+          v-if="field"
+          class="mt-1 ml-1"
+          size="small"
+          @click="handleSelectItem(item)"
+          preIcon="search|svg"
+        />
+        <GeneralModal
+          @register="registerItemAdd"
+          @success="(d, u) => handleItemSuccess(d, u, item)"
+        />
+      </template>
+    </BasicTable>
+    <normalDrawer @register="registerDrawer" @success="handleSuccess" />
+  </div>
+</template>
+<script lang="ts" setup>
+  import { Ref, inject, onMounted, ref } from 'vue';
+  import { BasicTable, useTable, TableAction } from '/@/components/Table';
+  import { useForm } from '/@/components/Form/index';
+  import { useDrawer } from '/@/components/Drawer';
+  import GeneralModal from '/@/views/components/GeneralModal.vue';
+  import normalDrawer from '../normalDrawer.vue';
+  import { isNullOrUnDef } from '/@/utils/is';
+  import { useModal } from '/@/components/Modal';
+  import { useGo } from '/@/hooks/web/usePage';
+  import { DeleteEntity, getListByPage } from '/@/api/tigerapi/system';
+  import { useI18n } from '/@/hooks/web/useI18n';
+
+  const { t } = useI18n();
+
+  const props = defineProps({
+    useTableData: { type: Object as PropType<{}>, default: { table: [] } },
+    entityName: { type: String },
+  });
+  const objParams = inject('objParams') as Ref<any>;
+  const data = inject('data') as Ref<Recordable[]>;
+  const others = inject('others') as Ref<Recordable[]>;
+  const go = useGo();
+  const [registerDrawer, { openDrawer }] = useDrawer();
+  const [registerItemAdd, { openModal: openItemModal }] = useModal();
+  const cType = ref('');
+  const colSlots = ref<any>(objParams['colSlots']); //鎸夐挳鎻掓Ы
+  const dtlSlots = ref([] as any[]);
+  const useModalData = ref({}); //琛ㄥ崟涓彃妲芥覆鏌撴寜閽墦寮�妯℃�佹useModal鏂规硶
+  const useFormData = ref({});
+  const custImport = ref<any[]>(await import(/* @vite-ignore */ `../entityts/${props.entityName}`));
+  const [{ EditeOperation, GetBaseColumns, GetSearchForm, GetCrudForm, OthersValues }] =
+    custImport.value['default']();
+  others.value = OthersValues(objParams['CODE'], objParams['ID']);
+  const [registerTable, { getForm, reload, setProps }] = useTable({
+    title: `${objParams['firstTitle']}鍒楄〃`,
+    api: getListByPage,
+    searchInfo: { TABLE_NAME: objParams['Name'], ...objParams['others'] },
+    columns: GetBaseColumns(),
+    formConfig: {
+      labelWidth: 140,
+      schemas: GetSearchForm(),
+    },
+    useSearchForm: true,
+    showTableSetting: true,
+    bordered: true,
+    canResize: true,
+    showIndexColumn: false,
+    actionColumn: {
+      width: 130,
+      title: '鎿嶄綔',
+      dataIndex: 'action',
+      slots: { customRender: 'action' },
+      fixed: undefined,
+    }, //鑷畾涔夋搷浣滃垪
+  });
+
+  onMounted(() => {});
+
+  function createActions(record) {
+    const params = {
+      record,
+      isUpdate: true,
+      ifSave: false,
+      entityName: props.entityName,
+      formJson: GetCrudForm(), //getFormSchema(`${entityName.value}_Crud`),
+      cType,
+      dtlSlots,
+      useModalData,
+      useFormData,
+      crudColSlots: colSlots.value,
+      data,
+    };
+    const actionItem = [
+      {
+        icon: 'clarity:note-edit-line',
+        onClick: editRecord.bind(null, openDrawer, params),
+      },
+      {
+        icon: 'ant-design:delete-outlined',
+        color: 'error',
+        popConfirm: {
+          title: '鏄惁纭鍒犻櫎?',
+          placement: 'left',
+          confirm: deleteRecord.bind(null, reload, params),
+        },
+      },
+    ];
+    if (isNullOrUnDef(custImport.value)) {
+      return actionItem;
+    }
+    const [{ ActionItem }] = custImport.value['default']();
+    return ActionItem(
+      params,
+      actionItem,
+      openDrawer,
+      reload,
+      null,
+      useForm,
+      useModal,
+      go,
+      setProps,
+    );
+  }
+
+  /**
+   * @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();
+      }
+    });
+  }
+
+  function handleCreate() {
+    const _cruds = GetCrudForm();
+    let isExistSql = '';
+    for (const i in _cruds) {
+      if (_cruds[i].isexist == 'Y') {
+        isExistSql = _cruds[i].field;
+      }
+    }
+    openDrawer(true, {
+      isUpdate: false,
+      ifSave: false,
+      entityName: props.entityName,
+      formJson: GetCrudForm(), //getFormSchema(`${entityName.value}_Crud`),
+      crudColSlots: colSlots.value,
+      others: others.value,
+      isExistSql: isExistSql,
+    });
+  }
+
+  /**
+   * @description: 鏂板缂栬緫杩斿洖鎴愬姛鏂规硶
+   * @param {*} d
+   * @param {*} u
+   * @return {*}
+   */
+  function handleSuccess(d, u) {
+    reload();
+  }
+
+  /**
+   * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛鍚庝簨浠�
+   * @param {*} d
+   * @param {*} u
+   * @param {*} item
+   * @return {*}
+   */
+  function handleItemSuccess(d, u, item) {
+    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+    try {
+      import(
+        /* @vite-ignore */ `../entityts/${getForm().getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}`
+      )
+        .then((m) => {
+          const [{ GetSelectSuccess }] = m.default();
+          getForm().setFieldsValue(GetSelectSuccess(d, u));
+        })
+        .catch(() => {
+          getForm().setFieldsValue({
+            ITEM_CODE: d.values['val'],
+          });
+        });
+    } catch (e) {}
+  }
+
+  /**
+   * @description: 寮瑰嚭閫夋嫨妗�
+   * @param {*} item
+   * @return {*}
+   */
+  function handleSelectItem(item) {
+    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+    try {
+      import(
+        /* @vite-ignore */ `../entityts/${props.useTableData['table'][1].getForm().getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}`
+      )
+        .then((m) => {
+          const [{ OpenSelectItem }] = m.default();
+          OpenSelectItem(openItemModal);
+        })
+        .catch(() => {
+          openItemModal(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/detail/index.vue b/src/views/tigerprojects/system/lowcode/detail/index.vue
index 35bf287..8d2fc58 100644
--- a/src/views/tigerprojects/system/lowcode/detail/index.vue
+++ b/src/views/tigerprojects/system/lowcode/detail/index.vue
@@ -1,18 +1,10 @@
 <!--
- * @Description: file content
- * @Author: Ben Lin
- * @version: 
- * @Date: 2024-06-18 15:09:48
- * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-23 00:31:33
--->
-<!--
  * @Description: 浣庝唬鐮佽鎯呭憟鐜伴〉闈�
  * @Author: Ben Lin
  * @version: 
  * @Date: 2024-05-30 13:28:20
- * @LastEditors: your name
- * @LastEditTime: 2024-06-17 11:29:54
+ * @LastEditors: Ben Lin
+ * @LastEditTime: 2024-06-23 22:58:33
 -->
 <template>
   <PageWrapper :title="pageTitle" :content="contentStr" contentBackground @back="goBack">
@@ -24,66 +16,14 @@
     </template>
     <div>
       <div v-if="currentKey == 'detailfirst'">
-        <BasicTable @register="detailTable">
-          <template #toolbar>
-            <a-button type="primary" @click="handleCreate" preIcon="add_02|svg"> 鏂板 </a-button>
-          </template>
-          <template #action="{ record }">
-            <TableAction
-              :actions="[
-                {
-                  icon: 'clarity:note-edit-line',
-                  onClick: handleEdit.bind(null, record),
-                },
-                {
-                  icon: 'ant-design:delete-outlined',
-                  color: 'error',
-                  popConfirm: {
-                    title: '鏄惁纭鍒犻櫎?',
-                    placement: 'left',
-                    confirm: handleDelete.bind(null, record),
-                  },
-                },
-              ]"
-            />
-          </template>
-          <template #[item]="{ field }" v-for="item in colSlots" :key="item">
-            <a-button
-              v-if="field"
-              class="mt-1 ml-1"
-              size="small"
-              @click="handleSelectItem(item)"
-              preIcon="search|svg"
-            />
-            <GeneralModal
-              @register="registerItemAdd"
-              @success="(d, u) => handleItemSuccess(d, u, item)"
-            />
-          </template>
-        </BasicTable>
+        <Suspense>
+          <detail :entityName="entityName" />
+        </Suspense>
       </div>
       <div v-if="currentKey == 'detailsecond'">
-        <BasicTable @register="detailsecondTable">
-          <template #toolbar>
-            <a-button type="primary" @click="secondCreate" preIcon="add_02|svg"> 鏂板 </a-button>
-          </template>
-          <template #[item]="{ field }" v-for="item in secondColSlots" :key="item">
-            <a-button
-              v-if="field"
-              class="mt-1 ml-1"
-              size="small"
-              @click="handleSelectItem(item)"
-              preIcon="search|svg"
-            />
-            <GeneralModal
-              @register="registerItemAdd"
-              @success="(d, u) => handleItemSuccess(d, u, item)"
-            />
-          </template>
-        </BasicTable>
+        <Suspense></Suspense>
       </div>
     </div>
-    <normalDrawer @register="registerDrawer" @success="handleSuccess" />
     <CustModal
       @register="registerCust"
       @success="custSuccess"
@@ -114,31 +54,24 @@
 </template>
 
 <script lang="ts" setup>
-  import { ref, reactive } from 'vue';
+  import { ref, provide, Ref } from 'vue';
   import { useRoute } from 'vue-router';
   import { PageWrapper } from '/@/components/Page';
   import { useTabs } from '/@/hooks/web/useTabs';
   import { Tabs } from 'ant-design-vue';
   import { useGo } from '/@/hooks/web/usePage';
-  //璇︽儏鍒楄〃
-  import { BasicTable, useTable, TableAction } from '/@/components/Table';
   import { OpenCustModal, custOnChange } from '../data';
+  import detail from './detail.vue';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { useMessage } from '/@/hooks/web/useMessage';
-  import { DeleteEntity, getListByPage } from '/@/api/tigerapi/system';
-  import { useDrawer } from '/@/components/Drawer';
-  import normalDrawer from '../normalDrawer.vue';
   import GeneralModal from '/@/views/components/GeneralModal.vue';
   import CustModal from '/@/views/components/CustModal.vue';
   import { BasicForm } from '/@/components/Form/index';
   import { useGlobSetting } from '/@/hooks/setting';
   import { useModal } from '/@/components/Modal';
-  import { GetBaseColumns, GetFormColumns, GetSearchFormColumns } from './data';
-  import { isNullOrUnDef } from '/@/utils/is';
 
   const { t } = useI18n();
 
-  const { t: bt } = useI18n('');
   const { createMessage } = useMessage();
   const route = useRoute();
   const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
@@ -147,96 +80,27 @@
   var ITEM_CODE = ref('');
   const go = useGo();
   const pageTitle = ref(objParams.value.pageTitle);
-  const firstTitle = ref(objParams.value.firstTitle);
-  const secondTitle = ref(objParams.value.secondTitle);
   const contentStr = ref(objParams.value.contentStr);
   const firstTabName = ref(objParams.value.firstTabName);
   const secondTabName = ref(objParams.value.secondTabName);
-  const entityName = ref(objParams.value.ID);
+  const entityName = ref(objParams.value.Name);
   const detailName = ref(objParams.value.detailName);
   const globSetting = useGlobSetting();
-  const _columns = ref([]);
-  const _searchFormSchema = ref([]);
-  const _crudFormSchema = ref([]);
   const formSchemas = ref({}); //寮瑰嚭妗嗗琛ㄥ崟缁撴瀯
   const useModalData = ref({}); //琛ㄥ崟涓彃妲芥覆鏌撴寜閽墦寮�妯℃�佹useModal鏂规硶
   const useFormData = ref({});
-  const colSlots = ref<any>(objParams.value.colSlots); //鎸夐挳鎻掓Ы
   const secondColSlots = ref<any>(objParams.value.secondColSlots); //鎸夐挳鎻掓Ы
   const crudColSlots = ref<any>(objParams.value.colSlots);
   const cType = ref('');
   const dtlSlots = ref([] as any[]);
   const selectVals = ref({});
-  //鑾峰彇JobId
-  const BILLCODE = ref(route.params?.BillCode);
+  const others = ref<any>(null);
+  provide<Ref<any>>('objParams', objParams.value);
+  provide<Ref<any>>('others', others);
   const [registerCust] = useModal();
-  const [registerItemAdd, { openModal: openItemModal }] = useModal();
-  const [registerDrawer, { openDrawer }] = useDrawer();
-  const [detailTable, { reload: reloadFirst }] = useTable({
-    title: `${firstTitle.value}鍒楄〃`,
-    api: getListByPage,
-    searchInfo: { TABLE_NAME: entityName.value, ...objParams.value.others },
-    columns: GetBaseColumns(entityName.value, 'detailfirst'),
-    useSearchForm: true,
-    showTableSetting: true,
-    bordered: true,
-    canResize: true,
-    showIndexColumn: false,
-    formConfig: {
-      labelWidth: 120,
-      schemas: GetSearchFormColumns(entityName.value, 'detailfirst'),
-    },
-    actionColumn: {
-      width: 130,
-      title: '鎿嶄綔',
-      dataIndex: 'action',
-      slots: { customRender: 'action' },
-      fixed: 'right', //undefined,
-    },
-    // searchInfo: { BILLCODE },
-  });
-  const [detailsecondTable, { getForm, reload }] = useTable({
-    title: `${secondTitle.value}鍒楄〃`,
-    api: getListByPage,
-    columns: GetBaseColumns(entityName.value, 'detailsecond'),
-    formConfig: {
-      labelWidth: 120,
-      schemas: GetFormColumns(entityName.value, 'detailsecond'),
-      model: { ITEM_CODE: ITEM_CODE },
-    },
-    useSearchForm: true,
-    // searchInfo: { BILLCODE },
-    showTableSetting: false,
-    bordered: true,
-    canResize: true,
-    showIndexColumn: false,
-  });
 
-  function handleCreate() {
-    openDrawer(true, {
-      isUpdate: false,
-      entityName: objParams.value.ID,
-      formJson: GetFormColumns(entityName.value, 'detailfirst'),
-      crudColSlots,
-      others: objParams.value.others,
-    });
-  }
-
-  function secondCreate() {
-    openDrawer(true, {
-      isUpdate: false,
-      entityName: objParams.value.ID,
-      formJson: _crudFormSchema.value,
-      crudColSlots,
-    });
-  }
-
-  // 姝ゅ鍙互寰楀埌鐢ㄦ埛ID
-  //const BILLCODE = ref(route.params?.BILLCODE.split(',')[1]);
   var currentKey = ref('detailfirst');
   const { setTitle } = useTabs();
-  // TODO
-  // 鏈〉浠g爜浠呬綔婕旂ず锛屽疄闄呭簲褰撻�氳繃userId浠庢帴鍙h幏寰楃敤鎴风殑鐩稿叧璧勬枡
 
   // 璁剧疆Tab鐨勬爣棰橈紙涓嶄細褰卞搷椤甸潰鏍囬锛�
   setTitle(`璇︽儏锛�${detailName.value}`);
@@ -259,121 +123,6 @@
       ITEM_CODE.value = '';
     }
   };
-
-  /**
-   * @description: detailfirst tab涓殑琛ㄦ牸缂栬緫璁板綍寮瑰嚭渚ц竟妗嗘柟娉�
-   * @param {*} record
-   * @return {*}
-   */
-  function handleEdit(record: Recordable) {
-    openDrawer(true, {
-      record,
-      isUpdate: true,
-      entityName: objParams.value.ID,
-      formJson: GetFormColumns(entityName.value, 'detailfirst'),
-      crudColSlots,
-    });
-  }
-
-  /**
-   * @description: detailfirst tab涓殑琛ㄦ牸鍒犻櫎璁板綍鏂规硶
-   * @param {*} record
-   * @return {*}
-   */
-  function handleDelete(record: Recordable) {
-    console.log(record);
-    //鍒犻櫎
-    DeleteEntity(record, entityName.value).then((action) => {
-      if (action.IsSuccessed) {
-        reloadFirst();
-      }
-    });
-  }
-
-  /**
-   * @description: detailfirst tab涓鍒犳敼鎴愬姛杩斿洖鏂规硶
-   * @return {*}
-   */
-  function handleSuccess() {
-    reloadFirst();
-  }
-
-  /**
-   * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛鍚庝簨浠�
-   * @param {*} d
-   * @param {*} u
-   * @param {*} item
-   * @return {*}
-   */
-  function handleItemSuccess(d, u, item) {
-    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
-    try {
-      import(
-        /* @vite-ignore */ `../entityts/${getForm().getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}`
-      )
-        .then((m) => {
-          const [{ GetSelectSuccess }] = m.default();
-          getForm().setFieldsValue(GetSelectSuccess(d, u));
-        })
-        .catch(() => {
-          getForm().setFieldsValue({
-            ITEM_CODE: d.values['val'],
-          });
-        });
-    } catch (e) {}
-  }
-
-  /**
-   * @description: 寮瑰嚭閫夋嫨妗�
-   * @param {*} item
-   * @return {*}
-   */
-  function handleSelectItem(item) {
-    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
-    try {
-      import(
-        /* @vite-ignore */ `../entityts/${getForm().getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}`
-      )
-        .then((m) => {
-          const [{ OpenSelectItem }] = m.default();
-          OpenSelectItem(openItemModal);
-        })
-        .catch(() => {
-          openItemModal(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) {}
-  }
 
   /**
    * @description: Select 鑷畾涔塷nChange鏂规硶
@@ -399,7 +148,7 @@
    * @return {*}
    */
   function custSuccess(d) {
-    reload();
+    // reload();
   }
 
   /**
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 424074c..02f4089 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-06-22 20:35:33
+ * @LastEditTime: 2024-06-23 23:53:41
  */
 
 import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -17,7 +17,9 @@
    */
   function goDetail(go: Fn, params: Recordable) {
     const id = {
-      ID: 'BAS_LABEL_VAR',
+      ID: params['record'].ID,
+      CODE: params['record']['LABEL_CODE'],
+      Name: 'BAS_LABEL_VAR',
       firstTabName: '鏍囩妯℃澘鍙橀噺',
       secondTabName: '', //'鏍囩杩囩▼鍙橀噺',
       firstTitle: '妯℃澘鍙橀噺',
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 9b096df..ddebf23 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts
@@ -4,10 +4,19 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-23 00:28:56
+ * @LastEditTime: 2024-06-23 23:42:04
  */
 
-import { ActionItem, BasicColumn } from "/@/components/Table";
+import { Tag, Tooltip } from 'ant-design-vue';
+import { ActionItem, BasicColumn } from '/@/components/Table';
+import { useI18n } from '/@/hooks/web/useI18n';
+import { h, unref } from 'vue';
+import { GetEnum } from '/@/api/tigerapi/system';
+import { useLocale } from '/@/locales/useLocale';
+
+const { getLocale } = useLocale();
+
+const { t } = useI18n();
 
 function _default() {
   const ActionColumn: BasicColumn = {
@@ -36,7 +45,164 @@
     },
     GetHomeUrl: () => {
       return `/BAS_LABEL_TEMP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_LABEL_TEMP', colSlots: [], crudColSlots: [] }))}`;
-    }
+    },
+    GetBaseColumns: () => {
+      return [
+        {
+          dataIndex: 'LABEL_ID',
+          title: '鏍囩妯℃澘ID',
+          ifShow: false,
+          sorter: true,
+          resizable: true,
+        },
+        {
+          dataIndex: 'VAR_NAME',
+          title: '鍙橀噺鍚嶇О',
+          ifShow: true,
+          sorter: true,
+          resizable: true,
+          customRender: () => {},
+        },
+        {
+          dataIndex: 'VAR_TYPE',
+          title: '鍙橀噺绫诲瀷',
+          ifShow: true,
+          sorter: true,
+          resizable: true,
+          customRender: ({ record }) => {
+            let color = '';
+            let text = '';
+            switch (record.VAR_TYPE) {
+              case 0:
+                text = '甯搁噺';
+                color = 'green';
+                break;
+              case 1:
+                text = '杩囩▼鍙橀噺';
+                color = 'orange';
+                break;
+              case 2:
+                text = '鏃ユ湡鍙橀噺';
+                color = '#4f68b0';
+                break;
+              case 3:
+                text = '鑷畾涔夊彉閲�';
+                color = '#bfbfbf';
+                break;
+            }
+            return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text));
+          },
+        },
+        {
+          dataIndex: 'VAR_VALUE',
+          title: '鍙橀噺鍊�',
+          ifShow: true,
+          sorter: true,
+          resizable: true,
+        },
+        {
+          dataIndex: 'REMARK',
+          title: '澶囨敞',
+          ifShow: true,
+          sorter: true,
+          resizable: true,
+        },
+      ];
+    },
+    GetSearchForm: () => {
+      return [
+        {
+          field: 'VAR_NAME',
+          label: t('鍙橀噺鍚�'),
+          colProps: { span: 8 },
+          component: 'Input',
+        },
+      ];
+    },
+    GetCrudForm: () => {
+      let isShow = false;
+      return [
+        {
+          field: 'ID',
+          label: '鍙橀噺ID',
+          component: 'Input',
+          colProps: {
+            span: 20,
+          },
+          show: false,
+        },
+        {
+          field: 'LABEL_ID',
+          label: '鏍囩妯℃澘ID',
+          component: 'Input',
+          colProps: {
+            span: 20,
+          },
+          show: false,
+        },
+        {
+          field: 'VAR_NAME',
+          label: '鍙橀噺鍚�',
+          required: true,
+          component: 'Input',
+          isexist: 'Y',
+          colProps: {
+            span: 20,
+          },
+        },
+        {
+          field: 'VAR_TYPE',
+          label: '鍙橀噺绫诲瀷',
+          component: 'ApiSelect',
+          colProps: {
+            span: 20,
+          },
+          componentProps: {
+            api: GetEnum,
+            params: { name: 'BAS_LABEL_VAR+VAR_TYPEs' },
+            resultField: 'Data',
+            labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
+            valueField: 'Value',
+            onChange: (e) => {
+              if (e == 1) {
+                isShow = true;
+              } else {
+                isShow = false;
+              }
+            },
+          },
+        },
+        {
+          field: 'VAR_VALUE',
+          label: '鍙橀噺鍊�',
+          required: true,
+          component: 'Input',
+          colProps: {
+            span: 20,
+          },
+        },
+        {
+          field: 'BAS_LABEL_PV1PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂�
+          label: '1',
+          defaultValue: 'BAS_LABEL_PV',
+          component: 'Input',
+          colProps: { span: 4 },
+          ifShow: ({ values }) => isShow,
+          colSlot: 'BAS_LABEL_PV1add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂�
+        },
+        {
+          field: 'REMARK',
+          label: '澶囨敞',
+          component: 'Input',
+          colProps: {
+            span: 20,
+          },
+        },
+      ];
+    },
+    OthersValues: (val: string, id: string) => {
+      return { LABEL_ID: id };
+    },
   };
 
   return [methods, ActionColumn];
diff --git a/src/views/tigerprojects/system/lowcode/high/index.vue b/src/views/tigerprojects/system/lowcode/high/index.vue
index 671e7e7..f8ce9ca 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-06-23 18:03:27
+ * @LastEditTime: 2024-06-23 22:11:00
 -->
 <!--
  *                        _oo0oo_
@@ -101,7 +101,6 @@
 <script lang="ts" setup>
   import { Ref, h, nextTick, onMounted, provide, ref, unref } from 'vue';
   import { Card } from 'ant-design-vue';
-  import { useTable } from '/@/components/Table';
   import { PageWrapper } from '/@/components/Page';
   import dtl from './dtl.vue';
   import baseForm from './baseForm.vue';
@@ -111,7 +110,7 @@
   import { useRoute, useRouter } from 'vue-router';
   import CustModal from '/@/views/components/CustModal.vue';
   import { BasicForm, useForm } from '/@/components/Form/index';
-  import { custOnChange, OpenCustModal, GetBasicColumnAndInit, getTitle } from '../data';
+  import { custOnChange, OpenCustModal, getTitle } from '../data';
   import { useModal } from '/@/components/Modal';
   import { useLocale } from '/@/locales/useLocale';
   import { useGo } from '/@/hooks/web/usePage';
@@ -158,18 +157,7 @@
   provide<Ref<any>>('others', others);
   provide<Ref<{}>>('useFormData', useFormData);
   provide<Ref<any>>('baseCards', baseCards);
-  //鑾峰彇琛ㄦ牸鍒椾俊鎭苟鍒濆鍖栦竴浜涙暟鎹紝濡傦細formSchemas(寮瑰嚭妗嗘垨楂樼骇椤甸潰澶氳〃鍗曠粨鏋�), useFormData(琛ㄥ崟涓彃妲芥覆鏌撴寜閽墦寮�妯℃�佹useModal鏂规硶)...绛�
-  const _columns = GetBasicColumnAndInit(
-    entityName.value,
-    formSchemas,
-    useFormData,
-    baseCards,
-    otherCards,
-    useForm,
-    useTableData,
-    useTable,
-    data,
-  );
+
   const [registerCust, { openModal: openCustomModal, closeModal }] = useModal();
   const { setTitle } = useTabs();
   setTitle(objParams.value.Title); //璁剧疆鏍囩椤垫爣棰�

--
Gitblit v1.9.3