revert: add Menu in LogicFlow

This commit is contained in:
xiaoxian521 2021-04-17 00:54:00 +08:00
parent f44804538c
commit a8250e718a
2 changed files with 120 additions and 106 deletions

View File

@ -25,84 +25,96 @@
</template>
<script lang='ts'>
import { defineComponent ,ref, unref, onMounted } from "vue";
import { templateRef } from '@vueuse/core'
import { defineComponent, ref, unref, onMounted } from "vue";
import { templateRef } from "@vueuse/core";
export default defineComponent({
name: "Control",
props: {
lf: Object || String,
catTurboData: Boolean,
catTurboData: Boolean
},
emits: ["catData"],
setup(props,{emit}) {
const controlButton3 = templateRef<HTMLElement | null>('controlButton3', null)
const controlButton4 = templateRef<HTMLElement | null>('controlButton4', null)
setup(props, { emit }) {
const controlButton3 = templateRef<HTMLElement | null>(
"controlButton3",
null
);
const controlButton4 = templateRef<HTMLElement | null>(
"controlButton4",
null
);
let focusIndex = ref(-1)
let focusIndex = ref(-1);
let titleLists = ref([
{
icon: "icon-zoom-out-hs",
text: "缩小",
disabled: false
},
{
icon: "icon-enlarge-hs",
text: "放大",
disabled: false
},
{
icon: "icon-full-screen-hs",
text: "适应",
disabled: false
},
{
icon: "icon-previous-hs",
text: "上一步",
disabled: true
},
{
icon: "icon-next-step-hs",
text: "下一步",
disabled: true
},
{
icon: "icon-download-hs",
text: "下载图片",
disabled: false
},
{
icon: "icon-watch-hs",
text: "查看数据",
disabled: false
},
])
{
icon: "icon-zoom-out-hs",
text: "缩小",
disabled: false
},
{
icon: "icon-enlarge-hs",
text: "放大",
disabled: false
},
{
icon: "icon-full-screen-hs",
text: "适应",
disabled: false
},
{
icon: "icon-previous-hs",
text: "上一步",
disabled: true
},
{
icon: "icon-next-step-hs",
text: "下一步",
disabled: true
},
{
icon: "icon-download-hs",
text: "下载图片",
disabled: false
},
{
icon: "icon-watch-hs",
text: "查看数据",
disabled: false
}
]);
const onControl = (item, key) => {
["zoom", "zoom", "resetZoom", "undo", "redo", "getSnapshot"].forEach((v, i) => {
let domControl = props.lf
if (key === 1) {
domControl.zoom(true)
["zoom", "zoom", "resetZoom", "undo", "redo", "getSnapshot"].forEach(
(v, i) => {
let domControl = props.lf;
if (key === 1) {
domControl.zoom(true);
}
if (key === 6) {
emit("catData");
}
if (key === i) {
domControl[v]();
}
}
if (key === 6) {
emit("catData")
}
if (key === i) {
domControl[v]()
}
})
}
);
};
const onEnter = (key) => {
focusIndex.value = key
}
const onEnter = key => {
focusIndex.value = key;
};
onMounted(()=>{
onMounted(() => {
props.lf.on("history:change", ({ data: { undoAble, redoAble } }) => {
unref(titleLists)[3].disabled = unref(controlButton3).disabled = !undoAble
unref(titleLists)[4].disabled = unref(controlButton4).disabled = !redoAble
})
})
unref(titleLists)[3].disabled = unref(
controlButton3
).disabled = !undoAble;
unref(titleLists)[4].disabled = unref(
controlButton4
).disabled = !redoAble;
});
});
return {
focusIndex,
@ -110,7 +122,7 @@ export default defineComponent({
onControl,
onEnter
};
},
}
});
</script>

View File

@ -1,13 +1,7 @@
<template>
<div class="logic-flow-view">
<!-- 辅助工具栏 -->
<Control
class="demo-control"
v-if="lf"
:lf="lf"
:catTurboData="false"
@catData="catData"
></Control>
<Control class="demo-control" v-if="lf" :lf="lf" :catTurboData="false" @catData="catData"></Control>
<!-- 节点面板 -->
<NodePanel :lf="lf" :nodeList="nodeList"></NodePanel>
<!-- 画布 -->
@ -20,59 +14,67 @@
</template>
<script lang='ts'>
import { ref, unref, onMounted, nextTick } from "vue"
import LogicFlow from '@logicflow/core'
import { Snapshot, BpmnElement } from '@logicflow/extension'
import '@logicflow/core/dist/style/index.css'
import '@logicflow/extension/lib/style/index.css'
import { Control, NodePanel, DataDialog } from '/@/components/FlowChart'
import { ref, unref, onMounted, nextTick } from "vue";
import LogicFlow from "@logicflow/core";
import { Snapshot, BpmnElement, Menu } from "@logicflow/extension";
import "@logicflow/core/dist/style/index.css";
import "@logicflow/extension/lib/style/index.css";
import { Control, NodePanel, DataDialog } from "/@/components/FlowChart";
import { toTurboData, toLogicflowData } from '/@/components/FlowChart/src/adpterForTurbo'
import { BpmnNode } from '/@/components/FlowChart/src/config'
import demoData from './dataTurbo.json'
import {
toTurboData,
toLogicflowData
} from "/@/components/FlowChart/src/adpterForTurbo";
import { BpmnNode } from "/@/components/FlowChart/src/config";
import demoData from "./dataTurbo.json";
export default {
components: { NodePanel, Control, DataDialog },
setup() {
let lf = ref(null)
let graphData =ref(null)
let dataVisible = ref(false)
let lf = ref(null);
let graphData = ref(null);
let dataVisible = ref(false);
let config = ref({
grid: true,
background: {
color: '#f7f9ff'
},
keyboard: {
enabled: true
},
})
let nodeList= BpmnNode
grid: true,
background: {
color: "#f7f9ff"
},
keyboard: {
enabled: true
}
});
let nodeList = BpmnNode;
function initLf() {
//
LogicFlow.use(Snapshot)
LogicFlow.use(Snapshot);
// 使bpmnbpmnturbo使
LogicFlow.use(BpmnElement)
const domLf = new LogicFlow({ ...unref(config), container: document.querySelector('#LF-Turbo') })
lf.value = domLf
LogicFlow.use(BpmnElement);
//
LogicFlow.use(Menu);
const domLf = new LogicFlow({
...unref(config),
container: document.querySelector("#LF-Turbo")
});
lf.value = domLf;
// bpmn:sequenceFlow
unref(lf).setDefaultEdgeType('bpmn:sequenceFlow')
onRender()
unref(lf).setDefaultEdgeType("bpmn:sequenceFlow");
onRender();
}
function onRender() {
// TurboLogicFlow
const lFData = toLogicflowData(demoData)
lf.value.render(lFData)
const lFData = toLogicflowData(demoData);
lf.value.render(lFData);
}
function catData() {
graphData.value = unref(lf).getGraphData()
dataVisible.value = true
graphData.value = unref(lf).getGraphData();
dataVisible.value = true;
}
onMounted(()=>{
initLf()
})
onMounted(() => {
initLf();
});
return {
lf,
@ -82,7 +84,7 @@ export default {
nodeList,
catData
};
},
}
};
</script>