From 47b9baefdeeb41f50a9b7abc1abcf5e90931a89d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 31 八月 2023 11:17:48 +0800 Subject: [PATCH] 2023-08-31 --- src/menu/components/card/data-card/options.jsx | 203 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 156 insertions(+), 47 deletions(-) diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx index 733b74d..519af8e 100644 --- a/src/menu/components/card/data-card/options.jsx +++ b/src/menu/components/card/data-card/options.jsx @@ -1,13 +1,13 @@ -import { fromJS } from 'immutable' import MenuUtils from '@/utils/utils-custom.js' /** * @description Wrap琛ㄥ崟閰嶇疆淇℃伅 */ -export default function (wrap, subtype, columns = [], id = '', supNodes = [], setting) { +export default function (wrap, subtype, columns = [], id = '', supNodes = [], setting, buttons = []) { let appType = sessionStorage.getItem('appType') - let MenuType = '' - let menu = fromJS(window.GLOB.customMenu).toJS() + let isprint = sessionStorage.getItem('MenuType') === 'billPrint' + let ispop = sessionStorage.getItem('editMenuType') === 'popview' + let menu = window.GLOB.customMenu let laypage = setting && setting.laypage !== 'false' let interfaces = [] if (subtype === 'propcard' && menu.interfaces) { @@ -20,13 +20,16 @@ } }) } - - if (menu.parentId === 'BillPrintTemp') { - MenuType = 'billPrint' - } let modules = [] if (subtype === 'propcard' || subtype === 'datacard') { - modules = MenuUtils.getSupModules(menu.components, id) + modules = MenuUtils.getSupModules(menu.components, id, menu.interfaces) + + if (subtype === 'propcard' && wrap.supModule && wrap.supModule.length > 0 && wrap.supModule[0] !== 'empty') { + let has = MenuUtils.checkSupModules(modules, wrap.supModule.slice(-1)[0]) + if (!has) { + wrap.supModule = '' + } + } } let roleList = sessionStorage.getItem('sysRoles') @@ -97,9 +100,10 @@ ], linkFields: ['priKeyType'], controlFields: [ - {field: 'goback', values: ['dynamic']}, + {field: 'goback', values: ['dynamic', 'public']}, {field: 'empty', values: ['dynamic', 'public']}, - {field: 'jump', values: ['dynamic']}, + {field: 'jump', values: ['dynamic', 'public']}, + {field: 'broadcast', values: ['dynamic', 'public']}, {field: 'supModule', values: ['static']}, {field: 'publicId', values: ['public']}, ], @@ -112,7 +116,42 @@ initval: wrap.publicId || '', required: true, options: interfaces, - forbid: subtype !== 'propcard' + reset_source: true, + forbid: subtype !== 'propcard', + callback: (map, record) => { + if (!record.publicId) return + + let interfaces = window.GLOB.customMenu.interfaces || [] + + let d = interfaces.filter(m => m.uuid === record.publicId && m.status === 'true')[0] + + if (!d || !d.columns) return + let columns = JSON.parse(JSON.stringify(d.columns)) + + let _broadcast = map.get('broadcast') + + if (_broadcast && !_broadcast.forbid) { + _broadcast.options = columns + _broadcast.oriOptions = columns + map.set('broadcast', _broadcast) + } + + let _jumpField = map.get('jumpField') + + if (_jumpField && !_jumpField.forbid) { + _jumpField.options = columns + _jumpField.oriOptions = columns + map.set('jumpField', _jumpField) + } + + let _link = map.get('link') + + if (_link && !_link.forbid) { + _link.options = columns + _link.oriOptions = columns + map.set('link', _link) + } + } }, { type: 'radio', @@ -142,7 +181,7 @@ options: [ {value: 'page', label: '椤电爜'}, {value: 'switch', label: '宸﹀彸鍒囨崲', forbid: appType === 'mob' || subtype === 'tablecard'}, - {value: 'slide', label: '婊戝姩鍔犺浇', forbid: appType !== 'mob'}, + {value: 'slide', label: '婊戝姩鍔犺浇', forbid: appType !== 'mob' || ispop}, {value: 'more', label: '鏌ョ湅鏇村'}, ], controlFields: [ @@ -189,18 +228,33 @@ forbid: subtype !== 'propcard' }, { + type: 'select', + field: 'selected', + label: '鏁版嵁閫変腑', + initval: wrap.selected || 'false', + tooltip: '鍒濆鍖栵細鏁版嵁鍔犺浇鏃堕�変腑棣栬鏁版嵁锛屼粎鎵ц涓�娆°�傛暟鎹姞杞斤細姣忔鏁版嵁鍔犺浇鏃跺潎閫変腑棣栬锛堝綋鎸夐挳鎵ц瀹屾垚骞惰繑鍥炰富閿�兼椂锛岄粯璁ら�変腑涓婚敭鍊煎搴旇锛夈�傞�変腑鏍囪锛氳繑鍥炴暟鎹腑瀛樺湪 selected 瀛楁锛屼笖鍊间负 true 鐨勬暟鎹閫変腑銆�', + required: false, + options: [ + {value: 'false', label: '鏃�'}, + {value: 'init', label: '鍒濆鍖�'}, + {value: 'always', label: '鏁版嵁鍔犺浇'}, + {value: 'sign', label: '閫変腑鏍囪'} + ], + forbid: subtype !== 'datacard' + }, + { type: 'radio', field: 'selected', - label: '棣栬閫変腑', + label: '鏁版嵁閫変腑', initval: wrap.selected || 'false', - tooltip: '褰撴寜閽墽琛屽畬鎴愬苟杩斿洖涓婚敭鍊兼椂锛岄粯璁ら�変腑涓婚敭鍊煎搴旇銆�', + tooltip: '鍒濆鍖栵細鏁版嵁鍔犺浇鏃堕�変腑棣栬鏁版嵁锛屼粎鎵ц涓�娆°�傛暟鎹姞杞斤細姣忔鏁版嵁鍔犺浇鏃跺潎閫変腑棣栬銆�', required: false, options: [ {value: 'false', label: '鏃�'}, {value: 'init', label: '鍒濆鍖�'}, {value: 'always', label: '鏁版嵁鍔犺浇'}, ], - forbid: subtype === 'tablecard' + forbid: subtype !== 'propcard' }, { type: 'select', @@ -215,22 +269,13 @@ {value: 'backFont', label: '鑳屾櫙+鏂囧瓧'}, {value: 'font', label: '鏂囧瓧'}, {value: 'tabs', label: '鏍囩椤�'}, - ...(subtype === 'datacard' && appType === 'mob' ? [{value: 'check', label: '鍕鹃��'}] : []) + ...(subtype === 'datacard' ? [ + {value: 'check', label: '鍕鹃�夛紙鍦嗘锛�'}, + {value: 'check square', label: '鍕鹃�夛紙鏂规锛�'} + ] : []) ], forbid: subtype === 'tablecard' }, - // { - // type: 'radio', - // field: 'checkAll', - // label: '鍏ㄩ��', - // initval: wrap.checkAll || 'hidden', - // required: false, - // options: [ - // {value: 'hidden', label: '闅愯棌'}, - // {value: 'show', label: '鏄剧ず'}, - // ], - // forbid: subtype !== 'datacard' || appType !== 'mob' - // }, { type: 'radio', field: 'cardFloat', @@ -260,19 +305,32 @@ }, { type: 'radio', + field: 'parity', + label: '濂囧伓鑳屾櫙', + initval: wrap.parity || 'false', + tooltip: '鍋舵暟琛屼細娣诲姞鑳屾櫙鑹层��', + required: false, + options: [ + {value: 'false', label: '鏃�'}, + {value: 'true', label: '鏈�'}, + ], + forbid: subtype === 'propcard' + }, + { + type: 'radio', field: 'printType', label: '缁勪欢绫诲瀷', initval: wrap.printType || 'content', - tooltip: '閫夋嫨绫诲瀷涓恒�婇〉鐪�/椤佃剼銆嬫椂锛屾墦鍗扮殑姣忛〉閲岄兘浼氬甫鏈夎缁勪欢銆�', + tooltip: '閫夋嫨绫诲瀷涓恒�婇〉鐪�/椤佃剼銆嬫椂锛屾墦鍗扮殑姣忛〉閲岄兘浼氬甫鏈夎缁勪欢銆傛敞锛氶〉鐪夐〉鑴氫腑鏂囨湰鍏冪礌灏嗘浛鎹� @pageIndex@锛堥〉鐮侊級銆丂total@锛堟�绘暟锛夈�丂date@锛堝綋鍓嶆棩鏈燂級銆丂datetime@锛堝綋鍓嶆椂闂达級锛屼娇鐢ㄥ垎椤靛弬鏁版椂娉ㄦ剰鎵撳嵃妯℃澘鐨勯〉闈㈠竷灞�浣跨敤鍒嗛〉銆�', required: false, options: [ - {value: 'content', label: '鍐呭'}, + {value: 'content', label: '灞炴�у崱'}, {value: 'headerOrfooter', label: '椤电湁/椤佃剼'}, ], controlFields: [ {field: 'printHeight', values: ['content']}, ], - forbid: subtype !== 'propcard' || MenuType !== 'billPrint' + forbid: subtype !== 'propcard' || !isprint }, { type: 'number', @@ -281,14 +339,14 @@ initval: wrap.printHeight || '', tooltip: subtype !== 'propcard' ? '褰撳墠鏁版嵁鍗¢珮搴︾浉褰撲簬鍑犳潯鏁版嵁銆�' : '褰撳墠灞炴�у崱楂樺害鐩稿綋浜庡嚑鏉℃暟鎹��', required: false, - forbid: subtype === 'tablecard' || MenuType !== 'billPrint' + forbid: subtype === 'tablecard' || !isprint }, { type: 'select', field: 'broadcast', label: '璇煶鎾姤', initval: wrap.broadcast || '', - tooltip: '璇煶鎾姤鍦ㄧЩ鍔ㄧapp涓湁鏁堛�傛敞锛氫娇鐢ㄨ闊虫挱鎶ユ椂锛屾暟鎹簮涓嶈浣跨敤鍚屾鏌ヨ锛屾坊鍔犲畾鏃跺櫒鏃讹紝鍙惊鐜挱鎶�', + tooltip: '璇煶鎾姤鍦ㄧЩ鍔ㄧ鏈夋晥銆傛敞锛氬湪H5涓浣跨敤闊抽閾炬帴锛屾坊鍔犲畾鏃跺櫒鏃讹紝鍙惊鐜挱鎶�', required: false, options: columns, forbid: !columns || appType !== 'mob' || subtype !== 'propcard' @@ -296,15 +354,31 @@ { type: 'radio', field: 'goback', - label: '绌哄�艰繑鍥�', + label: appType === 'mob' ? '绌哄�艰繑鍥�' : '绌哄�煎叧闂�', initval: wrap.goback || 'false', - tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岃繑鍥炰笂涓�鐣岄潰銆�', + tooltip: appType === 'mob' ? '褰撴煡璇㈡暟鎹负绌烘椂锛岃繑鍥炰笂涓�鐣岄潰銆�' : '褰撴煡璇㈡暟鎹负绌烘椂锛屽叧闂綋鍓嶆爣绛鹃〉銆�', required: false, options: [ - {value: 'true', label: '鏄�'}, {value: 'false', label: '鍚�'}, + {value: 'true', label: '鏄�'}, ], - forbid: subtype !== 'propcard' || appType !== 'mob' + forbid: subtype !== 'propcard' || appType === 'pc' + }, + { + type: 'radio', + field: 'display', + label: '鏄剧ず鎺у埗', + initval: wrap.display || 'normal', + tooltip: '褰撲娇鐢ㄥ睘鎬у崱杩涜鏌愪簺涓氬姟鎿嶄綔锛屼笖涓嶉渶瑕佸睍绀哄崱鐗囦俊鎭椂锛屽彲璁剧疆涓轰笉鍙銆�', + required: false, + options: [ + {value: 'normal', label: '姝e父鏄剧ず'}, + {value: 'hidden', label: '涓嶅彲瑙�'}, + ], + controlFields: [ + {field: 'empty', values: ['normal']}, + ], + forbid: subtype !== 'propcard' }, { type: 'radio', @@ -318,6 +392,16 @@ {value: 'show', label: '鍚�'}, {value: 'hidden', label: '鏄�'}, ], + }, + { + type: 'select', + field: 'autoExec', + label: '鑷姩鎵ц', + initval: wrap.autoExec || '', + tooltip: '鏁版嵁鏇存柊鏃惰嚜鍔ㄦ墽琛屾寜閽�傛敞锛氭鎸夐挳鎵ц鎴愬姛鍚庤皑鎱庨�夋嫨鍒锋柊椤癸紝閬垮厤閫犳垚寰幆鎵ц銆�', + required: false, + options: buttons, + forbid: subtype !== 'propcard' }, { type: 'radio', @@ -334,6 +418,7 @@ controlFields: [ {field: 'jumpField', values: ['menu', 'link']}, {field: 'joint', values: ['menu', 'link']}, + {field: 'open', values: ['menu', 'link']}, {field: 'menu', values: ['menu']}, {field: 'link', values: ['link']}, ], @@ -344,7 +429,7 @@ field: 'jumpField', label: '鎺у埗瀛楁', initval: wrap.jumpField || '', - tooltip: '褰撳瓧娈靛�间负true鏃�', + tooltip: '褰撳瓧娈靛�间负true鏃惰Е鍙戣烦杞��', required: true, options: columns, forbid: subtype !== 'propcard' || appType !== 'mob' @@ -382,6 +467,18 @@ }, { type: 'radio', + field: 'open', + label: '鎵撳紑鏂瑰紡', + initval: wrap.open || 'blank', + required: false, + options: [ + {value: 'blank', label: '鏂扮獥鍙�'}, + {value: 'self', label: '褰撳墠绐楀彛'}, + ], + forbid: subtype !== 'propcard' || appType !== 'mob' + }, + { + type: 'radio', field: 'supKey', label: '涓婄骇涓婚敭', initval: wrap.supKey || 'true', @@ -391,7 +488,7 @@ {value: 'true', label: '楠岃瘉'}, {value: 'false', label: '蹇界暐'}, ], - forbid: subtype !== 'datacard' + forbid: subtype !== 'datacard' || isprint }, { type: 'cascader', @@ -401,7 +498,7 @@ required: false, options: modules, allowClear: true, - forbid: subtype !== 'propcard' + forbid: subtype !== 'propcard' || isprint }, { type: 'select', @@ -433,7 +530,7 @@ initval: wrap.supType || 'single', tooltip: '涓婄骇缁勪欢涓哄崟涓�缁勪欢鎴栧涓粍浠躲��', required: false, - forbid: subtype !== 'datacard' || appType === 'mob', + forbid: subtype !== 'datacard' || appType === 'mob' || isprint, options: [ {value: 'single', label: '鍗曠粍浠�'}, {value: 'multi', label: '澶氱粍浠�'}, @@ -446,13 +543,25 @@ type: 'radio', field: 'permission', label: '鏉冮檺楠岃瘉', - initval: wrap.permission || 'false', + initval: wrap.permission || (!appType ? 'true' : 'false'), required: false, options: [ - {value: 'true', label: '鍚敤'}, + {value: 'true', label: !appType ? '缁ф壙鑿滃崟' : '鍚敤'}, {value: 'false', label: '绂佺敤'}, ], - forbid: !appType + forbid: ispop || isprint + }, + { + type: 'radio', + field: 'cacheLocal', + label: '鏈湴缂撳瓨', + initval: wrap.cacheLocal || 'true', + required: false, + options: [ + {value: 'true', label: '缁ф壙鑿滃崟'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: ispop || isprint }, { type: 'multiselect', @@ -461,7 +570,7 @@ initval: wrap.blacklist || [], required: false, options: roleList, - forbid: !!appType + forbid: !!appType || isprint }, { type: 'text', @@ -478,7 +587,7 @@ label: '涓婄骇缁勪欢', initval: supNodes, required: true, - forbid: subtype !== 'datacard' || appType === 'mob', + forbid: subtype !== 'datacard' || appType === 'mob' || isprint, span: 24, columns: [ { -- Gitblit v1.8.0