Prechádzať zdrojové kódy

fix: 流程图 优化

lanceJiang 1 rok pred
rodič
commit
8a2417d6fd

+ 14 - 7
src/components/scWorkflow/index.vue

@@ -60,7 +60,6 @@ export default {
 	},
 	watch: {
 		modelValue(val) {
-      console.error(val, 'val........')
 			this.nodeConfig = val
 		},
 		nodeConfig(val) {
@@ -299,7 +298,7 @@ export default {
 			}
 		}
 
-		// 已执行
+		/*// 已执行
 		&--success {
 			.auto-judge:after {
 				border: 1px solid var(--el-color-success) !important;
@@ -313,19 +312,19 @@ export default {
 			.auto-judge:after {
 				border: 1px solid var(--el-color-error) !important;
 			}
-			/*      .title {
+			!*      .title {
         background: var(--el-color-error) !important;
-      }*/
+      }*!
 		}
 		// 未执行
 		&--info {
 			.auto-judge:after {
 				border: 1px solid var(--el-color-info) !important;
 			}
-			/*.title {
+			!*.title {
         background: var(--el-color-info) !important;
-      }*/
-		}
+      }*!
+		}*/
 	}
 	.branch-box-wrap {
 		display: flex;
@@ -402,6 +401,14 @@ export default {
 		padding: 15px 15px;
 		cursor: pointer;
 		box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.1);
+		// 已执行
+		&--success:after {
+			border: 1px solid var(--el-color-success) !important;
+		}
+		// 未执行
+		&--info:after {
+			border: 1px solid var(--el-color-info) !important;
+		}
 	}
 	.auto-judge::before {
 		content: '';

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

@@ -1,12 +1,13 @@
 <template>
-	<div class="branch-wrap" :class="[disabled ? 'branch-wrap--disabled' : '', `branch-wrap--${nodeConfig.local_status}`]">
+	<!--  `branch-wrap--${nodeConfig.local_status}`-->
+	<div class="branch-wrap" :class="[disabled ? 'branch-wrap--disabled' : '']">
 		<div class="branch-box-wrap">
 			<div class="branch-box">
 				<el-button class="add-branch" type="success" plain round @click="addTerm"> 添加条件 </el-button>
 				<div v-for="(item, index) in nodeConfig.conditionNodes" :key="index" class="col-box">
 					<div class="condition-node">
 						<div class="condition-node-box">
-							<div class="auto-judge" @click="show(index)">
+							<div :class="['auto-judge', `auto-judge--${item.local_status}`]" @click="show(index)">
 								<!-- 不是第一个 也不是 最后一个-->
 								<div v-if="index != 0 && index != nodeConfig.conditionNodes.length - 1" class="sort-left" @click.stop="arrTransfer(index, -1)">
 									<el-icon><ArrowLeft /></el-icon>

+ 16 - 1
src/views/approve/components/config.ts

@@ -5,6 +5,8 @@ type ModelContentConfig = {
 	p_nodeNames?: string[] // 填充自定义状态
 	childNode: ModelContentConfig | null
 	conditionNodes?: {
+		nodeName: string
+		local_status?: string // 填充自定义状态
 		conditionList: any[]
 		childNode: ModelContentConfig
 	}[]
@@ -88,7 +90,20 @@ export const package_modelContentConfig = (data: ModelContentConfig, renderNodes
 				// 父级node 设置为 已执行
 				// if (!p_node.local_status) {
 				if (p_node) {
-					p_node.local_status = 'success'
+					// 如果是条件节点
+					if (p_node.conditionNodes && Array.isArray(p_node.conditionNodes)) {
+						const idx = p_node.conditionNodes.findIndex(v => v.childNode?.nodeName === curNode.nodeName)
+						p_node.conditionNodes.forEach((v, i) => {
+							if (i === idx) {
+								v.local_status = 'success'
+							} else {
+								v.local_status = 'info'
+							}
+						})
+					} else {
+						// 普通节点
+						p_node.local_status = 'success'
+					}
 				}
 			})
 		}