From 745815f637e5385b2cbc23a6ae02401bb8b6c675 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 08 三月 2025 14:22:36 +0800 Subject: [PATCH] 详情页面优化 --- src/views/tigerprojects/system/lowcode/detail/detail.vue | 7 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts | 18 + src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts | 112 ++----------- src/views/tigerprojects/system/lowcode/detail/index.vue | 22 +- src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts | 276 ++++++++++++++++++--------------- 5 files changed, 193 insertions(+), 242 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/detail/detail.vue b/src/views/tigerprojects/system/lowcode/detail/detail.vue index dd62fa0..4326f66 100644 --- a/src/views/tigerprojects/system/lowcode/detail/detail.vue +++ b/src/views/tigerprojects/system/lowcode/detail/detail.vue @@ -142,11 +142,12 @@ /* 琛ㄥ崟涓彃妲芥覆鏌撴寜閽墦寮�妯℃�佹useModal鏂规硶 */ const modals = GetUseModals && isFunction(GetUseModals) ? GetUseModals() : { useModalData: {} }; const useModalData = ref(modals['useModalData']); + const CurrTabInfo = objParams['Tabs'].filter(q=>q.entityName == props.entityName)[0]; const [registerTable, { getForm, reload, setProps }] = useTable({ - title: `${objParams['firstTitle']}鍒楄〃`, + title: `${CurrTabInfo.tableTitle}鍒楄〃`, api: getListByPage, - searchInfo: { TABLE_NAME: objParams['Name'], ...objParams['keyFieldValues'] }, - columns: GetBaseColumns(), + searchInfo: { TABLE_NAME: CurrTabInfo.entityName, ...objParams['keyFieldValues'] }, + columns: GetBaseColumns(CurrTabInfo.entityName), formConfig: { labelWidth: 140, schemas: GetSearchForm(), diff --git a/src/views/tigerprojects/system/lowcode/detail/index.vue b/src/views/tigerprojects/system/lowcode/detail/index.vue index f64f685..0d23006 100644 --- a/src/views/tigerprojects/system/lowcode/detail/index.vue +++ b/src/views/tigerprojects/system/lowcode/detail/index.vue @@ -10,14 +10,13 @@ <PageWrapper :title="pageTitle" :content="contentStr" contentBackground @back="goBack"> <template #footer> <a-tabs default-active-key="detail" v-model:activeKey="currentKey" @tabClick="tabClkcallback"> - <a-tab-pane key="detailfirst" :tab="firstTabName" /> - <a-tab-pane key="detailsecond" :tab="secondTabName" /> + <a-tab-pane v-for="t in TabList" :tab="t.name" :key="t.key" /> </a-tabs> </template> <div> - <div v-if="currentKey == 'detailfirst'"> + <div v-for="t in TabList" :key="t.key"> <Suspense> - <detail :entityName="entityName" /> + <detail :entityName="t.entityName" v-if="currentKey == t.key"/> </Suspense> </div> </div> @@ -25,20 +24,17 @@ </template> <script lang="ts" setup> - import { ref, provide, Ref, defineAsyncComponent } from 'vue'; + import { ref, reactive, provide, Ref, defineAsyncComponent } 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 { OpenCustModal, custOnChange } from '../data'; + import { custOnChange } from '../data'; import { useI18n } from '/@/hooks/web/useI18n'; - import { useMessage } from '/@/hooks/web/useMessage'; - import { useGlobSetting } from '/@/hooks/setting'; const { t } = useI18n(); const detail = defineAsyncComponent(() => import('./detail.vue')); - const { createMessage } = useMessage(); const route = useRoute(); // const objParams = ref(JSON.parse(decodeURI(route.params?.id as string))); const routeParams = ref(JSON.parse(decodeURI(route.params?.id as string))); @@ -51,17 +47,17 @@ const go = useGo(); const pageTitle = ref(objParams.value.pageTitle); const contentStr = ref(objParams.value.contentStr); - const firstTabName = ref(objParams.value.firstTabName); - const secondTabName = ref(objParams.value.secondTabName); + // const firstTabName = ref(objParams.value.firstTabName); + // const secondTabName = ref(objParams.value.secondTabName); + const TabList = reactive(objParams.value.Tabs); const entityName = ref(routeParams.value.Name); const detailName = ref(objParams.value.detailName); - const globSetting = useGlobSetting(); const crudColSlots = ref<any>(objParams.value.colSlots); const keyFieldValues = ref<any>(null); provide<Ref<any>>('objParams', objParams.value); provide<Ref<any>>('keyFieldValues', keyFieldValues); - var currentKey = ref('detailfirst'); + var currentKey = ref(TabList[0].key); const { setTitle } = useTabs(); // 璁剧疆Tab鐨勬爣棰橈紙涓嶄細褰卞搷椤甸潰鏍囬锛� 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 82744a1..c121589 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts @@ -475,10 +475,20 @@ ID: params['record'].ID, CODE: params['record']['ORDER_NO'], Name: 'BIZ_MES_WO_BATCH', - firstTabName: '宸ュ崟鎵规', - secondTabName: '', //'鏍囩杩囩▼鍙橀噺', - firstTitle: '鎵规', - secondTitle: '', //'杩囩▼鍙橀噺', + Tabs: [ + { + name: '宸ュ崟鎵规', + tableTitle: '鎵规', + entityName: 'BIZ_MES_WO_BATCH', + key: 'batch' + }, + // { + // name: '宸ュ崟鎵规2', + // tableTitle: '鎵规2', + // entityName: 'BIZ_U9_ASN_DTL', + // key: 'batch2' + // } + ], pageTitle: '宸ュ崟璇︽儏', //璇︽儏椤甸潰鏍囬 contentStr: '杩欓噷鏄伐鍗曟壒娆$鐞嗛〉闈紝鍙互鏄剧ず宸ュ崟涓嬪彂鐨勬墍鏈夋壒娆¤鎯�', detailName: `宸ュ崟[${params['record'].ORDER_NO}]鎵规璇︽儏`, diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts index 22dd283..019d370 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN.ts @@ -62,6 +62,9 @@ }); return data; }, + /** + * @desc 鍒濆鍖栬〃鍗� + */ GetUseForm: () => { return { forminfo: useForm({ @@ -266,101 +269,6 @@ /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport锛屼緵涓婇潰鐨勬柟娉曡皟鐢� */ /** - * @description: 鑷畾涔夋柟娉� - * @return {*} - */ - const getWoFns: Record<string, FunctionType> = { - /** - * @description: 宸ュ崟閰嶇疆淇濆瓨鏂规硶 - * @param {*} e - * @param {array} args - * @return {*} - */ - SaveCofig: (param: CustModalParams) => { - return new Promise((resolve, reject) => { - try { - const form = param.values['prodinfo']; - const wo = param.values['mValues']; - const _wo = cloneDeep(wo); - _wo.ROUTE_STATUS = 1; - _wo.ROUTE_CODE = form.ROUTE_CODE; - SaveEntity(_wo, true, 'BIZ_MES_WO').then((action) => { - if (action.IsSuccessed) { - SP_MES_PROD2WO({ rotId: form.ROT_ID, wo: wo.ORDER_NO }).then((res) => { - if (!res.IsSuccessed) { - SaveEntity(wo, true, 'BIZ_MES_WO'); - } - resolve(res); - }); - } else { - reject(action); - } - }); - } catch { - reject(false); - } - }); - }, - /** - * @description: 宸ュ崟涓嬪彂淇濆瓨鏂规硶 - * @param {CustModalParams} param - * @return {*} - */ - SaveWoBatch: (param: CustModalParams) => { - return new Promise((resolve, reject) => { - try { - const form = param.values['forminfo']; - const wo = param.values['mValues']; - wo.STATUS = wo.STATUS == 3 ? wo.STATUS : 2; - let input: SaveWoBatchInput = { - Wo: wo, - WoBatch: { - ID: buildUUID(), - CREATE_TIME: new Date(), - CREATE_USER: useUserStore().getUserInfo.userId as string, - UPDATE_TIME: new Date(), - UPDATE_USER: useUserStore().getUserInfo.userId as string, - GHOST_ROW: false, - AUTH_ORG: useUserStore().getUserInfo.orgCode, - AUTH_PROD: useUserStore().getUserInfo.prodCode as string, - AUTH_WH: '', - ORDER_NO: wo.ORDER_NO, - STATUS: wo.STATUS, - ITEM_CODE: wo.ITEM_CODE, - CUST_CODE: wo.CUST_CODE, - FACTORY: wo.FACTORY, - WS_CODE: wo.WS_CODE, - ACT_LINE: form.ACT_LINE, - STD_WORKER_QTY: wo.STD_WORKER_QTY, - ACT_WORKER_QTY: wo.ACT_WORKER_QTY, - RELEASE_TIME: new Date(), - RELEASE_USER: useUserStore().getUserInfo.userId as string, - PLAN_QTY: form.RELEASE_QTY, - INPUT_QTY: wo.INPUT_QTY, - OUTPUT_QTY: wo.OUTPUT_QTY, - SCRAP_QTY: wo.SCRAP_QTY, - STOCK_IN_QTY: wo.STOCK_IN_QTY, - UPH: wo.UPH, - UPPH: wo.UPPH, - REMARK: wo.REMARK, - ACT_START_TIME: wo.ACT_START_TIME, - ACT_END_TIME: wo.ACT_END_TIME, - BATCH_NO: '', - }, - IfToCust: form.IfToCust, - }; - SaveMesBatchWo(input).then((action) => { - resolve(action); - }); - } catch { - reject(false); - } - }); - }, - initRoute: () => {}, - }; - - /** * @description: 璺宠浆鍒拌鎯呴〉闈㈡柟娉� * @param {Fn} go * @return {*} @@ -374,6 +282,20 @@ secondTabName: '閫佽揣鍗昐N', //'鏍囩杩囩▼鍙橀噺', firstTitle: '鏄庣粏', secondTitle: '', //'杩囩▼鍙橀噺', + Tabs: [ + { + name: '閫佽揣鍗�(U9)', + tableTitle: '鏄庣粏', + entityName: 'BIZ_U9_ASN_DTL', + key: 'BIZ_U9_ASN_DTL' + }, + { + name: '閫佽揣鍗昐N', + tableTitle: 'SN', + entityName: 'BIZ_U9_ASN_SN', + key: 'BIZ_U9_ASN_SN' + } + ], pageTitle: '閫佽揣鍗�(U9)璇︽儏', //璇︽儏椤甸潰鏍囬 contentStr: '杩欓噷鏄�佽揣鍗�(U9)鏄庣粏绠$悊椤甸潰锛屽彲浠ユ樉绀洪�佽揣鍗�(U9)鐨勬墍鏈夋壒娆¤鎯�', detailName: `閫佽揣鍗昜${params['record'].ORDER_NO}]鎵规璇︽儏`, diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts index 4ba3a7f..2216bdb 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_U9_ASN_DTL.ts @@ -8,21 +8,13 @@ */ import { Tag, Tooltip } from 'ant-design-vue'; -import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table'; +import { ActionItem, BasicColumn } from '/@/components/Table'; import { useI18n } from '/@/hooks/web/useI18n'; import { h } from 'vue'; -import { getEntity, SaveEntity } from '/@/api/tigerapi/system'; -import { useLocale } from '/@/locales/useLocale'; import { useModal } from '/@/components/Modal'; -import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel'; +import { CustModalParams } from '/@/api/tigerapi/model/systemModel'; import { useForm } from '/@/components/Form'; -import { useMessage } from '/@/hooks/web/useMessage'; -import { UpdateWoBatchStatus } from '/@/api/tigerapi/mes/wo'; -import { useUserStore } from '/@/store/modules/user'; -import { formatToDateTime } from '/@/utils/dateUtil'; -const { getLocale } = useLocale(); -const { createMessage, createErrorModal } = useMessage(); const { t } = useI18n(); function _default() { @@ -79,123 +71,154 @@ * @return {*} */ GetHomeUrl: (params: {}) => { - return `/BIZ_U9_ASN/LC/${encodeURI(JSON.stringify({ ID: 'BIZ_U9_ASN',"EntityName":"BIZ_U9_ASN", colSlots: params['colSlots'], crudColSlots: [] }))}`; + return `/BIZ_U9_ASN/LC/${encodeURI(JSON.stringify({ ID: 'BIZ_U9_ASN', EntityName: 'BIZ_U9_ASN', colSlots: params['colSlots'], crudColSlots: [] }))}`; }, - GetBaseColumns: () => { - return [ - { - dataIndex: 'ORDER_NO', - title: '鍗曟嵁鍙�', - // ifShow: false, - sorter: true, - resizable: true, - }, - // { - // dataIndex: 'BATCH_NO', - // title: '宸ュ崟鎵规鍙�', - // ifShow: true, - // sorter: true, - // resizable: true, - // customRender: () => {}, - // }, - { - dataIndex: 'STATUS', - title: '鐘舵��', - ifShow: true, - sorter: true, - resizable: true, - customRender: ({ record }) => { - let color = ''; - let text = ''; - switch ( - record.STATUS //鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Release宸蹭笅鍙憒3Working鐢熶骇涓瓅4Paused宸叉殏鍋渱5Closed宸插叧闂�) - ) { - case 0: - text ='鍒濆鍖�'; - color = '#8a8a8a'; - break; - case 1: - text = '宸插鍏�';color = 'blue'; - break; - case 2: - text = '宸查�佽揪';color = 'green'; - break; - case 3: - text = '娓呯偣涓�';color = 'orange'; - break; - case 4: - text = '涓婃灦涓�';color = 'red'; - break; - case 5: - text = '寰呭鏍�';color = '#e1822c'; - break; - case 6: - text = '宸插畬鎴�';color = '#009966'; - break; - case 7: - text = '宸蹭綔搴�';color = '#CCCCCC'; - break; - } - return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); - }, - }, - { - dataIndex: 'SUPP_CODE', - title: '渚涘簲鍟嗙紪鐮�', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'SUPP_NAME', - title: '渚涘簲鍟嗗悕绉�', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'ORDER_DATE', - title: '鍗曟嵁鏃ユ湡', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'DELIVERY_DATE', - title: '閫佽揣鏃ユ湡', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'PLANARRIVED_DATE', - title: '棰勮閫佽揪鏃ユ湡', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'RECEIVER', - title: '鏀惰揣浜�', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'RECEIVE_DATE', - title: '鏀惰揣鏃ユ湡', - ifShow: true, - sorter: true, - resizable: true, - }, - { - dataIndex: 'REMARK', - title: '澶囨敞', - ifShow: true, - sorter: true, - resizable: true, - }, - ]; + GetBaseColumns: (type: string) => { + switch (type) { + case 'BIZ_U9_ASN_DTL': + return [ + { + dataIndex: 'ORDER_NO', + title: '鍗曟嵁鍙�', + // ifShow: false, + sorter: true, + resizable: true, + }, + // { + // dataIndex: 'BATCH_NO', + // title: '宸ュ崟鎵规鍙�', + // ifShow: true, + // sorter: true, + // resizable: true, + // customRender: () => {}, + // }, + { + dataIndex: 'STATUS', + title: '鐘舵��', + ifShow: true, + sorter: true, + resizable: true, + customRender: ({ record }) => { + let color = ''; + let text = ''; + switch ( + record.STATUS //鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Release宸蹭笅鍙憒3Working鐢熶骇涓瓅4Paused宸叉殏鍋渱5Closed宸插叧闂�) + ) { + case 0: + text = '鍒濆鍖�'; + color = '#8a8a8a'; + break; + case 1: + text = '宸插鍏�'; + color = 'blue'; + break; + case 2: + text = '宸查�佽揪'; + color = 'green'; + break; + case 3: + text = '娓呯偣涓�'; + color = 'orange'; + break; + case 4: + text = '涓婃灦涓�'; + color = 'red'; + break; + case 5: + text = '寰呭鏍�'; + color = '#e1822c'; + break; + case 6: + text = '宸插畬鎴�'; + color = '#009966'; + break; + case 7: + text = '宸蹭綔搴�'; + color = '#CCCCCC'; + break; + } + return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); + }, + }, + { + dataIndex: 'SUPP_CODE', + title: '渚涘簲鍟嗙紪鐮�', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'SUPP_NAME', + title: '渚涘簲鍟嗗悕绉�', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'ORDER_DATE', + title: '鍗曟嵁鏃ユ湡', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'DELIVERY_DATE', + title: '閫佽揣鏃ユ湡', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'PLANARRIVED_DATE', + title: '棰勮閫佽揪鏃ユ湡', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'RECEIVER', + title: '鏀惰揣浜�', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'RECEIVE_DATE', + title: '鏀惰揣鏃ユ湡', + ifShow: true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'REMARK', + title: '澶囨敞', + ifShow: true, + sorter: true, + resizable: true, + }, + ]; + case 'BIZ_U9_ASN_SN': + return [ + { + dataIndex: 'ORDER_NO', + title: '鍗曟嵁鍙�', + sorter: true, + resizable: true, + }, + { + dataIndex: 'LINE_NO', + title: '鍗曟嵁琛屽彿', + sorter: true, + resizable: true, + }, + { + dataIndex: 'SN', + title: '鏉$爜', + sorter: true, + resizable: true, + }, + ]; + } }, GetSearchForm: () => { return [ @@ -313,7 +336,6 @@ }; /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport锛屼緵涓婇潰鐨勬柟娉曡皟鐢� */ - return [methods, ActionColumn]; } -- Gitblit v1.9.3