From cadfd4ed559fb170bb81d5bafbb6ae9775ba1ddc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 03 三月 2022 18:18:39 +0800 Subject: [PATCH] 2022-03-03 --- src/menu/components/share/actioncomponent/formconfig.jsx | 406 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 320 insertions(+), 86 deletions(-) diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx index 6eb2dad..369f300 100644 --- a/src/menu/components/share/actioncomponent/formconfig.jsx +++ b/src/menu/components/share/actioncomponent/formconfig.jsx @@ -1,5 +1,6 @@ import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' +import { btnCustomClasses } from '@/utils/option.js' const Formdict = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS @@ -13,6 +14,9 @@ */ export function getActionForm (card, functip, config, usefulFields, type, menulist = [], modules = []) { 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 appMenus = [] @@ -47,6 +51,32 @@ } ] + let getTabs = (list) => { + return list.filter(item => { + if (item.type !== 'tabs') return false + + item.children = item.children.map(cell => { + cell.children = getTabs(cell.children) + return cell + }) + return item + }) + } + + // if (type === 'editable') { + // opentypes = [ + // { + // value: 'excelIn', + // text: Formdict['model.form.excelIn'] + // }, { + // value: 'excelOut', + // text: Formdict['model.form.excelOut'] + // } + // ] + // } + + let tabs = getTabs(JSON.parse(JSON.stringify(modules))) + let pageTemps = [ { value: 'billprint', text: '鍗曟嵁鎵撳嵃' }, { value: 'pay', text: Formdict['model.pay'] }, @@ -55,22 +85,12 @@ const isApp = ['pc', 'mob'].includes(appType) let funTypes = [ - { value: 'changeuser', text: Formdict['header.form.func.changeuser'] }, + { value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' }, { value: 'print', text: '鏍囩鎵撳嵃' }, { value: 'closetab', text: '鏍囩鍏抽棴' }, ] if (isApp) { - pageTemps = [ - // { value: 'page', text: '鑿滃崟' }, - { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, - { value: 'billprint', text: '鍗曟嵁鎵撳嵃' }, - { value: 'pay', text: Formdict['model.pay'] }, - { value: 'custom', text: '閾炬帴' } - ] - funTypes = [ - { value: 'changeuser', text: Formdict['header.form.func.changeuser'] }, - ] appMenus = sessionStorage.getItem('appMenus') if (appMenus) { try { @@ -81,18 +101,33 @@ } else { appMenus = [] } - - if (appType === 'mob') { - opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'].includes(item.value)) - funTypes = [ - { value: 'mkBinding', text: '寮�閫氭壂鐮佺櫥褰�' }, - { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' }, - // { value: 'scan', text: '鎵竴鎵�' }, - { value: 'reAuth', text: '閲嶆柊鎺堟潈' }, - ] - } else { - opentypes = opentypes.filter(item => item.value !== 'tab') - } + } + if (appType === 'mob') { + opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'].includes(item.value)) + funTypes = [ + { value: 'scan', text: '鎵爜' }, + { value: 'logout', text: '閫�鍑�' }, + { value: 'mkBinding', text: '寮�閫氭壂鐮佺櫥褰�' }, + { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' }, + { value: 'mkUnsubscribe', text: '娉ㄩ攢璐︽埛' }, + { value: 'reAuth', text: '鍒囨崲绯荤粺锛堟竻绌虹紦瀛�-灏忕▼搴忥級' }, + { value: 'goBack', text: '杩斿洖' }, + ] + pageTemps = [ + { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, + { value: 'custom', text: '閾炬帴' } + ] + } else if (appType === 'pc') { + opentypes = opentypes.filter(item => item.value !== 'tab') + funTypes = [ + { value: 'changeuser', text: '鍒囨崲鐢ㄦ埛' }, + ] + pageTemps = [ + { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, + { value: 'billprint', text: '鍗曟嵁鎵撳嵃' }, + { value: 'pay', text: Formdict['model.pay'] }, + { value: 'custom', text: '閾炬帴' } + ] } if (type === 'chart' && appType !== 'mob') { @@ -100,12 +135,30 @@ } let refresh = [] - if (sessionStorage.getItem('editMenuType') === 'popview') { // 寮圭獥鏍囩 + if (viewType === 'popview') { // 寮圭獥鏍囩 opentypes = opentypes.filter(item => item.value !== 'popview' && item.value !== 'funcbutton') refresh.push({ - value: 'popclose', - text: '鏍囩鍒锋柊' + value: 'closepoptab', // 鍏抽棴寮圭獥鏍囩 + text: '鍏抽棴寮圭獥' }) + refresh.push({ + value: 'popclose', // 鎵ц寮圭獥鍏抽棴鏃剁殑鍒锋柊 + text: '鍒锋柊婧愮粍浠�' + }) + } + + if (type === 'card') { + opentypes.push({ + value: 'form', + text: '琛ㄥ崟' + }) + } + + if (!card.control && card.controlField) { + card.control = 'disabled' + } + if (appType === 'mob' && card.control === 'parent') { + card.control = '' } let forms = [ @@ -120,10 +173,24 @@ { type: 'select', key: 'funcType', - label: Formdict['header.form.funcType'], + label: '鍔熻兘绫诲瀷', initVal: card.funcType || '', required: true, options: funTypes + }, + { + type: 'radio', + key: 'formType', + label: '琛ㄥ崟绫诲瀷', + initVal: card.formType || 'switch', + required: true, + options: [{ + value: 'switch', + text: '寮�鍏�' + }, { + value: 'radio', + text: '鍕鹃�夋' + }] }, { type: 'select', @@ -156,7 +223,6 @@ label: '鎸夐挳鍚嶇О', initVal: card.label, required: true, - readonly: false }, { type: 'radio', @@ -194,9 +260,7 @@ initVal: card.innerFunc || '', tooltip: functip, fields: usefulFields, - tooltipClass: 'middle', required: false, - readonly: false }, { type: 'select', @@ -208,12 +272,19 @@ }, { type: 'select', + key: 'printTemp', + label: '鎵撳嵃妯℃澘', + initVal: card.printTemp || '', + required: true, + options: printTemps + }, + { + type: isApp ? 'select' : 'cascader', key: 'linkmenu', label: '鍏宠仈鑿滃崟', - initVal: card.linkmenu || '', + initVal: card.linkmenu || (isApp ? '' : []), required: true, - forbid: !isApp, - options: appMenus + options: isApp ? appMenus : menulist }, { type: 'textarea', @@ -242,7 +313,6 @@ label: Formdict['header.form.outerFunc'], initVal: card.outerFunc || '', required: false, - readonly: false }, { type: 'textarea', @@ -317,41 +387,21 @@ label: Formdict['header.form.callbackFunc'], initVal: card.callbackFunc || '', required: false, - readonly: false }, { type: 'select', key: 'Ot', label: Formdict['header.form.isRequired'], - initVal: card.Ot || 'requiredSgl', + initVal: card.Ot || (card.sqlType === 'insert' ? 'notRequired' : 'requiredSgl'), required: true, - forbid: card.$type === 'tableButton', options: [] - }, - { - type: 'cascader', - key: 'linkmenu', - label: Formdict['model.form.linkmenu'], - initVal: card.linkmenu || [], - required: true, - forbid: isApp, - options: menulist - }, - { - type: 'cascader', - key: 'refreshTab', - label: '鍒锋柊鏍囩', - initVal: card.refreshTab || [], - required: false, - forbid: isApp, - options: menulist }, { type: 'select', key: 'execSuccess', label: Formdict['model.form.afterSuccess'], - initVal: card.execSuccess || 'never', - tooltip: refresh.length ? '鎵ц鏍囩鍒锋柊鏃讹紝浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', + initVal: card.execSuccess || 'grid', + tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', required: true, options: [{ value: 'never', @@ -360,8 +410,14 @@ value: 'grid', text: '鍒锋柊褰撳墠缁勪欢' }, { + value: 'line', + text: '鍒锋柊琛�' + }, { value: 'mainline', text: '鍒锋柊涓婄骇缁勪欢 - 琛�' + }, { + value: !appType ? 'closetab' : 'goback', + text: !appType ? '鍏抽棴鏍囩' : '杩斿洖锛堜笂涓�涓〉闈級' }, ...refresh] }, @@ -370,7 +426,7 @@ key: 'execError', label: Formdict['model.form.afterError'], initVal: card.execError || 'never', - tooltip: refresh.length ? '鎵ц鏍囩鍏抽棴鍒锋柊鏃讹紝浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', + tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', required: true, options: [{ value: 'never', @@ -378,6 +434,9 @@ }, { value: 'grid', text: '鍒锋柊褰撳墠缁勪欢' + }, { + value: 'line', + text: '鍒锋柊琛�' }, { value: 'mainline', text: '鍒锋柊涓婄骇缁勪欢 - 琛�' @@ -433,6 +492,7 @@ label: '鏄剧ず涓�', initVal: card.show || 'button', required: true, + forbid: type === 'datacard' && appType === 'mob', // 绉诲姩绔紝婊戝姩鏄剧ず鐨勬寜閽彧鏄剧ず鏂囧瓧 options: [{ value: 'icon', text: '鍥炬爣' @@ -448,13 +508,13 @@ type: 'radio', key: 'swipe', label: "婊戝姩鏄剧ず", - initVal: card.swipe || 'false', + initVal: card.swipe === 'false' ? 'left' : (card.swipe || 'left'), // 绉诲姩绔粎淇濈暀婊戝姩鏄剧ず鎸夐挳 required: false, forbid: (type !== 'datacard' || appType !== 'mob'), options: [{ - value: 'false', - text: '鍚�' - }, { + // value: 'false', + // text: '鍚�' + // }, { value: 'left', text: '宸︽粦' }, { @@ -468,6 +528,7 @@ label: Formdict['model.icon'], initVal: card.icon, required: false, + forbid: type === 'datacard' && appType === 'mob', // 绉诲姩绔紝婊戝姩鏄剧ず鐨勬寜閽彧鏄剧ず鏂囧瓧 options: [] }, { @@ -477,7 +538,32 @@ initVal: card.class, tooltip: '姝ら鑹蹭负鎸夐挳鍒濆鍖栭鑹诧紝鍙湪鏍峰紡璋冩暣涓慨鏀广��', required: false, - options: [] + forbid: type === 'datacard' && appType === 'mob', // 绉诲姩绔紝婊戝姩鏄剧ず鐨勬寜閽笉璁剧疆閫氱敤棰滆壊 + options: btnCustomClasses + }, + { + type: 'radio', + key: 'color', + label: Formdict['model.form.color'], + initVal: card.color || 'primary', + required: false, + forbid: (type !== 'datacard' || appType !== 'mob'), // 绉诲姩绔紝婊戝姩鏄剧ず鐨勬寜閽彧鍙缃浐瀹氶鑹� + options: [{ + value: 'primary', + text: '钃�' + }, { + value: 'danger', + text: '绾�' + }, { + value: 'warning', + text: '姗�' + }, { + value: 'success', + text: '缁�' + }, { + value: 'light', + text: '鐏�' + }] }, { type: 'radio', @@ -503,7 +589,7 @@ { type: 'radio', key: 'pagination', - label: Formdict['header.form.pagination'], + label: '鍒嗛〉', initVal: card.pagination || 'false', required: false, options: [{ @@ -529,41 +615,43 @@ }] }, { - type: 'mcascader', + type: 'cascader', key: 'syncComponent', - label: '鍚屾鍒锋柊', + label: '鍒锋柊缁勪欢', initVal: card.syncComponent || [], + tooltip: '鎵ц鎴愬姛鍚庯紙鎴栧脊绐楁爣绛惧叧闂椂锛夛紝闇�瑕佸悓姝ュ埛鏂扮殑缁勪欢', required: false, options: modules }, { - type: 'select', - key: 'controlField', - label: '鎺у埗瀛楁', - tooltip: '绂佺敤鎺у埗瀛楁锛屽彲鏍规嵁鏁版嵁鎺у埗鎸夐挳鏄惁绂佺敤銆�', - initVal: card.controlField || '', + type: 'cascader', + key: 'switchTab', + label: '鍒囨崲鏍囩', + initVal: card.switchTab || [], + tooltip: '鎵ц鎴愬姛鍚庯紝闇�瑕佸垏鎹㈢殑鏍囩椤�', required: false, - allowClear: true, - options: columns + options: tabs }, { - type: 'text', - key: 'controlVal', - label: '鎺у埗鍊�', - tooltip: '褰撻�夋嫨鎺у埗瀛楁锛屼笖瀛楁鍊间笌鎺у埗鍊肩浉绛夋椂锛屾寜閽細绂佺敤锛屽涓�肩敤閫楀彿鍒嗛殧銆�', - initVal: card.controlVal || '', - required: false + type: 'cascader', + key: 'refreshTab', + label: '鍒锋柊鑿滃崟', + initVal: card.refreshTab || [], + tooltip: '鎵ц鎴愬姛鍚庯紙鎴栧姛鑳芥寜閽腑鏍囩鍏抽棴绫诲瀷锛夛紝闇�瑕佸悓姝ュ埛鏂扮殑鑿滃崟', + required: false, + forbid: isApp || viewType === 'popview', + options: menulist }, { - type: 'select', + type: !appType ? 'cascader' : 'select', key: 'openmenu', label: '鎵撳紑鑿滃崟', tooltip: '鎵ц鎴愬姛鍚庨渶瑕佹墦寮�鐨勮彍鍗曘��', - initVal: card.openmenu || '', - forbid: appType !== 'pc' && appType !== 'mob', + initVal: card.openmenu || (!appType ? [] : ''), required: false, allowClear: true, - options: appType !== 'mob' ? appMenus : [...appMenus, {value: 'goback', text: '杩斿洖'}] + options: appType === 'mob' ? [...appMenus, {value: 'goback', text: '杩斿洖'}] : (appType === 'pc' ? appMenus : menulist), + forbid: viewType === 'popview' }, { type: 'text', @@ -571,7 +659,15 @@ label: '杩斿洖鍊�', tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺��', initVal: card.output || '', - forbid: appType !== 'pc' && appType !== 'mob', + required: false, + forbid: viewType === 'popview' + }, + { + type: 'text', + key: 'tipTitle', + label: '纭鎻愮ず', + initVal: card.tipTitle || '', + tooltip: '娉細寮圭獥锛堣〃鍗曪級鍦ㄦ樉绀轰负鏄惁妗嗘椂鏈夋晥銆�', required: false }, { @@ -607,7 +703,7 @@ type: 'number', key: 'ratio', min: 1, - max: 24, + max: 3000, precision: 0, label: '姣斾緥', initVal: card.ratio || 85, @@ -619,7 +715,6 @@ key: 'placement', label: '鎶藉眽鏂瑰悜', initVal: card.placement || 'right', - tooltip: '浣跨敤鎶藉眽鏃舵湁鏁堛��', required: false, options: [{ value: 'right', @@ -635,6 +730,145 @@ text: '涓嬩晶' }] }, + { + type: 'radio', + key: 'clickouter', + label: '鐐瑰嚮钂欏眰', + initVal: card.clickouter || 'unclose', + required: false, + options: [{ + value: 'unclose', + text: '涓嶅叧闂�' + }, { + value: 'close', + text: '鍏抽棴' + }] + }, + { + type: 'radio', + key: 'reload', + label: '涓婁竴椤�', + initVal: card.reload || 'false', + tooltip: '鎴愬姛鍚庢槸鍚﹀埛鏂颁笂椤电殑鏁版嵁銆傛敞锛氬湪鏄庣浜慉PP鎴栧皬绋嬪簭涓湁鏁堛��', + forbid: appType !== 'mob', + options: [{ + value: 'false', + text: '涓嶅埛鏂�' + }, { + value: 'true', + text: '鍒锋柊' + }] + }, + { + type: 'radio', + key: 'position', + label: '鏄剧ず浣嶇疆', + initVal: card.position || 'middle', + tooltip: '娉細寮圭獥锛堣〃鍗曪級鍦ㄦ樉绀轰负鏄惁妗嗘椂鏈夋晥銆�', + required: false, + forbid: appType !== 'mob', + options: [{ + value: 'middle', + text: '涓儴' + }, { + value: 'bottom', + text: '搴曢儴' + }] + }, + { + type: 'radio', + key: 'control', + label: '鎸夐挳鎺у埗', + initVal: card.control || (card.controlField ? 'disabled' : ''), + tooltip: '褰撻�夋嫨绂佺敤鎴栭殣钘忥紝涓斿瓧娈靛�间笌鎺у埗鍊肩浉绛夋椂锛屾寜閽細闅愯棌鎴栫鐢ㄣ�傚綋閫夋嫨涓婄骇锛屼富琛ㄥ瓧娈靛�间笌鎺у埗鍊肩浉绛夋垨涓昏〃瀛楁鍊间笉瀛樺湪鏃讹紝鎸夐挳浼氶殣钘忋�傛敞锛氬涓�肩敤閫楀彿鍒嗛殧', + required: false, + options: [{ + value: '', + text: '鏃�' + }, { + value: 'disabled', + text: '绂佺敤' + }, { + value: 'hidden', + text: '闅愯棌' + }, { + value: 'parent', + text: '涓婄骇' + }] + }, + { + type: 'select', + key: 'controlField', + label: '鎺у埗瀛楁', + initVal: card.controlField || '', + required: true, + allowClear: true, + options: columns + }, + { + type: 'text', + key: 'controlVal', + label: '鎺у埗鍊�', + initVal: card.controlVal || '', + required: false + }, + { + type: 'splitLine', + key: 'title', + label: '琛ㄥ崟', + initVal: '' + }, + { + type: 'text', + key: 'field', + label: Formdict['model.form.field'], + initVal: card.field || '', + required: true, + readonly: false + }, + { + type: 'radio', + key: 'size', + label: '寮�鍏冲昂瀵�', + initVal: card.size || 'default', + options: [{ + value: 'default', + text: '澶�' + }, { + value: 'small', + text: '灏�' + }] + }, + { + type: 'text', + key: 'openVal', + label: '寮�鍚��', + initVal: card.openVal === undefined ? '' : card.openVal + '', + tooltip: '褰撳紑鍚笌鍏抽棴鍊煎潎涓烘鏁存暟鏃讹紝榛樿杞崲涓篒NT绫诲瀷銆�', + required: false + }, + { + type: 'text', + key: 'closeVal', + label: '鍏抽棴鍊�', + initVal: card.closeVal === undefined ? '' : card.closeVal + '', + tooltip: '褰撳紑鍚笌鍏抽棴鍊煎潎涓烘鏁存暟鏃讹紝榛樿杞崲涓篒NT绫诲瀷銆�', + required: false + }, + { + type: 'text', + key: 'openText', + label: '寮�鍚彁绀�', + initVal: card.openText || '', + required: false, + }, + { + type: 'text', + key: 'closeText', + label: '鍏抽棴鎻愮ず', + initVal: card.closeText || '', + required: false, + }, ] return forms -- Gitblit v1.8.0