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