|
@@ -16,13 +16,13 @@
|
|
|
*/
|
|
|
|
|
|
import { ref, onMounted, watch } from 'vue'
|
|
|
-import type { Ref } from 'vue'
|
|
|
-import type { Graph } from '@antv/x6'
|
|
|
-import type { Coordinate, NodeData } from './types'
|
|
|
+import { remove } from 'lodash'
|
|
|
import { TaskType } from '@/views/projects/task/constants/task-type'
|
|
|
import { formatParams } from '@/views/projects/task/components/node/format-data'
|
|
|
import { useCellUpdate } from './dag-hooks'
|
|
|
-import { WorkflowDefinition } from './types'
|
|
|
+import type { Ref } from 'vue'
|
|
|
+import type { Graph } from '@antv/x6'
|
|
|
+import type { Coordinate, NodeData, WorkflowDefinition } from './types'
|
|
|
|
|
|
interface Options {
|
|
|
graph: Ref<Graph | undefined>
|
|
@@ -36,8 +36,7 @@ interface Options {
|
|
|
*/
|
|
|
export function useTaskEdit(options: Options) {
|
|
|
const { graph, definition } = options
|
|
|
- const { addNode, setNodeName } = useCellUpdate({ graph })
|
|
|
-
|
|
|
+ const { addNode, setNodeName, setNodeEdge } = useCellUpdate({ graph })
|
|
|
const taskDefinitions = ref<NodeData[]>(
|
|
|
definition.value?.taskDefinitionList || []
|
|
|
)
|
|
@@ -122,6 +121,7 @@ export function useTaskEdit(options: Options) {
|
|
|
taskDefinitions.value = taskDefinitions.value.map((task) => {
|
|
|
if (task.code === currTask.value?.code) {
|
|
|
setNodeName(task.code + '', taskDef.name)
|
|
|
+ updatePreTasks(data.preTasks, task.code)
|
|
|
return {
|
|
|
...taskDef,
|
|
|
version: task.version,
|
|
@@ -141,6 +141,28 @@ export function useTaskEdit(options: Options) {
|
|
|
taskModalVisible.value = false
|
|
|
}
|
|
|
|
|
|
+ function updatePreTasks(preTasks: number[], code: number) {
|
|
|
+ if (!preTasks?.length) return
|
|
|
+ setNodeEdge(String(code), preTasks)
|
|
|
+ if (definition.value?.processTaskRelationList?.length) {
|
|
|
+ remove(
|
|
|
+ definition.value.processTaskRelationList,
|
|
|
+ (process) => process.postTaskCode === code
|
|
|
+ )
|
|
|
+ }
|
|
|
+ preTasks.forEach((task) => {
|
|
|
+ definition.value?.processTaskRelationList.push({
|
|
|
+ postTaskCode: code,
|
|
|
+ preTaskCode: task,
|
|
|
+ name: '',
|
|
|
+ preTaskVersion: 1,
|
|
|
+ postTaskVersion: 1,
|
|
|
+ conditionType: 'NONE',
|
|
|
+ conditionParams: {}
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
if (graph.value) {
|
|
|
graph.value.on('cell:dblclick', ({ cell }) => {
|