From bda849855c1036b352b4ea29bf1c1d7460d340be Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 04 四月 2023 17:14:15 +0800
Subject: [PATCH] 2023-04-04

---
 src/menu/components/share/actioncomponent/index.jsx |  131 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx
index 82fe3f2..731e10c 100644
--- a/src/menu/components/share/actioncomponent/index.jsx
+++ b/src/menu/components/share/actioncomponent/index.jsx
@@ -263,6 +263,128 @@
     this.actionFormRef.handleConfirm().then(btn => {
       _actionlist = _actionlist.filter(item => !item.origin || item.uuid === btn.uuid)
 
+      if ((btn.OpenType === 'excelIn' || btn.OpenType === 'excelOut') && (!btn.verify || !btn.verify.columns) && (config.subtype === 'basetable' || config.subtype === 'normaltable')) {
+        let columns = []
+        let maps = []
+        let labels = {}
+        if (config.subtype === 'normaltable') {
+          config.columns.forEach(col => {
+            labels[col.field] = col.label
+          })
+        }
+
+        if (btn.OpenType === 'excelOut') {
+          let pushcol = (item) => {
+            let cell = {
+              Column: item.field,
+              Text: item.label,
+              Width: 20,
+              abs: 'false',
+              output: 'true',
+              required: 'false',
+              type: 'text',
+              uuid: Utils.getuuid()
+            }
+  
+            if (item.type === 'number') {
+              cell.type = 'number'
+              cell.decimal = item.decimal
+            }
+  
+            columns.push(cell)
+          }
+
+          config.cols.forEach(item => {
+            if (item.Hide === 'true') return
+
+            if (config.subtype === 'normaltable') {
+              if (item.type === 'colspan') {
+                item.subcols.forEach(cell => {
+                  if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return
+                  maps.push(cell.field)
+  
+                  pushcol(cell)
+                })
+              } else if (item.type === 'custom') {
+                item.elements.forEach(cell => {
+                  if (!cell.field || maps.includes(cell.field)) return
+                  maps.push(cell.field)
+  
+                  pushcol({...cell, label: labels[cell.field]})
+                })
+              }
+            }
+
+            if (!item.field || maps.includes(item.field)) return
+            maps.push(item.field)
+  
+            pushcol(item)
+          })
+
+          btn.verify = btn.verify || {enable: 'false', dataType: 'default', scripts: []}
+          btn.verify.columns = columns
+        } else {
+          let pushcol = (item) => {
+            let _type = 'Nvarchar(50)'
+            let _limit = '50'
+            if (item.type === 'number' && !item.decimal) {
+              _type = 'Int'
+              _limit = ''
+            } else if (item.type === 'number') {
+              _type = 'Decimal(18,' + item.decimal + ')'
+              _limit = item.decimal
+            }
+
+            let _cell = {
+              uuid: Utils.getuuid(),
+              Column: item.field,
+              Text: item.label,
+              type: _type,
+              limit: _limit,
+              import: 'true',
+              required: 'true'
+            }
+
+            if (_type !== 'Nvarchar(50)') {
+              _cell.min = 0
+              _cell.max = 999999
+            }
+  
+            columns.push(_cell)
+          }
+
+          config.cols.forEach(item => {
+            if (item.Hide === 'true') return
+
+            if (config.subtype === 'normaltable') {
+              if (item.type === 'colspan') {
+                item.subcols.forEach(cell => {
+                  if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return
+                  maps.push(cell.field)
+  
+                  pushcol(cell)
+                })
+              } else if (item.type === 'custom') {
+                item.elements.forEach(cell => {
+                  if (!cell.field || maps.includes(cell.field)) return
+                  maps.push(cell.field)
+  
+                  pushcol({...cell, label: labels[cell.field]})
+                })
+              }
+            }
+
+            if (!item.field || maps.includes(item.field)) return
+            maps.push(item.field)
+  
+            pushcol(item)
+          })
+
+          btn.verify = btn.verify || {sheet: 'Sheet1', default: 'true', range: 1, scripts: [], uniques: []}
+          btn.verify.columns = columns
+        }
+      }
+
       let labelrepet = false
       _actionlist = _actionlist.map(item => {
         if (item.uuid !== btn.uuid && item.label === btn.label) {
@@ -285,6 +407,15 @@
               if (btn.show === 'icon') {
                 btn.style.color = color[btn.class]
                 btn.style.backgroundColor = 'transparent'
+              } else if (btn.class === 'default') {
+                btn.style.color = 'rgba(0, 0, 0, 0.65)'
+                btn.style.backgroundColor = '#fff'
+                btn.style.borderColor = '#d9d9d9'
+              } else if (btn.class.indexOf('border') > -1) {
+                let _c = btn.class.replace('border-', '')
+                btn.style.color = color[_c]
+                btn.style.backgroundColor = '#fff'
+                btn.style.borderColor = color[_c]
               } else {
                 btn.style.color = '#ffffff'
                 btn.style.backgroundColor = color[btn.class]

--
Gitblit v1.8.0