Browse Source

chore: Optimizing Microservices

master
wangxiang 2 years ago
parent
commit
9821b1f44a
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 14
      src/views/workflow/task/TaskForm.vue
  2. 14
      src/views/workflow/task/TaskFormView.vue
  3. 27
      src/views/workflow/task/WorkflowChartModel.vue

14
src/views/workflow/task/TaskForm.vue

@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
<ATables v-model:activeKey="state.taskSelectedTab"
class="bg-white"
:tab-bar-style="{ 'padding-left': '13px' }"
@tab-click="handleTabsClick"
>
<ATabPane key="formInfo">
<template #tab>
@ -34,7 +33,7 @@ @@ -34,7 +33,7 @@
</template>
<WorkflowTimeLine :history-flow-change-list="state.historyFlowChangeList"/>
</ATabPane>
<ATabPane key="processChart">
<ATabPane key="processChart" forceRender>
<template #tab>
<span>
<Icon icon="fa-solid:image"/>流程图
@ -352,6 +351,7 @@ @@ -352,6 +351,7 @@
if (state.processInsId) {
state.historyFlowChangeList = await listHistoryFlowChange(state.processInsId);
}
workflowChart.value.init(state.processInsId, state.processDefId);
});
});
@ -658,16 +658,6 @@ @@ -658,16 +658,6 @@
};
});
function handleTabsClick(activeKey: string, event: MouseEvent) {
// fixme: tabstab
if (activeKey === 'processChart' && !workflowChart.value) {
setTimeout(() => {
//
workflowChart.value.init(state.processInsId, state.processDefId);
}, 100);
}
}
</script>
<style lang="less" scoped>
@prefix-cls: ~'@{namespace}-task-form';

14
src/views/workflow/task/TaskFormView.vue

@ -9,7 +9,6 @@ @@ -9,7 +9,6 @@
<ATables v-model:activeKey="state.taskSelectedTab"
class="bg-white"
:tab-bar-style="{ 'padding-left': '13px' }"
@tab-click="handleTabsClick"
>
<ATabPane key="formInfo">
<template #tab>
@ -40,7 +39,7 @@ @@ -40,7 +39,7 @@
</template>
<WorkflowTimeLine :history-flow-change-list="state.historyFlowChangeList"/>
</ATabPane>
<ATabPane key="processChart">
<ATabPane key="processChart" forceRender>
<template #tab>
<span>
<Icon icon="fa-solid:image"/>流程图
@ -206,6 +205,7 @@ @@ -206,6 +205,7 @@
}
state.historyFlowChangeList = await listHistoryFlowChange(state.processInsId);
}
workflowChart.value.init(state.processInsId, state.processDefId);
});
});
@ -222,16 +222,6 @@ @@ -222,16 +222,6 @@
state.formReadOnly = query.formReadOnly === 'true';
}
function handleTabsClick(activeKey: string, event: MouseEvent) {
// fixme: tabstab
if (activeKey === 'processChart' && !workflowChart.value) {
setTimeout(() => {
//
workflowChart.value.init(state.processInsId, state.processDefId);
}, 100);
}
}
</script>
<style lang="less" scoped>
@prefix-cls: ~'@{namespace}-task-form-view';

27
src/views/workflow/task/WorkflowChartModel.vue

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
<div id="workflowChart" v-loading="state.loading"/>
</template>
<script lang="ts" setup>
import { reactive, onDeactivated } from 'vue';
import { reactive, onBeforeUnmount } from 'vue';
import { loadMicroApp, MicroApp } from 'qiankun';
import { getSubDefineProps } from '/@/qiankun/state';
import { GlStateEnum, WORKFLOW_DESIGN_APP_COMPONENTS } from '/@/enums/microAppEnum';
@ -14,14 +14,16 @@ @@ -14,14 +14,16 @@
interface WindowState {
workflowDesignApp: MicroApp;
workflowRef: Recordable;
loading: boolean;
bpmnData: Recordable;
}
const state = reactive<WindowState>({
workflowDesignApp: undefined!,
workflowRef: undefined!,
loading: false,
bpmnData: {}
bpmnData: {},
});
const workflowDesignProps = {
style: { 'min-height': '100vh' },
@ -31,16 +33,16 @@ @@ -31,16 +33,16 @@
async function init(processInsId: string, processDefId: string) {
if (processInsId || processDefId) {
state.loading = true;
// xml
try {
if (processInsId) {
state.bpmnData = await getProcessInsFlowChart(processInsId);
} else {
const bpmnXml = await getProcessDefFlowChart(processDefId);
state.bpmnData = { bpmnXml };
}
state.workflowDesignApp?.unmount();
state.workflowRef?.setHighlightImportDiagram(state.bpmnData);
if (!state.workflowDesignApp || state.workflowDesignApp.getStatus() === 'NOT_MOUNTED') {
state.loading = true;
state.workflowDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'workflow-design'), {
container: '#workflowChart',
props: {
@ -48,22 +50,19 @@ @@ -48,22 +50,19 @@
mountApp: WORKFLOW_DESIGN_APP_COMPONENTS.CHART,
[GlStateEnum.WORKFLOW_DESIGN_APP_PROPS_KEY]: workflowDesignProps
}
}), { sandbox: { experimentalStyleIsolation: true }});
}), { sandbox: { experimentalStyleIsolation: true } });
state.workflowDesignApp.mountPromise.then(() => {
const workflowChartApp: Recordable = microAppStore.getWorkflowDesignApp(WORKFLOW_DESIGN_APP_COMPONENTS.CHART),
workflowRef: Recordable = workflowChartApp.getRef().$refs['workflow-chart'];
workflowRef.setHighlightImportDiagram(state.bpmnData);
const workflowChartApp: Recordable = microAppStore.getWorkflowDesignApp(WORKFLOW_DESIGN_APP_COMPONENTS.CHART);
state.workflowRef = workflowChartApp.getRef().$refs['workflow-chart'];
state.workflowRef.setHighlightImportDiagram(state.bpmnData);
state.loading = false;
});
} catch(e: any) {
createMessage.error(e);
state.loading = false;
}
} else createMessage.error('无法打开流程图,没有关联流程图ID!');
}
onDeactivated(() => {
state.workflowDesignApp?.unmount();
onBeforeUnmount(() => {
state.workflowDesignApp?.getStatus() === 'MOUNTED' && state.workflowDesignApp.unmount();
});
defineExpose({

Loading…
Cancel
Save