diff --git a/src/components/Modal/src/typing.ts b/src/components/Modal/src/typing.ts index 36a7e7c..fa5604c 100644 --- a/src/components/Modal/src/typing.ts +++ b/src/components/Modal/src/typing.ts @@ -21,8 +21,8 @@ export type UseModalReturnType = [RegisterFn, ReturnMethods]; export interface ReturnInnerMethods extends ModalMethods { closeModal: () => void; - changeLoading: (loading: boolean) => void; - changeOkLoading: (loading: boolean) => void; + changeLoading: (loading?: boolean) => void; + changeOkLoading: (loading?: boolean) => void; getVisible?: ComputedRef; redoModalHeight: () => void; } diff --git a/src/views/workflow/extension/form/helper/WorkflowFormDesign.vue b/src/views/workflow/extension/form/helper/WorkflowFormDesign.vue index effbd1e..720a9fd 100644 --- a/src/views/workflow/extension/form/helper/WorkflowFormDesign.vue +++ b/src/views/workflow/extension/form/helper/WorkflowFormDesign.vue @@ -54,7 +54,8 @@ }; const emit = defineEmits(['success', 'register']); const microAppStore = useMicroAppStore(); - const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data: BoxPayload = { _tag: '' }) => { + const [registerModal, { setModalProps, closeModal, changeLoading }] = useModalInner(async (data: BoxPayload = { _tag: '' }) => { + changeLoading(); state.formDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'form-design'), { container: '#formDesign', props: { @@ -63,6 +64,9 @@ [GlStateEnum.FORM_DESIGN_APP_PROPS_KEY]: formDesignProps } }), { sandbox: { experimentalStyleIsolation: true }}); + state.formDesignApp.mountPromise.then(() => { + changeLoading(false); + }); // 处理清除脏数据 state.form = {}; formDesignProps.options = {}; diff --git a/src/views/workflow/extension/formJson/FormJsonModal.vue b/src/views/workflow/extension/formJson/FormJsonModal.vue index b54f1a8..b4cf8e4 100644 --- a/src/views/workflow/extension/formJson/FormJsonModal.vue +++ b/src/views/workflow/extension/formJson/FormJsonModal.vue @@ -38,7 +38,8 @@ const formPreviewProps = { }; const emit = defineEmits(['success', 'register']); const microAppStore = useMicroAppStore(); -const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data: BoxPayload = { _tag: '' }) => { +const [registerModal, { setModalProps, closeModal, changeLoading }] = useModalInner(async (data: BoxPayload = { _tag: '' }) => { + changeLoading(); state.formDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'form-design'), { container: '#formPreview', props: { @@ -48,6 +49,9 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data mountApp: FORM_DESIGN_APP_COMPONENTS.PREVIEW } }), { sandbox: { experimentalStyleIsolation: true }}); + state.formDesignApp.mountPromise.then(() => { + changeLoading(false); + }); data?.json && (formPreviewProps.options = eval('(' + data.json + ')') ); const props: Partial = { confirmLoading: false }; props.title = '预览流程表单';