From d1dbe184ea1026e20a202ac9f8f7c8c049665ae3 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 10 一月 2024 17:04:26 +0800
Subject: [PATCH] 2024-01-10

---
 src/menu/components/share/actioncomponent/formconfig.jsx |  873 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 745 insertions(+), 128 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx
index efedf7a..a8c04dd 100644
--- a/src/menu/components/share/actioncomponent/formconfig.jsx
+++ b/src/menu/components/share/actioncomponent/formconfig.jsx
@@ -1,5 +1,5 @@
-import { btnCustomClasses, btnClasses } from '@/utils/option.js'
-
+import React from 'react'
+import { btnClasses } from '@/utils/option.js'
 
 /**
  * @description 鑾峰彇鎸夐挳琛ㄥ崟閰嶇疆淇℃伅
@@ -7,22 +7,20 @@
  * @param {*} functip        鐢熸垚瀛樺偍杩囩▼鎻愮ず
  * @param {*} setting        缁勪欢閰嶇疆
  * @param {*} usefulFields   瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈�
- * @param {*} type           鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡
  */
-export function getActionForm (card, functip, config, usefulFields, modules = [], anchors = []) {
+export function getActionForm (card, functip, config, usefulFields, modules = [], anchors = [], side) {
   let appType = sessionStorage.getItem('appType')
   let viewType = sessionStorage.getItem('editMenuType') // 寮圭獥 popview
-  let printTemps = sessionStorage.getItem('printTemps')
-  printTemps = printTemps ? JSON.parse(printTemps) : []
   let setting = config.setting || {}
-  let columns = config.columns || []
+  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'
-  } else if (config.subtype === 'datacard' || config.subtype === 'tablecard') {
+  } else if (config.subtype === 'datacard' || config.subtype === 'tablecard' || config.subtype === 'dualdatacard') {
     type = 'datacard'
   } else if (config.type === 'line' || config.type === 'bar' || config.type === 'scatter') {
     type = 'chart'
@@ -84,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: '鍗曟嵁鎵撳嵃' },
@@ -97,7 +161,8 @@
     { value: 'print', text: '鏍囩鎵撳嵃' },
     { value: 'refund', text: '閫�娆�' },
     { value: 'closetab', text: '鏍囩鍏抽棴' },
-    { value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' },
+    { value: 'expPdf', text: '瀵煎嚭PDF' },
+    { value: 'shareLink', text: '鍒嗕韩閾炬帴' },
     { value: 'megvii', text: '鏃疯闈㈡澘鏈�' },
     { value: 'filezip', text: '鏂囦欢鍘嬬缉鍖�' },
   ]
@@ -113,6 +178,7 @@
     } else {
       appMenus = []
     }
+    appMenus.push({value: 'goback', text: '杩斿洖锛堜笂涓�椤碉級'})
   } else {
     menulist = sessionStorage.getItem('fstMenuList')
     if (menulist) {
@@ -126,7 +192,7 @@
     }
   }
   if (appType === 'mob') {
-    opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'excelOut', 'innerpage', 'funcbutton'].includes(item.value))
+    opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'excelOut', 'popview', 'innerpage', 'funcbutton'].includes(item.value))
     funTypes = [
       { value: 'print', text: '鏍囩鎵撳嵃' },
       { value: 'scan', text: '鎵爜' },
@@ -137,7 +203,10 @@
       { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' },
       { value: 'mkUnsubscribe', text: '娉ㄩ攢璐︽埛' },
       { value: 'reAuth', text: '鍒囨崲绯荤粺锛堟竻绌虹紦瀛�-灏忕▼搴忥級' },
+      { value: 'clearCache', text: '娓呯┖鏈湴閰嶇疆' },
       { value: 'copyurl', text: '澶嶅埗閾炬帴鍦板潃' },
+      { value: 'expPdf', text: '瀵煎嚭PDF' },
+      { value: 'shareLink', text: '鍒嗕韩閾炬帴' },
       { value: 'logout', text: '閫�鍑�' },
       { value: 'goBack', text: '杩斿洖' },
     ]
@@ -149,7 +218,6 @@
     opentypes = opentypes.filter(item => item.value !== 'tab')
     funTypes = [
       { value: 'print', text: '鏍囩鎵撳嵃' },
-      { value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' },
     ]
     pageTemps = [
       { value: 'linkpage', text: '鍏宠仈鑿滃崟' },
@@ -157,6 +225,29 @@
       { value: 'pay', text: '鏀粯' },
       { value: 'custom', text: '閾炬帴' }
     ]
+  } else {
+    if (card.pageTemplate === 'print') { // 鍘熺被鍨嬫敮鎸�
+      pageTemps.unshift({ value: 'print', text: '鏍囩鎵撳嵃妯℃澘' })
+    } else if (card.pageTemplate === 'billprintTemp') { // 鍘熺被鍨嬫敮鎸�
+      pageTemps.unshift({ value: 'billprintTemp', text: '鍗曟嵁鎵撳嵃妯℃澘' })
+    }
+  }
+
+  if (card.$fixed) {
+    opentypes = opentypes.filter(item => item.value === card.OpenType)
+  }
+
+  if (card.funcType === 'changeuser') { // 鍘熺被鍨嬫敮鎸�
+    funTypes.unshift({ value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' })
+  }
+
+  if (config.subtype === 'editable') { // 缂栬緫琛ㄧ殑娣诲姞銆佸垹闄�
+    funTypes.push(
+      { value: 'addline', text: '澧炲姞琛岋紙缂栬緫琛級' },
+      { value: 'delline', text: '鍒犻櫎琛岋紙缂栬緫琛級' }
+    )
+  } else if (card.funcType === 'addline' || card.funcType === 'delline') {
+    card.funcType = ''
   }
   
   if (type === 'chart' && appType !== 'mob') {
@@ -169,7 +260,10 @@
 
   let refresh = []
   if (viewType === 'popview') { // 寮圭獥鏍囩
-    opentypes = opentypes.filter(item => item.value !== 'popview' && item.value !== 'funcbutton')
+    opentypes = opentypes.filter(item => item.value !== 'popview')
+
+    funTypes = funTypes.filter(item => item.value !== 'print')
+
     refresh.push({
       value: 'closepoptab', // 鍏抽棴寮圭獥鏍囩
       text: '鍏抽棴寮圭獥'
@@ -223,7 +317,7 @@
     {
       type: 'select',
       key: 'OpenType',
-      label: '鎵撳紑鏂瑰紡',
+      label: '鎸夐挳绫诲瀷',
       initVal: card.OpenType,
       required: true,
       options: opentypes
@@ -233,6 +327,7 @@
       key: 'label',
       label: '鎸夐挳鍚嶇О',
       initVal: card.label,
+      tooltip: card.uuid ? '鎸夐挳ID锛�' + card.uuid : '',
       required: true,
     },
     {
@@ -254,7 +349,7 @@
       ]
     },
     {
-      type: 'radio',
+      type: formTypes.length ? 'select' : 'radio',
       key: 'formType',
       label: '琛ㄥ崟绫诲瀷',
       initVal: card.formType || 'switch',
@@ -265,6 +360,12 @@
       }, {
         value: 'radio',
         text: '鍕鹃�夋'
+      }, {
+        value: 'counter',
+        text: '璁℃暟鍣�'
+      }, {
+        value: 'count_line',
+        text: '璁℃暟鍣�(鏈湴)'
       }, 
       ...formTypes]
     },
@@ -312,7 +413,7 @@
       key: 'procMode',
       label: '鍙傛暟澶勭悊',
       initVal: card.procMode || (card.innerFunc ? 'inner' : 'system'),
-      tooltip: '褰撹繑鍥炲�煎瓨鍦� mk_ex_invoke 涓斿�间负 false 鏃讹紝涓嶄細璋冪敤澶栭儴鎺ュ彛銆�',
+      tooltip: '褰撹繑鍥炲�煎瓨鍦� mk_ex_invoke 涓斿�间负 false 鏃讹紝涓嶄細璋冪敤澶栭儴鎺ュ彛锛涘綋杩斿洖鍊煎瓨鍦� mk_ex_data 鏃讹紝灏嗕互姝や负鍙傛暟鍒嗘壒璇锋眰鑷畾涔夋帴鍙c�傛敞锛氬綋閫夆�滄棤鈥濇椂锛屾寜閽�夎鏃朵細浼犻�掍富閿紝瀛樺湪琛ㄥ崟鏃朵細浼犻�掕〃鍗曞瓧娈碉紝瀛樺湪BID鏃朵細浼燘ID瀛楁銆�',
       required: true,
       options: [{
         value: 'system',
@@ -367,12 +468,24 @@
       options: pageTemps
     },
     {
-      type: 'select',
+      type: 'printTemps',
       key: 'printTemp',
       label: '鎵撳嵃妯℃澘',
       initVal: card.printTemp || '',
-      required: true,
-      options: printTemps
+      help: (record) => {
+        if (record.printTemp) {
+          return <span onClick={() => {
+            sessionStorage.setItem('mk-print-temp', record.printTemp)
+            window.open('#/hs')
+
+            setTimeout(() => {
+              sessionStorage.removeItem('mk-print-temp')
+            }, 50)
+          }} style={{color: '#1890ff', cursor: 'pointer', fontSize: '13px'}}>#鏌ョ湅妯℃澘</span>
+        }
+        return ''
+      },
+      required: true
     },
     {
       type: isApp ? 'select' : 'cascader',
@@ -384,11 +497,28 @@
       options: isApp ? appMenus : menulist
     },
     {
+      type: 'text',
+      key: 'prefix',
+      label: '鍓嶇紑',
+      initVal: card.prefix || '',
+      tooltip: '鎵爜淇℃伅灏嗕笌鍓嶇紑鎷兼帴鍚庢墽琛屻�傛敞锛氳烦杞彍鍗曢渶浠kbid寮�澶淬��',
+      required: false
+    },
+    {
       type: 'textarea',
       key: 'url',
       label: '椤甸潰鍦板潃',
       initVal: card.url || '',
+      tooltip: appType === '' ? '鍦板潃鏍煎紡涓猴細http://******/admin/index.html#/iframe/menuId/loginuid/BID 浼氭墦寮�鏍囩椤点�傛敞锛氫娇鐢ˊloginuid@鏃惰嚜鍔ㄦ浛鎹负褰撳墠绯荤粺鐨刲oginuid锛涢�夋嫨鍗曡涓旀嫾鎺ュ弬鏁版椂浼氭嫾鎺ID銆�' : '',
       required: true
+    },
+    {
+      type: 'textarea',
+      key: 'proUrl',
+      label: '姝e紡鍦板潃',
+      initVal: card.proUrl || '',
+      tooltip: appType === '' ? '鍦板潃鏍煎紡涓猴細http://******/admin/index.html#/iframe/menuId/loginuid/BID 浼氭墦寮�鏍囩椤点�傛敞锛氫娇鐢ˊloginuid@鏃惰嚜鍔ㄦ浛鎹负褰撳墠绯荤粺鐨刲oginuid锛涢�夋嫨鍗曡涓旀嫾鎺ュ弬鏁版椂浼氭嫾鎺ID銆�' : '',
+      required: false
     },
     {
       type: 'radio',
@@ -448,35 +578,6 @@
     },
     {
       type: 'radio',
-      key: 'method',
-      label: '璇锋眰鏂瑰紡',
-      initVal: card.method || 'post',
-      required: true,
-      options: [{
-        value: 'get',
-        text: 'GET'
-      }, {
-        value: 'post',
-        text: 'POST'
-      }]
-    },
-    {
-      type: 'radio',
-      key: 'cross',
-      label: '璺ㄥ煙璇锋眰',
-      initVal: card.cross || 'true',
-      tooltip: '濡傛灉鑷畾涔夋帴鍙d笉鏀寔璺ㄥ煙璇锋眰锛屼細閫氳繃褰撳墠绯荤粺杞彂銆�',
-      required: false,
-      options: [{
-        value: 'true',
-        text: '鏀寔'
-      }, {
-        value: 'false',
-        text: '涓嶆敮鎸�'
-      }]
-    },
-    {
-      type: 'radio',
       key: 'callbackType',
       label: '鍥炶皟鏂瑰紡',
       initVal: card.callbackType || (card.callbackFunc ? 'func' : 'none'),
@@ -511,6 +612,68 @@
       required: true
     },
     {
+      type: 'radio',
+      key: 'method',
+      label: '璇锋眰鏂瑰紡',
+      initVal: card.method || 'post',
+      required: true,
+      options: [{
+        value: 'get',
+        text: 'GET'
+      }, {
+        value: 'post',
+        text: 'POST'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'cross',
+      label: '鎺ュ彛璺ㄥ煙',
+      initVal: card.cross || 'true',
+      tooltip: '濡傛灉鑷畾涔夋帴鍙d笉鏀寔璺ㄥ煙璇锋眰锛屼細閫氳繃褰撳墠绯荤粺杞彂銆�',
+      required: false,
+      options: [{
+        value: 'true',
+        text: '鏀寔'
+      }, {
+        value: 'false',
+        text: '涓嶆敮鎸�'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'stringify',
+      label: '搴忓垪鍖�',
+      initVal: card.stringify || 'text',
+      required: false,
+      options: [{
+        value: 'text',
+        text: 'Text'
+      }, {
+        value: 'JSON',
+        text: 'JSON'
+      }, {
+        value: 'qs',
+        text: 'qs'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'ContentType',
+      label: 'Content-Type',
+      initVal: card.ContentType || '',
+      tooltip: '榛樿鍊硷細application/x-www-form-urlencoded;charset=UTF-8',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'outerBlacklist',
+      label: '瀛楁榛戝悕鍗�',
+      initVal: card.outerBlacklist || '',
+      tooltip: '涓嶉渶瑕佸洖浼犵殑瀛楁鍙缃瓧娈甸粦鍚嶅崟锛屽涓�艰鐢ㄩ�楀彿鍒嗛殧銆�',
+      required: false
+    },
+    {
       type: 'select',
       key: 'Ot',
       label: '琛岃缃�',
@@ -523,17 +686,22 @@
       key: 'execSuccess',
       label: '鎴愬姛鍚�',
       initVal: card.execSuccess || 'grid',
-      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍笺�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�',
+      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻�傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級锛汙no_target_menu@ 涓嶆墽琛屾墦寮�鑿滃崟銆�' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂扮粍浠讹紱閫夋嫨鍒锋柊琛� / 缁勪欢鏃讹紝濡傛灉褰撳墠琛屾暟鎹笉瀛樺湪浼氬埛鏂扮粍浠躲�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級锛汙no_target_menu@ 涓嶆墽琛屾墦寮�鑿滃崟銆�',
       required: true,
       options: [{
         value: 'never',
         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: '鍒锋柊涓婄骇缁勪欢 - 琛�'
@@ -546,17 +714,22 @@
       key: 'execError',
       label: '澶辫触鍚�',
       initVal: card.execError || 'never',
-      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍硷紝娉細涓婄骇缁勪欢鍦ㄦ暟鎹簮涓坊鍔犮��',
+      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻�傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級銆�' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂扮粍浠讹紱閫夋嫨鍒锋柊琛� / 缁勪欢鏃讹紝濡傛灉褰撳墠琛屾暟鎹笉瀛樺湪浼氬埛鏂扮粍浠躲�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級銆�',
       required: true,
       options: [{
         value: 'never',
         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: '鍒锋柊涓婄骇缁勪欢 - 琛�'
@@ -567,7 +740,7 @@
       type: 'select',
       key: 'popClose',
       label: '鍏抽棴鍚�',
-      initVal: card.popClose || 'never',
+      initVal: card.popClose || 'grid',
       required: true,
       options: [{
         value: 'never',
@@ -595,17 +768,69 @@
       }]
     },
     {
+      type: 'radio',
+      key: 'shortUrl',
+      label: '鐭摼鎺�',
+      initVal: card.shortUrl || 'false',
+      options: [{
+        value: 'false',
+        text: '绂佺敤'
+      }, {
+        value: 'true',
+        text: '鍚敤'
+      }]
+    },
+    {
+      type: 'textarea',
+      key: 'shareUrl',
+      label: '閾炬帴鍦板潃',
+      initVal: card.shareUrl || '',
+      tooltip: '閾炬帴涓鏋滃瓨鍦ˊBID@鎴朄ID@灏嗚嚜鍔ㄦ浛鎹€��',
+      required: true
+    },
+    {
+      type: 'textarea',
+      key: 'shareProUrl',
+      label: '姝e紡閾炬帴',
+      initVal: card.shareProUrl || '',
+      tooltip: '閾炬帴涓鏋滃瓨鍦ˊBID@鎴朄ID@灏嗚嚜鍔ㄦ浛鎹€��',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'shareTip',
+      label: '鍒嗕韩鎻愮ず',
+      initVal: card.shareTip || '',
+      tooltip: '鍒嗕韩鏃跺鐢ㄦ埛鐨勬彁绀轰俊鎭��',
+      required: false
+    },
+    {
       type: 'number',
       key: 'width',
-      min: 1,
+      min: 0,
       max: 24,
       precision: 0,
       label: '瀹藉害',
-      initVal: card.width || 12,
-      tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
+      initVal: card.width || (card.width === 0 ? 0 : 12),
+      tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼�備负 0 鏃跺搴﹁嚜閫傚簲銆�',
       forbid: type !== 'card',
       required: true
     },
+    // {
+    //   type: 'radio',
+    //   key: 'exportType',
+    //   label: '瀵煎嚭鏂瑰紡',
+    //   initVal: card.exportType || 'download',
+    //   tooltip: '',
+    //   required: true,
+    //   options: [{
+    //     value: 'download',
+    //     text: '涓嬭浇鏈湴'
+    //   }, {
+    //     value: 'link',
+    //     text: '鐢熸垚閾炬帴'
+    //   }]
+    // },
     {
       type: 'radio',
       key: 'show',
@@ -632,9 +857,6 @@
       required: false,
       forbid: (type !== 'datacard' || appType !== 'mob'),
       options: [{
-      //   value: 'false',
-      //   text: '鍚�'
-      // }, {
         value: 'left',
         text: '宸︽粦'
       }, {
@@ -659,7 +881,7 @@
       tooltip: '姝ら鑹蹭负鎸夐挳鍒濆鍖栭鑹诧紝鍙湪鏍峰紡璋冩暣涓慨鏀广��',
       required: false,
       forbid: type === 'datacard' && appType === 'mob', // 绉诲姩绔紝婊戝姩鏄剧ず鐨勬寜閽笉璁剧疆閫氱敤棰滆壊
-      options: btnCustomClasses
+      options: btnClasses
     },
     {
       type: 'radio',
@@ -683,6 +905,9 @@
       }, {
         value: 'light',
         text: '鐏�'
+      }, {
+        value: 'system',
+        text: '绯荤粺'
       }]
     },
     {
@@ -713,7 +938,7 @@
       initVal: card.syncComponent || [],
       tooltip: '鎵ц鎴愬姛鍚庯紙鎴栧脊绐楁爣绛惧叧闂椂锛夛紝闇�瑕佸悓姝ュ埛鏂扮殑缁勪欢銆傛敞锛氶�夋嫨褰撳墠缁勪欢鐨勪笂绾х粍浠舵棤鏁堬紝鍒锋柊涓婄骇缁勪欢璇烽�夋嫨鎴愬姛鍚庘�滃埛鏂颁笂绾х粍浠� - 琛屸�濄��',
       required: false,
-      options: modules
+      options: modules.length ? [...modules, {value: 'multiComponent', label: '澶氱粍浠�'}] : []
     },
     {
       type: 'radio',
@@ -784,8 +1009,18 @@
       extendName: 'MenuNo',
       required: false,
       allowClear: true,
-      options: appType === 'mob' || appType === 'pc' ? [...appMenus, {value: 'goback', text: '杩斿洖锛堜笂涓�椤碉級'}] : menulist,
+      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',
@@ -819,6 +1054,19 @@
     },
     {
       type: 'radio',
+      key: 'openTab',
+      label: '鎵撳紑鏂瑰紡',
+      initVal: card.openTab || 'newtab',
+      tooltip: '鑿滃崟鎵撳紑鏂瑰紡銆�',
+      forbid: appType !== '',
+      options: [
+        {value: 'newtab', text: '鏍囩椤�'},
+        // {value: 'newpage', text: '鏂伴〉闈紙鏍囩椤碉級'},
+        {value: 'view', text: '鏂伴〉闈紙鍏ㄥ睆锛�'}
+      ]
+    },
+    {
+      type: 'radio',
       key: 'display',
       label: '鏄剧ず鏂瑰紡',
       initVal: card.display || 'modal',
@@ -829,23 +1077,13 @@
       }, {
         value: 'drawer',
         text: '鎶藉眽'
-      }]
-    },
-    {
-      type: 'number',
-      key: 'ratio',
-      min: 1,
-      max: 3000,
-      precision: 0,
-      label: '姣斾緥',
-      initVal: card.ratio || 85,
-      tooltip: '妯℃�佹鎴栨娊灞夌殑瀹藉害锛屽皬浜�100涓虹獥鍙e搴︼紙鎴栭珮搴︼級鐧惧垎姣旓紝澶т簬100涓哄儚绱犲�笺��',
-      required: true
+      }],
+      forbid: appType === 'mob',
     },
     {
       type: 'radio',
       key: 'placement',
-      label: '鎶藉眽鏂瑰悜',
+      label: '寮瑰嚭鏂瑰悜',
       initVal: card.placement || 'right',
       required: false,
       options: [{
@@ -863,6 +1101,17 @@
       }]
     },
     {
+      type: 'number',
+      key: 'ratio',
+      min: 1,
+      max: 3000,
+      precision: 0,
+      label: '姣斾緥',
+      initVal: card.ratio || 85,
+      tooltip: '妯℃�佹鎴栨娊灞夌殑瀹藉害锛屽皬浜�100涓虹獥鍙e搴︼紙鎴栭珮搴︼級鐧惧垎姣旓紝澶т簬100涓哄儚绱犲�笺��',
+      required: true
+    },
+    {
       type: 'radio',
       key: 'clickouter',
       label: '鐐瑰嚮钂欏眰',
@@ -875,6 +1124,52 @@
         value: 'close',
         text: '鍏抽棴'
       }]
+    },
+    {
+      type: 'radio',
+      key: 'popshow',
+      label: '寮圭獥灞曠ず',
+      initVal: card.popshow || 'default',
+      tooltip: '灏忕獥鍙e睍绀哄皢闅愯棌鏍囬鍙婂簳閮ㄦ寜閽��',
+      required: false,
+      options: [{
+        value: 'default',
+        text: '榛樿'
+      }, {
+        value: 'miniview',
+        text: '灏忕獥鍙�'
+      }],
+      forbid: appType === 'mob'
+    },
+    {
+      type: 'radio',
+      key: 'maskStyle',
+      label: '钂欏眰鏍峰紡',
+      initVal: card.maskStyle || 'default',
+      required: false,
+      options: [{
+        value: 'default',
+        text: '榛樿'
+      }, {
+        value: 'transparent',
+        text: '閫忔槑'
+      }],
+      forbid: appType !== 'mob'
+    },
+    {
+      type: 'radio',
+      key: 'closeButton',
+      label: '鍏抽棴鎸夐挳',
+      initVal: card.closeButton || 'false',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '闅愯棌'
+      }, {
+        value: 'true',
+        text: '鏄剧ず'
+      }],
+      forbid: appType !== 'mob'
     },
     {
       type: 'radio',
@@ -905,6 +1200,30 @@
       }, {
         value: 'bottom',
         text: '搴曢儴'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'preFunc',
+      label: '鍓嶇疆鍑芥暟',
+      initVal: card.preFunc || '',
+      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: '鏄�'
       }]
     },
     {
@@ -956,6 +1275,21 @@
     },
     {
       type: 'radio',
+      key: 'formCache',
+      label: '琛ㄥ崟缂撳瓨',
+      initVal: card.formCache || 'false',
+      tooltip: '涓昏鐢ㄤ簬鏁版嵁淇敼鍚庯紝鏇存柊鐩稿叧琛ㄥ崟鐨勯�夐」锛屾竻绌虹紦瀛樺悗琛ㄥ崟鍐嶆鎵撳紑鏃舵暟鎹細閲嶆柊鍔犺浇銆�',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '涓嶆竻绌�'
+      }, {
+        value: 'clear',
+        text: '娓呯┖'
+      }]
+    },
+    {
+      type: 'radio',
       key: 'hidden',
       label: '闅愯棌',
       initVal: card.hidden || 'false',
@@ -986,7 +1320,7 @@
     {
       type: 'radio',
       key: 'size',
-      label: '寮�鍏冲昂瀵�',
+      label: '灏哄',
       initVal: card.size || 'default',
       options: [{
         value: 'large',
@@ -1021,6 +1355,27 @@
       required: false
     },
     {
+      type: 'number',
+      key: 'min',
+      label: '鏈�灏忓��',
+      initVal: card.min,
+      required: false
+    },
+    {
+      type: 'number',
+      key: 'max',
+      label: '鏈�澶у��',
+      initVal: card.max,
+      required: false
+    },
+    {
+      type: 'number',
+      key: 'decimal',
+      label: '灏忔暟浣�',
+      initVal: card.decimal || 0,
+      required: true
+    },
+    {
       type: 'text',
       key: 'closeVal',
       label: '鍏抽棴鍊�',
@@ -1044,6 +1399,21 @@
     },
     {
       type: 'radio',
+      key: 'execType',
+      label: '璇锋眰鏂瑰紡',
+      initVal: card.execType || 'multi',
+      tooltip: '閫変腑澶氭潯鏁版嵁鏃剁殑璇锋眰鏂瑰紡锛屾敞锛氬綋閫変腑鏁版嵁瓒呰繃20鏉℃椂灏嗛�愭潯璇锋眰銆�',
+      required: false,
+      options: [{
+        value: 'multi',
+        text: '鎵归噺璇锋眰'
+      }, {
+        value: 'single',
+        text: '閫愭潯璇锋眰'
+      }]
+    },
+    {
+      type: 'radio',
       key: 'progress',
       label: '杩涘害鎻愮ず',
       initVal: card.progress || 'number',
@@ -1056,6 +1426,27 @@
         value: 'progressbar',
         text: '杩涘害鏉�'
       }]
+    },
+    {
+      type: 'table',
+      key: 'syncComponents',
+      label: '缁勪欢鍒楄〃',
+      initVal: card.syncComponents || [],
+      required: true,
+      actions: ['edit', 'del', 'add', 'move'],
+      columns: [
+        {
+          title: '缁勪欢',
+          dataIndex: 'syncComId',
+          inputType: 'cascader',
+          editable: true,
+          required: true,
+          extends: [{key: 'label', value: 'label'}],
+          width: '70%',
+          render: (text, record) => record.label,
+          options: modules
+        }
+      ]
     }
   ]
 
@@ -1071,8 +1462,6 @@
  */
 export function getBaseTableActionForm (card, functip, config, usefulFields, modules) {
   let viewType = sessionStorage.getItem('editMenuType') // 寮圭獥 popview
-  let printTemps = sessionStorage.getItem('printTemps')
-  printTemps = printTemps ? JSON.parse(printTemps) : []
   let setting = config.setting || {}
   let columns = config.columns || []
 
@@ -1115,14 +1504,25 @@
     { value: 'custom', text: '鑷畾涔�' }
   ]
 
+  if (card.pageTemplate === 'print') { // 鍘熺被鍨嬫敮鎸�
+    pageTemps.unshift({ value: 'print', text: '鏍囩鎵撳嵃妯℃澘' })
+  } else if (card.pageTemplate === 'billprintTemp') { // 鍘熺被鍨嬫敮鎸�
+    pageTemps.unshift({ value: 'billprintTemp', text: '鍗曟嵁鎵撳嵃妯℃澘' })
+  }
+
   let funTypes = [
     { value: 'print', text: '鏍囩鎵撳嵃' },
     { value: 'refund', text: '閫�娆�' },
     { value: 'closetab', text: '鏍囩鍏抽棴' },
-    { value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' },
+    { value: 'expPdf', text: '瀵煎嚭PDF' },
+    { value: 'shareLink', text: '鍒嗕韩閾炬帴' },
     { value: 'megvii', text: '鏃疯闈㈡澘鏈�' },
     { value: 'filezip', text: '鏂囦欢鍘嬬缉鍖�' },
   ]
+
+  if (card.funcType === 'changeuser') { // 鍘熺被鍨嬫敮鎸�
+    funTypes.unshift({ value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' })
+  }
 
   let menulist = sessionStorage.getItem('fstMenuList')
   if (menulist) {
@@ -1137,7 +1537,10 @@
 
   let refresh = []
   if (viewType === 'popview') { // 寮圭獥鏍囩
-    opentypes = opentypes.filter(item => item.value !== 'popview' && item.value !== 'funcbutton')
+    opentypes = opentypes.filter(item => item.value !== 'popview')
+
+    funTypes = funTypes.filter(item => item.value !== 'print')
+
     refresh.push({
       value: 'closepoptab', // 鍏抽棴寮圭獥鏍囩
       text: '鍏抽棴寮圭獥'
@@ -1152,7 +1555,7 @@
     {
       type: 'select',
       key: 'OpenType',
-      label: '鎵撳紑鏂瑰紡',
+      label: '鎸夐挳绫诲瀷',
       initVal: card.OpenType,
       required: true,
       options: opentypes
@@ -1162,6 +1565,7 @@
       key: 'label',
       label: '鎸夐挳鍚嶇О',
       initVal: card.label,
+      tooltip: card.uuid ? '鎸夐挳ID锛�' + card.uuid : '',
       required: true,
     },
     {
@@ -1226,7 +1630,7 @@
       key: 'procMode',
       label: '鍙傛暟澶勭悊',
       initVal: card.procMode || (card.innerFunc ? 'inner' : 'system'),
-      tooltip: '褰撹繑鍥炲�煎瓨鍦� mk_ex_invoke 涓斿�间负 false 鏃讹紝涓嶄細璋冪敤澶栭儴鎺ュ彛銆�',
+      tooltip: '褰撹繑鍥炲�煎瓨鍦� mk_ex_invoke 涓斿�间负 false 鏃讹紝涓嶄細璋冪敤澶栭儴鎺ュ彛锛涘綋杩斿洖鍊煎瓨鍦� mk_ex_data 鏃讹紝灏嗕互姝や负鍙傛暟鍒嗘壒璇锋眰鑷畾涔夋帴鍙c�傛敞锛氬綋閫夆�滄棤鈥濇椂锛屾寜閽�夎鏃朵細浼犻�掍富閿紝瀛樺湪琛ㄥ崟鏃朵細浼犻�掕〃鍗曞瓧娈碉紝瀛樺湪BID鏃朵細浼燘ID瀛楁銆�',
       required: true,
       options: [{
         value: 'system',
@@ -1281,12 +1685,24 @@
       options: pageTemps
     },
     {
-      type: 'select',
+      type: 'printTemps',
       key: 'printTemp',
       label: '鎵撳嵃妯℃澘',
       initVal: card.printTemp || '',
-      required: true,
-      options: printTemps
+      help: (record) => {
+        if (record.printTemp) {
+          return <span onClick={() => {
+            sessionStorage.setItem('mk-print-temp', record.printTemp)
+            window.open('#/hs')
+
+            setTimeout(() => {
+              sessionStorage.removeItem('mk-print-temp')
+            }, 50)
+          }} style={{color: '#1890ff', cursor: 'pointer', fontSize: '13px'}}>#鏌ョ湅妯℃澘</span>
+        }
+        return ''
+      },
+      required: true
     },
     {
       type: 'cascader',
@@ -1302,7 +1718,16 @@
       key: 'url',
       label: '椤甸潰鍦板潃',
       initVal: card.url || '',
+      tooltip: '鍦板潃鏍煎紡涓猴細http://******/admin/index.html#/iframe/menuId/loginuid/BID 浼氭墦寮�鏍囩椤点�傛敞锛氫娇鐢ˊloginuid@鏃惰嚜鍔ㄦ浛鎹负褰撳墠绯荤粺鐨刲oginuid锛涢�夋嫨鍗曡涓旀嫾鎺ュ弬鏁版椂浼氭嫾鎺ID銆�',
       required: true
+    },
+    {
+      type: 'textarea',
+      key: 'proUrl',
+      label: '姝e紡鍦板潃',
+      initVal: card.proUrl || '',
+      tooltip: '鍦板潃鏍煎紡涓猴細http://******/admin/index.html#/iframe/menuId/loginuid/BID 浼氭墦寮�鏍囩椤点�傛敞锛氫娇鐢ˊloginuid@鏃惰嚜鍔ㄦ浛鎹负褰撳墠绯荤粺鐨刲oginuid锛涢�夋嫨鍗曡涓旀嫾鎺ュ弬鏁版椂浼氭嫾鎺ID銆�',
+      required: false
     },
     {
       type: 'radio',
@@ -1362,35 +1787,6 @@
     },
     {
       type: 'radio',
-      key: 'method',
-      label: '璇锋眰鏂瑰紡',
-      initVal: card.method || 'post',
-      required: true,
-      options: [{
-        value: 'get',
-        text: 'GET'
-      }, {
-        value: 'post',
-        text: 'POST'
-      }]
-    },
-    {
-      type: 'radio',
-      key: 'cross',
-      label: '璺ㄥ煙璇锋眰',
-      initVal: card.cross || 'true',
-      tooltip: '濡傛灉鑷畾涔夋帴鍙d笉鏀寔璺ㄥ煙璇锋眰锛屼細閫氳繃褰撳墠绯荤粺杞彂銆�',
-      required: false,
-      options: [{
-        value: 'true',
-        text: '鏀寔'
-      }, {
-        value: 'false',
-        text: '涓嶆敮鎸�'
-      }]
-    },
-    {
-      type: 'radio',
       key: 'callbackType',
       label: '鍥炶皟鏂瑰紡',
       initVal: card.callbackType || (card.callbackFunc ? 'func' : 'none'),
@@ -1425,6 +1821,68 @@
       required: true
     },
     {
+      type: 'radio',
+      key: 'method',
+      label: '璇锋眰鏂瑰紡',
+      initVal: card.method || 'post',
+      required: true,
+      options: [{
+        value: 'get',
+        text: 'GET'
+      }, {
+        value: 'post',
+        text: 'POST'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'cross',
+      label: '鎺ュ彛璺ㄥ煙',
+      initVal: card.cross || 'true',
+      tooltip: '濡傛灉鑷畾涔夋帴鍙d笉鏀寔璺ㄥ煙璇锋眰锛屼細閫氳繃褰撳墠绯荤粺杞彂銆�',
+      required: false,
+      options: [{
+        value: 'true',
+        text: '鏀寔'
+      }, {
+        value: 'false',
+        text: '涓嶆敮鎸�'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'stringify',
+      label: '搴忓垪鍖�',
+      initVal: card.stringify || 'text',
+      required: false,
+      options: [{
+        value: 'text',
+        text: 'Text'
+      }, {
+        value: 'JSON',
+        text: 'JSON'
+      }, {
+        value: 'qs',
+        text: 'qs'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'ContentType',
+      label: 'Content-Type',
+      initVal: card.ContentType || '',
+      tooltip: '榛樿鍊硷細application/x-www-form-urlencoded;charset=UTF-8',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'outerBlacklist',
+      label: '瀛楁榛戝悕鍗�',
+      initVal: card.outerBlacklist || '',
+      tooltip: '涓嶉渶瑕佸洖浼犵殑瀛楁鍙缃瓧娈甸粦鍚嶅崟锛屽涓�艰鐢ㄩ�楀彿鍒嗛殧銆�',
+      required: false
+    },
+    {
       type: 'select',
       key: 'Ot',
       label: '琛岃缃�',
@@ -1437,7 +1895,7 @@
       key: 'execSuccess',
       label: '鎴愬姛鍚�',
       initVal: card.execSuccess || 'grid',
-      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍笺�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�',
+      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻�傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級锛汙no_target_menu@ 涓嶆墽琛屾墦寮�鑿滃崟銆�' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂扮粍浠讹紱閫夋嫨鍒锋柊琛� / 缁勪欢鏃讹紝濡傛灉褰撳墠琛屾暟鎹笉瀛樺湪浼氬埛鏂扮粍浠躲�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級锛汙no_target_menu@ 涓嶆墽琛屾墦寮�鑿滃崟銆�',
       required: true,
       options: [{
         value: 'never',
@@ -1448,6 +1906,9 @@
       }, {
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
+      }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
       }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
@@ -1459,7 +1920,7 @@
       key: 'execError',
       label: '澶辫触鍚�',
       initVal: card.execError || 'never',
-      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍硷紝娉細涓婄骇缁勪欢鍦ㄦ暟鎹簮涓坊鍔犮��',
+      tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊鍝竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻�傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級銆�' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂扮粍浠讹紱閫夋嫨鍒锋柊琛� / 缁勪欢鏃讹紝濡傛灉褰撳墠琛屾暟鎹笉瀛樺湪浼氬埛鏂扮粍浠躲�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆傚闇�璇煶鎾姤璇蜂互@speak@寮�澶达紝鎾姤鍐呭鎴栨枃浠舵斁缃簬<<>>涓�傝繑鍥炰俊鎭紙@retmsg锛夌壒娈婃爣璇嗭細@close_tab@ 鎵ц锛堝叧闂爣绛�-绠$悊绯荤粺锛夛紱@close_popup@ 鎵ц锛堝叧闂脊绐楋級锛汙goback@ 鎵ц锛堣繑鍥炰笂涓�椤�-瀛愬簲鐢級銆�',
       required: true,
       options: [{
         value: 'never',
@@ -1471,6 +1932,9 @@
         value: 'grid',
         text: '鍒锋柊褰撳墠缁勪欢'
       }, {
+        value: 'line_grid',
+        text: '鍒锋柊琛� / 缁勪欢',
+      }, {
         value: 'mainline',
         text: '鍒锋柊涓婄骇缁勪欢 - 琛�'
       },
@@ -1480,7 +1944,7 @@
       type: 'select',
       key: 'popClose',
       label: '鍏抽棴鍚�',
-      initVal: card.popClose || 'never',
+      initVal: card.popClose || 'grid',
       required: true,
       options: [{
         value: 'never',
@@ -1507,18 +1971,70 @@
         text: '涓嶉噸缃�'
       }]
     },
+    // {
+    //   type: 'radio',
+    //   key: 'exportType',
+    //   label: '瀵煎嚭鏂瑰紡',
+    //   initVal: card.exportType || 'download',
+    //   tooltip: '',
+    //   required: true,
+    //   options: [{
+    //     value: 'download',
+    //     text: '涓嬭浇鏈湴'
+    //   }, {
+    //     value: 'link',
+    //     text: '鐢熸垚閾炬帴'
+    //   }]
+    // },
     {
-      type: 'number',
-      key: 'width',
-      min: 1,
-      max: 24,
-      precision: 0,
-      label: '瀹藉害',
-      initVal: card.width || 12,
-      tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
-      forbid: card.eleType !== 'button',
+      type: 'radio',
+      key: 'shortUrl',
+      label: '鐭摼鎺�',
+      initVal: card.shortUrl || 'false',
+      options: [{
+        value: 'false',
+        text: '绂佺敤'
+      }, {
+        value: 'true',
+        text: '鍚敤'
+      }]
+    },
+    {
+      type: 'textarea',
+      key: 'shareUrl',
+      label: '閾炬帴鍦板潃',
+      initVal: card.shareUrl || '',
+      tooltip: '閾炬帴涓鏋滃瓨鍦ˊBID@鎴朄ID@灏嗚嚜鍔ㄦ浛鎹€��',
       required: true
     },
+    {
+      type: 'textarea',
+      key: 'shareProUrl',
+      label: '姝e紡閾炬帴',
+      initVal: card.shareProUrl || '',
+      tooltip: '閾炬帴涓鏋滃瓨鍦ˊBID@鎴朄ID@灏嗚嚜鍔ㄦ浛鎹€��',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'shareTip',
+      label: '鍒嗕韩鎻愮ず',
+      initVal: card.shareTip || '',
+      tooltip: '鍒嗕韩鏃跺鐢ㄦ埛鐨勬彁绀轰俊鎭��',
+      required: false
+    },
+    // {
+    //   type: 'number',
+    //   key: 'width',
+    //   min: 1,
+    //   max: 24,
+    //   precision: 0,
+    //   label: '瀹藉害',
+    //   initVal: card.width || 12,
+    //   tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
+    //   forbid: card.eleType !== 'button',
+    //   required: true
+    // },
     {
       type: 'radio',
       key: 'show',
@@ -1580,7 +2096,7 @@
       initVal: card.syncComponent || [],
       tooltip: '鎵ц鎴愬姛鍚庯紙鎴栧脊绐楁爣绛惧叧闂椂锛夛紝闇�瑕佸悓姝ュ埛鏂扮殑缁勪欢銆傛敞锛氶�夋嫨褰撳墠缁勪欢鐨勪笂绾х粍浠舵棤鏁堬紝鍒锋柊涓婄骇缁勪欢璇烽�夋嫨鎴愬姛鍚庘�滃埛鏂颁笂绾х粍浠� - 琛屸�濄��',
       required: false,
-      options: modules
+      options: modules.length ? [...modules, {value: 'multiComponent', label: '澶氱粍浠�'}] : []
     },
     {
       type: 'radio',
@@ -1652,6 +2168,18 @@
     },
     {
       type: 'radio',
+      key: 'openTab',
+      label: '鎵撳紑鏂瑰紡',
+      initVal: card.openTab || 'newtab',
+      tooltip: '鑿滃崟鎵撳紑鏂瑰紡銆�',
+      options: [
+        {value: 'newtab', text: '鏍囩椤�'},
+        // {value: 'newpage', text: '鏂伴〉闈紙鏍囩椤碉級'},
+        {value: 'view', text: '鏂伴〉闈紙鍏ㄥ睆锛�'}
+      ]
+    },
+    {
+      type: 'radio',
       key: 'display',
       label: '鏄剧ず鏂瑰紡',
       initVal: card.display || 'modal',
@@ -1678,7 +2206,7 @@
     {
       type: 'radio',
       key: 'placement',
-      label: '鎶藉眽鏂瑰悜',
+      label: '寮瑰嚭鏂瑰悜',
       initVal: card.placement || 'right',
       required: false,
       options: [{
@@ -1707,6 +2235,44 @@
       }, {
         value: 'close',
         text: '鍏抽棴'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'popshow',
+      label: '寮圭獥灞曠ず',
+      initVal: card.popshow || 'default',
+      tooltip: '灏忕獥鍙e睍绀哄皢闅愯棌鏍囬鍙婂簳閮ㄦ寜閽��',
+      required: false,
+      options: [{
+        value: 'default',
+        text: '榛樿'
+      }, {
+        value: 'miniview',
+        text: '灏忕獥鍙�'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'preFunc',
+      label: '鍓嶇疆鍑芥暟',
+      initVal: card.preFunc || '',
+      tooltip: '鍓嶇疆鍑芥暟鎵ц瀹屾垚鍚庯紝缁撴灉浼氫紶鍏ュ唴閮ㄥ嚱鏁颁腑锛屾鏃跺唴閮ㄥ嚱鏁颁細寮傛鎵ц锛涘綋鍓嶇疆鍑芥暟杩斿洖涓璄rrCode绛変簬-1鏃讹紝灏嗕笉鍐嶆墽琛屽唴閮ㄥ嚱鏁般��',
+      required: false
+    },
+    {
+      type: 'radio',
+      key: 'recordUser',
+      label: '璁板綍鐢ㄦ埛',
+      initVal: card.recordUser || 'false',
+      tooltip: '褰撻�夋嫨鈥滄槸鈥濇椂锛屽唴閮ㄥ嚱鏁扮殑浼犲弬浼氬鍔� username 涓� fullname銆�',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '鍚�'
+      }, {
+        value: 'true',
+        text: '鏄�'
       }]
     },
     {
@@ -1758,6 +2324,21 @@
     },
     {
       type: 'radio',
+      key: 'formCache',
+      label: '琛ㄥ崟缂撳瓨',
+      initVal: card.formCache || 'false',
+      tooltip: '涓昏鐢ㄤ簬鏁版嵁淇敼鍚庯紝鏇存柊鐩稿叧琛ㄥ崟鐨勯�夐」锛屾竻绌虹紦瀛樺悗琛ㄥ崟鍐嶆鎵撳紑鏃舵暟鎹細閲嶆柊鍔犺浇銆�',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '涓嶆竻绌�'
+      }, {
+        value: 'clear',
+        text: '娓呯┖'
+      }]
+    },
+    {
+      type: 'radio',
       key: 'hidden',
       label: '闅愯棌',
       initVal: card.hidden || 'false',
@@ -1773,6 +2354,21 @@
     },
     {
       type: 'radio',
+      key: 'execType',
+      label: '璇锋眰鏂瑰紡',
+      initVal: card.execType || 'multi',
+      tooltip: '閫変腑澶氭潯鏁版嵁鏃剁殑璇锋眰鏂瑰紡锛屾敞锛氬綋閫変腑鏁版嵁瓒呰繃20鏉℃椂灏嗛�愭潯璇锋眰銆�',
+      required: false,
+      options: [{
+        value: 'multi',
+        text: '鎵归噺璇锋眰'
+      }, {
+        value: 'single',
+        text: '閫愭潯璇锋眰'
+      }]
+    },
+    {
+      type: 'radio',
       key: 'progress',
       label: '杩涘害鎻愮ず',
       initVal: card.progress || 'number',
@@ -1784,6 +2380,27 @@
         value: 'progressbar',
         text: '杩涘害鏉�'
       }]
+    },
+    {
+      type: 'table',
+      key: 'syncComponents',
+      label: '缁勪欢鍒楄〃',
+      initVal: card.syncComponents || [],
+      required: true,
+      actions: ['edit', 'del', 'add', 'move'],
+      columns: [
+        {
+          title: '缁勪欢',
+          dataIndex: 'syncComId',
+          inputType: 'cascader',
+          editable: true,
+          required: true,
+          extends: [{key: 'label', value: 'label'}],
+          width: '70%',
+          render: (text, record) => record.label,
+          options: modules
+        }
+      ]
     }
   ]
 

--
Gitblit v1.8.0