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 | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 155 insertions(+), 3 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index be4f888..edd4314 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -270,6 +270,7 @@ if (interfaces && interfaces.length > 0) { interfaces.forEach(item => { + if (item.uuid === selfId) return modules.push({ value: item.uuid, label: item.name @@ -702,13 +703,13 @@ // 閲嶇疆缁勪欢鍚嶇О let sign = this.getSignName() if (item.plot) { // 鍥捐〃 - item.plot.name = item.plot.name + sign + item.plot.name = (item.plot.name || '') + sign item.name = item.plot.name } else if (item.wrap) { // 閫氱敤 - item.wrap.name = item.wrap.name + sign + item.wrap.name = (item.wrap.name || '') + sign item.name = item.wrap.name } else if (item.setting) { // 鍒嗙粍銆佹爣绛鹃〉绛� - item.setting.name = item.setting.name + sign + item.setting.name = (item.setting.name || '') + sign item.name = item.setting.name } @@ -1223,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