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/utils/utils-custom.js | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 151 insertions(+), 0 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 5871f20..edd4314 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -1224,6 +1224,157 @@ } /** + * @description 鑾峰彇鎺ュ彛鍙婂嚱鏁� + */ +export function getFuncsAndInters (config) { + let inters = [] + // let funcs = [] + + let filterBtn = (cell) => { + if (cell.intertype === 'inner') { + // funcs.push(cell.innerFunc) + } else if (cell.intertype === 'outer' || cell.intertype === 'custom') { + // if (cell.innerFunc) { + // funcs.push(cell.innerFunc) + // } + // if (cell.outerFunc) { + // funcs.push(cell.outerFunc) + // } + if (cell.interface && cell.sysInterface !== 'true') { + inters.push(cell.interface) + } + if (cell.proInterface) { + inters.push(cell.proInterface) + } + // if (cell.callbackFunc) { + // funcs.push(cell.callbackFunc) + // } + } + } + + let filterSetting = (item) => { + if (!item.setting) return + if (item.setting.interType === 'inner') { + // funcs.push(item.setting.innerFunc) + } else if (item.setting.interType === 'outer') { + // if (item.setting.outerFunc) { + // funcs.push(item.setting.outerFunc) + // } + if (item.setting.interface && item.setting.sysInterface !== 'true') { + inters.push(item.setting.interface) + } + if (item.setting.proInterface) { + inters.push(item.setting.proInterface) + } + } + } + + let traversal = (components) => { + if (!components) return + + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components) + }) + } else if (item.type === 'group') { + traversal(item.components) + } else { + filterSetting(item) + + if (item.action) { + item.action.forEach(cell => { + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + + 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) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } 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) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(group => { + filterBtn(group.subButton) + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + filterSetting(item) + }) + } + + traversal(config.components) + + // inters = Array.from(new Set(inters)) + + return inters.length > 0 ? 'true' : 'false' +} + +/** * @description 妫�娴嬬粍浠跺唴瀹� */ export function checkComponent (card) { -- Gitblit v1.8.0