king
2022-10-22 03a22ec6f9ad7303d10b4c65bb5bc6fa5cbd448a
src/utils/utils-custom.js
@@ -4,44 +4,51 @@
   * @return {String}  selfId  当前组件id
   */
  static getSubModules (components, selfId, supId) {
    let modules = components.map(item => {
    let modules = []
    components.forEach(item => {
      if (item.uuid === selfId || item.type === 'navbar') {
        return {
          children: null
        }
        return
      } else if (item.format) { // 数据格式,存在数据源
        return {
        modules.push({
          value: item.uuid,
          label: item.name,
          disabled: supId === item.uuid
        }
        })
      } else if (item.type === 'tabs') {
        let _item = {
          type: 'tabs',
          value: item.uuid,
          label: item.name,
          children: item.subtabs.map(f_tab => {
            let subItem = {
              type: 'tab',
              value: f_tab.uuid,
              label: f_tab.label,
              children: this.getSubModules(f_tab.components, selfId)
            }
            if (!subItem.children || subItem.children.length === 0) {
              return {children: null}
            }
            return subItem
        if (item.subtype === 'tabletabs') {
          item.subtabs.forEach(tab => {
            modules.push({
              value: tab.components[0].uuid,
              label: tab.label,
              disabled: supId === tab.components[0].uuid
            })
          })
        } else {
          let _item = {
            type: 'tabs',
            value: item.uuid,
            label: item.name,
            children: item.subtabs.map(f_tab => {
              let subItem = {
                type: 'tab',
                value: f_tab.uuid,
                label: f_tab.label,
                children: this.getSubModules(f_tab.components, selfId, supId)
              }
              if (subItem.children.length === 0) {
                return {children: null}
              }
              return subItem
            })
          }
          _item.children = _item.children.filter(t => t.children !== null)
          if (_item.children.length > 0) {
            modules.push(_item)
          }
        }
        _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,
@@ -54,7 +61,8 @@
            } else if (f_tab.format) {
              return {
                value: f_tab.uuid,
                label: f_tab.name
                label: f_tab.name,
                disabled: supId === f_tab.uuid
              }
            }
            return {
@@ -65,23 +73,12 @@
        _item.children = _item.children.filter(t => t.children !== null)
        if (_item.children.length === 0) {
          return {children: null}
        }
        return _item
      } else {
        return {
          children: null
        if (_item.children.length > 0) {
          modules.push(_item)
        }
      }
    })
    modules = modules.filter(mod => mod.children !== null)
    if (modules.length === 0) {
      return null
    }
    return modules
  }
@@ -175,11 +172,10 @@
   * @return {String}  selfId  当前组件id
   */
  static getSupModules (components, selfId) {
    let modules = components.map(item => {
    let modules = []
    components.forEach(item => {
      if (item.uuid === selfId) {
        return {
          children: null
        }
      } else if (item.switchable) { // 数据可切换
        let disabled = false
        if (item.type === 'card') {
@@ -187,41 +183,51 @@
        } else if (item.type === 'table') {
          disabled = item.wrap.tableType === ''
        }
        return {
        modules.push({
          value: item.uuid,
          label: item.name,
          disabled: disabled
        }
        })
      } else if (item.type === 'form') { // 数据格式,存在数据源
        return {
        modules.push({
          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.getSupModules(f_tab.components, selfId)
            }
        if (item.subtype === 'tabletabs') {
          item.subtabs.forEach(tab => {
            if (tab.components[0].uuid === selfId) return
            if (!subItem.children || subItem.children.length === 0) {
              return {children: null}
            }
            return subItem
            modules.push({
              value: tab.components[0].uuid,
              label: tab.label,
              disabled: tab.components[0].wrap.tableType === ''
            })
          })
        } else {
          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.getSupModules(f_tab.components, selfId)
              }
              if (subItem.children.length === 0) {
                return {children: null}
              }
              return subItem
            })
          }
          _item.children = _item.children.filter(t => t.children !== null)
          if (_item.children.length > 0) {
            modules.push(_item)
          }
        }
        _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,
@@ -232,9 +238,16 @@
                children: null
              }
            } else if (f_tab.switchable) {
              let disabled = false
              if (f_tab.type === 'card') {
                disabled = f_tab.wrap.cardType === ''
              } else if (f_tab.type === 'table') {
                disabled = f_tab.wrap.tableType === ''
              }
              return {
                value: f_tab.uuid,
                label: f_tab.name
                label: f_tab.name,
                disabled: disabled
              }
            }
            return {
@@ -245,23 +258,12 @@
        _item.children = _item.children.filter(t => t.children !== null)
        if (_item.children.length === 0) {
          return {children: null}
        }
        return _item
      } else {
        return {
          children: null
        if (_item.children.length > 0) {
          modules.push(_item)
        }
      }
    })
    modules = modules.filter(mod => mod.children !== null)
    if (modules.length === 0) {
      return null
    }
    return modules
  }
@@ -438,20 +440,10 @@
        item.subtabs.forEach(tab => {
          uuids[tab.uuid] = this.getuuid()
          tab.uuid = uuids[tab.uuid]
          tab.parentId = item.uuid
          tab.components = tab.components.map(cell => {
            cell.tabId = tab.uuid
            cell.parentId = item.uuid
            return cell
          })
          tab.components = this.resetConfig(tab.components, uuids, clear)
        })
      } else if (item.type === 'group') {
        item.components = item.components.map(cell => {
          cell.parentId = item.uuid
          return cell
        })
        item.components = this.resetConfig(item.components, uuids, clear)
      } else if (item.type === 'menubar') {
        item.subMenus = item.subMenus.map(cell => {
@@ -671,46 +663,15 @@
  }
  /**
   * @description 重置菜单配置,页面整体复制
   * @return {String}  components 配置信息
   * @description 组件名加后缀
   */
  static getFloor = (id) => {
    let floor = 1
    let finish = false
    let reCheck = (components, f) => {
      components.forEach(item => {
        if (finish) return
        if (item.type === 'tabs') {
          if (item.uuid === id) {
            floor = f
            finish = true
          } else {
            item.subtabs.forEach(tab => {
              reCheck(tab.components, f + 1)
            })
          }
        }
      })
    }
    reCheck(window.GLOB.customMenu.components, 1)
    return floor
  }
  /**
   * @description 数据源名称,用于统一查询
   * @return {String}  name
   */
  static getdataName () {
  static getSignName () {
    let name = []
    let _options = 'abcdefghigklmnopqrstuvwxyz'
    for (let i = 0; i < 6; i++) {
    for (let i = 0; i < 3; i++) {
      name.push(_options.substr(Math.floor(Math.random() * 26), 1))
    }
    name.splice(3, 0, new Date().getTime())
    return name.join('')
    return (Math.floor(Math.random()*10) + name.join('')).toUpperCase()
  }
  /**
@@ -728,12 +689,8 @@
    item.uuid = _uuid
    if (item.dataName) {
      item.dataName = this.getdataName()
    }
    // 重置组件名称
    let sign = this.getdataName().toUpperCase().substr(-4)
    let sign = this.getSignName()
    if (item.plot) { // 图表
      item.plot.name = item.plot.name + sign
      item.name = item.plot.name