Browse Source
* [Feature][UI] Added logic to drag and drop nodes to DAG canvas. * [Feature][UI] Added logic to drag and drop nodes to DAG canvas.3.2.0-release
songjianet
2 years ago
committed by
GitHub
8 changed files with 141 additions and 22 deletions
@ -0,0 +1,37 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
import { defineStore } from 'pinia' |
||||
import { DagStore } from './types' |
||||
|
||||
export const useDagStore = defineStore({ |
||||
id: 'dag-store', |
||||
state: (): DagStore => ({ |
||||
tasks: [] |
||||
}), |
||||
persist: true, |
||||
getters: { |
||||
getDagTasks(): Array<any> { |
||||
return this.tasks |
||||
} |
||||
}, |
||||
actions: { |
||||
setDagTasks(tasks: Array<any>): void { |
||||
this.tasks = tasks |
||||
} |
||||
} |
||||
}) |
@ -0,0 +1,22 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
interface DagStore { |
||||
tasks: Array<any> |
||||
} |
||||
|
||||
export { DagStore } |
@ -0,0 +1,33 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
import { Graph, Cell } from '@antv/x6' |
||||
import { useDagStore } from '@/store/project/dynamic/dag' |
||||
|
||||
export function useAddDagShape(graph: Graph) { |
||||
const cells: Array<Cell> = useDagStore().getDagTasks |
||||
|
||||
cells.forEach(item => { |
||||
if (item.shape === 'dag-edge') { |
||||
cells.push((graph as Graph).addEdge(item)) |
||||
} else { |
||||
cells.push((graph as Graph).addNode(item as any)) |
||||
} |
||||
}) |
||||
|
||||
;(graph as Graph).resetCells(cells) |
||||
} |
Loading…
Reference in new issue