From b69b5f6329ca5f87932436b7a6c1ddfc3377e10f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 16 五月 2024 10:56:41 +0800 Subject: [PATCH] 2024-05-16 --- src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx | 710 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 497 insertions(+), 213 deletions(-) diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx index 3a2ded3..a808760 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx @@ -1,89 +1,203 @@ -import zhCN from '@/locales/zh-CN/model.js' -import enUS from '@/locales/en-US/model.js' - -const Formdict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS - /** * @description 鑾峰彇鍥捐〃瑙嗗浘閰嶇疆琛ㄥ崟 * @param {object} card // 鍥捐〃瀵硅薄 */ -export function getBaseForm (card) { - let menulist = sessionStorage.getItem('fstMenuList') - if (menulist) { - try { - menulist = JSON.parse(menulist) - } catch { - menulist = [] - } - } else { - menulist = [] - } - +export function getBaseForm (card, columns = []) { + let appType = sessionStorage.getItem('appType') let roleList = sessionStorage.getItem('sysRoles') + let isprint = sessionStorage.getItem('MenuType') === 'billPrint' + let ispop = sessionStorage.getItem('editMenuType') === 'popview' if (roleList) { try { roleList = JSON.parse(roleList) - } catch { + } catch (e) { roleList = [] } } else { roleList = [] } + let menulist = [] + + if (appType === 'pc') { + menulist = sessionStorage.getItem('appMenus') + if (menulist) { + try { + menulist = JSON.parse(menulist) + } catch (e) { + menulist = [] + } + } else { + menulist = [] + } + } else if (appType === '') { + menulist = sessionStorage.getItem('fstMenuList') + if (menulist) { + try { + menulist = JSON.parse(menulist) + } catch (e) { + menulist = [] + } + } else { + menulist = [] + } + } + return [ { type: 'text', - key: 'title', + field: 'title', label: '鏍囬', - initVal: card.title, + initval: card.title, required: false }, { type: 'text', - key: 'name', + field: 'name', label: '缁勪欢鍚嶇О', - initVal: card.name, + initval: card.name, tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�', required: true }, { type: 'number', - key: 'width', + field: 'width', label: '瀹藉害', - initVal: card.width, + initval: card.width, tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��', min: 1, max: 24, - decimal: 0, + precision: 0, required: true }, { - type: 'number', - key: 'height', - label: '楂樺害', - initVal: card.height, - min: 100, - max: 1000, - decimal: 0, - required: true + type: 'styleInput', + field: 'height', + label: '鍥捐〃楂樺害', + initval: card.height, + tooltip: '鍥捐〃缁樺浘鍖哄煙鐨勯珮搴︼紝涓嶅寘鎷爣棰樺強鍐呭杈硅窛銆�', + required: true, + options: ['px', 'vh', 'vw'] + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: card.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType || ispop || isprint + }, + { + type: 'radio', + field: 'cacheLocal', + label: '鏈湴缂撳瓨', + initval: card.cacheLocal || 'true', + required: false, + options: [ + {value: 'true', label: '缁ф壙鑿滃崟'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: ispop || isprint + }, + { + type: 'multiselect', + field: 'blacklist', + label: '榛戝悕鍗�', + initval: card.blacklist || [], + required: false, + options: roleList, + forbid: !!appType || isprint + }, + { + type: 'radio', + field: 'click', + label: '鐐瑰嚮浜嬩欢', + initval: card.click || '', + tooltip: '鐐瑰嚮鏌卞瓙鏃惰Е鍙戠殑浜嬩欢锛屽惎鐢ㄨ嚜瀹氫箟璁剧疆鏃舵棤鏁堛��', + required: false, + forbid: appType === 'mob' || card.chartType !== 'bar', + options: [ + {value: '', label: '鏁版嵁鍒囨崲'}, + {value: 'menu', label: '鑿滃崟'}, + {value: 'menus', label: '鑿滃崟缁�'} + ], + controlFields: [ + {field: 'menu', values: ['menu']}, + {field: 'open', values: ['menu', 'menus']}, + {field: 'menuType', values: ['menus']}, + {field: 'menus', values: ['menus']}, + ] + }, + { + type: appType === '' ? 'cascader' : 'select', + field: 'menu', + label: '鍏宠仈鑿滃崟', + initval: card.menu || (appType === '' ? [] : ''), + tooltip: '鍦ㄤ娇鐢ㄦ煴褰㈠浘涓旀湭鍚敤鑷畾涔夎缃椂鏈夋晥銆�', + required: true, + forbid: appType === 'mob' || card.chartType !== 'bar', + hidden: card.click !== 'menu', + options: menulist }, { type: 'select', - key: 'blacklist', - label: '榛戝悕鍗�', - initVal: card.blacklist || [], - multi: true, - required: false, - options: roleList + field: 'menuType', + label: '鑿滃崟绫诲瀷', + initval: card.menuType || '', + required: true, + forbid: appType === 'mob' || card.chartType !== 'bar', + hidden: card.click !== 'menus', + options: columns, }, { - type: 'cascader', - key: 'linkmenu', - label: '鍏宠仈鑿滃崟', - initVal: card.linkmenu || [], - tooltip: '鍦ㄤ娇鐢ㄦ煴褰㈠浘涓旀湭鍚敤鑷畾涔夎缃椂鏈夋晥銆�', + type: 'radio', + field: 'open', + label: '鎵撳紑鏂瑰紡', + initval: card.open || 'blank', required: false, - options: menulist + options: [ + {value: 'blank', label: '鏂扮獥鍙�'}, + {value: 'self', label: '褰撳墠绐楀彛'}, + ], + forbid: appType !== 'pc' || card.chartType !== 'bar', + hidden: card.click !== 'menu' && card.click !== 'menus' + }, + { + type: 'table', + field: 'menus', + label: '鑿滃崟缁�', + initval: card.menus || [], + required: true, + span: 24, + actions: ['edit', 'del', 'add', 'move', 'view'], + forbid: appType === 'mob' || card.chartType !== 'bar', + hidden: card.click !== 'menus', + columns: [ + { + title: '鏍囪瘑', + dataIndex: 'sign', + inputType: 'input', + editable: true, + unique: true, + required: false, + width: '35%' + }, + { + title: '鑿滃崟', + dataIndex: 'menu', + inputType: !appType ? 'cascader' : 'select', + editable: true, + required: true, + extends: !appType ? 'Menu' : [{key: 'label', value: 'label'}], + width: '35%', + render: (text, record) => record.label, + options: menulist + } + ] } ] } @@ -94,77 +208,162 @@ * @param {Array} columns // 鏄剧ず鍒� */ export function getOptionForm (card, columns) { + let appType = sessionStorage.getItem('appType') let shapes = [] + let shape = card.shape if (card.chartType === 'line') { shapes = [ - { field: 'smooth', label: 'smooth' }, - { field: 'line', label: 'line' }, - { field: 'dot', label: 'dot' }, - { field: 'dash', label: 'dash' }, - { field: 'hv', label: 'hv' }, - { field: 'vh', label: 'vh' }, - { field: 'hvh', label: 'hvh' }, - { field: 'vhv', label: 'vhv' } + { field: 'smooth', label: '骞虫粦绾�' }, + { field: 'line', label: '鐩寸嚎' }, + { field: 'dot', label: '鐐圭姸绾�' }, + { field: 'dash', label: '铏氱嚎' }, + { field: 'hv', label: '姘村钩-鍨傜洿绾�' }, + { field: 'vh', label: '鍨傜洿-姘村钩绾�' }, + { field: 'hvh', label: '姘村钩-鍨傜洿-姘村钩绾�' }, + { field: 'vhv', label: '鍨傜洿-姘村钩-鍨傜洿绾�' } ] } else if (card.chartType === 'bar') { shapes = [ - { field: 'rect', label: 'rect' }, - { field: 'hollow-rect', label: 'hollow-rect' }, - { field: 'line', label: 'line' }, - { field: 'tick', label: 'tick' }, - { field: 'funnel', label: 'funnel' }, - { field: 'pyramid', label: 'pyramid' } + { field: 'rect', label: '鐭╁舰' }, + { field: 'hollow-rect', label: '绌哄績鐭╁舰' }, + // { field: 'hollow', label: 'hollow锛堢┖蹇冪煩褰級' }, + // { field: 'line', label: 'line锛堢嚎鏉★級' }, + // { field: 'tick', label: 'tick锛堟尝鍔級' }, + // { field: 'funnel', label: 'funnel锛堟紡鏂楀浘锛�' }, + { field: 'pyramid', label: '閲戝瓧濉�' }, + { field: 'barChart', label: '鏉″舰鍥�' }, + { field: 'roseChart', label: '鐜懓鍥�' }, ] + + if (card.transpose === 'true') { + shape = 'barChart' + } else if (card.coordinate === 'polar') { + shape = 'roseChart' + } + } + + if (!shape) { + shape = shapes[0].field } let xfields = columns.filter(item => /^Nvarchar/ig.test(item.datatype)) let yfields = columns.filter(item => /^(Int|Decimal)/ig.test(item.datatype)) + let labelOptions = [{ + value: 'false', + label: '闅愯棌' + }, { + value: 'true', + label: '鏄剧ず' + }] + + if (card.chartType === 'bar') { + labelOptions[1].label = '澶栭儴' + labelOptions.push(...[{ + value: 'top', + label: '椤堕儴' + }, { + value: 'middle', + label: '涓棿' + }, { + value: 'bottom', + label: '搴曢儴' + }]) + } + + let axis = [] + if (card.grid !== 'hidden') { + axis.push('grid') + } + if (card.x_line !== 'hidden') { + axis.push('x_line') + } + if (card.y_line !== 'hidden') { + axis.push('y_line') + } + if (card.tick !== 'hidden') { + axis.push('tick') + } + + let tickVals = [] + if (card.x_label !== 'hidden') { + tickVals.push('x_label') + } + if (card.y_label !== 'hidden') { + tickVals.push('y_label') + } + + let datatype = card.datatype || 'query' + if (card.enabled === 'true') { + datatype = 'custom' + } + return [ { type: 'radio', - key: 'datatype', - label: '鏁版嵁绫诲瀷', - initVal: card.datatype || 'query', - tooltip: '缁熻鍥捐〃閫傜敤浜庤〃鏍间笉鍒嗛〉锛屼笖鏁版嵁闇�瑕佽浆鎹�', + field: 'datatype', + label: '鍥惧舰绫诲瀷', + initval: datatype, + tooltip: '缁熻鍥捐〃閫傜敤浜庡睍绀烘暟鎹被鍨嬩负鍔ㄦ�佸�笺��', required: false, + $trans: true, options: [ - { value: 'query', text: Formdict['header.form.query'] }, - { value: 'statistics', text: Formdict['header.form.statistics'] } + { value: 'query', label: card.chartType !== 'line' ? '鏌辩姸鍥�' : '鎶樼嚎鍥�' }, + { value: 'custom', label: '鑷畾涔夊浘褰�' }, + { value: 'statistics', label: '缁熻' } + ], + controlFields: [ + {field: 'InfoType', values: ['statistics']}, + {field: 'InfoValue', values: ['statistics']}, + {field: 'Yaxis', values: ['query', 'custom']}, + {field: 'adjust', values: ['query', 'statistics']}, + {field: 'area', values: ['query', 'statistics']}, + {field: 'show', values: ['query', 'statistics']}, + {field: 'selectColor', values: ['query']}, + {field: 'barSize', values: card.chartType !== 'line' ? ['query', 'custom', 'statistics'] : ['custom']}, + {field: 'mutilBar', values: ['custom']}, ] - }, - { + }, { type: 'select', - key: 'Xaxis', + field: 'Xaxis', label: 'X-杞�', - initVal: card.Xaxis || '', + initval: card.Xaxis || '', required: true, options: xfields - }, - { + }, { type: 'select', - key: 'InfoType', + field: 'InfoType', label: '绫诲瀷', - initVal: card.InfoType || '', - hidden: card.datatype !== 'statistics', + initval: card.InfoType || '', required: true, options: xfields - }, - { + }, { type: 'select', - key: 'InfoValue', + field: 'InfoValue', label: '鍊�', - initVal: card.InfoValue || '', - hidden: card.datatype !== 'statistics', + initval: card.InfoValue || '', required: true, options: yfields - }, - { + }, { type: 'select', - key: 'legend', + field: 'shape', + label: '褰㈢姸', + initval: shape, + required: false, + options: shapes + }, { + type: 'multiselect', + field: 'Yaxis', + label: 'Y-杞�', + initval: card.Yaxis || [], + required: true, + options: yfields + }, { + type: 'select', + field: 'legend', label: '鍥句緥浣嶇疆', - initVal: card.legend || 'bottom', + initval: card.legend || 'bottom', required: false, options: [ { field: 'bottom', label: '涓�' }, @@ -181,175 +380,260 @@ { field: 'left-bottom', label: '宸︿笅' }, { field: 'hidden', label: '闅愯棌' } ] - }, - { - type: 'select', - key: 'Yaxis', - label: 'Y-杞�', - initVal: card.Yaxis || [], - multi: true, // 澶氶�� - hidden: card.datatype === 'statistics', - required: true, - options: yfields - }, - { - type: 'select', - key: 'shape', - label: '褰㈢姸', - initVal: card.shape || (shapes[0] && shapes[0].field), - required: false, - options: shapes - }, - { + }, { type: 'radio', - key: 'tooltip', + field: 'tooltip', label: '鎮诞鎻愮ず', - initVal: card.tooltip || 'true', + initval: card.tooltip || 'true', required: false, options: [{ value: 'true', - text: '鏄剧ず' + label: '鏄剧ず' }, { value: 'false', - text: '闅愯棌' - }] - }, - { - type: 'radio', - key: 'point', - label: '鐐瑰浘', - initVal: card.point || 'false', - required: false, - forbid: !['line'].includes(card.chartType), - options: [{ - value: 'true', - text: '鏄剧ず' - }, { - value: 'false', - text: '闅愯棌' - }] - }, - { - type: 'radio', - key: 'transpose', - label: '鍙樻崲', - initVal: card.transpose || 'false', - tooltip: '妯旱鍧愭爣杞翠氦鎹�', - required: false, - options: [{ - value: 'true', - text: Formdict['model.true'] - }, { - value: 'false', - text: Formdict['model.false'] - }] - }, - { - type: 'radio', - key: 'show', - label: '鏍煎紡鍖�', - initVal: card.show || 'value', - required: false, - options: [{ - value: 'value', - text: '鏃�' - }, { - value: 'percent', - text: '鐧惧垎姣�' - }] - }, - { - type: 'radio', - key: 'label', - label: '鏍囨敞鍊�', - initVal: card.label || 'false', - required: false, - options: [{ - value: 'true', - text: '鏄剧ず' - }, { - value: 'false', - text: '闅愯棌' + label: '闅愯棌' }] }, { type: 'radio', - key: 'adjust', + field: 'show', + label: '鏄剧ず', + initval: card.show || 'value', + required: false, + options: [{ + value: 'value', + label: '鏁板��' + }, { + value: 'percent', + label: '鐧惧垎姣�' + }, { + value: 'thdSeparator', + label: '鍗冨垎浣�' + }] + }, { + type: 'radio', + field: 'label', + label: '鏍囨敞', + initval: card.label || 'false', + tooltip: '鍥惧舰鑺傜偣澶勭殑鏁板�笺��', + required: false, + options: labelOptions, + controlFields: [ + {field: 'labelUnit', values: ['true', 'top', 'middle', 'bottom']} + ] + }, { + type: 'radio', + field: 'adjust', label: '澶氭煴鎺掑垪', - initVal: card.adjust || 'dodge', + initval: card.adjust || 'dodge', required: false, forbid: !['bar'].includes(card.chartType), options: [{ value: 'dodge', - text: '鍒嗙粍' + label: '鍒嗙粍' }, { value: 'stack', - text: '鍫嗗彔' + label: '鍫嗗彔' }] }, { type: 'radio', - key: 'repeat', - label: '閲嶅鏁版嵁', - initVal: card.repeat || 'unrepeat', + field: 'mutilBar', + label: '澶氭煴鎺掑垪', + initval: card.mutilBar || 'dodge', required: false, options: [{ - value: 'unrepeat', - text: '鍘婚噸' + value: 'dodge', + label: '鍒嗙粍' }, { - value: 'average', - text: '骞冲潎' - }, { - value: 'cumsum', - text: '绱姞' + value: 'stack', + label: '鍫嗗彔' }] }, { type: 'radio', - key: 'coordinate', - label: '鍧愭爣', - initVal: card.coordinate || 'angle', + field: 'point', + label: '鐐瑰浘', + initval: card.point || 'false', required: false, + forbid: card.chartType === 'bar', options: [{ - value: 'angle', - text: '浜岀淮鍧愭爣' + value: 'true', + label: '鏄剧ず' }, { - value: 'polar', - text: '鏋佸潗鏍�' + value: 'false', + label: '闅愯棌' }] }, { - type: 'number', - key: 'InfoDefNumber', - label: '灞曠ず鏁�', - tooltip: '榛樿鏄剧ず绫诲瀷鏁伴噺', - min: 1, - max: 50, - decimal: 0, - initVal: card.InfoDefNumber || 5, - hidden: card.datatype !== 'statistics', - required: true + type: 'radio', + field: 'area', + label: '闈㈢Н鍥�', + initval: card.area || 'false', + required: false, + forbid: card.chartType === 'bar', + options: [{ + value: 'true', + label: '鏄剧ず' + }, { + value: 'false', + label: '涓嶆樉绀�' + }] + }, { + type: 'checkbox', + field: 'axis', + label: '鍧愭爣杞�', + initval: axis, + required: false, + options: [{ + value: 'grid', + label: '缃戞牸绾�' + }, { + value: 'x_line', + label: 'X杞�' + }, { + value: 'y_line', + label: 'Y杞�' + }, { + value: 'tick', + label: '鍒诲害绾�' + }], + controlFields: [ + {field: 'lineColor', notNull: true}, + ] + }, { + type: 'checkbox', + field: 'tickVals', + label: '鍒诲害鍊�', + initval: tickVals, + required: false, + options: [{ + value: 'x_label', + label: 'X杞�' + }, { + value: 'y_label', + label: 'Y杞�' + }], + controlFields: [ + {field: 'color', notNull: true}, + ] + }, { + type: 'radio', + field: 'empty', + label: '绌哄�奸殣钘�', + initval: card.empty || 'show', + tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + required: false, + options: [ + {value: 'show', label: '鍚�'}, + {value: 'hidden', label: '鏄�'}, + ], }, { type: 'number', - key: 'barSize', + field: 'barSize', label: '鏌卞舰瀹藉害', tooltip: '绌哄�兼椂锛屽搴﹁嚜閫傚簲銆�', min: 5, - max: 100, - decimal: 0, - initVal: card.barSize, - forbid: !['bar'].includes(card.chartType), + max: 200, + precision: 0, + initval: card.barSize, + required: false + }, { + type: 'number', + field: 'barRadius', + label: '鏌卞舰鍦嗚', + tooltip: '鏌卞舰鍥句笂绔渾瑙掋��', + min: 0, + max: 200, + precision: 0, + initval: card.barRadius || 0, + forbid: card.chartType === 'line', + required: false + }, { + type: 'number', + field: 'min', + label: '鏈�灏忓��', + tooltip: 'y杞存渶灏忓�硷紝涓虹┖鏃惰嚜閫傚簲銆�', + initval: card.min, + required: false + }, { + type: 'number', + field: 'max', + label: '鏈�澶у��', + tooltip: 'y杞存渶澶у�硷紝涓虹┖鏃惰嚜閫傚簲銆�', + initval: card.max, + required: false + }, { + type: 'number', + field: 'XLimit', + min: 2, + label: '瀛楃闄愬埗', + tooltip: 'X杞存渶澶у瓧绗﹂檺鍒躲��', + initval: card.XLimit || 11, + forbid: appType === 'mob', + required: false + }, { + type: 'text', + field: 'labelUnit', + label: '鏍囨敞鍗曚綅', + initval: card.labelUnit ||'', + forbid: appType === 'mob', required: false }, { type: 'color', - key: 'color', - label: '鑹茬郴', - initVal: card.color || 'rgba(0, 0, 0, 0.85)', - tooltip: '鍧愭爣杞村強绀轰緥绛夋彁绀烘枃瀛椾娇鐢ㄧ殑棰滆壊銆�', - required: false, - options: [{ - value: 'black', - text: '榛戣壊' - }, { - value: 'white', - text: '鐧借壊' - }] + field: 'lineColor', + label: '鍧愭爣杞撮鑹�', + initval: card.lineColor || '', + tooltip: '鍧愭爣杞寸嚎鐨勯鑹诧紝鍖呮嫭x杞淬�亂杞淬�佺綉鏍肩嚎銆佸埢搴︾嚎銆�', + allowClear: true, + required: false + }, { + type: 'color', + field: 'color', + label: '鍒诲害鍊奸鑹�', + initval: card.color || '', + allowClear: true, + required: false + }, { + type: 'number', + field: 'rotate', + label: '鏃嬭浆', + tooltip: '鍧愭爣杞存爣娉ㄦ枃鏈殑鏃嬭浆瑙掑害銆�', + min: 0, + max: 360, + precision: 0, + initval: card.rotate, + forbid: appType !== 'mob', + required: false + // }, { + // type: 'multiselect', + // field: 'interaction', + // label: '浜や簰鏁堟灉', + // initval: card.interaction || [], + // required: false, + // forbid: appType === 'mob', + // options: [ + // { value: 'element-active', label: '鍏冪礌鑱氱劍' }, + // { value: 'element-selected', label: '鍏冪礌閫変腑锛堝閫夛級' }, + // { value: 'element-single-selected', label: '鍏冪礌閫変腑锛堝崟閫夛級' }, + // { value: 'active-region', label: '鑳屾櫙妗�' }, + // { value: 'view-zoom', label: '瑙嗗浘缂╂斁' }, + // { value: 'element-highlight', label: '鍏冪礌楂樹寒' }, + // { value: 'element-highlight-by-color', label: '鍚岃壊鍏冪礌楂樹寒' }, + // { value: 'element-highlight-by-x', label: '鍚孹杞村厓绱犻珮浜�' }, + // { value: 'legend-filter', label: '鍥句緥杩囨护' }, + // { value: 'legend-active', label: '鍥句緥鑱氱劍' }, + // { value: 'legend-highlight', label: '鍥句緥楂樹寒' }, + // { value: 'brush', label: '閫夋杩囨护' }, + // ], + // controlFields: [ + // {field: 'selectColor', values: ['element-selected', 'element-single-selected']}, + // ] + }, { + type: 'color', + field: 'selectColor', + label: '閫変腑棰滆壊', + initval: card.selectColor || '', + tooltip: '閫変腑鏌卞舰鍥剧殑棰滆壊銆�', + forbid: card.chartType === 'line', + allowClear: true, + required: false } ] } -- Gitblit v1.8.0