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. 25
      src/views/workflow/task/WorkflowChartModel.vue

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

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

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

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

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

@ -2,7 +2,7 @@
<div id="workflowChart" v-loading="state.loading"/> <div id="workflowChart" v-loading="state.loading"/>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onDeactivated } from 'vue'; import { reactive, onBeforeUnmount } 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';
@ -14,14 +14,16 @@
interface WindowState { interface WindowState {
workflowDesignApp: MicroApp; workflowDesignApp: MicroApp;
workflowRef: Recordable;
loading: boolean; loading: boolean;
bpmnData: Recordable; bpmnData: Recordable;
} }
const state = reactive<WindowState>({ const state = reactive<WindowState>({
workflowDesignApp: undefined!, workflowDesignApp: undefined!,
workflowRef: undefined!,
loading: false, loading: false,
bpmnData: {} bpmnData: {},
}); });
const workflowDesignProps = { const workflowDesignProps = {
style: { 'min-height': '100vh' }, style: { 'min-height': '100vh' },
@ -31,16 +33,16 @@
async function init(processInsId: string, processDefId: string) { async function init(processInsId: string, processDefId: string) {
if (processInsId || processDefId) { if (processInsId || processDefId) {
state.loading = true;
// xml // xml
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 };
} }
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'), { state.workflowDesignApp = loadMicroApp(Object.assign({} , apps.find(item => item.name == 'workflow-design'), {
container: '#workflowChart', container: '#workflowChart',
props: { props: {
@ -50,20 +52,17 @@
} }
}), { 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);
state.loading = false; state.loading = false;
}); });
} catch(e: any) {
createMessage.error(e);
state.loading = false;
} }
} else createMessage.error('无法打开流程图,没有关联流程图ID!'); } else createMessage.error('无法打开流程图,没有关联流程图ID!');
} }
onDeactivated(() => { onBeforeUnmount(() => {
state.workflowDesignApp?.unmount(); state.workflowDesignApp?.getStatus() === 'MOUNTED' && state.workflowDesignApp.unmount();
}); });
defineExpose({ defineExpose({

Loading…
Cancel
Save