From 2f3b614bb34f5e2865e91c949712f5ee5e8a18f2 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 08 十一月 2023 21:43:52 +0800
Subject: [PATCH] Merge branch 'develop'

---
 src/menu/components/share/actioncomponent/formconfig.jsx |  149 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 132 insertions(+), 17 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx
index c246b60..7456bc4 100644
--- a/src/menu/components/share/actioncomponent/formconfig.jsx
+++ b/src/menu/components/share/actioncomponent/formconfig.jsx
@@ -7,17 +7,16 @@
  * @param {*} functip        鐢熸垚瀛樺偍杩囩▼鎻愮ず
  * @param {*} setting        缁勪欢閰嶇疆
  * @param {*} usefulFields   瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈�
- * @param {*} type           鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡
  */
 export function getActionForm (card, functip, config, usefulFields, modules = [], anchors = [], side) {
   let appType = sessionStorage.getItem('appType')
   let viewType = sessionStorage.getItem('editMenuType') // 寮圭獥 popview
-  let printTemps = window.GLOB.printTemps || []
   let setting = config.setting || {}
   let columns = side === 'sub' && config.subColumns ? config.subColumns : (config.columns || [])
   let appMenus = []
   let menulist = []
   let type = ''
+  let alltype = config.type + '_' + config.subtype
 
   if (card.eleType === 'button') {
     type = 'card'
@@ -83,7 +82,73 @@
     return _list
   }
 
-  let tabs = getTabs(JSON.parse(JSON.stringify(window.GLOB.customMenu.components)))
+  let tabs = getTabs(window.GLOB.customMenu.components)
+
+  let linkButtons = []
+  let filterComponent = (components) => {
+    components.forEach(item => {
+      if (item.type === 'tabs') {
+        item.subtabs.forEach(tab => {
+          filterComponent(tab.components)
+        })
+      } else if (item.type === 'group') {
+        filterComponent(item.components)
+      } else {
+        item.action && item.action.forEach(cell => {
+          if (cell.hidden === 'true' || cell.uuid === card.uuid) return
+          if (!['exec', 'prompt', 'pop'].includes(cell.OpenType)) return
+  
+          linkButtons.push({
+            value: cell.uuid,
+            label: cell.label + '锛�' + item.name + '锛�'
+          })
+        })
+  
+        if (item.type === 'card' && item.subcards) {
+          item.subcards.forEach(m => {
+            if ((item.subtype === 'datacard' || item.subtype === 'dualdatacard') && m.$cardType !== 'extendCard') return
+            m.elements.forEach(cell => {
+              if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.uuid === card.uuid) return
+              if (!['exec', 'prompt', 'pop'].includes(cell.OpenType)) return
+  
+              linkButtons.push({
+                value: cell.uuid,
+                label: cell.label + '锛�' + item.name + '锛�'
+              })
+            })
+          })
+        } else if (item.type === 'balcony') {
+          item.elements.forEach(cell => {
+            if (cell.eleType !== 'button' || cell.hidden === 'true' || cell.uuid === card.uuid) return
+            if (!['exec', 'prompt', 'pop'].includes(cell.OpenType)) return
+            
+            linkButtons.push({
+              value: cell.uuid,
+              label: cell.label + '锛�' + item.name + '锛�'
+            })
+          })
+        } else if (item.type === 'form') {
+          item.subcards.forEach(group => {
+            if(group.uuid === card.uuid) return
+
+            if (item.subcards.length > 1) {
+              linkButtons.push({
+                value: group.uuid,
+                label: group.subButton.label + '锛�' + item.name + '-' + group.setting.title + '锛�'
+              })
+            } else {
+              linkButtons.push({
+                value: group.uuid,
+                label: group.subButton.label + '锛�' + item.name + '锛�'
+              })
+            }
+          })
+        }
+      }
+    })
+  }
+
+  filterComponent(window.GLOB.customMenu.components)
 
   let pageTemps = [
     { value: 'billprint', text: '鍗曟嵁鎵撳嵃' },
@@ -399,12 +464,11 @@
       options: pageTemps
     },
     {
-      type: 'select',
+      type: 'printTemps',
       key: 'printTemp',
       label: '鎵撳嵃妯℃澘',
       initVal: card.printTemp || '',
-      required: true,
-      options: printTemps
+      required: true
     },
     {
       type: isApp ? 'select' : 'cascader',
@@ -612,10 +676,15 @@
         text: '涓嶅埛鏂�'
       }, {
         value: 'line',
-        text: '鍒锋柊琛�'
+        text: '鍒锋柊琛�',
+        $disabled: !['table_normaltable', 'table_editable', 'table_basetable', 'card_datacard', 'card_dualdatacard'].includes(alltype)
       }, {
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
+      }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
+        $disabled: !['table_normaltable', 'table_editable', 'table_basetable', 'card_datacard', 'card_dualdatacard'].includes(alltype)
       }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
@@ -635,10 +704,15 @@
         text: '涓嶅埛鏂�'
       }, {
         value: 'line',
-        text: '鍒锋柊琛�'
+        text: '鍒锋柊琛�',
+        $disabled: !['table_normaltable', 'table_editable', 'table_basetable', 'card_datacard', 'card_dualdatacard'].includes(alltype)
       }, {
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
+      }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
+        $disabled: !['table_normaltable', 'table_editable', 'table_basetable', 'card_datacard', 'card_dualdatacard'].includes(alltype)
       }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
@@ -649,7 +723,7 @@
       type: 'select',
       key: 'popClose',
       label: '鍏抽棴鍚�',
-      initVal: card.popClose || 'never',
+      initVal: card.popClose || 'grid',
       required: true,
       options: [{
         value: 'never',
@@ -714,9 +788,6 @@
       required: false,
       forbid: (type !== 'datacard' || appType !== 'mob'),
       options: [{
-      //   value: 'false',
-      //   text: '鍚�'
-      // }, {
         value: 'left',
         text: '宸︽粦'
       }, {
@@ -871,6 +942,16 @@
       allowClear: true,
       options: appType === 'mob' || appType === 'pc' ? appMenus : menulist,
       forbid: viewType === 'popview'
+    },
+    {
+      type: 'select',
+      key: 'preButton',
+      label: '鍓嶇疆鎸夐挳',
+      tooltip: '褰撳墠鎸夐挳鎵ц鍓嶏紝闇�瑕佹墽琛岀殑鎸夐挳銆�',
+      initVal: card.preButton || '',
+      required: false,
+      allowClear: true,
+      options: linkButtons
     },
     {
       type: 'text',
@@ -1060,6 +1141,21 @@
       tooltip: '鍓嶇疆鍑芥暟鎵ц瀹屾垚鍚庯紝缁撴灉浼氫紶鍏ュ唴閮ㄥ嚱鏁颁腑锛屾鏃跺唴閮ㄥ嚱鏁颁細寮傛鎵ц锛涘綋鍓嶇疆鍑芥暟杩斿洖涓璄rrCode绛変簬-1鏃讹紝灏嗕笉鍐嶆墽琛屽唴閮ㄥ嚱鏁般��',
       required: false,
       forbid: appType === 'mob'
+    },
+    {
+      type: 'radio',
+      key: 'recordUser',
+      label: '璁板綍鐢ㄦ埛',
+      initVal: card.recordUser || 'false',
+      tooltip: '褰撻�夋嫨鈥滄槸鈥濇椂锛屽唴閮ㄥ嚱鏁扮殑浼犲弬浼氬鍔� username 涓� fullname銆�',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '鍚�'
+      }, {
+        value: 'true',
+        text: '鏄�'
+      }]
     },
     {
       type: 'radio',
@@ -1282,7 +1378,6 @@
  */
 export function getBaseTableActionForm (card, functip, config, usefulFields, modules) {
   let viewType = sessionStorage.getItem('editMenuType') // 寮圭獥 popview
-  let printTemps = window.GLOB.printTemps || []
   let setting = config.setting || {}
   let columns = config.columns || []
 
@@ -1504,12 +1599,11 @@
       options: pageTemps
     },
     {
-      type: 'select',
+      type: 'printTemps',
       key: 'printTemp',
       label: '鎵撳嵃妯℃澘',
       initVal: card.printTemp || '',
-      required: true,
-      options: printTemps
+      required: true
     },
     {
       type: 'cascader',
@@ -1714,6 +1808,9 @@
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
       }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
+      }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
       }, 
@@ -1736,6 +1833,9 @@
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
       }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
+      }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
       },
@@ -1745,7 +1845,7 @@
       type: 'select',
       key: 'popClose',
       label: '鍏抽棴鍚�',
-      initVal: card.popClose || 'never',
+      initVal: card.popClose || 'grid',
       required: true,
       options: [{
         value: 'never',
@@ -2011,6 +2111,21 @@
     },
     {
       type: 'radio',
+      key: 'recordUser',
+      label: '璁板綍鐢ㄦ埛',
+      initVal: card.recordUser || 'false',
+      tooltip: '褰撻�夋嫨鈥滄槸鈥濇椂锛屽唴閮ㄥ嚱鏁扮殑浼犲弬浼氬鍔� username 涓� fullname銆�',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '鍚�'
+      }, {
+        value: 'true',
+        text: '鏄�'
+      }]
+    },
+    {
+      type: 'radio',
       key: 'control',
       label: '鎸夐挳鎺у埗',
       initVal: card.control || (card.controlField ? 'disabled' : ''),

--
Gitblit v1.8.0