Преглед изворни кода

Merge pull request '流程图状态采用任务唯一标识flk解析' (#1) from insist-dev into master

Reviewed-on: http://git.aizuda.com/aizuda/aizuda-web-vue3/pulls/1
aizuda пре 1 година
родитељ
комит
232b6e6325
1 измењених фајлова са 29 додато и 57 уклоњено
  1. 29 57
      src/views/approve/components/config.ts

+ 29 - 57
src/views/approve/components/config.ts

@@ -1,21 +1,18 @@
-export type ModelContentConfig = {
-	// 唯一key
+type ModelContentConfig = {
 	nodeKey: string
 	nodeName: string
 	type: number
-	setType: number
 	local_status?: string // 填充自定义状态
 	p_nodeNames?: string[] // 填充自定义状态
+	p_nodeKeys?: string[] // 填充自定义状态
 	childNode: ModelContentConfig | null
 	lastNode_local_status?: string // 结束标记状态标记
 	conditionNodes?: {
-		nodeKey: string
 		nodeName: string
 		local_status?: string // 填充自定义状态
 		conditionList: any[]
 		childNode: ModelContentConfig
 	}[]
-	[key: string]: any
 }
 type RenderNodes = {
 	[key: string]: 0 | 1 // 0已执行 1执行中
@@ -23,87 +20,66 @@ type RenderNodes = {
 export const package_modelContentConfig = (data: ModelContentConfig, renderNodes: RenderNodes) => {
 	/**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')
+	const nodeKeyObj: { [nodeKey: string]: ModelContentConfig } = {}
+	const fn = (data: ModelContentConfig, p_nodeKeys = []) => {
 		if (!data) return
-		data.p_nodeNames = p_nodeNames
+		data.p_nodeKeys = p_nodeKeys
+		console.log(p_nodeKeys, 'p_nodeKeys')
+		console.log(data, 'data')
 		// 记录
-		nodeNameObj[data.nodeName] = data
-		// const _p_nodeNames = [...p_nodeNames, data.nodeName]
-		const _p_nodeNames = [...p_nodeNames, data.nodeName]
-		// let has_conditionNodes = false
+		nodeKeyObj[data.nodeKey] = data
+		const _p_nodeKeys = [...p_nodeKeys, data.nodeKey]
 		if (data.conditionNodes && Array.isArray(data.conditionNodes)) {
-			// has_conditionNodes = true
 			// 条件分支节点
 			data.conditionNodes.forEach(v => {
-				fn(v.childNode, _p_nodeNames)
+				fn(v.childNode, _p_nodeKeys)
 				// 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.childNode, _p_nodeKeys)
 		}
 	}
 	fn(data)
-	/*Object.keys(nodeNameObj).forEach(k => {
-		const _o = nodeNameObj[k]
-		_o.local_status = 'info'
-	})
+
 	// 给需要修改状态的*/
-	console.log(nodeNameObj, 'nodeNameObj')
+	console.log(nodeKeyObj, 'nodeKeyObj')
 	const local_status_obj = {
 		0: 'success', // 已执行
 		1: 'error' // 执行中
 	}
-	let cur_nodeName = ''
+	let cur_nodeKey = ''
 	/**local_status: 0: 已执行(success) 1:执行中(error) // 默认未执行(info)*/
-	Object.keys(renderNodes).forEach(nodeName => {
-		// console.log(nodeName, 'nodeName')
-		const local_status = local_status_obj[renderNodes[nodeName]] || ''
-		const node = nodeNameObj[nodeName]
+	Object.keys(renderNodes).forEach(nodeKey => {
+		const local_status = local_status_obj[renderNodes[nodeKey]] || ''
+		const node = nodeKeyObj[nodeKey]
 		if (node) {
 			node.local_status = local_status
 			// 执行中的key 提取出来
 			if (node.local_status === 'error') {
-				cur_nodeName = nodeName
+				cur_nodeKey = nodeKey
 			}
 		}
-		if (nodeName === '结束') {
+		if (nodeKey === 'flk_end') {
 			// 给顶级加结束标签状态
-			data.lastNode_local_status = local_status_obj[renderNodes[nodeName]]
+			data.lastNode_local_status = local_status_obj[renderNodes[nodeKey]]
 		}
 	})
 
-	/*const cur_actionKey = Object.keys(nodeNameObj).find(nodeName => {
-		const node = nodeNameObj[nodeName]
-		// 执行中的key 提取出来
-		if (node?.local_status === 'error') {
-			return true
-		}
-	})
-	console.warn(cur_actionKey, '当前标红 cur_actionKey')
-	*/
-	const curNode = nodeNameObj[cur_nodeName] as ModelContentConfig
-	console.warn('当前标红 curNode', curNode)
+	const curNode = nodeKeyObj[cur_nodeKey] as ModelContentConfig
 	// 如果有执行中的 node 给父级做状态渲染
 	if (curNode) {
-		const p_nodeNames = curNode.p_nodeNames || []
-		if (p_nodeNames.length) {
-			p_nodeNames.forEach(nodeName => {
-				const p_node = nodeNameObj[nodeName]
+		const p_nodeKeys = curNode.p_nodeKeys || []
+		if (p_nodeKeys.length) {
+			p_nodeKeys.forEach(nodeKeys => {
+				const p_node = nodeKeyObj[nodeKeys]
 				// 父级node 设置为 已执行
 				// if (!p_node.local_status) {
 				if (p_node) {
 					// 如果是条件节点
 					if (p_node.conditionNodes && Array.isArray(p_node.conditionNodes)) {
-						const idx = p_node.conditionNodes.findIndex(v => v.childNode?.nodeName === curNode.nodeName)
+						const idx = p_node.conditionNodes.findIndex(v => v.childNode?.nodeKey === curNode.nodeKey)
 						p_node.conditionNodes.forEach((v, i) => {
 							if (i === idx) {
 								v.local_status = 'success'
@@ -118,15 +94,11 @@ export const package_modelContentConfig = (data: ModelContentConfig, renderNodes
 				}
 			})
 		}
-	} /*else {
-		// 若没有标红 节点 根据 标绿节点处理额外节点样式
-		// 处理条件节点
-		// 处理结束节点
-	}*/
+	}
 
 	// 给没有标记 local_status 的 默认填充 未处理
-	Object.keys(nodeNameObj).forEach(nodeName => {
-		const node = nodeNameObj[nodeName]
+	Object.keys(nodeKeyObj).forEach(nodeKey => {
+		const node = nodeKeyObj[nodeKey]
 		if (!node.local_status) {
 			node.local_status = 'info'
 		}