From c7aece35a62b6e91fd98a625bf0e53f64bfbd18d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 17 八月 2023 16:22:15 +0800
Subject: [PATCH] 2023-08-17

---
 src/utils/utils-custom.js |  250 ++++++++++++++++++++++----------------------------
 1 files changed, 110 insertions(+), 140 deletions(-)

diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 9763056..9f42868 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -19,6 +19,8 @@
       } else if (item.type === 'tabs') {
         if (item.subtype === 'tabletabs') {
           item.subtabs.forEach(tab => {
+            if (tab.components[0].uuid === selfId) return
+            
             modules.push({
               value: tab.components[0].uuid,
               label: tab.label,
@@ -517,73 +519,44 @@
           })
         }
       } else if (item.type === 'table' && item.cols) {
-        let loopCol = (col) => {
-          col.subcols = col.subcols.map(c => {
-            c.uuid = md5(commonId + c.uuid)
-  
-            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()
+        let loopCol = (cols) => {
+          return cols.map(col => {
+            if (col.type === 'action') {
+              col.type = 'custom'
+            }
 
-                return cell
-              })
-            } else if (c.type === 'action' && c.elements) {
-              c.elements = c.elements.map(cell => {
+            col.uuid = md5(commonId + col.uuid)
+  
+            if (col.type === 'colspan' && col.subcols) {
+              col.subcols = loopCol(col.subcols)
+            } else if (col.type === 'custom' && col.elements) {
+              col.elements = col.elements.map(cell => {
                 cell.uuid = md5(commonId + cell.uuid)
 
-                if (clear && 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)
+                  this.resetBtn(cell, commonId)
+                }
 
                 return cell
               })
+            } else if (col.editable === 'true' && col.enter && col.enter !== '$next' && col.enter !== '$sub') {
+              if (/\$next_/.test(col.enter)) {
+                col.enter = '$next_' + md5(commonId + col.enter.split('_')[1])
+              } else {
+                col.enter = md5(commonId + col.enter)
+              }
             }
-            return c
-          })
-  
-          return col
-        }
 
-        item.cols = item.cols.map(col => {
-          col.uuid = md5(commonId + col.uuid)
-  
-          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 = md5(commonId + cell.uuid)
-              this.resetBtn(cell, commonId)
-              return cell
-            })
-          }
-          return col
-        })
-
-        if (item.subtype === 'editable') {
-          item.cols = item.cols.map(col => {
-            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
           })
         }
+
+        item.cols = loopCol(item.cols)
       } else if (item.type === 'form') {
         item.subcards = item.subcards.map(cell => {
           cell.uuid = this.getuuid()
@@ -688,7 +661,12 @@
     if (btn.anchors && btn.anchors.length > 0) {
       btn.anchors = btn.anchors.map(m => md5(commonId + m))
     }
-    if (btn.syncComponent && btn.syncComponent.length > 0) {
+    if (btn.syncComponent && btn.syncComponent[0] === 'multiComponent' && btn.syncComponents) {
+      btn.syncComponents = btn.syncComponents.map(m => {
+        m.syncComId = m.syncComId.map(n => md5(commonId + n))
+        return m
+      })
+    } else if (btn.syncComponent && btn.syncComponent.length > 0) {
       btn.syncComponent = btn.syncComponent.map(m => md5(commonId + m))
     }
   }
@@ -724,13 +702,13 @@
     // 閲嶇疆缁勪欢鍚嶇О
     let sign = this.getSignName()
     if (item.plot) { // 鍥捐〃
-      item.plot.name = item.plot.name + sign
+      item.plot.name = (item.plot.name || '') + sign
       item.name = item.plot.name
     } else if (item.wrap) { // 閫氱敤
-      item.wrap.name = item.wrap.name + sign
+      item.wrap.name = (item.wrap.name || '') + sign
       item.name = item.wrap.name
     } else if (item.setting) { // 鍒嗙粍銆佹爣绛鹃〉绛�
-      item.setting.name = item.setting.name + sign
+      item.setting.name = (item.setting.name || '') + sign
       item.name = item.setting.name
     }
 
@@ -831,63 +809,47 @@
         })
       }
     } else if (item.type === 'table' && item.cols) {
-      let loopCol = (col) => {
-        col.subcols = col.subcols.map(c => {
-          c.uuid = this.getuuid()
+      let loopCol = (cols) => {
+        return cols.map(col => {
+          if (col.type === 'action') {
+            col.type = 'custom'
+          }
 
-          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()
+          col.uuid = md5(commonId + col.uuid)
+
+          if (col.type === 'colspan' && col.subcols) {
+            col.subcols = loopCol(col.subcols)
+          } else if (col.type === 'custom' && col.elements) {
+            if (sessionStorage.getItem('editMenuType') === 'popview') {
+              col.elements = col.elements.filter(c => c.eleType !== 'button' || (c.OpenType !== 'popview' && c.OpenType !== 'funcbutton'))
+            }
+            col.elements = col.elements.map(cell => {
+              cell.uuid = md5(commonId + cell.uuid)
+              if (cell.eleType === 'button') {
+                if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
+                  if (cell.modal && cell.modal.fields.length > 0) {
+                    cell.modal.fields = cell.modal.fields.map(m => {
+                      m.uuid = this.getuuid()
+                      return m
+                    })
+                  }
+                }
+              }
               return cell
             })
-          }
-          return c
-        })
-
-        return col
-      }
-
-      item.cols = item.cols.map(col => {
-        col.uuid = md5(commonId + col.uuid)
-
-        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) {
-          if (sessionStorage.getItem('editMenuType') === 'popview') {
-            col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton')
-          }
-          col.elements = col.elements.map(cell => {
-            cell.uuid = md5(commonId + cell.uuid)
-            if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
-              if (cell.modal && cell.modal.fields.length > 0) {
-                cell.modal.fields = cell.modal.fields.map(m => {
-                  m.uuid = this.getuuid()
-                  return m
-                })
-              }
+          } else if (col.editable === 'true' && col.enter && col.enter !== '$next' && col.enter !== '$sub') { // 鍙紪杈戣〃
+            if (/\$next_/.test(col.enter)) {
+              col.enter = '$next_' + md5(commonId + col.enter.split('_')[1])
+            } else {
+              col.enter = md5(commonId + col.enter)
             }
-
-            return cell
-          })
-        }
-        return col
-      })
-
-      if (item.subtype === 'editable') {
-        item.cols = item.cols.map(col => {
-          if (col.editable === 'true' && col.enter) {
-            col.enter = md5(commonId + col.enter)
           }
+
           return col
         })
       }
+
+      item.cols = loopCol(item.cols)
     } else if (item.type === 'form') {
       item.subcards = item.subcards.map(cell => {
         cell.uuid = this.getuuid()
@@ -1094,23 +1056,31 @@
     })
   }
 
-  config.cols && config.cols.forEach(col => {
-    if (col.type === 'action') {
-      col.elements.forEach(cell => {
-        if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) {
-          action.push(cell)
-        } else if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) {
-          action.push(cell)
-        } else if (cell.OpenType === 'popview') {
-          if (pops) {
-            pops.push({...cell, parentId: config.uuid})
-          } else if (cell.config && cell.config.$tables) {
-            tables.push(...cell.config.$tables)
-          }
+  if (config.cols) {
+    let loopCol = (cols) => {
+      cols.forEach(col => {
+        if (col.type === 'colspan') {
+          loopCol(col.subcols)
+        } else if (col.type === 'custom') {
+          col.elements.forEach(cell => {
+            if (cell.eleType !== 'button') return
+            if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) {
+              action.push(cell)
+            } else if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) {
+              action.push(cell)
+            } else if (cell.OpenType === 'popview') {
+              if (pops) {
+                pops.push({...cell, parentId: config.uuid})
+              } else if (cell.config && cell.config.$tables) {
+                tables.push(...cell.config.$tables)
+              }
+            }
+          })
         }
       })
     }
-  })
+    loopCol(config.cols)
+  }
 
   config.elements && config.elements.forEach(cell => {
     if (cell.eleType !== 'button') return
@@ -1394,27 +1364,27 @@
 
   if (card.$c_cl) {
     card.cols.forEach(col => {
-      if (col.type === 'action') {
+      if (col.type === 'custom') {
         col.elements.forEach(cell => {
-          if (cell.hidden === 'true') return
-          if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
-            if (!cell.modal || cell.modal.fields.length === 0) {
-              errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`})
+          if (cell.eleType === 'button') {
+            if (cell.hidden === 'true') return
+            if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) {
+              if (!cell.modal || cell.modal.fields.length === 0) {
+                errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`})
+              }
+            } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
+              errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣})
+            } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
+              errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣})
             }
-          } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) {
-            errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣})
-          } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) {
-            errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣})
-          }
 
-          if (doubleClick === cell.uuid) {
-            doubleClick = ''
-          }
-        })
-      } else if (col.type === 'custom') {
-        col.elements.forEach(cell => {
-          if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) {
-            errors.push({ level: 1, detail: `鏄剧ず鍒椻��${col.label}鈥濅腑鍔ㄦ�佸瓧娈碘��${cell.field}鈥濇棤鏁坄})
+            if (doubleClick === cell.uuid) {
+              doubleClick = ''
+            }
+          } else {
+            if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) {
+              errors.push({ level: 1, detail: `鏄剧ず鍒椻��${col.label}鈥濅腑鍔ㄦ�佸瓧娈碘��${cell.field}鈥濇棤鏁坄})
+            }
           }
         })
       } else if (col.field && !columns.includes(col.field)) {

--
Gitblit v1.8.0