king
2024-05-28 ef75701f3412976b8210e3c7cd4ca1f83f962d3a
src/utils/utils-custom.js
@@ -364,80 +364,6 @@
  }
  /**
   * @description 获取可关联模块
   */
  static getLinkModules (components) {
    let modules = components.map(item => {
      if ((item.type === 'card' && item.subtype === 'datacard') || (item.type === 'table' && item.subtype === 'normaltable')) {
        return {
          value: item.uuid,
          label: item.name
        }
      } else if (item.type === 'tabs') {
        let _item = {
          value: item.uuid,
          label: item.name,
          children: item.subtabs.map(f_tab => {
            let subItem = {
              value: f_tab.uuid,
              label: f_tab.label,
              children: this.getLinkModules(f_tab.components)
            }
            if (!subItem.children || subItem.children.length === 0) {
              return {children: null}
            }
            return subItem
          })
        }
        _item.children = _item.children.filter(t => t.children !== null)
        if (_item.children.length === 0) {
          return {children: null}
        }
        return _item
      } else if (item.type === 'group') {
        let _item = {
          value: item.uuid,
          label: item.name,
          children: item.components.map(f_tab => {
            if ((f_tab.type === 'card' && f_tab.subtype === 'datacard') || (f_tab.type === 'table' && f_tab.subtype === 'normaltable')) {
              return {
                value: f_tab.uuid,
                label: f_tab.name
              }
            }
            return {
              children: null
            }
          })
        }
        _item.children = _item.children.filter(t => t.children !== null)
        if (_item.children.length === 0) {
          return {children: null}
        }
        return _item
      } else {
        return {
          children: null
        }
      }
    })
    modules = modules.filter(mod => mod.children !== null)
    if (modules.length === 0) {
      return null
    }
    return modules
  }
  /**
   * @description 生成32位uuid string + 时间
   * @return {String}  uuid
   */
@@ -1014,6 +940,128 @@
}
/**
 * @description 获取可关联模块
 */
export function getLinkModules (components) {
  let modules = components.map(item => {
    if ((item.type === 'card' && item.subtype === 'datacard') || (item.type === 'table' && item.subtype === 'normaltable')) {
      return {
        value: item.uuid,
        label: item.name
      }
    } else if (item.type === 'tabs') {
      let _item = {
        value: item.uuid,
        label: item.name,
        children: item.subtabs.map(f_tab => {
          let subItem = {
            value: f_tab.uuid,
            label: f_tab.label,
            children: getLinkModules(f_tab.components)
          }
          if (!subItem.children || subItem.children.length === 0) {
            return {children: null}
          }
          return subItem
        })
      }
      _item.children = _item.children.filter(t => t.children !== null)
      if (_item.children.length === 0) {
        return {children: null}
      }
      return _item
    } else if (item.type === 'group') {
      let _item = {
        value: item.uuid,
        label: item.name,
        children: item.components.map(f_tab => {
          if ((f_tab.type === 'card' && f_tab.subtype === 'datacard') || (f_tab.type === 'table' && f_tab.subtype === 'normaltable')) {
            return {
              value: f_tab.uuid,
              label: f_tab.name
            }
          }
          return {
            children: null
          }
        })
      }
      _item.children = _item.children.filter(t => t.children !== null)
      if (_item.children.length === 0) {
        return {children: null}
      }
      return _item
    } else {
      return {
        children: null
      }
    }
  })
  modules = modules.filter(mod => mod.children !== null)
  if (modules.length === 0) {
    return null
  }
  return modules
}
/**
 * @description 获取公共数据源
 */
export function getInterfaces () {
  let menu = window.GLOB.customMenu
  let interfaces = []
  if (menu.interfaces) {
    menu.interfaces.forEach(item => {
      if (item.status === 'true') {
        interfaces.push({
          value: item.uuid,
          label: item.name,
          columns: JSON.parse(JSON.stringify(item.columns))
        })
      }
    })
  }
  let mapComponents = (components = []) => {
    components.forEach(item => {
      if (item.type === 'card' && item.subtype === 'datacard') {
        interfaces.push({
          value: item.uuid,
          label: item.name + '(数据卡)',
          columns: JSON.parse(JSON.stringify(item.columns))
        })
      } else if (item.type === 'table' && item.subtype === 'normaltable') {
        interfaces.push({
          value: item.uuid,
          label: item.name + '(常用表)',
          columns: JSON.parse(JSON.stringify(item.columns))
        })
      } else if (item.type === 'tabs') {
        item.subtabs.forEach(f_tab => {
          mapComponents(f_tab.components)
        })
      } else if (item.type === 'group') {
        mapComponents(item.components)
      }
    })
  }
  mapComponents(menu.components)
  return interfaces
}
/**
 * @description 格式化搜索条件
 */
export function formatSearch (searches) {