|
@@ -6,6 +6,8 @@
|
|
<!-- 功能模态框 -->
|
|
<!-- 功能模态框 -->
|
|
<AbilityModal v-if="abModal" :abModal="abModal" :modelId="modelId" :iedType="iedType" @abilityBack="abilityBack">
|
|
<AbilityModal v-if="abModal" :abModal="abModal" :modelId="modelId" :iedType="iedType" @abilityBack="abilityBack">
|
|
</AbilityModal>
|
|
</AbilityModal>
|
|
|
|
+ <LineDouble v-if="ldModal" :ldModal="ldModal" :modelId="modelId" :startTarget="startTarget" :endTarget="endTarget"
|
|
|
|
+ :numCase="numCase" :startText="startText" :endText="endText" @lineBack="lineBack"></LineDouble>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -19,6 +21,7 @@ import flow from "@/api/flow/flow"
|
|
import { ElMessage } from 'element-plus';
|
|
import { ElMessage } from 'element-plus';
|
|
import { useRouter } from 'vue-router';
|
|
import { useRouter } from 'vue-router';
|
|
import AbilityModal from "../drawModal/AbilityModal.vue"
|
|
import AbilityModal from "../drawModal/AbilityModal.vue"
|
|
|
|
+import LineDouble from '../drawModal/LineDouble.vue';
|
|
import { DndPanel, SelectionSelect, Group, Menu, MiniMap, regeister, Snapshot, lfJson2Xml, lfXml2Json } from "@logicflow/extension";
|
|
import { DndPanel, SelectionSelect, Group, Menu, MiniMap, regeister, Snapshot, lfJson2Xml, lfXml2Json } from "@logicflow/extension";
|
|
import "@logicflow/core/dist/style/index.css";
|
|
import "@logicflow/core/dist/style/index.css";
|
|
import "@logicflow/extension/lib/style/index.css";
|
|
import "@logicflow/extension/lib/style/index.css";
|
|
@@ -55,6 +58,11 @@ export default {
|
|
coolObj: {
|
|
coolObj: {
|
|
type: Object,
|
|
type: Object,
|
|
required: true
|
|
required: true
|
|
|
|
+ },
|
|
|
|
+ // 用于判断是sv还是goose
|
|
|
|
+ svOrGoose: {
|
|
|
|
+ type: Number,
|
|
|
|
+ required: true,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
setup(props, { emit }) {
|
|
setup(props, { emit }) {
|
|
@@ -79,6 +87,12 @@ export default {
|
|
let modelId = ref("")//模型id
|
|
let modelId = ref("")//模型id
|
|
let abModal = ref(false)//功能模态框
|
|
let abModal = ref(false)//功能模态框
|
|
let iedType = ref("")//iedtype
|
|
let iedType = ref("")//iedtype
|
|
|
|
+ let ldModal = ref(false)//linemodel.vue开关
|
|
|
|
+ let startTarget = ref({})//开始节点
|
|
|
|
+ let endTarget = ref({})//结束节点
|
|
|
|
+ let numCase = ref(1)//判断sv还是goose
|
|
|
|
+ let startText = ref("")//开始节点名称
|
|
|
|
+ let endText = ref("")//结束节点名称
|
|
watch(() => props.lineMenuColor, (newVal) => {
|
|
watch(() => props.lineMenuColor, (newVal) => {
|
|
copyColor.value = newVal
|
|
copyColor.value = newVal
|
|
})
|
|
})
|
|
@@ -108,7 +122,6 @@ export default {
|
|
watch(() => props.coolObj, (newVal) => {
|
|
watch(() => props.coolObj, (newVal) => {
|
|
copyObj.value = newVal
|
|
copyObj.value = newVal
|
|
modelId.value = copyObj.value.id
|
|
modelId.value = copyObj.value.id
|
|
- console.log(modelId.value, 'watch模型id ');
|
|
|
|
cid.getModelInfo(copyObj.value.id).then(res => {
|
|
cid.getModelInfo(copyObj.value.id).then(res => {
|
|
if (res.data[0].relation_json == null || res.data[0].relation_json == '') return;
|
|
if (res.data[0].relation_json == null || res.data[0].relation_json == '') return;
|
|
const origiondata = JSON.parse(res.data[0].relation_json)
|
|
const origiondata = JSON.parse(res.data[0].relation_json)
|
|
@@ -125,6 +138,9 @@ export default {
|
|
}
|
|
}
|
|
}, { immediate: true })
|
|
}, { immediate: true })
|
|
})
|
|
})
|
|
|
|
+ watch(() => props.svOrGoose, (newVal) => {
|
|
|
|
+ numCase.value = newVal
|
|
|
|
+ })
|
|
function blue() {
|
|
function blue() {
|
|
lf.value.setTheme({
|
|
lf.value.setTheme({
|
|
baseEdge: {
|
|
baseEdge: {
|
|
@@ -204,11 +220,11 @@ export default {
|
|
coolId.value = props.needId
|
|
coolId.value = props.needId
|
|
coolName.value = props.needName
|
|
coolName.value = props.needName
|
|
copyObj.value = props.coolObj
|
|
copyObj.value = props.coolObj
|
|
|
|
+ numCase.value = props.svOrGoose
|
|
//systemRow.getChildren({ code: "area_type" }).then(res => {
|
|
//systemRow.getChildren({ code: "area_type" }).then(res => {
|
|
// console.log(res, 'sss');
|
|
// console.log(res, 'sss');
|
|
//})
|
|
//})
|
|
systemRow.getChildren({ code: "ied_type" }).then(res => {
|
|
systemRow.getChildren({ code: "ied_type" }).then(res => {
|
|
- console.log(res, 'res');
|
|
|
|
needMap.value = res.data.map(item => {
|
|
needMap.value = res.data.map(item => {
|
|
return {
|
|
return {
|
|
type: 'rect',
|
|
type: 'rect',
|
|
@@ -324,11 +340,6 @@ export default {
|
|
lf.value.on("edge:click", function (data, e, position) {
|
|
lf.value.on("edge:click", function (data, e, position) {
|
|
delId.value = data.data.id
|
|
delId.value = data.data.id
|
|
})
|
|
})
|
|
- lf.value.on('edge:dbclick', function (data, e, position) {
|
|
|
|
- let start = lf.value.getNodeModelById(data.data.sourceNodeId)//获取连线开始节点
|
|
|
|
- let end = lf.value.getNodeModelById(data.data.targetNodeId)//获取连线结尾节点
|
|
|
|
- console.log(start, end, '边data');
|
|
|
|
- })
|
|
|
|
lf.value.on("edge:add", function (data, e, position) {
|
|
lf.value.on("edge:add", function (data, e, position) {
|
|
if (copyColor.value == '#255CE7') {
|
|
if (copyColor.value == '#255CE7') {
|
|
blue()
|
|
blue()
|
|
@@ -348,10 +359,25 @@ export default {
|
|
setY.value = data.data.y
|
|
setY.value = data.data.y
|
|
emit("backxy", setX.value, setY.value)
|
|
emit("backxy", setX.value, setY.value)
|
|
})
|
|
})
|
|
|
|
+ lf.value.on('anchor:drop', function (data, e, position) {//添加线上文字
|
|
|
|
+ if (numCase.value == 0) {
|
|
|
|
+ lf.value.graphModel.updateText(data.edgeModel.id, "SV");
|
|
|
|
+ } else if (numCase.value == 1) {
|
|
|
|
+ lf.value.graphModel.updateText(data.edgeModel.id, "Goose");
|
|
|
|
+ }
|
|
|
|
+ })
|
|
lf.value.on('node:dbclick', function (data, e, position) {//双击打开弹窗
|
|
lf.value.on('node:dbclick', function (data, e, position) {//双击打开弹窗
|
|
iedType.value = data.data.properties.ied_type
|
|
iedType.value = data.data.properties.ied_type
|
|
abModal.value = true
|
|
abModal.value = true
|
|
- console.log(data, '节点data');
|
|
|
|
|
|
+ })
|
|
|
|
+ lf.value.on('edge:dbclick', function (data, e, position) {//双击连接线
|
|
|
|
+ let start = lf.value.getNodeModelById(data.data.sourceNodeId)//获取连线开始节点
|
|
|
|
+ let end = lf.value.getNodeModelById(data.data.targetNodeId)//获取连线结尾节点
|
|
|
|
+ startText.value = start.text.value//开始文本
|
|
|
|
+ endText.value = end.text.value//结束文本
|
|
|
|
+ startTarget.value = start.properties
|
|
|
|
+ endTarget.value = end.properties
|
|
|
|
+ ldModal.value = true
|
|
})
|
|
})
|
|
lf.value.on('node:mousemove', function (data, e) {//传递坐标轴参数到父组件
|
|
lf.value.on('node:mousemove', function (data, e) {//传递坐标轴参数到父组件
|
|
setX.value = data.data.x
|
|
setX.value = data.data.x
|
|
@@ -380,6 +406,9 @@ export default {
|
|
function abilityBack(data) {
|
|
function abilityBack(data) {
|
|
abModal.value = data
|
|
abModal.value = data
|
|
}
|
|
}
|
|
|
|
+ function lineBack(data) {
|
|
|
|
+ ldModal.value = data
|
|
|
|
+ }
|
|
onBeforeUnmount(() => {
|
|
onBeforeUnmount(() => {
|
|
// lf.value.remove()
|
|
// lf.value.remove()
|
|
coolObj.value = {}
|
|
coolObj.value = {}
|
|
@@ -408,10 +437,18 @@ export default {
|
|
abModal,//功能模态框
|
|
abModal,//功能模态框
|
|
iedType,//模型属性
|
|
iedType,//模型属性
|
|
abilityBack,//abilitymodal.vue返回模态框开关状态
|
|
abilityBack,//abilitymodal.vue返回模态框开关状态
|
|
|
|
+ ldModal,//lineDouble.vue模态框开关
|
|
|
|
+ startTarget,//开始节点
|
|
|
|
+ endTarget,//结束节点
|
|
|
|
+ lineBack,//LineDouble.vue返回模态框开关状态
|
|
|
|
+ numCase,//判断是sv还是goose,0为sv,1为goose
|
|
|
|
+ startText,//开始节点名称
|
|
|
|
+ endText,//结束节点名称
|
|
}
|
|
}
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
AbilityModal,//功能模态框
|
|
AbilityModal,//功能模态框
|
|
|
|
+ LineDouble,//连接线模态框
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
@@ -424,7 +461,7 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
:deep(.lf-element-text) {
|
|
:deep(.lf-element-text) {
|
|
- color: #255CE7;
|
|
|
|
|
|
+ color: black;
|
|
}
|
|
}
|
|
|
|
|
|
/* :deep(.lf-basic-shape) {
|
|
/* :deep(.lf-basic-shape) {
|