Kaynağa Gözat

解决条件节点 nodeKey 问题

hubin 1 yıl önce
ebeveyn
işleme
240c72e1e4

+ 8 - 2
src/components/scWorkflow/nodes/addNode.vue

@@ -39,7 +39,7 @@
 </template>
 
 <script>
-
+import { getNodeKey } from '@/utils/workflow'
 export default {
 	props: {
 		modelValue: { type: Object, default: () => {} },
@@ -58,6 +58,7 @@ export default {
 			if (type === 1) {
 				node = {
 					nodeName: '审核人',
+					nodeKey: getNodeKey(),
 					type: 1, //节点类型
 					setType: 1, //审核人类型
 					nodeAssigneeList: [], //审核人成员 & 角色
@@ -78,6 +79,7 @@ export default {
 			} else if (type === 2) {
 				node = {
 					nodeName: '抄送人',
+					nodeKey: getNodeKey(),
 					type: 2,
 					allowSelection: true,
 					nodeAssigneeList: [],
@@ -90,6 +92,7 @@ export default {
 					conditionNodes: [
 						{
 							nodeName: '条件1',
+							nodeKey: getNodeKey(),
 							type: 3,
 							priorityLevel: 1,
 							conditionMode: 1,
@@ -97,6 +100,7 @@ export default {
 						},
 						{
 							nodeName: '条件2',
+							nodeKey: getNodeKey(),
 							type: 3,
 							priorityLevel: 2,
 							conditionMode: 1,
@@ -108,6 +112,7 @@ export default {
 			} else if (type === 6) {
 				node = {
 					nodeName: '延时处理',
+					nodeKey: getNodeKey(),
 					type: 6,
 					delayType: '1', // 延时类型
 					// 一小时后触发 {"time": "1:h"} 单位【 d 天 h 时 m 分 】 发起后一小时三十分后触发 {"time": "01:30:00"}
@@ -119,6 +124,7 @@ export default {
 			} else if (type === 7) {
 				node = {
 					nodeName: '触发器',
+					nodeKey: getNodeKey(),
 					type: 7,
 					delayType: '1', // 延时类型
 					triggerType: '1', // 触发器类型: 立即执行('1') 延时执行('2')
@@ -133,6 +139,7 @@ export default {
 			} else if (type === 8) {
 				node = {
 					nodeName: '子流程',
+					nodeKey: getNodeKey(),
 					type: 8,
 					delayType: '1', // 延时类型
 					triggerType: '1', // 触发器类型: 立即执行('1') 延时执行('2')
@@ -145,7 +152,6 @@ export default {
 					childNode: this.modelValue
 				}
 			}
-			node.nodeKey = 'flk' + Date.now()
 			this.$emit('update:modelValue', node)
 		}
 	}

+ 2 - 0
src/components/scWorkflow/nodes/branch.vue

@@ -155,6 +155,7 @@ import addNode from './addNode.vue'
 import useFlowStore from '@/store/modules/flow'
 import { Delete, Plus, ArrowLeft, Close, ArrowRight, Edit } from '@element-plus/icons-vue'
 import { mapState } from 'pinia'
+import { getNodeKey } from '@/utils/workflow'
 
 export default {
 	components: {
@@ -226,6 +227,7 @@ export default {
 			let len = this.nodeConfig.conditionNodes.length + 1
 			this.nodeConfig.conditionNodes.push({
 				nodeName: '条件' + len,
+				nodeKey: getNodeKey(),
 				type: 3,
 				priorityLevel: len,
 				conditionMode: 1,

+ 8 - 0
src/utils/workflow.ts

@@ -0,0 +1,8 @@
+/**
+ * 获取节点 key
+ */
+const getNodeKey = (): string => {
+	return 'flk' + Date.now()
+}
+
+export { getNodeKey }