From 0da0262bc236cfce928429fc4c48e1666eab3402 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 07 一月 2021 17:12:04 +0800
Subject: [PATCH] 2021-01-07

---
 src/menu/utils/menuUtils.js |  128 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/src/menu/utils/menuUtils.js b/src/menu/utils/menuUtils.js
index 17cabb5..0a705c7 100644
--- a/src/menu/utils/menuUtils.js
+++ b/src/menu/utils/menuUtils.js
@@ -226,4 +226,132 @@
 
     return uuids
   }
+
+  /**
+   * @description 鐢熸垚32浣島uid string + 鏃堕棿
+   * @return {String}  uuid
+   */
+  static getuuid () {
+    let uuid = []
+    let timestamp = new Date().getTime()
+    let _options = '0123456789abcdefghigklmnopqrstuv'
+    for (let i = 0; i < 19; i++) {
+      uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
+    }
+    uuid = timestamp + uuid.join('')
+    return uuid
+  }
+
+  /**
+   * @description 閲嶇疆鑿滃崟閰嶇疆
+   * @return {String}  components 閰嶇疆淇℃伅
+   */
+  static resetConfig = (components) => {
+    return components.map(item => {
+      item.uuid = this.getuuid()
+
+      if (item.type === 'tabs') {
+        item.subtabs.forEach(tab => {
+          tab.uuid = this.getuuid()
+          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)
+        })
+      } else if (item.type === 'group') {
+        item.components = item.components.map(cell => {
+          cell.parentId = item.uuid
+          return cell
+        })
+        item.components = this.resetConfig(item.components)
+      } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) {
+        item.subcards.forEach(card => {
+          card.uuid = this.getuuid()
+          if (card.elements) {
+            card.elements = card.elements.map(cell => {
+              cell.uuid = this.getuuid()
+              return cell
+            })
+          }
+          if (card.backElements) {
+            card.backElements = card.backElements.map(cell => {
+              cell.uuid = this.getuuid()
+              return cell
+            })
+          }
+        })
+      } else if (item.type === 'table' && item.subtype === 'normaltable' && item.cols) {
+        let loopCol = (col) => {
+          col.subcols = col.subcols.map(c => {
+            c.uuid = this.getuuid()
+  
+            if (c.type === 'colspan' && c.subcols) {
+              c = loopCol(c)
+            } else if (c.type === 'custom' && c.elements) {
+              c.elements = c.elements.map(cell => {
+                cell.uuid = this.getuuid()
+                return cell
+              })
+            } else if (c.type === 'action' && c.elements) {
+              c.elements = c.elements.map(cell => {
+                cell.uuid = this.getuuid()
+                return cell
+              })
+            }
+            return c
+          })
+  
+          return col
+        }
+  
+        item.cols = item.cols.map(col => {
+          col.uuid = this.getuuid()
+  
+          if (col.type === 'colspan' && col.subcols) {
+            col = loopCol(col)
+          } else if (col.type === 'custom' && col.elements) {
+            col.elements = col.elements.map(cell => {
+              cell.uuid = this.getuuid()
+              return cell
+            })
+          } else if (col.type === 'action' && col.elements) {
+            col.elements = col.elements.map(cell => {
+              cell.uuid = this.getuuid()
+              return cell
+            })
+          }
+          return col
+        })
+      }
+  
+      if (item.btnlog) {
+        item.btnlog = []
+      }
+  
+      if (item.action) {
+        item.action = item.action.map(cell => {
+          cell.uuid = this.getuuid()
+          return cell
+        })
+      }
+      if (item.search) {
+        item.search = item.search.map(cell => {
+          cell.uuid = this.getuuid()
+          return cell
+        })
+      }
+      if (item.columns) {
+        item.columns = item.columns.map(cell => {
+          cell.uuid = this.getuuid()
+          return cell
+        })
+      }
+  
+      return item
+    })
+  }
 }
\ No newline at end of file

--
Gitblit v1.8.0