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