From 81e1787aaee9d03da52ab8938d1961c4333ee5b5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 02 三月 2023 11:27:51 +0800
Subject: [PATCH] 2023-03-02

---
 src/utils/utils-custom.js |  148 ++++++++++++++++++++++++++++--------------------
 1 files changed, 86 insertions(+), 62 deletions(-)

diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 1eaf2e9..eb12ca9 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -1,3 +1,5 @@
+import md5 from 'md5'
+
 export default class MenuUtils {
   /**
    * @description 鑾峰彇涓嬬骇妯″潡
@@ -394,7 +396,7 @@
    * @description 閲嶇疆鑿滃崟閰嶇疆锛岄〉闈㈡暣浣撳鍒�
    * @return {String}  components 閰嶇疆淇℃伅
    */
-  static resetConfig = (components, uuids = {}, clear = false) => {
+  static resetConfig = (components, commonId, clear = false) => {
     return components.map(item => {
       if (item.type === 'navbar') {
         return item
@@ -404,18 +406,16 @@
         item.type = 'card'
       }
 
-      uuids[item.uuid] = this.getuuid()
-      item.uuid = uuids[item.uuid]
+      item.uuid = md5(commonId + item.uuid)
 
       if (item.type === 'tabs') {
         item.subtabs.forEach(tab => {
-          uuids[tab.uuid] = this.getuuid()
-          tab.uuid = uuids[tab.uuid]
+          tab.uuid = md5(commonId + tab.uuid)
 
-          tab.components = this.resetConfig(tab.components, uuids, clear)
+          tab.components = this.resetConfig(tab.components, commonId, clear)
         })
       } else if (item.type === 'group') {
-        item.components = this.resetConfig(item.components, uuids, clear)
+        item.components = this.resetConfig(item.components, commonId, clear)
       } else if (item.type === 'menubar') {
         item.subMenus = item.subMenus.map(cell => {
           cell.uuid = this.getuuid()
@@ -426,8 +426,17 @@
           return cell
         })
       } else if (['card', 'carousel', 'timeline'].includes(item.type)) {
-        if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) {
-          item.wrap.publicId = uuids[item.wrap.publicId]
+        if (item.wrap.datatype === 'public' && item.wrap.publicId) {
+          item.wrap.publicId = md5(commonId + item.wrap.publicId)
+        }
+
+        if (item.supNodes && item.supNodes.length > 0) {
+          item.supNodes = item.supNodes.map(cell => {
+            cell.nodes = cell.nodes.map(n => md5(commonId + n))
+            cell.componentId = cell.nodes[cell.nodes.length - 1]
+
+            return cell
+          })
         }
         
         item.subcards.forEach(card => {
@@ -448,9 +457,12 @@
             card.elements = card.elements.map(cell => {
               cell.uuid = this.getuuid()
 
-              if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
-                cell.pageTemplate = ''
-                cell.linkmenu = ''
+              if (cell.eleType === 'button') {
+                if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
+                  cell.pageTemplate = ''
+                  cell.linkmenu = ''
+                }
+                this.resetBtn(cell, commonId)
               }
               
               return cell
@@ -460,9 +472,12 @@
             card.backElements = card.backElements.map(cell => {
               cell.uuid = this.getuuid()
 
-              if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
-                cell.pageTemplate = ''
-                cell.linkmenu = ''
+              if (cell.eleType === 'button') {
+                if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
+                  cell.pageTemplate = ''
+                  cell.linkmenu = ''
+                }
+                this.resetBtn(cell, commonId)
               }
 
               return cell
@@ -470,16 +485,19 @@
           }
         })
       } else if (item.type === 'balcony') {
-        if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) {
-          item.wrap.publicId = uuids[item.wrap.publicId]
+        if (item.wrap.datatype === 'public' && item.wrap.publicId) {
+          item.wrap.publicId = md5(commonId + item.wrap.publicId)
         }
         if (item.elements) {
           item.elements = item.elements.map(cell => {
             cell.uuid = this.getuuid()
 
-            if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
-              cell.pageTemplate = ''
-              cell.linkmenu = ''
+            if (cell.eleType === 'button') {
+              if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
+                cell.pageTemplate = ''
+                cell.linkmenu = ''
+              }
+              this.resetBtn(cell, commonId)
             }
 
             return cell
@@ -488,7 +506,7 @@
       } else if (item.type === 'table' && item.cols) {
         let loopCol = (col) => {
           col.subcols = col.subcols.map(c => {
-            c.uuid = this.getuuid()
+            c.uuid = md5(commonId + c.uuid)
   
             if (c.type === 'colspan' && c.subcols) {
               c = loopCol(c)
@@ -507,6 +525,8 @@
                   cell.linkmenu = ''
                 }
 
+                this.resetBtn(cell, commonId)
+
                 return cell
               })
             }
@@ -515,12 +535,9 @@
   
           return col
         }
-        let _uuids = {}
-        item.cols = item.cols.map(col => {
-          let uuid = this.getuuid()
 
-          _uuids[col.uuid] = uuid
-          col.uuid = uuid
+        item.cols = item.cols.map(col => {
+          col.uuid = md5(commonId + col.uuid)
   
           if (col.type === 'colspan' && col.subcols) {
             col = loopCol(col)
@@ -532,6 +549,7 @@
           } else if (col.type === 'action' && col.elements) {
             col.elements = col.elements.map(cell => {
               cell.uuid = this.getuuid()
+              this.resetBtn(cell, commonId)
               return cell
             })
           }
@@ -540,8 +558,15 @@
 
         if (item.subtype === 'editable') {
           item.cols = item.cols.map(col => {
-            if (col.editable === 'true' && col.enter && _uuids[col.enter]) {
-              col.enter = _uuids[col.enter]
+            if (col.editable === 'true' && col.enter) {
+              col.enter = md5(commonId + col.enter)
+            } else if (col.type === 'colspan' && col.subcols) {
+              col.subcols = col.subcols.map(c => {
+                if (c.editable === 'true' && c.enter) {
+                  c.enter = md5(commonId + c.enter)
+                }
+                return c
+              })
             }
             return col
           })
@@ -555,6 +580,11 @@
     
             return m
           })
+
+          if (cell.subButton) {
+            this.resetBtn(cell.subButton, commonId)
+          }
+
           return cell
         })
       }
@@ -563,18 +593,16 @@
         item.btnlog = null
       }
   
-      let oriUids = {}
       if (item.action) {
         item.action = item.action.map(cell => {
-          let _uuid = this.getuuid()
-
-          oriUids[cell.uuid] = _uuid
-          cell.uuid = _uuid
+          cell.uuid = md5(commonId + cell.uuid)
 
           if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
             cell.pageTemplate = ''
             cell.linkmenu = ''
           }
+
+          this.resetBtn(cell, commonId)
 
           return cell
         })
@@ -613,27 +641,35 @@
       }
 
       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] || ''
+          return md5(commonId + c)
         })
-        if (em) {
-          item.setting.supModule = ''
-        }
         if (item.wrap && item.wrap.supModule) {
           item.wrap.supModule = item.setting.supModule
         }
       }
 
       if (item.wrap && item.wrap.doubleClick) {
-        item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || ''
+        item.wrap.doubleClick = md5(commonId + item.wrap.doubleClick)
       }
   
       return item
     })
+  }
+
+  /**
+   * @description 鎸夐挳閲嶇疆
+   */
+  static resetBtn (btn, commonId) {
+    if (btn.switchTab && btn.switchTab.length > 0) {
+      btn.switchTab = btn.switchTab.map(m => md5(commonId + m))
+    }
+    if (btn.anchors && btn.anchors.length > 0) {
+      btn.anchors = btn.anchors.map(m => md5(commonId + m))
+    }
+    if (btn.syncComponent && btn.syncComponent.length > 0) {
+      btn.syncComponent = btn.syncComponent.map(m => md5(commonId + m))
+    }
   }
 
   /**
@@ -652,7 +688,7 @@
   * @description 閲嶇疆缁勪欢閰嶇疆
   * @return {String}  item 缁勪欢淇℃伅
   */
-  static resetComponentConfig = (item, uuids = {}) => {
+  static resetComponentConfig = (item) => {
     if (item.type === 'navbar') {
       return item
     }
@@ -661,11 +697,8 @@
       item.type = 'card'
     }
 
-    let _uuid = this.getuuid()
-
-    uuids[item.uuid] = _uuid
-
-    item.uuid = _uuid
+    item.uuid = this.getuuid()
+    let commonId = this.getuuid()
 
     // 閲嶇疆缁勪欢鍚嶇О
     let sign = this.getSignName()
@@ -736,12 +769,8 @@
         return col
       }
 
-      let _uuids = {}
       item.cols = item.cols.map(col => {
-        let uuid = this.getuuid()
-
-        _uuids[col.uuid] = uuid
-        col.uuid = uuid
+        col.uuid = md5(commonId + col.uuid)
 
         if (col.type === 'colspan' && col.subcols) {
           col = loopCol(col)
@@ -764,8 +793,8 @@
 
       if (item.subtype === 'editable') {
         item.cols = item.cols.map(col => {
-          if (col.editable === 'true' && col.enter && _uuids[col.enter]) {
-            col.enter = _uuids[col.enter]
+          if (col.editable === 'true' && col.enter) {
+            col.enter = md5(commonId + col.enter)
           }
           return col
         })
@@ -785,17 +814,12 @@
 
     delete item.btnlog
 
-    let oriUids = {}
     if (item.action) {
       if (sessionStorage.getItem('editMenuType') === 'popview') {
         item.action = item.action.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton')
       }
       item.action = item.action.map(cell => {
-        let _uuid = this.getuuid()
-
-        oriUids[cell.uuid] = _uuid
-
-        cell.uuid = _uuid
+        cell.uuid = md5(commonId + cell.uuid)
 
         return cell
       })
@@ -840,7 +864,7 @@
     }
 
     if (item.wrap && item.wrap.doubleClick) {
-      item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || ''
+      item.wrap.doubleClick = md5(commonId + item.wrap.doubleClick)
     }
 
     return item

--
Gitblit v1.8.0