From 07895c65b99fa43f8e54f5054bd8351a71158143 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期四, 17 十月 2024 21:17:28 +0800 Subject: [PATCH] 工艺路线绑定优化 --- src/views/tigerprojects/system/lowcode/composition/Config.vue | 133 ++++++++++++++++++++++++++++---------------- 1 files changed, 84 insertions(+), 49 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/composition/Config.vue b/src/views/tigerprojects/system/lowcode/composition/Config.vue index 15bbf82..17c33a1 100644 --- a/src/views/tigerprojects/system/lowcode/composition/Config.vue +++ b/src/views/tigerprojects/system/lowcode/composition/Config.vue @@ -4,66 +4,75 @@ * @version: * @Date: 2024-06-24 23:44:31 * @LastEditors: Ben Lin - * @LastEditTime: 2024-08-09 16:49:10 + * @LastEditTime: 2024-10-17 20:28:47 --> <template> - <Card :title="GetTitle(props.configType)['configTitle']"> + <Card :title="GetTitle(configType)['configTitle']"> <BasicForm @register="useForms[d]" @submit="customSubmitFunc" v-for="d in Object.keys(useForms)" :key="d" - v-show="d == props.configType" + v-show="d == configType" > - <template #[item]="{ field }" v-for="item in GetCrudColSlots()" :key="item"> + <template #[item.name]="{ field }" v-for="item in GetCrudColSlots()" :key="item.name"> <a-button v-if="field" class="mt-1 ml-1" size="small" - @click="SelectItemInForm(item)" - preIcon="search|svg" + @click="SelectItemInForm(item.name)" + :preIcon="item.icon" /> <GeneralModal - @register="useModalData[item][0]" - @success="(d, u) => SelectInFormSuccess(d, u, item)" + @register="useModalData[item.name][0]" + @success="(d, u) => SelectInFormSuccess(d, u, item.name)" /> + <GeneralCrudModal @register="useModalsCrudInForm[item.name][0]"></GeneralCrudModal> </template> </BasicForm> </Card> <Card - :title="GetTitle(props.configType, item)['tableTitle']" + :title="GetTitle(configType, item)['tableTitle']" :bordered="false" - class="!mt-5" v-for="item in OtherTables" :key="item" - v-show="showOtherTable[item]"> - <BasicTable @register="useTables[item][0]" - v-if="showOtherTable[item]"> + v-show="showOtherTable[item]" + class="mt-1" + > + <div :style="custTableStyle" > + <BasicTable @register="useTables[item][0]" v-if="showOtherTable[item]"> <template #action="{ record }"> <TableAction :actions="createActions(record, item)" /> </template> </BasicTable> - <normalDrawer @register="useDrawers[item][0]" @success="(d,u) => EditSuccess(d, u, item)" /> + </div> + <normalDrawer @register="useDrawers[item][0]" @success="(d, u) => EditSuccess(d, u, item)" /> + <GeneralCrudModal @register="useModalsCrud[item][0]"></GeneralCrudModal> </Card> </template> <script lang="ts" setup> - import { Ref, inject, nextTick, onMounted, ref, unref, watch } from 'vue'; + import { Ref, inject, nextTick, onMounted, ref, toRef, toRefs, unref, watch } from 'vue'; import { BasicForm } from '/@/components/Form/index'; import { BasicTable, TableAction } from '/@/components/Table'; import { Card } from 'ant-design-vue'; import GeneralModal from '/@/views/components/GeneralModal.vue'; + import GeneralCrudModal from '/@/views/components/GeneralCrudModal.vue'; import { useI18n } from '/@/hooks/web/useI18n'; import { isFunction, isNullOrUnDef } from '/@/utils/is'; import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel'; import { editRecord } from '../data'; import { useDrawer } from '/@/components/Drawer'; import normalDrawer from '../normalDrawer.vue'; + import { useModal } from '/@/components/Modal'; + import { useProdRouteStore } from '/@/store/modules/prodRoute'; + import { storeToRefs } from 'pinia'; const { t } = useI18n(); const emit = defineEmits(['success', 'register']); const props = defineProps({ configType: { type: String }, }); + const configType = toRef(props, 'configType'); const showOtherTable = ref<any>({}); //鏄剧ず琛ㄦ牸甯冨皵瀵硅薄 const objParams = inject('objParams') as Ref<any>; const custImport = ref<any[]>([]); @@ -102,21 +111,30 @@ GetUseTables, GetUseForm, CustFunc, + GetUseCrudModals, + ActionItem, }, ] = isNullOrUnDef(custImport.value['default']) ? EntityCustFunction.value : custImport.value['default'](); - + const useProdRoute = useProdRouteStore(); + const { curDtl } = storeToRefs(useProdRoute); const useModalData = ref(GetUseModals()); - const data = ref({}); - const useTables = ref(GetUseTables(data, emit)); + // const data = ref({}); + const useTables = ref(GetUseTables(curDtl, emit)); const useForms = ref(GetUseForm()); const useDrawers = ref({}); + const useModalsCrud = ref({}); + const useModalsCrudInForm = ref(GetUseCrudModals()); const OtherTables = ref(objParams.value['OtherTableName']); /* 寰幆鑷畾涔夎〃鏍煎悕鍒楄〃锛屽垵濮嬪寲鏄剧ず琛ㄦ牸甯冨皵瀵硅薄 */ objParams.value['OtherTableName'].forEach((x) => { showOtherTable.value[x] = false; useDrawers.value[x] = useDrawer(); + useModalsCrud.value[x] = useModal(); + }); + const custTableStyle = ref({ + height: window.screen.width == 1366? '350px': '450px' }); /* 娉ㄥ叆閫変腑鑺傜偣鏁版嵁 */ @@ -140,20 +158,20 @@ const name = result['name']; if (showOtherTable.value[name]) { showOtherTable.value[name] = false; - data.value[name] = result[name]; - data.value['Action'] = result['Action']; - useTables.value = GetUseTables(data, emit); + // data.value[name] = curDtl.value[name]; //result[name]; + // data.value['Action'] = curDtl.value['Action']; //result['Action']; + useTables.value = GetUseTables(curDtl, emit); setTimeout(() => { showOtherTable.value[name] = true; }, 10); setTimeout(() => { if (!isNullOrUnDef(name)) { - // useTables.value[name][1].setProps({ - // dataSource: [], - // }); - // useTables.value[name][1].setProps({ - // dataSource: data.value[name], - // }); + // useTables.value[name][1].setProps({ + // dataSource: [], + // }); + // useTables.value[name][1].setProps({ + // dataSource: data.value[name], + // }); useTables.value[name][1].reload(); } }, 1000); @@ -170,10 +188,10 @@ const nodes = selectedNodes.value; nodeChange({ useForms, objParams, selectedNodes: nodes }).then((result) => { showOtherTable.value = result.isShow; - data.value['Action'] = result['Action']; - useTables.value = GetUseTables(data, emit); - if (showOtherTable.value[result['name']]) { - data.value[result['name']] = result[result['name']]; + // data.value[configType.value as string] = curDtl.value[configType.value as string]; //result[configType.value as string]; + useTables.value = GetUseTables(curDtl, emit); + if (showOtherTable.value[curDtl.value['name']]) { + // curDtl.value[result['name']] = curDtl.value[result['name']]; // useTables.value[result['name']][1].setProps({ // dataSource: [], // }); @@ -194,7 +212,7 @@ */ async function customSubmitFunc(values) { try { - SubmitFunc(values, props.configType, emit); + SubmitFunc(values, configType.value, emit); // values.AUTH_PROD = useUserStore().getUserInfo.prodCode; // values.FACTORY = useUserStore().getUserInfo.prodCode; // const apiAction = SaveEntity(values, true, 'MES_PROD_ACTION'); @@ -233,7 +251,13 @@ name: undefined, }, ]; - return actionItem; + return ActionItem( + params, + actionItem, + useModalsCrud.value[name][1].openModal, + useTables.value[name][1].reload(), + objParams.value['CODE'], + ); } /** @@ -247,7 +271,7 @@ CustFunc({ ctype: item, values: d, - data: data, + data: curDtl, }).then(() => { /* 鏄剧ず鍏朵粬琛ㄦ牸 */ if (showOtherTable.value[item]) { @@ -255,11 +279,13 @@ setTimeout(() => { showOtherTable.value[item] = true; }, 10); - useTables.value = GetUseTables(data, emit); + useTables.value = GetUseTables(curDtl, emit); setTimeout(() => { useTables.value[item][1].reload(); - useForms.value['Action'][1].resetFields(); - useForms.value['Action'][1].setFieldsValue(data.value['Action'][0]); + useForms.value[configType.value as string][1].resetFields(); + useForms.value[configType.value as string][1].setFieldsValue( + curDtl.value[configType.value as string][0], + ); }, 10); } }); @@ -273,7 +299,14 @@ * @return {*} */ function SelectItemInForm(item) { - OpenSelectItem(useModalData.value[item][1].openModal, item); + const record = useForms.value[configType.value][1].getFieldsValue(); + OpenSelectItem( + useModalData.value[item][1].openModal, + item, + useModalsCrudInForm.value[item][1].openModal, + record, + objParams.value['CODE'], + ); } /** @@ -285,21 +318,23 @@ */ function SelectInFormSuccess(d, u, item) { GetSelectSuccess(d, u, item).then((result) => { - useForms.value[props.configType][1].setFieldsValue(result['value']); - data.value[props.configType as string].map((x) => { - Object.getOwnPropertyNames(result['value']).forEach(key => { + useForms.value[configType.value][1].setFieldsValue(result['value']); + if (!isNullOrUnDef(curDtl.value[configType.value as string])) { + curDtl.value[configType.value as string].map((x) => { + Object.getOwnPropertyNames(result['value']).forEach((key) => { x[key] = result['value'][key]; - }); - }); + }); + }); + } showOtherTable.value = result['isShow']; - data.value[result.name] = result['data'] + curDtl.value[result.name] = result['data']; /* 閲嶆柊useTable锛屽惁鍒欐暟鎹笉鍒锋柊 */ - useTables.value = GetUseTables(data, emit); + useTables.value = GetUseTables(curDtl, emit); if (showOtherTable.value[result.name]) { - showOtherTable.value[result.name] = false; - setTimeout(() => { - showOtherTable.value[result.name] = true; - }, 10); + showOtherTable.value[result.name] = false; + setTimeout(() => { + showOtherTable.value[result.name] = true; + }, 10); useTables.value[result.name][1].reload(); } }); -- Gitblit v1.9.3