|
@@ -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'
|
|
|
}
|