From 72419e2f826031a158173f46d723a672064e37cd Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 31 八月 2021 22:42:51 +0800
Subject: [PATCH] 2021-08-31

---
 src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx |  478 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 377 insertions(+), 101 deletions(-)

diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
index 677001d..42099ee 100644
--- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
+++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
@@ -1,14 +1,141 @@
 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
+const Formdict = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
+
+/**
+ * @description 鑾峰彇鍥捐〃瑙嗗浘閰嶇疆琛ㄥ崟
+ * @param {object} card       // 鍥捐〃瀵硅薄
+ */
+export function getBaseForm (card) {
+  // let appType = sessionStorage.getItem('appType')
+  // let menulist = null
+
+  // if (appType === 'pc') {
+  //   menulist = sessionStorage.getItem('appMenus')
+  //   if (Array.isArray(card.linkmenu)) {
+  //     card.linkmenu = ''
+  //   }
+  // } else {
+  //   menulist = sessionStorage.getItem('fstMenuList')
+  // }
+
+  // if (menulist) {
+  //   try {
+  //     menulist = JSON.parse(menulist)
+  //     if (appType === 'pc') {
+  //       menulist = menulist.map(item => {
+  //         item.value = item.MenuID
+  //         item.text = item.MenuName
+  //         return item
+  //       })
+  //     }
+  //   } catch {
+  //     menulist = []
+  //   }
+  // } else {
+  //   menulist = []
+  // }
+
+  let roleList = sessionStorage.getItem('sysRoles')
+  if (roleList) {
+    try {
+      roleList = JSON.parse(roleList)
+    } catch {
+      roleList = []
+    }
+  } else {
+    roleList = []
+  }
+
+  return [
+    {
+      type: 'text',
+      key: 'title',
+      label: '鏍囬',
+      initVal: card.title,
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'name',
+      label: '缁勪欢鍚嶇О',
+      initVal: card.name,
+      tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�',
+      required: true
+    },
+    {
+      type: 'number',
+      key: 'width',
+      label: '瀹藉害',
+      initVal: card.width,
+      tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
+      min: 1,
+      max: 24,
+      decimal: 0,
+      required: true
+    },
+    {
+      type: 'number',
+      key: 'height',
+      label: '楂樺害',
+      initVal: card.height,
+      min: 100,
+      max: 1000,
+      decimal: 0,
+      required: true
+    },
+    {
+      type: 'select',
+      key: 'blacklist',
+      label: '榛戝悕鍗�',
+      initVal: card.blacklist || [],
+      multi: true,
+      required: false,
+      options: roleList
+    },
+    // {
+    //   type: 'cascader',
+    //   key: 'linkmenu',
+    //   label: '鍏宠仈鑿滃崟',
+    //   initVal: card.linkmenu || [],
+    //   tooltip: '鍦ㄤ娇鐢ㄦ煴褰㈠浘涓旀湭鍚敤鑷畾涔夎缃椂鏈夋晥銆�',
+    //   required: false,
+    //   forbid: appType === 'pc' || appType === 'mob',
+    //   options: menulist
+    // },
+    // {
+    //   type: 'select',
+    //   key: 'linkmenu',
+    //   label: '鍏宠仈鑿滃崟',
+    //   initVal: card.linkmenu || '',
+    //   tooltip: '鍙屽嚮鏌辩姸鍥撅紝浼氭墦寮�鍏宠仈鐨勮彍鍗曘��',
+    //   required: false,
+    //   forbid: appType !== 'pc',
+    //   options: menulist
+    // },
+    // {
+    //   type: 'radio',
+    //   key: 'open',
+    //   label: '鎵撳紑鏂瑰紡',
+    //   initVal: card.open || 'blank',
+    //   required: false,
+    //   forbid: appType !== 'pc',
+    //   options: [
+    //     { value: 'blank', text: '鏂扮獥鍙�' },
+    //     { value: 'self', text: '褰撳墠绐楀彛' }
+    //   ]
+    // }
+  ]
+}
 
 /**
  * @description 鑾峰彇鍥捐〃瑙嗗浘閰嶇疆琛ㄥ崟
  * @param {object} card       // 鍥捐〃瀵硅薄
  * @param {Array}  columns    // 鏄剧ず鍒�
  */
-export function getBarOrLineChartOptionForm (card, columns) {
+export function getOptionForm (card, columns) {
+  let appType = sessionStorage.getItem('appType')
   let shapes = []
 
   if (card.chartType === 'line') {
@@ -33,28 +160,88 @@
     ]
   }
 
+  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',
+    text: '闅愯棌'
+  }, {
+    value: 'true',
+    text: '鏄剧ず'
+  }]
+
+  if (card.chartType === 'bar') {
+    labelOptions[1].text = '澶栭儴'
+    labelOptions.push(...[{
+      value: 'top',
+      text: '椤堕儴'
+    }, {
+      value: 'middle',
+      text: '涓棿'
+    }, {
+      value: 'bottom',
+      text: '搴曢儴'
+    }])
+  }
+
   return [
     {
       type: 'radio',
       key: 'datatype',
       label: '鏁版嵁绫诲瀷',
       initVal: card.datatype || 'query',
-      tooltip: '缁熻鍥捐〃閫傜敤浜庤〃鏍间笉鍒嗛〉锛屼笖鏁版嵁闇�瑕佽浆鎹�',
+      tooltip: '缁熻鍥捐〃閫傜敤浜庡睍绀烘暟鎹被鍨嬩负鍔ㄦ�佸�笺��',
       required: false,
       options: [
         { value: 'query', text: Formdict['header.form.query'] },
         { value: 'statistics', text: Formdict['header.form.statistics'] }
       ]
-    },
-    {
+    }, {
       type: 'select',
       key: 'Xaxis',
       label: 'X-杞�',
       initVal: card.Xaxis || '',
       required: true,
-      options: columns.filter(col => col.type === 'text')
-    },
-    {
+      options: xfields
+    }, {
+      type: 'select',
+      key: 'InfoType',
+      label: '绫诲瀷',
+      initVal: card.InfoType || '',
+      hidden: card.datatype !== 'statistics',
+      required: true,
+      options: xfields
+    }, {
+      type: 'select',
+      key: 'InfoValue',
+      label: '鍊�',
+      initVal: card.InfoValue || '',
+      hidden: card.datatype !== 'statistics',
+      required: true,
+      options: yfields
+    }, {
+      type: 'select',
+      key: 'legend',
+      label: '鍥句緥浣嶇疆',
+      initVal: card.legend || 'bottom',
+      required: false,
+      options: [
+        { field: 'bottom', label: '涓�' },
+        { field: 'bottom-left', label: '涓嬪乏' },
+        { field: 'bottom-right', label: '涓嬪彸' },
+        { field: 'top', label: '涓�' },
+        { field: 'top-left', label: '涓婂乏' },
+        { field: 'top-right', label: '涓婂彸' },
+        { field: 'right', label: '鍙�' },
+        { field: 'right-top', label: '鍙充笂' },
+        { field: 'right-bottom', label: '鍙充笅' },
+        { field: 'left', label: '宸�' },
+        { field: 'left-top', label: '宸︿笂' },
+        { field: 'left-bottom', label: '宸︿笅' },
+        { field: 'hidden', label: '闅愯棌' }
+      ]
+    }, {
       type: 'select',
       key: 'Yaxis',
       label: 'Y-杞�',
@@ -62,60 +249,18 @@
       multi: true, // 澶氶��
       hidden: card.datatype === 'statistics',
       required: true,
-      options: columns.filter(col => col.type === 'number')
-    },
-    {
-      type: 'select',
-      key: 'InfoType',
-      label: '绫诲瀷',
-      initVal: card.InfoType || '',
-      hidden: card.datatype !== 'statistics',
-      required: true,
-      options: columns.filter(col => col.type === 'text')
-    },
-    {
-      type: 'select',
-      key: 'InfoValue',
-      label: '鍊�',
-      initVal: card.InfoValue || '',
-      hidden: card.datatype !== 'statistics',
-      required: true,
-      options: columns.filter(col => col.type === 'number')
-    },
-    {
-      type: 'select',
-      key: 'legend',
-      label: '鍥句緥浣嶇疆',
-      initVal: card.legend || 'bottom',
-      required: false,
-      options: [
-        { field: 'top', label: 'top' },
-        { field: 'top-left', label: 'top-left' },
-        { field: 'top-right', label: 'top-right' },
-        { field: 'right', label: 'right' },
-        { field: 'right-top', label: 'right-top' },
-        { field: 'right-bottom', label: 'right-bottom' },
-        { field: 'left', label: 'left' },
-        { field: 'left-top', label: 'left-top' },
-        { field: 'left-bottom', label: 'left-bottom' },
-        { field: 'bottom', label: 'bottom' },
-        { field: 'bottom-left', label: 'bottom-left' },
-        { field: 'bottom-right', label: 'bottom-right' },
-        { field: 'hidden', label: 'hidden' }
-      ]
-    },
-    {
+      options: yfields
+    }, {
       type: 'select',
       key: 'shape',
       label: '褰㈢姸',
       initVal: card.shape || (shapes[0] && shapes[0].field),
       required: false,
       options: shapes
-    },
-    {
+    }, {
       type: 'radio',
       key: 'tooltip',
-      label: '鎻愮ず淇℃伅',
+      label: '鎮诞鎻愮ず',
       initVal: card.tooltip || 'true',
       required: false,
       options: [{
@@ -125,22 +270,7 @@
         value: 'false',
         text: '闅愯棌'
       }]
-    },
-    {
-      type: 'radio',
-      key: 'coordinate',
-      label: '鍧愭爣',
-      initVal: card.coordinate || 'angle',
-      required: false,
-      options: [{
-        value: 'angle',
-        text: '浜岀淮鍧愭爣'
-      }, {
-        value: 'polar',
-        text: '鏋佸潗鏍�'
-      }]
-    },
-    {
+    }, {
       type: 'radio',
       key: 'point',
       label: '鐐瑰浘',
@@ -154,12 +284,12 @@
         value: 'false',
         text: '闅愯棌'
       }]
-    },
-    {
+    }, {
       type: 'radio',
       key: 'transpose',
       label: '鍙樻崲',
       initVal: card.transpose || 'false',
+      tooltip: '妯旱鍧愭爣杞翠氦鎹�',
       required: false,
       options: [{
         value: 'true',
@@ -168,34 +298,54 @@
         value: 'false',
         text: Formdict['model.false']
       }]
-    },
-    {
+    }, {
       type: 'radio',
       key: 'show',
-      label: '鏄剧ず鍊�',
+      label: '鏍煎紡鍖�',
       initVal: card.show || 'value',
       required: false,
       options: [{
+        value: 'value',
+        text: '鏃�'
+      }, {
         value: 'percent',
         text: '鐧惧垎姣�'
-      }, {
-        value: 'value',
-        text: '鏁板��'
       }]
-    },
-    {
-      type: 'radio',
+    }, {
+      type: labelOptions.length > 20 ? 'select' : 'radio',
       key: 'label',
-      label: '鏍囨敞-鍊�',
+      label: '鏍囩',
       initVal: card.label || 'false',
       required: false,
+      options: labelOptions
+    }, {
+      type: 'radio',
+      key: 'labelColor',
+      label: '鏍囩棰滆壊',
+      initVal: card.labelColor || 'system',
+      tooltip: '浣跨敤绯荤粺鑹叉椂锛屼娇鐢ㄨ壊绯婚�夐」璁剧疆鐨勭郴缁熼鑹诧紝浣跨敤鑷畾涔変负棰滆壊璁剧疆涓畾涔夌殑鍥惧舰棰滆壊銆�',
+      required: false,
       options: [{
-        value: 'true',
-        text: '鏄剧ず'
+        value: 'system',
+        text: '绯荤粺'
       }, {
-        value: 'false',
-        text: '闅愯棌'
+        value: 'custom',
+        text: '鑷畾涔�'
       }]
+    // }, {
+    //   type: 'radio',
+    //   key: 'offset',
+    //   label: '鏍囨敞浣嶇疆',
+    //   initVal: card.offset || 'outer',
+    //   required: false,
+    //   options: [{
+    //     value: 'outer',
+    //     text: '澶栭儴'
+    //   }, {
+    //     value: 'inner',
+    //     text: '鍐呴儴'
+    //   }],
+    //   forbid: card.chartType !== 'bar'
     }, {
       type: 'radio',
       key: 'adjust',
@@ -209,6 +359,21 @@
       }, {
         value: 'stack',
         text: '鍫嗗彔'
+      }]
+    }, {
+      type: 'radio',
+      key: 'area',
+      label: '闈㈢Н鍥�',
+      initVal: card.area || 'false',
+      // tooltip: '浠呭湪褰㈢姸涓簊mooth鏃舵湁鏁堛��',
+      required: false,
+      forbid: ['bar'].includes(card.chartType),
+      options: [{
+        value: 'true',
+        text: '鏄剧ず'
+      }, {
+        value: 'false',
+        text: '涓嶆樉绀�'
       }]
     }, {
       type: 'radio',
@@ -227,27 +392,138 @@
         text: '绱姞'
       }]
     }, {
-      type: 'number',
-      key: 'InfoDefNumber',
-      label: '灞曠ず鏁�',
-      tooltip: '榛樿鏄剧ず绫诲瀷鏁伴噺',
-      min: 1,
-      max: 50,
-      decimal: 0,
-      initVal: card.InfoDefNumber || 5,
-      hidden: card.datatype !== 'statistics',
-      required: true
+      type: 'radio',
+      key: 'coordinate',
+      label: '鍧愭爣',
+      initVal: card.coordinate || 'angle',
+      required: false,
+      options: [{
+        value: 'angle',
+        text: '浜岀淮鍧愭爣'
+      }, {
+        value: 'polar',
+        text: '鏋佸潗鏍�'
+      }]
+    }, {
+      type: 'radio',
+      key: 'grid',
+      label: '缃戞牸绾�',
+      initVal: card.grid || 'show',
+      required: false,
+      options: [{
+        value: 'show',
+        text: '鏄剧ず'
+      }, {
+        value: 'hidden',
+        text: '闅愯棌'
+      }]
+    }, {
+      type: 'radio',
+      key: 'y_line',
+      label: 'y杞磋竟绾�',
+      initVal: card.y_line || 'hidden',
+      tooltip: '鍥惧舰宸︿晶鎴栧彸渚х殑杈圭嚎銆�',
+      required: false,
+      options: [{
+        value: 'show',
+        text: '鏄剧ず'
+      }, {
+        value: 'hidden',
+        text: '闅愯棌'
+      }]
     }, {
       type: 'number',
-      key: 'correction',
-      label: '鏁版嵁淇',
-      tooltip: '褰撴暟鎹」灏戜簬璁剧疆鍊兼椂锛岀郴缁熶細鑷姩淇锛堥伩鍏嶆煴褰㈠浘杩囧锛�,鍦ㄨ嚜瀹氫箟涓紝璁剧疆涓烘姌绾垮浘鏃跺け鏁堛��',
+      key: 'barSize',
+      label: '鏌卞舰瀹藉害',
+      tooltip: '绌哄�兼椂锛屽搴﹁嚜閫傚簲銆�',
       min: 5,
-      max: 30,
+      max: 100,
       decimal: 0,
-      initVal: card.correction,
+      initVal: card.barSize,
       forbid: !['bar'].includes(card.chartType),
       required: false
+    }, {
+      type: 'number',
+      key: 'barRadius',
+      label: '鏌卞舰鍦嗚',
+      tooltip: '鏌卞舰鍥句笂绔渾瑙掋��',
+      min: 0,
+      max: 200,
+      decimal: 0,
+      initVal: card.barRadius || 0,
+      forbid: !['bar'].includes(card.chartType),
+      required: false
+    }, {
+      type: 'number',
+      key: 'min',
+      label: '鏈�灏忓��',
+      tooltip: 'y杞存渶灏忓�硷紝涓虹┖鏃惰嚜閫傚簲銆�',
+      initVal: card.min,
+      required: false
+    }, {
+      type: 'number',
+      key: 'max',
+      label: '鏈�澶у��',
+      tooltip: 'y杞存渶澶у�硷紝涓虹┖鏃惰嚜閫傚簲銆�',
+      initVal: card.max,
+      required: false
+    }, {
+      type: 'color',
+      key: 'color',
+      label: '鑹茬郴',
+      initVal: card.color || 'rgba(0, 0, 0, 0.65)',
+      tooltip: '鍧愭爣杞存彁绀烘枃瀛楀強绀轰緥鐨勯鑹层��',
+      required: false
+    }, {
+      type: 'color',
+      key: 'lineColor',
+      label: '杞寸嚎棰滆壊',
+      initVal: card.lineColor,
+      tooltip: '鍧愭爣杞寸嚎鐨勯鑹诧紝鍖呮嫭x杞淬�亂杞村強缃戞牸绾裤��',
+      allowClear: true,
+      required: false
+    }, {
+      type: 'color',
+      key: 'selectColor',
+      label: '閫変腑棰滆壊',
+      initVal: card.selectColor || '',
+      tooltip: '閫変腑鏌卞舰鍥剧殑棰滆壊锛屽湪浜や簰鏁堟灉銆婂厓绱犻�変腑锛堝閫夛級銆嬪拰銆婂厓绱犻�変腑锛堝崟閫夛級銆嬩腑鏈夋晥锛岃嚜瀹氫箟璁剧疆涓棤鏁堛��',
+      forbid: !['bar'].includes(card.chartType),
+      allowClear: true,
+      required: false
+    }, {
+      type: 'number',
+      key: 'rotate',
+      label: '鏃嬭浆',
+      tooltip: '鍧愭爣杞存爣娉ㄦ枃鏈殑鏃嬭浆瑙掑害銆�',
+      min: 0,
+      max: 360,
+      decimal: 0,
+      initVal: card.rotate,
+      forbid: appType !== 'mob',
+      required: false
+    }, {
+      type: 'select',
+      key: 'interaction',
+      label: '浜や簰鏁堟灉',
+      initVal: card.interaction || [],
+      multi: true,
+      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: '閫夋杩囨护' },
+      ]
     }
   ]
 }

--
Gitblit v1.8.0