king
2022-02-09 d59f518f466274b2caeb2e01c10c92deafe7c93b
src/utils/utils-custom.js
@@ -274,7 +274,7 @@
          uuids.push(act.uuid)
        })
        if (item.type === 'card' || item.type === 'carousel' || (item.type === 'table' && item.subtype === 'tablecard')) {
        if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) {
          item.subcards.forEach(_card => {
            _card.elements && _card.elements.forEach(cell => {
              if (cell.eleType !== 'button') return
@@ -332,17 +332,19 @@
   * @description 重置菜单配置,页面整体复制
   * @return {String}  components 配置信息
   */
  static resetConfig = (components) => {
  static resetConfig = (components, uuids = {}) => {
    return components.map(item => {
      if (item.type === 'navbar') {
        return item
      }
      item.uuid = this.getuuid()
      uuids[item.uuid] = this.getuuid()
      item.uuid = uuids[item.uuid]
      if (item.type === 'tabs') {
        item.subtabs.forEach(tab => {
          tab.uuid = this.getuuid()
          uuids[tab.uuid] = this.getuuid()
          tab.uuid = uuids[tab.uuid]
          tab.parentId = item.uuid
  
          tab.components = tab.components.map(cell => {
@@ -350,20 +352,20 @@
            cell.parentId = item.uuid
            return cell
          })
          tab.components = this.resetConfig(tab.components)
          tab.components = this.resetConfig(tab.components, uuids)
        })
      } else if (item.type === 'group') {
        item.components = item.components.map(cell => {
          cell.parentId = item.uuid
          return cell
        })
        item.components = this.resetConfig(item.components)
        item.components = this.resetConfig(item.components, uuids)
      } else if (item.type === 'menubar') {
        item.subMenus = item.subMenus.map(cell => {
          cell.uuid = this.getuuid()
          return cell
        })
      } else if (item.type === 'card' || item.type === 'carousel' || (item.type === 'table' && item.subtype === 'tablecard')) {
      } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) {
        item.subcards.forEach(card => {
          card.uuid = this.getuuid()
          if (card.elements) {
@@ -487,12 +489,54 @@
        })
      }
      if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') {
        let em = false
        item.setting.supModule = item.setting.supModule.map(c => {
          if (!uuids[c]) {
            em = true
          }
          return uuids[c] || ''
        })
        if (em) {
          item.setting.supModule = ''
        }
      }
      if (item.wrap && item.wrap.doubleClick) {
        item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || ''
      }
  
      return item
    })
  }
  /**
   * @description 重置菜单配置,页面整体复制
   * @return {String}  components 配置信息
   */
  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
  }
  /**
@@ -513,12 +557,17 @@
  * @description 重置组件配置
  * @return {String}  item 组件信息
  */
  static resetComponentConfig = (item, copyBtns) => {
  static resetComponentConfig = (item, copyBtns, uuids = {}) => {
    if (item.type === 'navbar') {
      return item
    }
    item.uuid = this.getuuid()
    let _uuid = this.getuuid()
    uuids[item.uuid] = _uuid
    item.uuid = _uuid
    if (item.dataName) {
      item.dataName = this.getdataName()
    }
@@ -541,7 +590,7 @@
        cell.uuid = this.getuuid()
        return cell
      })
    } else if (item.type === 'card' || item.type === 'carousel' || (item.type === 'table' && item.subtype === 'tablecard')) {
    } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) {
      item.subcards.forEach(card => {
        card.uuid = this.getuuid()
        if (card.elements) {
@@ -725,8 +774,17 @@
      })
    }
    if (item.setting && item.setting.supModule) {
      item.setting.supModule = ''
    if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') {
      let em = false
      item.setting.supModule = item.setting.supModule.map(c => {
        if (!uuids[c]) {
          em = true
        }
        return uuids[c] || ''
      })
      if (em) {
        item.setting.supModule = ''
      }
    }
    if (item.wrap && item.wrap.doubleClick) {