From 1b419ccf217dbcace15987f1c0fe26b9e15d1d4b Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 16 十月 2024 10:26:56 +0800 Subject: [PATCH] 工艺绑定优化 --- src/views/tigerprojects/system/lowcode/composition/Config.vue | 99 +++++++++++++++++++++++++++++++------------------ 1 files changed, 63 insertions(+), 36 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/composition/Config.vue b/src/views/tigerprojects/system/lowcode/composition/Config.vue index 15bbf82..77d33d0 100644 --- a/src/views/tigerprojects/system/lowcode/composition/Config.vue +++ b/src/views/tigerprojects/system/lowcode/composition/Config.vue @@ -4,66 +4,71 @@ * @version: * @Date: 2024-06-24 23:44:31 * @LastEditors: Ben Lin - * @LastEditTime: 2024-08-09 16:49:10 + * @LastEditTime: 2024-09-29 16:23:30 --> <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]" + > + <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)" /> + <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'; 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,6 +107,8 @@ GetUseTables, GetUseForm, CustFunc, + GetUseCrudModals, + ActionItem, }, ] = isNullOrUnDef(custImport.value['default']) ? EntityCustFunction.value @@ -112,11 +119,14 @@ const useTables = ref(GetUseTables(data, 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(); }); /* 娉ㄥ叆閫変腑鑺傜偣鏁版嵁 */ @@ -148,12 +158,12 @@ }, 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,7 +180,7 @@ const nodes = selectedNodes.value; nodeChange({ useForms, objParams, selectedNodes: nodes }).then((result) => { showOtherTable.value = result.isShow; - data.value['Action'] = result['Action']; + data.value[configType.value as string] = result[configType.value as string]; useTables.value = GetUseTables(data, emit); if (showOtherTable.value[result['name']]) { data.value[result['name']] = result[result['name']]; @@ -194,7 +204,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 +243,13 @@ name: undefined, }, ]; - return actionItem; + return ActionItem( + params, + actionItem, + useModalsCrud.value[name][1].openModal, + useTables.value[name][1].reload(), + objParams.value['CODE'], + ); } /** @@ -258,8 +274,10 @@ useTables.value = GetUseTables(data, 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( + data.value[configType.value as string][0], + ); }, 10); } }); @@ -273,7 +291,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 +310,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(data.value[configType.value as string])) { + data.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'] + data.value[result.name] = result['data']; /* 閲嶆柊useTable锛屽惁鍒欐暟鎹笉鍒锋柊 */ useTables.value = GetUseTables(data, 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