|
@@ -0,0 +1,66 @@
|
|
|
+/*type childrenNode = {
|
|
|
+
|
|
|
+}*/
|
|
|
+type ModelContentConfig = {
|
|
|
+ nodeName: string
|
|
|
+ type: number
|
|
|
+ local_status?: string // 填充自定义状态
|
|
|
+ childNode?: ModelContentConfig
|
|
|
+ conditionNodes?: {
|
|
|
+ conditionList: any[]
|
|
|
+ childrenNode: ModelContentConfig
|
|
|
+ }[]
|
|
|
+}
|
|
|
+type RenderNodes = {
|
|
|
+ [key: string]: 0 | 1 // 0已执行 1执行中
|
|
|
+}
|
|
|
+export const package_modelContentConfig = (data: ModelContentConfig, renderNodes: RenderNodes) => {
|
|
|
+ /**local_status: 0: 已执行(success) 1:执行中(error) // 默认未执行(info)*/
|
|
|
+ /*const flatList = []
|
|
|
+ // 给整个数据 初始化状态 为 未处理
|
|
|
+ let curData = data
|
|
|
+ while (curData.childNode) {
|
|
|
+ // curData.local_status = 'info'
|
|
|
+ flatList.push(curData.childNode)
|
|
|
+ curData = curData.childNode
|
|
|
+ }*/
|
|
|
+ // 通过nodeName 作为唯一值 记录 每个key(nodeName) 对应的childNode 信息
|
|
|
+ const nodeNameObj = {}
|
|
|
+ const fn = (data, p_nodeNames = []) => {
|
|
|
+ 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)) {
|
|
|
+ // 条件分支节点
|
|
|
+ data.conditionNodes.forEach(v => {
|
|
|
+ fn(v, _p_nodeNames)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fn(data)
|
|
|
+ /*Object.keys(nodeNameObj).forEach(k => {
|
|
|
+ const _o = nodeNameObj[k]
|
|
|
+ _o.local_status = 'info'
|
|
|
+ })*/
|
|
|
+ // 给需要修改状态的
|
|
|
+ console.log(nodeNameObj, 'nodeNameObj')
|
|
|
+ const local_status_obj = {
|
|
|
+ 0: 'success', // 已执行
|
|
|
+ 1: 'error' // 执行中
|
|
|
+ }
|
|
|
+ /**local_status: 0: 已执行(success) 1:执行中(error) // 默认未执行(info)*/
|
|
|
+ Object.keys(renderNodes).forEach((nodeName) => {
|
|
|
+ const local_status = local_status_obj[nodeName] || ''
|
|
|
+ const node = nodeNameObj[nodeName]
|
|
|
+ if (node) {
|
|
|
+ node.local_status = local_status
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // const cur_action =
|
|
|
+}
|