Browse Source

chore: Optimizing Microservices

master
wangxiang 2 years ago
parent
commit
8ab32e9d5a
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 19
      src/views/workflow/task/popups/WorkflowChartModal.vue

19
src/views/workflow/task/popups/WorkflowChartModal.vue

@ -12,7 +12,7 @@
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive } from 'vue'; import { onBeforeUnmount, reactive } from 'vue';
import { loadMicroApp, MicroApp } from 'qiankun'; import { loadMicroApp, MicroApp } from 'qiankun';
import { getSubDefineProps } from '/@/qiankun/state'; import { getSubDefineProps } from '/@/qiankun/state';
import { GlStateEnum, WORKFLOW_DESIGN_APP_COMPONENTS } from '/@/enums/microAppEnum'; import { GlStateEnum, WORKFLOW_DESIGN_APP_COMPONENTS } from '/@/enums/microAppEnum';
@ -26,11 +26,13 @@
interface WindowState { interface WindowState {
workflowDesignApp: MicroApp; workflowDesignApp: MicroApp;
bpmnData: Recordable; bpmnData: Recordable;
workflowRef: Recordable;
} }
const state = reactive<WindowState>({ const state = reactive<WindowState>({
workflowDesignApp: undefined!, workflowDesignApp: undefined!,
bpmnData: {}, bpmnData: {},
workflowRef: undefined!
}); });
const workflowDesignProps = { const workflowDesignProps = {
@ -44,13 +46,13 @@
const { processInsId, processDefId } = data.record || {}; const { processInsId, processDefId } = data.record || {};
if (processInsId || processDefId) { if (processInsId || processDefId) {
changeLoading(); changeLoading();
try {
if (processInsId) { if (processInsId) {
state.bpmnData = await getProcessInsFlowChart(processInsId); state.bpmnData = await getProcessInsFlowChart(processInsId);
} else { } else {
const bpmnXml = await getProcessDefFlowChart(processDefId); const bpmnXml = await getProcessDefFlowChart(processDefId);
state.bpmnData = { bpmnXml }; state.bpmnData = { bpmnXml };
} }
if (!state.workflowDesignApp || state.workflowDesignApp.getStatus() === 'NOT_MOUNTED') {
state.workflowDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'workflow-design'), { state.workflowDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'workflow-design'), {
container: '#workflowChart', container: '#workflowChart',
props: { props: {
@ -60,14 +62,11 @@
} }
}), { sandbox: { experimentalStyleIsolation: true }}); }), { sandbox: { experimentalStyleIsolation: true }});
state.workflowDesignApp.mountPromise.then(() => { state.workflowDesignApp.mountPromise.then(() => {
const workflowChartApp: Recordable = microAppStore.getWorkflowDesignApp(WORKFLOW_DESIGN_APP_COMPONENTS.CHART), const workflowChartApp: Recordable = microAppStore.getWorkflowDesignApp(WORKFLOW_DESIGN_APP_COMPONENTS.CHART);
workflowRef: Recordable = workflowChartApp.getRef().$refs['workflow-chart']; state.workflowRef = workflowChartApp.getRef().$refs['workflow-chart'];
workflowRef.setHighlightImportDiagram(state.bpmnData); state.workflowRef.setHighlightImportDiagram(state.bpmnData);
changeLoading(false); changeLoading(false);
}); });
} catch(e: any) {
createMessage.error(e);
changeLoading(false);
} }
} else createMessage.error('无法打开流程图,没有关联流程图ID!'); } else createMessage.error('无法打开流程图,没有关联流程图ID!');
setModalProps(props); setModalProps(props);
@ -77,6 +76,10 @@
!visible && state.workflowDesignApp?.unmount(); !visible && state.workflowDesignApp?.unmount();
} }
onBeforeUnmount(() => {
state.workflowDesignApp?.getStatus() === 'MOUNTED' && state.workflowDesignApp.unmount();
});
</script> </script>
<style lang="less"> <style lang="less">
.ant-modal { .ant-modal {

Loading…
Cancel
Save