From da34633b25d16359cd91a656acad5e811f9972b7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 14 三月 2023 18:09:54 +0800 Subject: [PATCH] 2023-03-14 --- src/menu/components/card/cardcellcomponent/formconfig.jsx | 475 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 352 insertions(+), 123 deletions(-) diff --git a/src/menu/components/card/cardcellcomponent/formconfig.jsx b/src/menu/components/card/cardcellcomponent/formconfig.jsx index f3bfb6d..859dc58 100644 --- a/src/menu/components/card/cardcellcomponent/formconfig.jsx +++ b/src/menu/components/card/cardcellcomponent/formconfig.jsx @@ -1,14 +1,11 @@ -import zhCN from '@/locales/zh-CN/model.js' -import enUS from '@/locales/en-US/model.js' - -const Formdict = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS +import MenuUtils from '@/utils/utils-custom.js' /** - * @description 鑾峰彇鎸夐挳琛ㄥ崟閰嶇疆淇℃伅 - * @param {*} card 缂栬緫鎸夐挳 - * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 + * @description 鑾峰彇鍏冪礌閰嶇疆淇℃伅 + * @param {*} card + * @param {*} type */ -export function getCardCellForm (card, type) { +export function getCardCellForm (card, cards, cardCell) { let _options = [ { value: 'text', text: '鏂囨湰'}, { value: 'number', text: '鏁板��'}, @@ -20,26 +17,30 @@ { value: 'barcode', text: '鏉″舰鐮�'}, { value: 'qrcode', text: '浜岀淮鐮�'}, { value: 'currentDate', text: '褰撳墠鏃堕棿'}, + { value: 'formula', text: '鍏紡'}, + { value: 'color', text: '棰滆壊'}, ] - if (type === 'table') { - _options.push({value: 'sequence', text: '搴忓彿'}) + let anchors = [] + if (window.GLOB.customMenu.Template === 'BaseTable') { + anchors = null + } else { + anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, cards.uuid) || [] } - let appMenus = [] - const isApp = sessionStorage.getItem('appType') === 'pc' - if (isApp) { - appMenus = sessionStorage.getItem('appMenus') - if (appMenus) { - try { - appMenus = JSON.parse(appMenus) - appMenus = appMenus.map(item => ({value: item.MenuID, text: item.MenuName})) - } catch { - appMenus = [] - } - } else { - appMenus = [] - } + if (cards.type === 'table' || (cards.type === 'card' && cards.subtype !== 'propcard')) { + _options.push({value: 'sequence', text: '搴忓彿'}) + } else if (card.eleType === 'sequence') { // 鎷栨嫿娣诲姞绫诲瀷杞崲 + card.eleType = 'text' + } + if (card.eleType === 'icon' && card.datatype === 'dynamic' && !card.field) { // 鎷栨嫿娣诲姞绫诲瀷杞崲 + card.datatype = 'static' + } + let appType = sessionStorage.getItem('appType') + + let tooltip = '' + if (cardCell.$cardType === 'extendCard') { + tooltip = '鍦ㄦ墿灞曞崱鐗囦腑锛屽姩鎬佹暟鎹樉绀哄�间负鑾峰彇鍒扮殑绗竴琛屾暟鎹��' } let forms = [ @@ -52,51 +53,11 @@ options: _options }, { - type: 'select', - key: 'icon', - label: '鍥炬爣', - initVal: card.icon, - required: true, - options: [ - { value: 'question-circle', text: 'question-circle'}, - { value: 'alert', text: 'alert'}, - { value: 'cloud', text: 'cloud'}, - { value: 'eye', text: 'eye'}, - { value: 'eye-invisible', text: 'eye-invisible'}, - { value: 'android', text: 'android'}, - { value: 'apple', text: 'apple'}, - { value: 'windows', text: 'windows'}, - { value: 'ie', text: 'ie'}, - { value: 'chrome', text: 'chrome'}, - { value: 'github', text: 'github'}, - { value: 'aliwangwang', text: 'aliwangwang'}, - { value: 'dingding', text: 'dingding'}, - { value: 'wechat', text: 'wechat'}, - { value: 'alipay', text: 'alipay'}, - { value: 'weibo-square', text: 'weibo-square'}, - { value: 'weibo-circle', text: 'weibo-circle'}, - { value: 'taobao-circle', text: 'taobao-circle'}, - { value: 'weibo', text: 'weibo'}, - { value: 'twitter', text: 'twitter'}, - { value: 'youtube', text: 'youtube'}, - { value: 'alipay-circle', text: 'alipay-circle'}, - { value: 'taobao', text: 'taobao'}, - { value: 'skype', text: 'skype'}, - { value: 'qq', text: 'qq'}, - { value: 'gitlab', text: 'gitlab'}, - { value: 'zhihu', text: 'zhihu'}, - { value: 'slack', text: 'slack'}, - { value: 'sketch', text: 'sketch'}, - { value: 'yahoo', text: 'yahoo'}, - { value: 'reddit', text: 'reddit'}, - { value: 'dribbble', text: 'dribbble'}, - ] - }, - { type: 'radio', key: 'datatype', label: '鏁版嵁绫诲瀷', initVal: card.datatype || 'static', + tooltip, required: true, options: [ { value: 'dynamic', text: '鍔ㄦ��' }, @@ -112,18 +73,26 @@ options: [] }, { + type: 'icon', + key: 'icon', + label: '鍥炬爣', + initVal: card.icon, + required: true + }, + { type: 'text', key: 'value', min: 0, label: '鍐呭', initVal: card.value || '', - tooltip: '鏂囨湰绫诲瀷锛屼細鏇挎崲鍐呭涓殑@username@銆丂fullName@銆丂login_city@銆�', + tooltip: '鏂囨湰绫诲瀷锛屼細鏇挎崲鍐呭涓殑@username@銆丂fullName@銆丂mk_city@銆丂appname@銆丂bid@銆�', required: true }, { type: 'file', key: 'url', label: '鍥剧墖/鏂囦欢', + tooltip: '浣跨敤闈欐�佸浘鐗囨椂锛孈icon@浠h〃澶村儚銆�', initVal: card.url || '', maxfile: 1, required: true @@ -151,6 +120,52 @@ ] }, { + type: 'number', + key: 'startTime', + precision: 0, + label: '寮�濮嬫椂闂�', + initVal: card.startTime || 0, + tooltip: '瑙嗛寮�濮嬫挱鏀剧殑鏃堕棿锛岀敤浜庤皟鏁磋棰戝垵濮嬪寲灞曠ず鐨勭晫闈€��', + required: false + }, + { + type: 'radio', + key: 'posterType', + label: '棰勮鍥�', + initVal: card.posterType || '', + required: false, + options: [ + { value: '', text: '鏃�' }, + { value: 'dynamic', text: '鍔ㄦ��' }, + { value: 'static', text: '闈欐��' } + ] + }, + { + type: 'file', + key: 'posterUrl', + label: '棰勮鍦板潃', + initVal: card.posterUrl || '', + maxfile: 1, + required: true + }, + { + type: 'select', + key: 'posterField', + label: '棰勮鍦板潃', + initVal: card.posterField || '', + required: true + }, + { + type: 'number', + key: 'decimal', + min: 0, + max: 18, + decimal: 0, + label: '灏忔暟浣�', + initVal: card.decimal === undefined ? '' : card.decimal, + required: false + }, + { type: 'select', key: 'format', label: '鏍煎紡鍖�', @@ -161,7 +176,18 @@ { value: '', text: '鏃�' }, { value: 'percent', text: '鐧惧垎鏁�' }, { value: 'thdSeparator', text: '鍗冨垎浣�' }, - { value: 'YYYY-MM-DD', text: 'YYYY-MM-DD' } + { value: 'abs', text: '缁濆鍊�' }, + { value: 'encryption', text: '鍔犲瘑'}, + { value: 'YYYY-MM-DD', text: 'YYYY-MM-DD' }, + { value: 'YYYY-MM-DD HH:mm', text: 'YYYY-MM-DD HH:mm' }, + { value: 'YYYY-MM-DD HH:mm:ss', text: 'YYYY-MM-DD HH:mm:ss' }, + { value: 'MM鏈圖D鏃�', text: 'MM鏈圖D鏃�' }, + { value: 'YYYY骞碝M鏈圖D鏃�', text: 'YYYY骞碝M鏈圖D鏃�' }, + { value: 'HH:mm', text: '鏃跺垎锛堜緥锛�16:57锛�' }, + { value: 'ahh:mm', text: '鑷畾涔�1锛堜緥锛氫笂鍗�10:57锛�' }, + { value: 'MM鏈圖D鏃� ahh:mm', text: '鑷畾涔�2锛堜緥锛�12鏈�17鏃� 涓婂崍10:57锛�' }, + { value: 'calendar1', text: '鑷畾涔�3锛堜緥锛氫粖澶� 涓婂崍10:57锛�' }, + { value: 'calendar2', text: '鑷畾涔�4锛堜緥锛氬垰鍒氥�佹槰澶┿��5澶╁墠锛�' }, ] }, { @@ -197,15 +223,98 @@ key: 'tooltip', label: '鎻愮ず淇℃伅', initVal: card.tooltip || '', - tooltip: '榧犳爣鎮诞鏃舵樉绀恒��', + tooltip: '榧犳爣鎮诞鏃舵樉绀恒�傛敞锛氬浣跨敤鍔ㄦ�佷俊鎭紝璇峰湪姝ゅ濉啓鐩稿簲鐨勫瓧娈靛悕銆�', + forbid: appType === 'mob', required: false + }, + { + type: 'radio', + key: 'showType', + label: '灞曠幇褰㈠紡', + initVal: card.showType || 'line', + required: false, + options: [ + { value: 'line', text: '杩涘害鏉�' }, + { value: 'circle', text: '杩涘害鍦�' }, + { value: 'dashboard', text: '浠〃鐩�' }, + ] }, { type: 'color', key: 'color', label: '棰滆壊', - initVal: card.color || 'rgba(0, 0, 0, 0.85)', + tooltip: '杩涘害鏉″畬鎴愬尯鍩熴�佸垎鍓茬嚎鎴栦簩缁寸爜鐨勯鑹层��', + initVal: card.color || '#1890ff', required: true + }, + { + type: 'color', + key: 'trailColor', + label: '鏈畬鎴愰鑹�', + initVal: card.trailColor || '#f5f5f5', + required: false + }, + { + type: 'radio', + key: 'showInfo', + label: '杩涘害鍊�', + initVal: card.showInfo || 'false', + required: false, + options: [ + { value: 'true', text: '鏄剧ず' }, + { value: 'false', text: '闅愯棌' } + ] + }, + { + type: 'color', + key: 'infoColor', + label: '杩涘害鍊奸鑹�', + initVal: card.infoColor || 'rgba(0, 0, 0, 0.65)', + required: false + }, + { + type: 'radio', + key: 'strokeLinecap', + label: '绾垮瀷', + initVal: card.strokeLinecap || 'round', + required: false, + options: [ + { value: 'round', text: '鍦嗚' }, + { value: 'square', text: '鐩磋' }, + ] + }, + { + type: 'radio', + key: 'textAlign', + label: '瀵归綈鏂瑰紡', + initVal: card.textAlign || 'left', + required: false, + options: [ + { value: 'left', text: '宸�' }, + { value: 'center', text: '涓�' }, + { value: 'right', text: '鍙�' }, + ] + }, + { + type: 'number', + key: 'strokeWidth', + min: 1, + max: 200, + precision: 0, + label: '绾挎潯瀹藉害', + initVal: card.strokeWidth || 8, + required: true, + }, + { + type: 'number', + key: 'outlineWidth', + min: 10, + max: 2000, + precision: 0, + label: '澶栧舰瀹藉害', + initVal: card.outlineWidth || '', + tooltip: '澶栧舰瀹藉害涓虹┖鏃讹紝瀹藉害涓哄厓绱犵殑瀹藉害銆傛敞锛氳秴鍑烘椂鎸夊厓绱犲搴﹁绠椼��', + required: false }, { type: 'number', @@ -233,15 +342,35 @@ min: 1, max: 10, label: '楂樺害(琛�)', - initVal: card.height, - tooltip: '鍐呭鏄剧ず琛屾暟锛屽�间负绌烘椂楂樺害鑷�傚簲锛屾敞锛氳嚜閫傚簲楂樺害浠呭湪璁剧疆鍗$墖楂樺害鍚庢湁鏁堛��', + initVal: card.height !== undefined ? card.height : 1, + tooltip: '鍐呭鏄剧ず琛屾暟锛屽�间负绌烘椂楂樺害鑷�傚簲銆�', required: false + }, + { + type: 'select', + key: 'bgImage', + label: '鍔ㄦ�佽儗鏅�', + initVal: card.bgImage || '', + tooltip: '缁戝畾鏁版嵁婧愬瓧娈碉紝鍙牴鎹繑鍥炲�兼敼鍙樿儗鏅浘銆�', + required: false, + allowClear: true, + options: [] + }, + { + type: 'cascader', + key: 'anchors', + label: '璺宠浆閿氱偣', + initVal: card.anchors || [], + tooltip: sessionStorage.getItem('appType') === 'mob' ? '娉細灏忕▼搴忎腑鏃犳晥' : '', + required: false, + options: anchors, + forbid: !anchors }, { type: 'number', key: 'barHeight', min: 5, - max: 50, + max: 500, label: '楂樺害', initVal: card.barHeight || 25, required: true, @@ -250,8 +379,8 @@ type: 'number', key: 'qrWidth', min: 5, - max: 500, - label: '瀹藉害', + max: 1000, + label: '浜岀淮鐮佸昂瀵�', initVal: card.qrWidth || 50, required: true, }, @@ -282,7 +411,8 @@ min: 0, max: 50, label: '绾垮', - initVal: card.borderWidth || 1, + initVal: card.borderWidth === undefined ? 1 : card.borderWidth, + tooltip: '绾垮涓�0鏃讹紝涓烘柟渚垮湪寮�鍙戞椂閫変腑榛樿楂樺害涓�10px锛岃娉ㄦ剰璋冩暣鍐呭杈硅窛銆�', required: true }, { @@ -310,6 +440,29 @@ { value: '9:16', text: '9:16' }, ] }, + // { + // type: 'radio', + // key: 'backgroundSize', + // label: '鍥惧儚澶у皬', + // initVal: card.backgroundSize || 'cover', + // required: false, + // options: [ + // { value: 'cover', text: '瑕嗙洊' }, + // { value: 'contain', text: '鍖呭惈' }, + // { value: 'auto', text: '鑷�傚簲' }, + // ] + // }, + { + type: 'number', + key: 'maxWidth', + min: 10, + max: 2000, + label: '鏈�澶у搴�', + initVal: card.maxWidth || '', + tooltip: '鍥剧墖瀹藉害鐨勬渶澶у�笺��', + help: '娉細姝ゅ�煎瓨鍦ㄦ椂锛屽乏鍙冲杈硅窛涓�0灞呬腑鏄剧ず銆�', + required: false, + }, { type: 'select', key: 'aspectRatio', @@ -328,7 +481,6 @@ initVal: card.link || '', tooltip: '鍔ㄦ�佸湴鍧�涓虹粦瀹氬瓧娈靛�笺��', required: false, - forbid: isApp, options: [ { value: '', text: '鏃�' }, { value: 'dynamic', text: '鍔ㄦ��' }, @@ -336,62 +488,27 @@ ] }, { - type: 'select', - key: 'link', - label: '閾炬帴', - initVal: card.link || '', + type: 'radio', + key: 'linkType', + label: '閾炬帴绫诲瀷', + initVal: card.linkType || 'other', required: false, - forbid: !isApp, options: [ - { value: '', text: '鏃�' }, - { value: 'page', text: '鑿滃崟' }, - { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, - { value: 'custom', text: '閾炬帴' } + { value: 'tel', text: '鐢佃瘽' }, + { value: 'email', text: '閭' }, + { value: 'other', text: '鍏朵粬' } ] }, { - type: 'select', - key: 'linkmenu', - label: '鍏宠仈鑿滃崟', - initVal: card.linkmenu || '', - required: true, - forbid: !isApp, - options: appMenus - }, - { type: 'radio', - key: 'open', - label: '鎵撳紑鏂瑰紡', - initVal: card.open || 'blank', + key: 'scale', + label: '鍥剧墖鏀惧ぇ', + initVal: card.scale || 'false', required: false, - forbid: !isApp, options: [ - { value: 'blank', text: '鏂伴〉闈�' }, - { value: 'self', text: '褰撳墠椤甸潰' } + { value: 'false', text: '涓嶅彲浠�' }, + { value: 'true', text: '鍙互' } ] - }, - { - type: 'select', - key: 'copyMenuId', - label: '澶嶅埗鑿滃崟', - initVal: card.copyMenuId || '', - required: false, - forbid: !isApp, - options: appMenus - }, - { - type: 'radio', - key: 'joint', - label: Formdict['model.form.paramJoint'], - initVal: card.joint || 'true', - required: false, - options: [{ - value: 'true', - text: Formdict['model.true'] - }, { - value: 'false', - text: Formdict['model.false'] - }] }, { type: 'select', @@ -401,6 +518,118 @@ required: true, options: [] }, + { + type: 'radio', + key: 'joint', + label: '鎷兼帴鍙傛暟', + initVal: card.joint || 'true', + required: false, + options: [{ + value: 'true', + text: '鏄�' + }, { + value: 'false', + text: '鍚�' + }] + }, + { + type: 'radio', + key: 'eval', + label: '瑙f瀽', + initVal: card.eval || 'true', + tooltip: '褰撳叕寮忓唴瀹规秹鍙婅绠楁椂璇烽�夋嫨鈥滄槸鈥濓紝褰撳叕寮忓唴瀹逛负瀛楁鎷兼帴鏃惰閫夋嫨鈥滃惁鈥濄��', + required: false, + options: [{ + value: 'true', + text: '鏄�' + }, { + value: 'false', + text: '鍚�' + }] + }, + { + type: 'textarea', + key: 'formula', + label: '鍏紡', + initVal: card.formula || '', + tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋滐紝鍦ㄤ笉浣跨敤瑙f瀽鏃舵崲琛岀鎴栫┖鏍间細鏇挎崲涓洪〉闈㈠厓绱犮�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', + placeholder: '渚嬪锛欯price@ * @number@', + required: true + }, + { + type: 'radio', + key: 'noValue', + label: '绌哄��', + initVal: card.noValue || 'show', + tooltip: '褰撳厓绱犲唴瀹逛负绌烘椂锛屾槸鍚︽樉绀哄綋鍓嶅厓绱犮�傛敞锛氭暟鍊肩被鍨嬪厓绱犲寘鎷暟瀛�0锛堥潪鏂囨湰锛夈��', + required: false, + options: [ + { value: 'show', text: '鏄剧ず' }, + { value: 'hide', text: '闅愯棌' } + ] + }, + { + type: 'radio', + key: 'fixStyle', + label: '鍓嶅悗缂�', + initVal: card.fixStyle || '', + tooltip: '鍓嶇紑涓庡悗缂�锛屼娇鐢ㄤ笌鍐呭缁熶竴鐨勬牱寮忚繕鏄嫭绔嬫牱寮忋��', + required: false, + options: [ + { value: '', text: '缁熶竴鏍峰紡' }, + { value: 'alone', text: '鐙珛鏍峰紡' } + ] + }, + { + type: 'radio', + key: 'copyable', + label: '鍙鍒�', + initVal: card.copyable || 'false', + tooltip: '鍏冪礌鏄惁鍙鍒讹紝澶嶅埗鍐呭涓嶅寘鎷墠缂�涓庡悗缂�銆�', + required: false, + options: [ + { value: 'true', text: '鏄�' }, + { value: 'false', text: '鍚�' } + ] + }, + { + type: 'number', + key: 'fixSize', + min: 10, + max: 300, + label: '瀛椾綋澶у皬', + initVal: card.fixSize || 14, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫瓧浣撳ぇ灏忋��', + required: true + }, + { + type: 'color', + key: 'fixColor', + label: '瀛椾綋棰滆壊', + initVal: card.fixColor || 'rgba(0, 0, 0, 0.65)', + tooltip: '鍓嶇紑銆佸悗缂�鐨勫瓧浣撻鑹层��', + required: true + }, + { + type: 'number', + key: 'fixLeft', + min: 0, + max: 1000, + label: '宸﹁竟璺�', + initVal: card.fixLeft || 0, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫乏杈硅窛銆�', + required: false + }, + { + type: 'number', + key: 'fixRight', + min: 0, + max: 1000, + label: '鍙宠竟璺�', + initVal: card.fixRight || 0, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫彸杈硅窛銆�', + required: false + }, ] return forms -- Gitblit v1.8.0