From 28483549baee23b4ca11e4ddbc9f93244d5fbb7c Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 07 九月 2023 14:14:41 +0800
Subject: [PATCH] 2023-09-07

---
 src/utils/utils-custom.js |  151 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 151 insertions(+), 0 deletions(-)

diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 5871f20..edd4314 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -1224,6 +1224,157 @@
 }
 
 /**
+ * @description 鑾峰彇鎺ュ彛鍙婂嚱鏁�
+ */
+export function getFuncsAndInters (config) {
+  let inters = []
+  // let funcs = []
+
+  let filterBtn = (cell) => {
+    if (cell.intertype === 'inner') {
+      // funcs.push(cell.innerFunc)
+    } else if (cell.intertype === 'outer' || cell.intertype === 'custom') {
+      // if (cell.innerFunc) {
+      //   funcs.push(cell.innerFunc)
+      // }
+      // if (cell.outerFunc) {
+      //   funcs.push(cell.outerFunc)
+      // }
+      if (cell.interface && cell.sysInterface !== 'true') {
+        inters.push(cell.interface)
+      }
+      if (cell.proInterface) {
+        inters.push(cell.proInterface)
+      }
+      // if (cell.callbackFunc) {
+      //   funcs.push(cell.callbackFunc)
+      // }
+    }
+  }
+
+  let filterSetting = (item) => {
+    if (!item.setting) return
+    if (item.setting.interType === 'inner') {
+      // funcs.push(item.setting.innerFunc)
+    } else if (item.setting.interType === 'outer') {
+      // if (item.setting.outerFunc) {
+      //   funcs.push(item.setting.outerFunc)
+      // }
+      if (item.setting.interface && item.setting.sysInterface !== 'true') {
+        inters.push(item.setting.interface)
+      }
+      if (item.setting.proInterface) {
+        inters.push(item.setting.proInterface)
+      }
+    }
+  }
+
+  let traversal = (components) => {
+    if (!components) return
+
+    components.forEach(item => {
+      if (item.type === 'tabs') {
+        item.subtabs.forEach(tab => {
+          traversal(tab.components)
+        })
+      } else if (item.type === 'group') {
+        traversal(item.components)
+      } else {
+        filterSetting(item)
+
+        if (item.action) {
+          item.action.forEach(cell => {
+            if (cell.OpenType === 'popview') {
+              if (cell.config) {
+                traversal(cell.config.components)
+              }
+            } else {
+              filterBtn(cell)
+            }
+          })
+        }
+
+        if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') {
+          item.subcards.forEach(card => {
+            card.elements && card.elements.forEach(cell => {
+              if (cell.eleType !== 'button') return
+              
+              if (cell.OpenType === 'popview') {
+                if (cell.config) {
+                  traversal(cell.config.components)
+                }
+              } else {
+                filterBtn(cell)
+              }
+            })
+            card.backElements && card.backElements.forEach(cell => {
+              if (cell.eleType !== 'button') return
+              
+              if (cell.OpenType === 'popview') {
+                if (cell.config) {
+                  traversal(cell.config.components)
+                }
+              } else {
+                filterBtn(cell)
+              }
+            })
+          })
+        } else if (item.type === 'balcony') {
+          item.elements && item.elements.forEach(cell => {
+            if (cell.eleType !== 'button') return
+            
+            if (cell.OpenType === 'popview') {
+              if (cell.config) {
+                traversal(cell.config.components)
+              }
+            } else {
+              filterBtn(cell)
+            }
+          })
+        } else if (item.type === 'table') {
+          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 (cell.OpenType === 'popview') {
+                    if (cell.config) {
+                      traversal(cell.config.components)
+                    }
+                  } else {
+                    filterBtn(cell)
+                  }
+                })
+              }
+            })
+          }
+          loopCol(item.cols)
+        } else if (item.type === 'form') {
+          item.subcards.forEach(group => {
+            filterBtn(group.subButton)
+          })
+        }
+      }
+    })
+  }
+
+  if (config.interfaces) {
+    config.interfaces.forEach(item => {
+      filterSetting(item)
+    })
+  }
+
+  traversal(config.components)
+
+  // inters = Array.from(new Set(inters))
+
+  return inters.length > 0 ? 'true' : 'false'
+}
+
+/**
  * @description 妫�娴嬬粍浠跺唴瀹�
  */
 export function checkComponent (card) {

--
Gitblit v1.8.0