king
2023-09-07 d823c59ba0b5f73e06c90d8bcae4dd25f5dfab64
src/utils/utils-custom.js
@@ -1224,6 +1224,125 @@
}
/**
 * @description 获取接口及函数
 */
export function getFuncsAndInters (config) {
  let inters = 'false'
  let filterBtn = (cell) => {
    if ((cell.intertype === 'outer' && cell.sysInterface !== 'true') || cell.intertype === 'custom') {
      inters = 'true'
    }
  }
  let traversal = (components) => {
    if (!components || inters === 'true') return
    components.forEach(item => {
      if (item.type === 'tabs') {
        item.subtabs.forEach(tab => {
          traversal(tab.components)
        })
      } else if (item.type === 'group') {
        traversal(item.components)
      } else {
        if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') {
          inters = 'true'
        }
        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 => {
      if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') {
        inters = 'true'
      }
    })
  }
  traversal(config.components)
  return inters
}
/**
 * @description 检测组件内容
 */
export function checkComponent (card) {