| | |
| | | } |
| | | |
| | | /** |
| | | * @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) { |