From 28483549baee23b4ca11e4ddbc9f93244d5fbb7c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 07 九月 2023 14:14:41 +0800 Subject: [PATCH] 2023-09-07 --- src/menu/tablenodes/index.jsx | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 221 insertions(+), 0 deletions(-) diff --git a/src/menu/tablenodes/index.jsx b/src/menu/tablenodes/index.jsx index 26fb797..fcbfdd9 100644 --- a/src/menu/tablenodes/index.jsx +++ b/src/menu/tablenodes/index.jsx @@ -109,6 +109,221 @@ return {tbs, ptbs} } + getFuncAndInterface = (config) => { + let ptbs = [] + + let filterBtn = (cell, tbs) => { + if (cell.intertype === 'inner') { + tbs.push({ + label: cell.innerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } else if (cell.intertype === 'outer' || cell.intertype === 'custom') { + if (cell.innerFunc) { + tbs.push({ + label: cell.innerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.outerFunc) { + tbs.push({ + label: cell.outerFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.interface && cell.sysInterface !== 'true') { + tbs.push({ + label: cell.interface + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.proInterface) { + tbs.push({ + label: cell.proInterface + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (cell.callbackFunc) { + tbs.push({ + label: cell.callbackFunc + ' (' + cell.label + ')', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + } + + let filterSetting = (item, tbs) => { + if (!item.setting) return + if (item.setting.interType === 'inner') { + tbs.push({ + label: item.setting.innerFunc + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } else if (item.setting.interType === 'outer') { + if (item.setting.outerFunc) { + tbs.push({ + label: item.setting.outerFunc + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (item.setting.interface && item.setting.sysInterface !== 'true') { + tbs.push({ + label: item.setting.interface + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + if (item.setting.proInterface) { + tbs.push({ + label: item.setting.proInterface + ' (鏁版嵁婧�)', + color: 'orange', + id: Utils.getuuid(), + direction: 'left' + }) + } + } + } + + let traversal = (components, extra) => { + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components, extra) + }) + } else if (item.type === 'group') { + traversal(item.components, extra) + } else { + let tbs = [] + + filterSetting(item, tbs) + + if (item.action) { + item.action.forEach(cell => { + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } + + if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } else if (item.type === 'table') { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config.components) { + traversal(cell.config.components, `-${cell.label}(寮圭獥)`) + } + } else { + filterBtn(cell, tbs) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(group => { + filterBtn(group.subButton, tbs) + }) + } + + if (tbs.length) { + ptbs.push({ + label: item.name + extra, + id: Utils.getuuid(), + direction: 'left', + color: 'orange', + children: tbs + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + let tbs = [] + filterSetting(item, tbs) + if (tbs.length) { + ptbs.push({ + label: item.name, + id: Utils.getuuid(), + direction: 'left', + color: 'orange', + children: tbs + }) + } + }) + } + + traversal(config.components, '') + + return ptbs + } + trigger = () => { const { config } = this.props @@ -172,6 +387,12 @@ }) } + let funcs = this.getFuncAndInterface(config) + + if (funcs.length) { + data.children.push(...funcs) + } + if (result.tb_list) { result.tb_list.sort((a, b) => a.tbname > b.tbname ? 1 : -1) let length = result.tb_list.length -- Gitblit v1.8.0