diff --git a/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue b/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue
index 534624a..a9fe0e8 100644
--- a/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue
+++ b/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue
@@ -27,7 +27,7 @@
diff --git a/src/components/Canvas/FlowCanvas/components/nodes/result-image.vue b/src/components/Canvas/FlowCanvas/components/nodes/result-image.vue
index 7dc50eb..743e8d2 100644
--- a/src/components/Canvas/FlowCanvas/components/nodes/result-image.vue
+++ b/src/components/Canvas/FlowCanvas/components/nodes/result-image.vue
@@ -97,12 +97,12 @@
width: 244px;
border-radius: 16px;
border: 1px solid #d9d9d9;
- box-shadow: 0px 15px 21px 0px #0000000d;
+ box-shadow: 0 15px 21px 0 rgba(0, 0, 0, 0.05);
padding: 25px 6px;
user-select: none;
background-color: #fff;
&.active{
- border: 3px solid #d9d9d9;
+ box-shadow: 0 15px 21px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px #d9d9d9;
}
> .header {
position: absolute;
diff --git a/src/components/Canvas/FlowCanvas/manager/EventManager.ts b/src/components/Canvas/FlowCanvas/manager/EventManager.ts
index 11828a3..b2e616c 100644
--- a/src/components/Canvas/FlowCanvas/manager/EventManager.ts
+++ b/src/components/Canvas/FlowCanvas/manager/EventManager.ts
@@ -51,7 +51,7 @@ export class EventManager {
handleDelete(event: any, activeNodeID: string) {
event.preventDefault()
if (!activeNodeID) return console.warn('没有选中节点')
- this.stateManager.nodeManager.deleteNode(activeNodeID)
+ this.stateManager.deleteNode(activeNodeID, { isElMessageBox: true })
}
/** 处理键盘事件 */
handleKeyDown(event: any) {
diff --git a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts
index f964d4d..47f0d19 100644
--- a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts
+++ b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts
@@ -1,12 +1,22 @@
import { createId } from '../../tools/tools'
import { NODE_DATATYPE, NODE_COMPONENT, NODE_DATATIER } from '../tools/index.d'
+interface NodeData {
+ type?: string
+ component?: any// 节点组件
+ data?: object// 节点数据
+ tier?: string// 节点层级
+ isHeader?: boolean// 是否显示头
+ superiorID?: string// 上级节点ID
+ disableDelete?: boolean// 是否禁用删除
+ disableCopy?: boolean// 是否禁用复制
+}
interface NodeOptions {
id?: string
position?: { x: number, y: number }
positionX?: number
positionY?: number
component?: any
- data?: object
+ data?: NodeData
}// 不可传入type class (内部使用)
export class NodeManager {
@@ -106,7 +116,8 @@ export class NodeManager {
copyNodeById(id: string) {
const node = this.stateManager.getNodeById(id)
const flowNode = this.stateManager.flowManager.getNodeById(id)
- if (!node) return console.warn(`copyNodeById: ${id}找不到对应节点`)
+ if (!node) return console.warn(`${id}找不到对应节点`)
+ if (node.data?.disableCopy) return console.warn(`${id}节点已禁用复制`)
const node_ = {
...JSON.parse(JSON.stringify(node)),
id: createId(),
@@ -116,6 +127,7 @@ export class NodeManager {
}
}
delete node_.data?.superiorID
+ delete node_.data?.disableDelete
this.stateManager.addNode(node_)
}
}
diff --git a/src/components/Canvas/FlowCanvas/manager/StateManager.ts b/src/components/Canvas/FlowCanvas/manager/StateManager.ts
index edba5ce..1d5bba8 100644
--- a/src/components/Canvas/FlowCanvas/manager/StateManager.ts
+++ b/src/components/Canvas/FlowCanvas/manager/StateManager.ts
@@ -1,7 +1,8 @@
import { ref, computed } from "vue";
import { NODE_TYPE } from '../tools/index.d'
import { ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
+import i18n from '@/lang'
+const t = i18n.global.t
export interface NodesItem {
id: string
@@ -34,7 +35,6 @@ export class StateManager {
flowManager: any
nodeManager: any
toolManager: any
- t: any
// 设置管理器
setManager(options) {
options.eventManager && (this.eventManager = options.eventManager)
@@ -94,8 +94,6 @@ export class StateManager {
return arr
})
- this.t = useI18n().t
-
}
/** 设置激活节点 */
setActiveNodeID(id: string) { this.activeNodeID.value = id }
@@ -105,16 +103,19 @@ export class StateManager {
this.recordState()
}
/** 删除节点 */
- async deleteNode(id: string,{ isElMessageBox } = { isElMessageBox: false }) {
- let deletePromise:any = true
- if (isElMessageBox){
+ async deleteNode(id: string, { isElMessageBox } = { isElMessageBox: false }) {
+ const node = this.getNodeById(id)
+ if (!node) return console.warn(`没有找到指定id:${id}`)
+ if (node.data.disableDelete) return console.warn('该节点禁用删除')
+ let deletePromise: any = true
+ if (isElMessageBox) {
deletePromise = await new Promise((resolve, reject) => {
ElMessageBox.confirm(
- this.t('flowCanvas.deleteCardConfirm'),
+ t('flowCanvas.deleteCardConfirm'),
'',
{
- confirmButtonText: this.t('flowCanvas.confirm'),
- cancelButtonText: this.t('flowCanvas.cancel'),
+ confirmButtonText: t('flowCanvas.confirm'),
+ cancelButtonText: t('flowCanvas.cancel'),
}
).then(() => {
resolve(true)
@@ -124,9 +125,6 @@ export class StateManager {
})
}
if (!deletePromise) return console.log('删除操作被取消')
- const node = this.getNodeById(id)
- if (!node) return console.warn(`没有找到指定id:${id}`)
- if (node.data.disableDelete) return console.warn('该节点禁用删除')
this.nodes.value = this.nodes.value.filter((node: NodesItem) => node.id !== id)
this.recordState()
}