Browse Source

feat: 流程渲染初步完成

lanceJiang 1 năm trước cách đây
mục cha
commit
59c55b664d
1 tập tin đã thay đổi với 30 bổ sung18 xóa
  1. 30 18
      src/views/approve/components/config.ts

+ 30 - 18
src/views/approve/components/config.ts

@@ -3,49 +3,59 @@ type ModelContentConfig = {
 	type: number
 	local_status?: string // 填充自定义状态
 	p_nodeNames?: string[] // 填充自定义状态
-	childNode?: ModelContentConfig
+	childNode: ModelContentConfig | null
 	conditionNodes?: {
 		conditionList: any[]
-		childrenNode: ModelContentConfig
+		childNode: ModelContentConfig
 	}[]
 }
 type RenderNodes = {
 	[key: string]: 0 | 1 // 0已执行 1执行中
 }
 export const package_modelContentConfig = (data: ModelContentConfig, renderNodes: RenderNodes) => {
-	/**local_status: 0: 已执行(success) 1:执行中(danger) // 默认未执行(info)*/
+	/**local_status: 0: 已执行(success) 1:执行中(error) // 默认未执行(info)*/
 	// 通过nodeName 作为唯一值 记录 每个key(nodeName) 对应的childNode 信息
 	const nodeNameObj: { [nodeName: string]: ModelContentConfig } = {}
 	const fn = (data: ModelContentConfig, p_nodeNames = []) => {
+		// console.error(data, p_nodeNames, 'data, p_nodeNames')
+		if (!data) return
 		data.p_nodeNames = p_nodeNames
 		// 记录
 		nodeNameObj[data.nodeName] = data
 		// const _p_nodeNames = [...p_nodeNames, data.nodeName]
-		const _p_nodeNames = [...p_nodeNames /*, data.nodeName*/]
-		if (data.childNode) {
-			_p_nodeNames.push(data.nodeName)
-			// 正常子节点
-			fn(data.childNode, _p_nodeNames)
-		} else if (data.conditionNodes && Array.isArray(data.conditionNodes)) {
+		const _p_nodeNames = [...p_nodeNames, data.nodeName]
+		// let has_conditionNodes = false
+		if (data.conditionNodes && Array.isArray(data.conditionNodes)) {
+			// has_conditionNodes = true
 			// 条件分支节点
 			data.conditionNodes.forEach(v => {
-				fn(v, _p_nodeNames)
+				fn(v.childNode, _p_nodeNames)
+				// fn(v.childNode, [...p_nodeNames])
 			})
 		}
+		if (data.childNode) {
+			// _p_nodeNames.push(data.nodeName)
+			// const _p_nodeNames = [...p_nodeNames, data.nodeName]
+			// if (!has_conditionNodes) {
+			// 	_p_nodeNames.push(data.nodeName)
+			// }
+			// 正常子节点
+			fn(data.childNode, _p_nodeNames)
+		}
 	}
 	fn(data)
-	Object.keys(nodeNameObj).forEach(k => {
+	/*Object.keys(nodeNameObj).forEach(k => {
 		const _o = nodeNameObj[k]
 		_o.local_status = 'info'
 	})
-	// 给需要修改状态的
+	// 给需要修改状态的*/
 	console.log(nodeNameObj, 'nodeNameObj')
 	const local_status_obj = {
 		0: 'success', // 已执行
-		1: 'danger' // 执行中
+		1: 'error' // 执行中
 	}
 	let cur_nodeName = ''
-	/**local_status: 0: 已执行(success) 1:执行中(danger) // 默认未执行(info)*/
+	/**local_status: 0: 已执行(success) 1:执行中(error) // 默认未执行(info)*/
 	Object.keys(renderNodes).forEach(nodeName => {
 		// console.log(nodeName, 'nodeName')
 		const local_status = local_status_obj[renderNodes[nodeName]] || ''
@@ -54,7 +64,7 @@ export const package_modelContentConfig = (data: ModelContentConfig, renderNodes
 			node.local_status = local_status
 		}
 		// 执行中的key 提取出来
-		if (node.local_status === 'danger') {
+		if (node.local_status === 'error') {
 			cur_nodeName = nodeName
 		}
 	})
@@ -62,12 +72,13 @@ export const package_modelContentConfig = (data: ModelContentConfig, renderNodes
 	const cur_actionKey = Object.keys(nodeNameObj).find(nodeName => {
 		const node = nodeNameObj[nodeName]
 		// 执行中的key 提取出来
-		if (node.local_status === 'danger') {
+		if (node.local_status === 'error') {
 			return true
 		}
 	})
-	console.log(cur_actionKey, 'cur_actionKey')
 	const curNode = nodeNameObj[cur_nodeName] as ModelContentConfig
+	console.warn(cur_actionKey, '当前标红 cur_actionKey curNode', curNode)
+
 	// 如果有执行中的 node 给父级做状态渲染
 	if (curNode) {
 		const p_nodeNames = curNode.p_nodeNames || []
@@ -75,7 +86,8 @@ export const package_modelContentConfig = (data: ModelContentConfig, renderNodes
 			p_nodeNames.forEach(nodeName => {
 				const p_node = nodeNameObj[nodeName]
 				// 父级node 设置为 已执行
-				if (p_node.local_status) {
+				// if (!p_node.local_status) {
+				if (p_node) {
 					p_node.local_status = 'success'
 				}
 			})