From b4496ad2462843c575a3902c94a87694426f29a3 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 27 六月 2024 16:03:37 +0800
Subject: [PATCH] 产品工艺路线更新

---
 src/views/tigerprojects/system/lowcode/composition/CarGridNav.vue |  142 +++++++++++++++--------------------------------
 1 files changed, 45 insertions(+), 97 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/composition/CarGridNav.vue b/src/views/tigerprojects/system/lowcode/composition/CarGridNav.vue
index d59402e..a4281d4 100644
--- a/src/views/tigerprojects/system/lowcode/composition/CarGridNav.vue
+++ b/src/views/tigerprojects/system/lowcode/composition/CarGridNav.vue
@@ -1,49 +1,68 @@
 <!--
- * @Description: 宸ヨ壓璺嚎娣诲姞椤甸潰
+ * @Description: 瀵艰埅椤甸潰
  * @Author: Ben Lin
  * @version: 
  * @Date: 2024-06-20 12:13:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-06-26 16:00:06
+ * @LastEditTime: 2024-06-27 00:39:37
 -->
 <template>
-  <Card title="娣诲姞宸ヨ壓">
-    <CardGrid v-for="item in navItems" :key="item.title" @click="changeItem(item.action)">
+  <Card :title="GetTitle()['navTitle']">
+    <CardGrid
+      v-for="item in GetNavItems()"
+      :key="item.title"
+      @click="navChangeItem(item.action, useModalData[item.action][1].openModal)"
+    >
       <span class="flex flex-col items-center">
         <Icon :icon="item.icon" :color="item.color" size="20" />
         <span class="text-md mt-2 truncate">{{ item.title }}</span>
       </span>
+      <GeneralModal
+        v-if="!item.isStep"
+        @register="useModalData[item.action][0]"
+        @success="(d, u) => handleSuccess(d, u, item.action, objParams, refreshPage)"
+      ></GeneralModal>
+      <StepModal
+        v-if="item.isStep"
+        @register="useModalData[item.action][0]"
+        @success="(d, u) => handleSuccess(d, u, item.action, objParams, refreshPage)"
+      />
     </CardGrid>
   </Card>
-  <GeneralModal @register="register" @success="handleSuccess"></GeneralModal>
 </template>
 <script lang="ts" setup>
   import { Card, CardGrid } from 'ant-design-vue';
   import Icon from '@/components/Icon/Icon.vue';
-  import { RouteToCust, RouteToProd } from '/@/api/tigerapi/mes/router';
   import GeneralModal from '/@/views/components/GeneralModal.vue';
-  import { useModal } from '/@/components/Modal';
-  import { useI18n } from '/@/hooks/web/useI18n';
+  import StepModal from '/@/views/components/StepModal.vue';
   import { Ref, inject, ref, watch } from 'vue';
-  import { isNullOrEmpty } from '/@/utils/is';
+  import { isNullOrUnDef } from '/@/utils/is';
   import { useTabs } from '/@/hooks/web/useTabs';
-  import { useMessage } from '/@/hooks/web/useMessage';
+  import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel';
 
   const objParams = inject('objParams') as Ref<any>;
-  const custImport = ref<any[]>(await import(`../entityts/${objParams.value['Name']}.ts`));
-  const [{ EditeOperation, GetBaseColumns, GetSearchForm, GetCrudForm, OthersValues }] =
-    custImport.value['default']();
+  const custImport = ref<any[]>([]);
+  const EntityCustFunction = ref([
+    {
+      GetTitle() {},
+      GetNavItems() {},
+      navChangeItem(action: any, ...args) {},
+      GetUseModals() {},
+      GetSelectSuccess(d, u, ...args) {},
+    } as EntityCustFunctionType,
+  ]);
+  /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+  try {
+    custImport.value = await import(`../entityts/${objParams.value['Name']}.ts`);
+  } catch (e) {}
+  const [{ GetTitle, GetNavItems, navChangeItem, GetUseModals, GetSelectSuccess }] = isNullOrUnDef(
+    custImport.value['default'],
+  )
+    ? EntityCustFunction.value
+    : custImport.value['default']();
+
+  const useModalData = ref(GetUseModals());
   const { refreshPage } = useTabs();
-  const { createErrorModal } = useMessage();
-  const { t } = useI18n();
-  const [register, { openModal }] = useModal();
-  interface NavItem {
-    title: string;
-    icon: string;
-    color: string;
-    url: string;
-    action: string;
-  }
 
   // watch(
   //   () => Prod_Code,
@@ -55,84 +74,13 @@
   //   { deep: true },
   // );
 
-  // 蹇嵎瀵艰埅
-  const navItems: NavItem[] = [
-    {
-      title: '娣诲姞浜у搧宸ヨ壓璺嚎',
-      icon: 'add_green|svg',
-      color: '#1fdaca',
-      url: '/addRoute',
-      action: 'addRoute',
-    },
-    {
-      title: '娣诲姞瀹㈡埛宸ヨ壓璺嚎',
-      icon: 'add_customer|svg',
-      color: '#bf0c2c',
-      url: '/addCustomer',
-      action: 'addCustomer',
-    },
-  ];
-  function changeItem(action) {
-    openModal(true, {
-      title: '宸ヨ壓璺嚎鍒楄〃',
-      schemas: [
-        {
-          field: 'ROT_CODE',
-          component: 'Input',
-          label: '宸ヨ壓璺嚎缂栫爜',
-          colProps: {
-            span: 12,
-          },
-        },
-      ],
-      ItemColumns: [
-        {
-          title: t('宸ヨ壓璺嚎缂栫爜'),
-          dataIndex: 'ROT_CODE',
-          resizable: true,
-          sorter: true,
-          width: 200,
-        },
-        {
-          title: t('宸ヨ壓璺嚎鍚嶇О'),
-          dataIndex: 'ROT_NAME',
-          resizable: true,
-          sorter: true,
-          width: 180,
-        },
-      ],
-      tableName: 'MES_ROUTE',
-      rowKey: 'ROT_CODE',
-      returnFieldName: 'ROUTE_CODE', //杩斿洖鍊艰璧嬪�肩殑瀛楁鍚嶇О
-      searchInfo: { TABLE_NAME: 'MES_ROUTE' },
-      which: action,
-    });
-  }
-
   /**
-   * @description: 閫夋嫨宸ヨ壓璺嚎鎴愬姛杩斿洖鏂规硶
+   * @description: 寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炴柟娉�
    * @param {*} d
    * @param {*} u
    * @return {*}
    */
-  async function handleSuccess(d, u) {
-    if (isNullOrEmpty(objParams.value['CODE'])) {
-      createErrorModal({
-        title: t('sys.api.errorTip'),
-        content: '浜у搧涓虹┖锛屼笉鑳芥坊鍔犲伐鑹鸿矾绾匡紝璇风偣鍑诲乏渚ч�夋嫨浜у搧',
-      });
-      return;
-    }
-    let codes = d.values.id.split(',');
-    var i;
-    for (i = 0; i < codes.length; i++) {
-      if (d.which == 'addRoute') {
-        await RouteToProd({ rotId: codes[i], prodCode: objParams.value['CODE'] });
-      } else {
-        await RouteToCust({ rotId: codes[i], prodCode: objParams.value['CODE'], custCode: '' });
-      }
-    }
-
-    await refreshPage();
+  async function handleSuccess(d, u, item, objParams, refreshPage) {
+    GetSelectSuccess(d, u, item, objParams, refreshPage);
   }
 </script>

--
Gitblit v1.9.3