fix: Wordflow implements multi-select nodes (#4183)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>v3.2
parent
70cfd7eb59
commit
d39e8aa36a
|
|
@ -19,7 +19,7 @@
|
||||||
<template v-for="(item, index) in paragraphList" :key="index">
|
<template v-for="(item, index) in paragraphList" :key="index">
|
||||||
<CardBox
|
<CardBox
|
||||||
:title="item.title || '-'"
|
:title="item.title || '-'"
|
||||||
class="cursor mb-8"
|
class="cursor mb-8 w-full"
|
||||||
:showIcon="false"
|
:showIcon="false"
|
||||||
@click.stop="permissionPrecise.doc_edit(id as string) && editParagraph(item)"
|
@click.stop="permissionPrecise.doc_edit(id as string) && editParagraph(item)"
|
||||||
style="height: 210px"
|
style="height: 210px"
|
||||||
|
|
|
||||||
|
|
@ -265,8 +265,10 @@ const editName = async (formEl: FormInstance | undefined) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const mousedown = () => {
|
const mousedown = (event?: any) => {
|
||||||
props.nodeModel.graphModel.clearSelectElements()
|
if (!event?.shiftKey) {
|
||||||
|
props.nodeModel.graphModel.clearSelectElements()
|
||||||
|
}
|
||||||
set(props.nodeModel, 'isSelected', true)
|
set(props.nodeModel, 'isSelected', true)
|
||||||
set(props.nodeModel, 'isHovered', true)
|
set(props.nodeModel, 'isHovered', true)
|
||||||
props.nodeModel.graphModel.toFront(props.nodeModel.id)
|
props.nodeModel.graphModel.toFront(props.nodeModel.id)
|
||||||
|
|
|
||||||
|
|
@ -100,12 +100,12 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
|
||||||
const nodes = elements.nodes.filter((node) =>
|
const nodes = elements.nodes.filter((node) =>
|
||||||
['start-node', 'base-node', 'loop-body-node'].includes(node.type),
|
['start-node', 'base-node', 'loop-body-node'].includes(node.type),
|
||||||
)
|
)
|
||||||
if (nodes.length > 0) {
|
// if (nodes.length > 0) {
|
||||||
MsgError(
|
// MsgError(
|
||||||
`${nodes[0].properties?.stepName}${t('views.applicationWorkflow.delete.deleteMessage')}`,
|
// `${nodes[0].properties?.stepName}${t('views.applicationWorkflow.delete.deleteMessage')}`,
|
||||||
)
|
// )
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
MsgConfirm(t('common.tip'), t('views.applicationWorkflow.delete.confirmTitle'), {
|
MsgConfirm(t('common.tip'), t('views.applicationWorkflow.delete.confirmTitle'), {
|
||||||
confirmButtonText: t('common.confirm'),
|
confirmButtonText: t('common.confirm'),
|
||||||
confirmButtonClass: 'danger',
|
confirmButtonClass: 'danger',
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import { ref, onMounted, onUnmounted } from 'vue'
|
||||||
import AppEdge from './common/edge'
|
import AppEdge from './common/edge'
|
||||||
import loopEdge from './common/loopEdge'
|
import loopEdge from './common/loopEdge'
|
||||||
import Control from './common/NodeControl.vue'
|
import Control from './common/NodeControl.vue'
|
||||||
|
import { SelectionSelect } from '@logicflow/extension'
|
||||||
import '@logicflow/extension/lib/style/index.css'
|
import '@logicflow/extension/lib/style/index.css'
|
||||||
import '@logicflow/core/dist/style/index.css'
|
import '@logicflow/core/dist/style/index.css'
|
||||||
import { initDefaultShortcut } from '@/workflow/common/shortcut'
|
import { initDefaultShortcut } from '@/workflow/common/shortcut'
|
||||||
|
|
@ -50,7 +51,7 @@ const renderGraphData = (data?: any) => {
|
||||||
const container: any = document.querySelector('#container')
|
const container: any = document.querySelector('#container')
|
||||||
if (container) {
|
if (container) {
|
||||||
lf.value = new LogicFlow({
|
lf.value = new LogicFlow({
|
||||||
plugins: [Dagre],
|
plugins: [Dagre, SelectionSelect],
|
||||||
textEdit: false,
|
textEdit: false,
|
||||||
adjustEdge: false,
|
adjustEdge: false,
|
||||||
adjustEdgeStartAndEnd: false,
|
adjustEdgeStartAndEnd: false,
|
||||||
|
|
@ -107,12 +108,13 @@ const renderGraphData = (data?: any) => {
|
||||||
// 清除当前节点下面的子节点的所有缓存
|
// 清除当前节点下面的子节点的所有缓存
|
||||||
data.nodeModel.clear_next_node_field(false)
|
data.nodeModel.clear_next_node_field(false)
|
||||||
})
|
})
|
||||||
|
lf.value.openSelectionSelect()
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
lf.value?.fitView()
|
lf.value?.fitView()
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const validate = () => {
|
const validate = () => {
|
||||||
return Promise.all(lf.value.graphModel.nodes.map((element: any) => element?.validate?.()))
|
return Promise.all(lf.value.graphModel.nodes.map((element: any) => element?.validate?.()))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue