ny
昨天 282fbc6488f4e8ceb5fda759f963ee88fbf7b999
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<script lang="ts" setup>
import { reactive } from 'vue';
 
import { BasicPopup, usePopup, usePopupInner } from '@jnpf/ui/popup';
 
import FlowProcessMain from '#/components/FlowProcess/src/Main.vue';
 
import SubFlowParser from './SubFlowParser.vue';
 
defineProps({
  defaultFullscreen: { type: Boolean, default: false },
});
const [registerPopup] = usePopupInner(init);
const [registerSubFlowParser, { openPopup: openSubFlowParserPopup }] = usePopup();
 
interface State {
  flowInfo: any;
  nodeList: any[];
  opType: string;
  taskId: string;
  key: number;
  isRevokeTask: boolean;
  lineKeyList: any[] | undefined;
}
 
const state = reactive<State>({
  flowInfo: {},
  nodeList: [],
  opType: '-1',
  taskId: '',
  key: Date.now(),
  isRevokeTask: false,
  lineKeyList: undefined,
});
function init(data) {
  state.flowInfo = data.flowInfo;
  state.nodeList = data.nodeList;
  state.opType = data.opType;
  state.taskId = data.taskId;
  state.isRevokeTask = data.isRevokeTask || false;
  state.key = Date.now();
  state.lineKeyList = data.lineKeyList;
}
function viewSubFlow(nodeCode) {
  if (state.isRevokeTask) return;
  const data = {
    opType: state.opType,
    nodeCode,
    taskId: state.taskId,
  };
  openSubFlowParserPopup(true, data);
}
</script>
<template>
  <BasicPopup
    v-bind="$attrs"
    @register="registerPopup"
    :show-cancel-btn="false"
    title="流程图"
    destroy-on-close
    :default-fullscreen="defaultFullscreen"
    class="full-popup basic-flow-parser">
    <div class="jnpf-common-form-wrapper">
      <div class="jnpf-common-form-wrapper__main">
        <FlowProcessMain
          class="p-[10px]"
          :flow-info="state.flowInfo"
          :node-list="state.nodeList"
          :is-preview="true"
          :key="state.key"
          :line-key-list="state.lineKeyList"
          v-if="state.flowInfo.id"
          @view-sub-flow="viewSubFlow" />
      </div>
    </div>
  </BasicPopup>
  <SubFlowParser :default-fullscreen="defaultFullscreen" @register="registerSubFlowParser" />
</template>