Преглед изворни кода

feat--地图优化,支持配置项选择省市区

qianming пре 1 година
родитељ
комит
74466d297b

+ 277 - 55
report-ui/src/views/bigscreenDesigner/designer/tools/configure/mapCharts/widget-airbubble-map.js

@@ -9,7 +9,7 @@
 export const widgetAirbubbleMap = {
   code: 'widgetAirBubbleMap',
   type: 'mapChart',
-  tabName: '中国地图',
+  tabName: '地图',
   label: '气泡地图',
   icon: 'iconzhongguoditu',
   options: {
@@ -21,7 +21,7 @@ export const widgetAirbubbleMap = {
         name: 'layerName',
         required: false,
         placeholder: '',
-        value: '中国地图-气泡图',
+        value: '气泡图',
       },
       {
         type: 'vue-color',
@@ -31,6 +31,52 @@ export const widgetAirbubbleMap = {
         placeholder: '',
         value: ''
       },
+      {
+        type: 'el-select',
+        label: '地图名称',
+        name: 'mapName',
+        required: false,
+        placeholder: '',
+        selectOptions: [
+          { code: 'world', name: '世界' },
+          { code: 'china', name: '中国' },
+          { code: '安徽', name: '安徽' },
+          { code: '澳门', name: '澳门' },
+          { code: '北京', name: '北京' },
+          { code: '重庆', name: '重庆' },
+          { code: '福建', name: '福建' },
+          { code: '甘肃', name: '甘肃' },
+          { code: '广东', name: '广东' },
+          { code: '广西', name: '广西' },
+          { code: '贵州', name: '贵州' },
+          { code: '海南', name: '海南' },
+          { code: '河北', name: '河北' },
+          { code: '黑龙江', name: '黑龙江' },
+          { code: '河南', name: '河南' },
+          { code: '湖北', name: '湖北' },
+          { code: '湖南', name: '湖南' },
+          { code: '江苏', name: '江苏' },
+          { code: '江西', name: '江西' },
+          { code: '吉林', name: '吉林' },
+          { code: '辽宁', name: '辽宁' },
+          { code: '内蒙古', name: '内蒙古' },
+          { code: '宁夏', name: '宁夏' },
+          { code: '青海', name: '青海' },
+          { code: '山东', name: '山东' },
+          { code: '上海', name: '上海' },
+          { code: '山西', name: '山西' },
+          { code: '陕西', name: '陕西' },
+          { code: '四川', name: '四川' },
+          { code: '台湾', name: '台湾' },
+          { code: '天津', name: '天津' },
+          { code: '香港', name: '香港' },
+          { code: '新疆', name: '新疆' },
+          { code: '西藏', name: '西藏' },
+          { code: '云南', name: '云南' },
+          { code: '浙江', name: '浙江' },
+        ],
+        value: 'china'
+      },
       [
         {
           name: '标题设置',
@@ -38,7 +84,7 @@ export const widgetAirbubbleMap = {
             {
               type: 'el-switch',
               label: '标题显示',
-              name: 'isNoTitle',
+              name: 'isShowTitle',
               required: false,
               placeholder: '',
               value: true,
@@ -46,7 +92,7 @@ export const widgetAirbubbleMap = {
             {
               type: 'el-input-text',
               label: '标题名',
-              name: 'titleText',
+              name: 'text',
               required: false,
               placeholder: '',
               value: '',
@@ -74,10 +120,10 @@ export const widgetAirbubbleMap = {
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'bold', name: '粗体' },
-                { code: 'bolder', name: '特粗体' },
-                { code: 'lighter', name: '细体' }
+                {code: 'normal', name: '正常'},
+                {code: 'bold', name: '粗体'},
+                {code: 'bolder', name: '特粗体'},
+                {code: 'lighter', name: '细体'}
               ],
               value: 'normal'
             },
@@ -88,29 +134,30 @@ export const widgetAirbubbleMap = {
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'italic', name: 'italic斜体' },
-                { code: 'oblique', name: 'oblique斜体' },
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
               ],
               value: 'normal'
             },
             {
               type: 'el-select',
-              label: '字体位置',
-              name: 'textAlign',
+              label: '字体系列',
+              name: 'textFontFamily',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'center', name: '居中' },
-                { code: 'left', name: '左对齐' },
-                { code: 'right', name: '右对齐' },
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
               ],
-              value: 'center'
+              value: 'sans-serif'
             },
             {
               type: 'el-input-text',
               label: '副标题名',
-              name: 'subText',
+              name: 'subtext',
               required: false,
               placeholder: '',
               value: ''
@@ -118,7 +165,7 @@ export const widgetAirbubbleMap = {
             {
               type: 'vue-color',
               label: '字体颜色',
-              name: 'subTextColor',
+              name: 'subtextColor',
               required: false,
               placeholder: '',
               value: 'rgba(30, 144, 255, 1)'
@@ -126,7 +173,7 @@ export const widgetAirbubbleMap = {
             {
               type: 'el-input-number',
               label: '字体字号',
-              name: 'subTextFontSize',
+              name: 'subtextFontSize',
               required: false,
               placeholder: '',
               value: 20
@@ -134,30 +181,73 @@ export const widgetAirbubbleMap = {
             {
               type: 'el-select',
               label: '字体粗细',
-              name: 'subTextFontWeight',
+              name: 'subtextFontWeight',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'bold', name: '粗体' },
-                { code: 'bolder', name: '特粗体' },
-                { code: 'lighter', name: '细体' }
+                {code: 'normal', name: '正常'},
+                {code: 'bold', name: '粗体'},
+                {code: 'bolder', name: '特粗体'},
+                {code: 'lighter', name: '细体'}
               ],
               value: 'normal'
             },
             {
               type: 'el-select',
               label: '字体风格',
-              name: 'subTextFontStyle',
+              name: 'subtextFontStyle',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'italic', name: 'italic斜体' },
-                { code: 'oblique', name: 'oblique斜体' },
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
               ],
               value: 'normal'
             },
+            {
+              type: 'el-select',
+              label: '字体系列',
+              name: 'subtextFontFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
+            {
+              type: 'el-select',
+              label: '左右位置',
+              name: 'titleLeft',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'center', name: '居中'},
+                {code: 'left', name: '左对齐'},
+                {code: 'right', name: '右对齐'},
+              ],
+              value: 'center'
+            },
+            {
+              type: 'el-slider',
+              label: '上下间距',
+              name: 'titleTop',
+              required: false,
+              placeholder: '',
+              value: 5,
+            },
+            {
+              type: 'el-input-number',
+              label: '主副标题间距',
+              name: 'titleItemGap',
+              required: false,
+              placeholder: '',
+              value: 0
+            },
           ],
         },
         {
@@ -169,20 +259,20 @@ export const widgetAirbubbleMap = {
               name: 'isShowMap',
               required: false,
               placeholder: '',
-              value: true
+              value: false
             },
             {
               type: 'el-input-number',
               label: '文字大小',
-              name: 'fontTextSize',
+              name: 'fontSize',
               required: false,
               placeholder: '',
-              value: 15,
+              value: 12,
             },
             {
               type: 'vue-color',
               label: '文字颜色',
-              name: 'fontTextColor',
+              name: 'fontColor',
               required: false,
               placeholder: '',
               value: '#D4EEFF'
@@ -190,7 +280,7 @@ export const widgetAirbubbleMap = {
             {
               type: 'el-select',
               label: '文字粗细',
-              name: 'fontTextWeight',
+              name: 'fontWeight',
               required: false,
               placeholder: '',
               selectOptions: [
@@ -202,36 +292,49 @@ export const widgetAirbubbleMap = {
               value: 'normal'
             },
             {
-              type: 'el-input-number',
-              label: '数值大小',
-              name: 'fontDataSize',
+              type: 'el-select',
+              label: '文字风格',
+              name: 'fontStyle',
               required: false,
               placeholder: '',
-              value: 15,
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
+              ],
+              value: 'normal'
             },
             {
-              type: 'vue-color',
-              label: '数值颜色',
-              name: 'fontDataColor',
+              type: 'el-select',
+              label: '文字字体',
+              name: 'fontFamily',
               required: false,
               placeholder: '',
-              value: '#D4EEFF'
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
             },
             {
-              type: 'el-select',
-              label: '数值粗细',
-              name: 'fontDataWeight',
+              type: 'el-input-number',
+              label: '边界线宽度',
+              name: 'borderWidth',
               required: false,
               placeholder: '',
-              selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'bold', name: '粗体' },
-                { code: 'bolder', name: '特粗体' },
-                { code: 'lighter', name: '细体' }
-              ],
-              value: 'normal'
+              value: 0
             },
-          ],
+            {
+              type: 'vue-color',
+              label: '边界线颜色',
+              name: 'borderColor',
+              required: false,
+              placeholder: '',
+              value: '#fff'
+            },
+          ]
         },
         {
           name: '气泡设置',
@@ -262,6 +365,76 @@ export const widgetAirbubbleMap = {
             },*/
           ],
         },
+        {
+          name: '数值设置',
+          list: [
+            {
+              type: 'el-switch',
+              label: '数值显示',
+              name: 'isShowData',
+              required: false,
+              placeholder: '',
+              value: true
+            },
+            {
+              type: 'el-input-number',
+              label: '数值大小',
+              name: 'fontDataSize',
+              required: false,
+              placeholder: '',
+              value: 15,
+            },
+            {
+              type: 'vue-color',
+              label: '数值颜色',
+              name: 'fontDataColor',
+              required: false,
+              placeholder: '',
+              value: '#D4EEFF'
+            },
+            {
+              type: 'el-select',
+              label: '数值粗细',
+              name: 'fontDataWeight',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                { code: 'normal', name: '正常' },
+                { code: 'bold', name: '粗体' },
+                { code: 'bolder', name: '特粗体' },
+                { code: 'lighter', name: '细体' }
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '数值风格',
+              name: 'fontDataStyle',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '数值字体',
+              name: 'fontDataFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
+          ],
+        },
         {
           name: '地图块颜色',
           list: [
@@ -294,10 +467,18 @@ export const widgetAirbubbleMap = {
         {
           name: '提示语设置',
           list: [
+            {
+              type: 'el-switch',
+              label: '显示',
+              name: 'isShowTooltip',
+              required: false,
+              placeholder: '',
+              value: true
+            },
             {
               type: 'el-input-number',
               label: '字体字号',
-              name: 'tipsFontSize',
+              name: 'tooltipFontSize',
               required: false,
               placeholder: '',
               value: 16
@@ -305,11 +486,52 @@ export const widgetAirbubbleMap = {
             {
               type: 'vue-color',
               label: '字体颜色',
-              name: 'tipsColor',
+              name: 'tooltipColor',
               required: false,
               placeholder: '',
               value: '#00FEFF'
             },
+            {
+              type: 'el-select',
+              label: '字体粗细',
+              name: 'tooltipFontWeight',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'bold', name: '粗体'},
+                {code: 'bolder', name: '特粗体'},
+                {code: 'lighter', name: '细体'}
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '字体风格',
+              name: 'tooltipFontStyle',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '字体系列',
+              name: 'tooltipFontFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
           ],
         },
       ],

+ 351 - 90
report-ui/src/views/bigscreenDesigner/designer/tools/configure/mapCharts/widget-line-map.js

@@ -9,7 +9,7 @@
 export const widgetLineMap = {
   code: 'widgetLineMap',
   type: 'mapChart',
-  tabName: '中国地图',
+  tabName: '地图',
   label: '路线地图',
   icon: 'iconzhongguoditu',
   options: {
@@ -20,7 +20,7 @@ export const widgetLineMap = {
         name: 'layerName',
         required: false,
         placeholder: '',
-        value: '中国地图-路线图',
+        value: '路线图',
       },
       {
         type: 'vue-color',
@@ -30,6 +30,52 @@ export const widgetLineMap = {
         placeholder: '',
         value: ''
       },
+      {
+        type: 'el-select',
+        label: '地图名称',
+        name: 'mapName',
+        required: false,
+        placeholder: '',
+        selectOptions: [
+          { code: 'world', name: '世界' },
+          { code: 'china', name: '中国' },
+          { code: '安徽', name: '安徽' },
+          { code: '澳门', name: '澳门' },
+          { code: '北京', name: '北京' },
+          { code: '重庆', name: '重庆' },
+          { code: '福建', name: '福建' },
+          { code: '甘肃', name: '甘肃' },
+          { code: '广东', name: '广东' },
+          { code: '广西', name: '广西' },
+          { code: '贵州', name: '贵州' },
+          { code: '海南', name: '海南' },
+          { code: '河北', name: '河北' },
+          { code: '黑龙江', name: '黑龙江' },
+          { code: '河南', name: '河南' },
+          { code: '湖北', name: '湖北' },
+          { code: '湖南', name: '湖南' },
+          { code: '江苏', name: '江苏' },
+          { code: '江西', name: '江西' },
+          { code: '吉林', name: '吉林' },
+          { code: '辽宁', name: '辽宁' },
+          { code: '内蒙古', name: '内蒙古' },
+          { code: '宁夏', name: '宁夏' },
+          { code: '青海', name: '青海' },
+          { code: '山东', name: '山东' },
+          { code: '上海', name: '上海' },
+          { code: '山西', name: '山西' },
+          { code: '陕西', name: '陕西' },
+          { code: '四川', name: '四川' },
+          { code: '台湾', name: '台湾' },
+          { code: '天津', name: '天津' },
+          { code: '香港', name: '香港' },
+          { code: '新疆', name: '新疆' },
+          { code: '西藏', name: '西藏' },
+          { code: '云南', name: '云南' },
+          { code: '浙江', name: '浙江' },
+        ],
+        value: 'china'
+      },
       [
         {
           name: '标题设置',
@@ -37,7 +83,7 @@ export const widgetLineMap = {
             {
               type: 'el-switch',
               label: '标题显示',
-              name: 'isNoTitle',
+              name: 'isShowTitle',
               required: false,
               placeholder: '',
               value: true,
@@ -45,7 +91,7 @@ export const widgetLineMap = {
             {
               type: 'el-input-text',
               label: '标题名',
-              name: 'titleText',
+              name: 'text',
               required: false,
               placeholder: '',
               value: '',
@@ -73,10 +119,10 @@ export const widgetLineMap = {
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'bold', name: '粗体' },
-                { code: 'bolder', name: '特粗体' },
-                { code: 'lighter', name: '细体' }
+                {code: 'normal', name: '正常'},
+                {code: 'bold', name: '粗体'},
+                {code: 'bolder', name: '特粗体'},
+                {code: 'lighter', name: '细体'}
               ],
               value: 'normal'
             },
@@ -87,29 +133,30 @@ export const widgetLineMap = {
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'italic', name: 'italic斜体' },
-                { code: 'oblique', name: 'oblique斜体' },
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
               ],
               value: 'normal'
             },
             {
               type: 'el-select',
-              label: '字体位置',
-              name: 'textAlign',
+              label: '字体系列',
+              name: 'textFontFamily',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'center', name: '居中' },
-                { code: 'left', name: '左对齐' },
-                { code: 'right', name: '右对齐' },
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
               ],
-              value: 'center'
+              value: 'sans-serif'
             },
             {
               type: 'el-input-text',
               label: '副标题名',
-              name: 'subText',
+              name: 'subtext',
               required: false,
               placeholder: '',
               value: ''
@@ -117,7 +164,7 @@ export const widgetLineMap = {
             {
               type: 'vue-color',
               label: '字体颜色',
-              name: 'subTextColor',
+              name: 'subtextColor',
               required: false,
               placeholder: '',
               value: 'rgba(30, 144, 255, 1)'
@@ -125,7 +172,7 @@ export const widgetLineMap = {
             {
               type: 'el-input-number',
               label: '字体字号',
-              name: 'subTextFontSize',
+              name: 'subtextFontSize',
               required: false,
               placeholder: '',
               value: 20
@@ -133,7 +180,106 @@ export const widgetLineMap = {
             {
               type: 'el-select',
               label: '字体粗细',
-              name: 'subTextFontWeight',
+              name: 'subtextFontWeight',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'bold', name: '粗体'},
+                {code: 'bolder', name: '特粗体'},
+                {code: 'lighter', name: '细体'}
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '字体风格',
+              name: 'subtextFontStyle',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '字体系列',
+              name: 'subtextFontFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
+            {
+              type: 'el-select',
+              label: '左右位置',
+              name: 'titleLeft',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'center', name: '居中'},
+                {code: 'left', name: '左对齐'},
+                {code: 'right', name: '右对齐'},
+              ],
+              value: 'center'
+            },
+            {
+              type: 'el-slider',
+              label: '上下间距',
+              name: 'titleTop',
+              required: false,
+              placeholder: '',
+              value: 5,
+            },
+            {
+              type: 'el-input-number',
+              label: '主副标题间距',
+              name: 'titleItemGap',
+              required: false,
+              placeholder: '',
+              value: 0
+            },
+          ],
+        },
+        {
+          name: '地图设置',
+          list: [
+            {
+              type: 'el-switch',
+              label: '文字显示',
+              name: 'isShowMap',
+              required: false,
+              placeholder: '',
+              value: false
+            },
+            {
+              type: 'el-input-number',
+              label: '文字大小',
+              name: 'fontSize',
+              required: false,
+              placeholder: '',
+              value: 12,
+            },
+            {
+              type: 'vue-color',
+              label: '文字颜色',
+              name: 'fontColor',
+              required: false,
+              placeholder: '',
+              value: '#D4EEFF'
+            },
+            {
+              type: 'el-select',
+              label: '文字粗细',
+              name: 'fontWeight',
               required: false,
               placeholder: '',
               selectOptions: [
@@ -146,17 +292,104 @@ export const widgetLineMap = {
             },
             {
               type: 'el-select',
-              label: '字风格',
-              name: 'subTextFontStyle',
+              label: '字风格',
+              name: 'fontStyle',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'normal', name: '正常' },
-                { code: 'italic', name: 'italic斜体' },
-                { code: 'oblique', name: 'oblique斜体' },
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
               ],
               value: 'normal'
             },
+            {
+              type: 'el-select',
+              label: '文字字体',
+              name: 'fontFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
+            {
+              type: 'el-input-number',
+              label: '边界线宽度',
+              name: 'borderWidth',
+              required: false,
+              placeholder: '',
+              value: 0
+            },
+            {
+              type: 'vue-color',
+              label: '边界线颜色',
+              name: 'borderColor',
+              required: false,
+              placeholder: '',
+              value: '#fff'
+            },
+          ]
+        },
+        {
+          name: '路线设置',
+          list: [
+            {
+              type: 'el-select',
+              label: '图标样式',
+              name: 'symbol',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                { code: 'arrow', name: '箭头' },
+                { code: 'plane', name: '飞机' },
+              ],
+              value: 'arrow'
+            },
+            {
+              type: 'el-input-number',
+              label: '动画速度',
+              name: 'symbolPeriod',
+              required: false,
+              placeholder: '',
+              value: 4,
+            },
+            {
+              type: 'el-input-number',
+              label: '图标大小',
+              name: 'symbolSize',
+              required: false,
+              placeholder: '',
+              value: 10,
+            },
+            {
+              type: 'vue-color',
+              label: '图标颜色',
+              name: 'symbolColor',
+              required: false,
+              placeholder: '',
+              value: '#46bee9'
+            },
+            {
+              type: 'vue-color',
+              label: '线颜色',
+              name: 'lineColor',
+              required: false,
+              placeholder: '',
+              value: '#ffa022'
+            },
+            {
+              type: 'el-input-number',
+              label: '线宽度',
+              name: 'lineWidth',
+              required: false,
+              placeholder: '',
+              value: 2,
+            },
           ],
         },
         {
@@ -170,6 +403,24 @@ export const widgetLineMap = {
               placeholder: '',
               value: true
             },
+            {
+              type: 'el-select',
+              label: '位置',
+              name: 'sourceFontPosition',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'top', name: '上'},
+                {code: 'left', name: '左'},
+                {code: 'right', name: '右'},
+                {code: 'inside', name: '里'},
+                {code: 'insideTop', name: '里顶'},
+                {code: 'insideLeft', name: '里左'},
+                {code: 'insideRight', name: '里右'},
+                {code: 'insideBottom', name: '里底'},
+              ],
+              value: 'top'
+            },
             {
               type: 'el-input-number',
               label: '点大小',
@@ -189,7 +440,7 @@ export const widgetLineMap = {
             {
               type: 'el-input-number',
               label: '文字字号',
-              name: 'sourceFontTextSize',
+              name: 'sourceFontSize',
               required: false,
               placeholder: '',
               value: 12,
@@ -197,10 +448,10 @@ export const widgetLineMap = {
             {
               type: 'vue-color',
               label: '文字颜色',
-              name: 'sourceFontTextColor',
+              name: 'sourceFontColor',
               required: false,
               placeholder: '',
-              value: '#46bee9'
+              value: '#ff7f50'
             },
             {
               type: 'el-select',
@@ -216,6 +467,33 @@ export const widgetLineMap = {
               ],
               value: 'normal'
             },
+            {
+              type: 'el-select',
+              label: '文字风格',
+              name: 'sourceFontStyle',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
+              ],
+              value: 'normal'
+            },
+            {
+              type: 'el-select',
+              label: '文字字体',
+              name: 'sourceFontFamily',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
+            },
           ],
         },
         {
@@ -229,6 +507,24 @@ export const widgetLineMap = {
               placeholder: '',
               value: true
             },
+            {
+              type: 'el-select',
+              label: '位置',
+              name: 'targetFontPosition',
+              required: false,
+              placeholder: '',
+              selectOptions: [
+                {code: 'top', name: '上'},
+                {code: 'left', name: '左'},
+                {code: 'right', name: '右'},
+                {code: 'inside', name: '里'},
+                {code: 'insideTop', name: '里顶'},
+                {code: 'insideLeft', name: '里左'},
+                {code: 'insideRight', name: '里右'},
+                {code: 'insideBottom', name: '里底'},
+              ],
+              value: 'inside'
+            },
             {
               type: 'el-input-number',
               label: '点大小',
@@ -248,7 +544,7 @@ export const widgetLineMap = {
             {
               type: 'el-input-number',
               label: '文字大小',
-              name: 'targetFontTextSize',
+              name: 'targetFontSize',
               required: false,
               placeholder: '',
               value: 12,
@@ -256,7 +552,7 @@ export const widgetLineMap = {
             {
               type: 'vue-color',
               label: '文字颜色',
-              name: 'targetFontTextColor',
+              name: 'targetFontColor',
               required: false,
               placeholder: '',
               value: '#46bee9'
@@ -264,7 +560,7 @@ export const widgetLineMap = {
             {
               type: 'el-select',
               label: '文字粗细',
-              name: 'targetFontTextWeight',
+              name: 'targetFontWeight',
               required: false,
               placeholder: '',
               selectOptions: [
@@ -275,93 +571,58 @@ export const widgetLineMap = {
               ],
               value: 'normal'
             },
-          ],
-        },
-        {
-          name: '图标设置',
-          list: [
             {
               type: 'el-select',
-              label: '图标样式',
-              name: 'symbol',
+              label: '文字风格',
+              name: 'targetFontStyle',
               required: false,
               placeholder: '',
               selectOptions: [
-                { code: 'arrow', name: '箭头' },
-                { code: 'plane', name: '飞机' },
+                {code: 'normal', name: '正常'},
+                {code: 'italic', name: 'italic斜体'},
+                {code: 'oblique', name: 'oblique斜体'},
               ],
-              value: 'arrow'
-            },
-            {
-              type: 'el-input-number',
-              label: '动画速度',
-              name: 'symbolPeriod',
-              required: false,
-              placeholder: '',
-              value: 4,
-            },
-            {
-              type: 'el-input-number',
-              label: '图标大小',
-              name: 'symbolSize',
-              required: false,
-              placeholder: '',
-              value: 10,
-            },
-            {
-              type: 'vue-color',
-              label: '图标颜色',
-              name: 'symbolColor',
-              required: false,
-              placeholder: '',
-              value: '#46bee9'
-            },
-          ],
-        },
-        {
-          name: '线设置',
-          list: [
-            {
-              type: 'vue-color',
-              label: '线颜色',
-              name: 'lineColor',
-              required: false,
-              placeholder: '',
-              value: '#ffa022'
+              value: 'normal'
             },
             {
-              type: 'el-input-number',
-              label: '线宽度',
-              name: 'lineWidth',
+              type: 'el-select',
+              label: '文字字体',
+              name: 'targetFontFamily',
               required: false,
               placeholder: '',
-              value: 2,
+              selectOptions: [
+                {code: 'sans-serif', name: 'sans-serif'},
+                {code: 'serif', name: 'serif'},
+                {code: 'Arial', name: 'Arial'},
+                {code: 'Courier New', name: 'Courier New'},
+              ],
+              value: 'sans-serif'
             },
           ],
         },
         {
-          name: '地图颜色',
+          name: '地图块颜色',
           list: [
             {
               type: 'vue-color',
-              label: '地图块颜色',
-              name: 'blockColor',
+              label: '0%处颜色',
+              name: 'font0PreColor',
               required: false,
               placeholder: '',
               value: '#073684'
             },
             {
               type: 'vue-color',
-              label: '边界颜色',
-              name: 'borderColor',
+              label: '100%颜色',
+              name: 'font100PreColor',
               required: false,
               placeholder: '',
               value: '#061E3D'
             },
             {
               type: 'vue-color',
-              label: '高亮色',
-              name: 'highlightColor',
+              label: '高亮渐变色',
+              name: 'fontHighlightColor',
               required: false,
               placeholder: '',
               value: '#2B91B7'

+ 96 - 36
report-ui/src/views/bigscreenDesigner/designer/widget/map/widgetAirBubbleMap.vue

@@ -1,11 +1,45 @@
 <template>
   <div :style="styleObj">
-    <v-chart ref="myVChart" :options="options" autoresize />
+    <v-chart ref="myVChart" :options="options" autoresize/>
   </div>
 </template>
 <script>
 import {targetWidgetLinkageLogic} from "@/views/bigscreenDesigner/designer/linkageLogic";
-
+import "../../../../../../node_modules/echarts/map/js/china.js";
+import "../../../../../../node_modules/echarts/map/js/world.js";
+import "../../../../../../node_modules/echarts/map/js/province/anhui";
+import "../../../../../../node_modules/echarts/map/js/province/aomen";
+import "../../../../../../node_modules/echarts/map/js/province/beijing";
+import "../../../../../../node_modules/echarts/map/js/province/chongqing";
+import "../../../../../../node_modules/echarts/map/js/province/fujian";
+import "../../../../../../node_modules/echarts/map/js/province/gansu";
+import "../../../../../../node_modules/echarts/map/js/province/guangxi";
+import "../../../../../../node_modules/echarts/map/js/province/guizhou";
+import "../../../../../../node_modules/echarts/map/js/province/hainan";
+import "../../../../../../node_modules/echarts/map/js/province/hebei";
+import "../../../../../../node_modules/echarts/map/js/province/heilongjiang";
+import "../../../../../../node_modules/echarts/map/js/province/henan";
+import "../../../../../../node_modules/echarts/map/js/province/hubei";
+import "../../../../../../node_modules/echarts/map/js/province/hunan";
+import "../../../../../../node_modules/echarts/map/js/province/jiangsu";
+import "../../../../../../node_modules/echarts/map/js/province/jiangxi";
+import "../../../../../../node_modules/echarts/map/js/province/jilin";
+import "../../../../../../node_modules/echarts/map/js/province/liaoning";
+import "../../../../../../node_modules/echarts/map/js/province/neimenggu";
+import "../../../../../../node_modules/echarts/map/js/province/ningxia";
+import "../../../../../../node_modules/echarts/map/js/province/qinghai";
+import "../../../../../../node_modules/echarts/map/js/province/shandong";
+import "../../../../../../node_modules/echarts/map/js/province/shanghai";
+import "../../../../../../node_modules/echarts/map/js/province/shanxi";
+import "../../../../../../node_modules/echarts/map/js/province/shanxi1";
+import "../../../../../../node_modules/echarts/map/js/province/sichuan";
+import "../../../../../../node_modules/echarts/map/js/province/taiwan";
+import "../../../../../../node_modules/echarts/map/js/province/tianjin";
+import "../../../../../../node_modules/echarts/map/js/province/xianggang";
+import "../../../../../../node_modules/echarts/map/js/province/xinjiang";
+import "../../../../../../node_modules/echarts/map/js/province/xizang";
+import "../../../../../../node_modules/echarts/map/js/province/yunnan";
+import "../../../../../../node_modules/echarts/map/js/province/zhejiang";
 import echarts from "echarts";
 import "../../../../../../node_modules/echarts/map/js/china.js";
 //https://www.makeapie.com/editor.html?c=x2yaz6dfRw
@@ -205,7 +239,8 @@ let max = 6000,
   min = 10;
 let maxSize4Pin = 100,
   minSize4Pin = 20;
-import { eventBusParams } from "@/utils/screen";
+import {eventBusParams} from "@/utils/screen";
+
 export default {
   name: "widgetAirBubbleMap",
   props: {
@@ -255,7 +290,7 @@ export default {
                 ],
                 false
               ),
-              borderWidth: 3,
+              borderWidth: 0,
               shadowColor: "rgba(10,76,139,1)",
               shadowOffsetY: 0,
               shadowBlur: 60,
@@ -382,7 +417,7 @@ export default {
                 ((maxSize4Pin - minSize4Pin) / (max - min)) * val[2] +
                 (maxSize4Pin -
                   ((maxSize4Pin - minSize4Pin) / (max - min)) * max) *
-                  1.2
+                1.2
               );
             },
             data: convertData(data),
@@ -444,6 +479,7 @@ export default {
     // 修改图标options属性
     editorOptions() {
       this.setOptionsTitle();
+      this.setOptionsGeo();
       this.setOptionTextValue();
       //this.setOptionDataValue();
       this.setOptionsData();
@@ -451,39 +487,56 @@ export default {
       this.setOptionsTooltip();
       this.setOptionMapBlock();
     },
+
     // 标题设置
     setOptionsTitle() {
       const optionsSetup = this.optionsSetup;
-      const title = {};
-      title.text = optionsSetup.titleText;
-      title.show = optionsSetup.isNoTitle;
-      title.left = optionsSetup.textAlign;
-      title.textStyle = {
-        color: optionsSetup.textColor,
-        fontSize: optionsSetup.textFontSize,
-        fontWeight: optionsSetup.textFontWeight,
-        fontStyle: optionsSetup.textFontStyle,
-      };
-      title.subtext = optionsSetup.subText;
-      title.subtextStyle = {
-        color: optionsSetup.subTextColor,
-        fontWeight: optionsSetup.subTextFontWeight,
-        fontSize: optionsSetup.subTextFontSize,
-        fontStyle: optionsSetup.subTextFontStyle,
+      const title = {
+        text: optionsSetup.text,
+        show: optionsSetup.isShowTitle,
+        left: optionsSetup.titleLeft,
+        top: optionsSetup.titleTop + "%",
+        itemGap: optionsSetup.titleItemGap,
+        textStyle: {
+          color: optionsSetup.textColor,
+          fontSize: optionsSetup.textFontSize,
+          fontWeight: optionsSetup.textFontWeight,
+          fontStyle: optionsSetup.textFontStyle,
+          fontFamily: optionsSetup.textFontFamily,
+        },
+        subtext: optionsSetup.subtext,
+        subtextStyle: {
+          color: optionsSetup.subtextColor,
+          fontWeight: optionsSetup.subtextFontWeight,
+          fontSize: optionsSetup.subtextFontSize,
+          fontStyle: optionsSetup.subtextFontStyle,
+          fontFamily: optionsSetup.subtextFontFamily
+        },
       };
       this.options.title = title;
     },
+    setOptionsGeo(){
+      this.options.geo['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
+      this.options.series[0]['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
+    },
     setOptionTextValue() {
       const optionsSetup = this.optionsSetup;
-      const label = this.options.series[0]["label"];
-      const normal = {
-        position: "right",
-        show: optionsSetup.isShowMap,
-        color: optionsSetup.fontTextColor,
-        fontSize: optionsSetup.fontTextSize,
-        fontWeight: optionsSetup.fontTextWeight,
+      const label = {
+        normal: {
+          position: "right",
+          show: optionsSetup.isShowMap,
+          color: optionsSetup.fontColor,
+          fontSize: optionsSetup.fontSize,
+          fontWeight: optionsSetup.fontWeight,
+          fontStyle: optionsSetup.fontStyle,
+          fontFamily: optionsSetup.fontFamily,
+        },
+        emphasis: {
+          show: false,
+          color: '#fff',
+        },
       };
-      label["normal"] = normal;
+      this.options.series[0]["label"] = label;
     },
     setOptionMapBlock() {
       const optionsSetup = this.optionsSetup;
@@ -506,8 +559,8 @@ export default {
             },
           ],
         },
-        borderColor: "#215495",
-        borderWidth: 1,
+        borderColor: optionsSetup.borderColor,
+        borderWidth: optionsSetup.borderWidth,
       };
       //鼠标放置颜色加深
       const emphasis = {
@@ -540,10 +593,13 @@ export default {
       const optionsSetup = this.optionsSetup;
       const tooltip = {
         trigger: "item",
-        show: true,
+        show: optionsSetup.isShowTooltip,
         textStyle: {
-          color: optionsSetup.tipsColor,
-          fontSize: optionsSetup.tipsFontSize,
+          color: optionsSetup.tooltipColor,
+          fontSize: optionsSetup.tooltipFontSize,
+          fontWeight: optionsSetup.tooltipFontWeight,
+          fontStyle: optionsSetup.tooltipFontStyle,
+          fontFamily: optionsSetup.tooltipFontFamily,
         },
         formatter: function (params) {
           if (params.value.length > 1) {
@@ -584,7 +640,7 @@ export default {
       const optionsSetup = this.optionsSetup;
       const label = this.options.series[1]["label"];
       const normal = {
-        show: true,
+        show: optionsSetup.isShowData,
         color: "#fff",
         fontWeight: "bold",
         position: "inside",
@@ -596,6 +652,8 @@ export default {
             fontSize: optionsSetup.fontDataSize,
             color: optionsSetup.fontDataColor,
             fontWeight: optionsSetup.fontDataWeight,
+            fontStyle: optionsSetup.fontDataStyle,
+            fontFamily: optionsSetup.fontDataFamily,
           },
         },
       };
@@ -625,7 +683,7 @@ export default {
       const optionsSetup = this.optionsSetup;
       const label = this.options.series[1]["label"];
       const normal = {
-        show: true,
+        show: optionsSetup.isShowData,
         color: "#fff",
         fontWeight: "bold",
         position: "inside",
@@ -637,6 +695,8 @@ export default {
             fontSize: optionsSetup.fontDataSize,
             color: optionsSetup.fontDataColor,
             fontWeight: optionsSetup.fontDataWeight,
+            fontStyle: optionsSetup.fontDataStyle,
+            fontFamily: optionsSetup.fontDataFamily,
           },
         },
       };

+ 38 - 42
report-ui/src/views/bigscreenDesigner/designer/widget/map/widgetBarMap.vue

@@ -41,8 +41,6 @@ import "../../../../../../node_modules/echarts/map/js/province/xinjiang";
 import "../../../../../../node_modules/echarts/map/js/province/xizang";
 import "../../../../../../node_modules/echarts/map/js/province/yunnan";
 import "../../../../../../node_modules/echarts/map/js/province/zhejiang";
-
-
 import {conversionProvince} from "@/utils/china";
 import echarts from "echarts";
 
@@ -78,45 +76,43 @@ export default {
             }
           },
         },
-        geo: [
-          {
-            map: "china",
-            show: true,
-            roam: false,
-            layoutSize: "80%",
-            label: {
-              emphasis: {
-                show: false,
-                color: "white",
-              },
+        geo: {
+          map: "china",
+          show: true,
+          roam: false,
+          layoutSize: "80%",
+          label: {
+            emphasis: {
+              show: false,
+              color: "white",
             },
-            itemStyle: {
-              normal: {
-                borderColor: new echarts.graphic.LinearGradient(
-                  0,
-                  0,
-                  0,
-                  1,
-                  [
-                    {
-                      offset: 0,
-                      color: "#00F6FF",
-                    },
-                    {
-                      offset: 1,
-                      color: "#53D9FF",
-                    },
-                  ],
-                  false
-                ),
-                borderWidth: 1,
-                shadowColor: "rgba(10,76,139,1)",
-                shadowOffsetY: 0,
-                shadowBlur: 60,
-              },
+          },
+          itemStyle: {
+            normal: {
+              borderColor: new echarts.graphic.LinearGradient(
+                0,
+                0,
+                0,
+                1,
+                [
+                  {
+                    offset: 0,
+                    color: "#00F6FF",
+                  },
+                  {
+                    offset: 1,
+                    color: "#53D9FF",
+                  },
+                ],
+                false
+              ),
+              borderWidth: 1,
+              shadowColor: "rgba(10,76,139,1)",
+              shadowOffsetY: 0,
+              shadowBlur: 60,
             },
-          }
-        ],
+          },
+        },
         series: [
           {
             aspectScale: 0.75,
@@ -409,9 +405,9 @@ export default {
       };
       this.options.tooltip = tooltip;
     },
-    setOptionsGeo(){
-      this.options.geo[0]['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
-      this.options.series[0]['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
+    setOptionsGeo() {
+      this.options.geo['map'] = this.optionsSetup.mapName == '' ? "china" : this.optionsSetup.mapName;
+      this.options.series[0]['map'] = this.optionsSetup.mapName == '' ? "china" : this.optionsSetup.mapName;
     },
     // 地图设置
     setOptionsMap() {

+ 214 - 160
report-ui/src/views/bigscreenDesigner/designer/widget/map/widgetLineMap.vue

@@ -5,126 +5,44 @@
 </template>
 <script>
 import {targetWidgetLinkageLogic} from "@/views/bigscreenDesigner/designer/linkageLogic";
-
+import "../../../../../../node_modules/echarts/map/js/china.js";
+import "../../../../../../node_modules/echarts/map/js/world.js";
+import "../../../../../../node_modules/echarts/map/js/province/anhui";
+import "../../../../../../node_modules/echarts/map/js/province/aomen";
+import "../../../../../../node_modules/echarts/map/js/province/beijing";
+import "../../../../../../node_modules/echarts/map/js/province/chongqing";
+import "../../../../../../node_modules/echarts/map/js/province/fujian";
+import "../../../../../../node_modules/echarts/map/js/province/gansu";
+import "../../../../../../node_modules/echarts/map/js/province/guangxi";
+import "../../../../../../node_modules/echarts/map/js/province/guizhou";
+import "../../../../../../node_modules/echarts/map/js/province/hainan";
+import "../../../../../../node_modules/echarts/map/js/province/hebei";
+import "../../../../../../node_modules/echarts/map/js/province/heilongjiang";
+import "../../../../../../node_modules/echarts/map/js/province/henan";
+import "../../../../../../node_modules/echarts/map/js/province/hubei";
+import "../../../../../../node_modules/echarts/map/js/province/hunan";
+import "../../../../../../node_modules/echarts/map/js/province/jiangsu";
+import "../../../../../../node_modules/echarts/map/js/province/jiangxi";
+import "../../../../../../node_modules/echarts/map/js/province/jilin";
+import "../../../../../../node_modules/echarts/map/js/province/liaoning";
+import "../../../../../../node_modules/echarts/map/js/province/neimenggu";
+import "../../../../../../node_modules/echarts/map/js/province/ningxia";
+import "../../../../../../node_modules/echarts/map/js/province/qinghai";
+import "../../../../../../node_modules/echarts/map/js/province/shandong";
+import "../../../../../../node_modules/echarts/map/js/province/shanghai";
+import "../../../../../../node_modules/echarts/map/js/province/shanxi";
+import "../../../../../../node_modules/echarts/map/js/province/shanxi1";
+import "../../../../../../node_modules/echarts/map/js/province/sichuan";
+import "../../../../../../node_modules/echarts/map/js/province/taiwan";
+import "../../../../../../node_modules/echarts/map/js/province/tianjin";
+import "../../../../../../node_modules/echarts/map/js/province/xianggang";
+import "../../../../../../node_modules/echarts/map/js/province/xinjiang";
+import "../../../../../../node_modules/echarts/map/js/province/xizang";
+import "../../../../../../node_modules/echarts/map/js/province/yunnan";
+import "../../../../../../node_modules/echarts/map/js/province/zhejiang";
 import "echarts/map/js/china.js";
 import echarts from "echarts";
 import { conversionCity } from "@/utils/china";
-/*let geoCoordMap = {
-  上海市: [121.4648, 31.2891],
-  东莞市: [113.8953, 22.901],
-  东营市: [118.7073, 37.5513],
-  中山市: [113.4229, 22.478],
-  临汾市: [111.4783, 36.1615],
-  临沂市: [118.3118, 35.2936],
-  丹东市: [124.541, 40.4242],
-  丽水市: [119.5642, 28.1854],
-  乌鲁木齐市: [87.9236, 43.5883],
-  佛山市: [112.8955, 23.1097],
-  保定市: [115.0488, 39.0948],
-  兰州市: [103.5901, 36.3043],
-  包头市: [110.3467, 41.4899],
-  北京市: [116.4551, 40.2539],
-  北海市: [109.314, 21.6211],
-  南京市: [118.8062, 31.9208],
-  南宁市: [108.479, 23.1152],
-  南昌市: [116.0046, 28.6633],
-  南通市: [121.1023, 32.1625],
-  厦门市: [118.1689, 24.6478],
-  台州市: [121.1353, 28.6688],
-  合肥市: [117.29, 32.0581],
-  呼和浩特市: [111.4124, 40.4901],
-  咸阳市: [108.4131, 34.8706],
-  哈尔滨市: [127.9688, 45.368],
-  唐山市: [118.4766, 39.6826],
-  嘉兴市: [120.9155, 30.6354],
-  大同市: [113.7854, 39.8035],
-  大连市: [122.2229, 39.4409],
-  天津市: [117.4219, 39.4189],
-  太原市: [112.3352, 37.9413],
-  威海市: [121.9482, 37.1393],
-  宁波市: [121.5967, 29.6466],
-  宝鸡市: [107.1826, 34.3433],
-  宿迁市: [118.5535, 33.7775],
-  常州市: [119.4543, 31.5582],
-  广州市: [113.5107, 23.2196],
-  廊坊市: [116.521, 39.0509],
-  延安市: [109.1052, 36.4252],
-  张家口市: [115.1477, 40.8527],
-  徐州市: [117.5208, 34.3268],
-  德州市: [116.6858, 37.2107],
-  惠州市: [114.6204, 23.1647],
-  成都市: [103.9526, 30.7617],
-  扬州市: [119.4653, 32.8162],
-  承德市: [117.5757, 41.4075],
-  拉萨市: [91.1865, 30.1465],
-  无锡市: [120.3442, 31.5527],
-  日照市: [119.2786, 35.5023],
-  昆明市: [102.9199, 25.4663],
-  杭州市: [119.5313, 29.8773],
-  枣庄市: [117.323, 34.8926],
-  柳州市: [109.3799, 24.9774],
-  株洲市: [113.5327, 27.0319],
-  武汉市: [114.3896, 30.6628],
-  汕头市: [117.1692, 23.3405],
-  江门市: [112.6318, 22.1484],
-  沈阳市: [123.1238, 42.1216],
-  沧州市: [116.8286, 38.2104],
-  河源市: [114.917, 23.9722],
-  泉州市: [118.3228, 25.1147],
-  泰安市: [117.0264, 36.0516],
-  泰州市: [120.0586, 32.5525],
-  济南市: [117.1582, 36.8701],
-  济宁市: [116.8286, 35.3375],
-  海口市: [110.3893, 19.8516],
-  淄博市: [118.0371, 36.6064],
-  淮安市: [118.927, 33.4039],
-  深圳市: [114.5435, 22.5439],
-  清远市: [112.9175, 24.3292],
-  温州市: [120.498, 27.8119],
-  渭南市: [109.7864, 35.0299],
-  湖州市: [119.8608, 30.7782],
-  湘潭市: [112.5439, 27.7075],
-  滨州市: [117.8174, 37.4963],
-  潍坊市: [119.0918, 36.524],
-  烟台市: [120.7397, 37.5128],
-  玉溪市: [101.9312, 23.8898],
-  珠海市: [113.7305, 22.1155],
-  盐城市: [120.2234, 33.5577],
-  盘锦市: [121.9482, 41.0449],
-  石家庄市: [114.4995, 38.1006],
-  福州市: [119.4543, 25.9222],
-  秦皇岛市: [119.2126, 40.0232],
-  绍兴市: [120.564, 29.7565],
-  聊城市: [115.9167, 36.4032],
-  肇庆市: [112.1265, 23.5822],
-  舟山市: [122.2559, 30.2234],
-  苏州市: [120.6519, 31.3989],
-  莱芜市: [117.6526, 36.2714],
-  菏泽市: [115.6201, 35.2057],
-  营口市: [122.4316, 40.4297],
-  葫芦岛市: [120.1575, 40.578],
-  衡水市: [115.8838, 37.7161],
-  衢州市: [118.6853, 28.8666],
-  西宁市: [101.4038, 36.8207],
-  西安市: [109.1162, 34.2004],
-  贵阳市: [106.6992, 26.7682],
-  连云港市: [119.1248, 34.552],
-  邢台市: [114.8071, 37.2821],
-  邯郸市: [114.4775, 36.535],
-  郑州市: [113.4668, 34.6234],
-  鄂尔多斯市: [108.9734, 39.2487],
-  重庆市: [107.7539, 30.1904],
-  金华市: [120.0037, 29.1028],
-  铜川市: [109.0393, 35.1947],
-  银川市: [106.3586, 38.1775],
-  镇江市: [119.4763, 31.9702],
-  长春市: [125.8154, 44.2584],
-  长沙市: [113.0823, 28.2568],
-  长治市: [112.8625, 36.4746],
-  阳泉市: [113.4778, 38.0951],
-  青岛市: [120.4651, 36.3373],
-  韶关市: [113.7964, 24.7028]
-};*/
 let geoCoordMap = conversionCity;
 let planePath =
   "path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z";
@@ -192,6 +110,75 @@ export default {
           },
         },
         series: [
+          {
+            aspectScale: 0.75,
+            type: 'map',
+            map: 'china',
+            //roam: true,
+            effect: {
+              show: false,
+              period: 6,
+              trailLength: 0.7,
+              color: "#fff",
+              symbolSize: 3,
+            },
+            label: {
+              normal: {
+                //调整数值
+                position: "right",
+                // 地图省市区显隐
+                show: false,
+                color: "#53D9FF",
+                fontSize: 20,
+              },
+              emphasis: {
+                show: true,
+              },
+            },
+            itemStyle: {
+              normal: {
+                //地图块颜色
+                areaColor: {
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [
+                    {
+                      offset: 0,
+                      color: "#073684", // 0% 处的颜色
+                    },
+                    {
+                      offset: 1,
+                      color: "#061E3D", // 100% 处的颜色
+                    },
+                  ],
+                },
+                borderColor: "#215495",
+                borderWidth: 1,
+              },
+              //鼠标放置颜色加深
+              emphasis: {
+                areaColor: {
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [
+                    {
+                      offset: 0,
+                      color: "#073684", // 0% 处的颜色
+                    },
+                    {
+                      offset: 1,
+                      color: "#2B91B7", // 100% 处的颜色
+                    },
+                  ],
+                },
+              },
+            },
+            data: []
+          },
           {
             //name: tempData[0],
             type: "lines",
@@ -350,8 +337,10 @@ export default {
     },
     editorOptions() {
       this.setOptionsTitle();
+      this.setOptionsGeo();
       this.setOptionsSource();
       this.setOptionsTarget();
+      this.setOptionsMap();
       this.setOptionsSymbol();
       this.setOptionsLine();
       this.setOptionsColor();
@@ -360,35 +349,67 @@ export default {
     // 标题设置
     setOptionsTitle() {
       const optionsSetup = this.optionsSetup;
-      const title = {};
-      title.text = optionsSetup.titleText;
-      title.show = optionsSetup.isNoTitle;
-      title.left = optionsSetup.textAlign;
-      title.textStyle = {
-        color: optionsSetup.textColor,
-        fontSize: optionsSetup.textFontSize,
-        fontWeight: optionsSetup.textFontWeight,
-        fontStyle: optionsSetup.textFontStyle,
-      };
-      title.subtext = optionsSetup.subText;
-      title.subtextStyle = {
-        color: optionsSetup.subTextColor,
-        fontWeight: optionsSetup.subTextFontWeight,
-        fontSize: optionsSetup.subTextFontSize,
-        fontStyle: optionsSetup.subTextFontStyle,
+      const title = {
+        text: optionsSetup.text,
+        show: optionsSetup.isShowTitle,
+        left: optionsSetup.titleLeft,
+        top: optionsSetup.titleTop + "%",
+        itemGap: optionsSetup.titleItemGap,
+        textStyle: {
+          color: optionsSetup.textColor,
+          fontSize: optionsSetup.textFontSize,
+          fontWeight: optionsSetup.textFontWeight,
+          fontStyle: optionsSetup.textFontStyle,
+          fontFamily: optionsSetup.textFontFamily,
+        },
+        subtext: optionsSetup.subtext,
+        subtextStyle: {
+          color: optionsSetup.subtextColor,
+          fontWeight: optionsSetup.subtextFontWeight,
+          fontSize: optionsSetup.subtextFontSize,
+          fontStyle: optionsSetup.subtextFontStyle,
+          fontFamily: optionsSetup.subtextFontFamily
+        },
       };
       this.options.title = title;
     },
+    setOptionsGeo(){
+      this.options.geo['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
+      this.options.series[0]['map'] = this.optionsSetup.mapName == ''? "china" : this.optionsSetup.mapName;
+    },
+    // 地图设置
+    setOptionsMap() {
+      const optionsSetup = this.optionsSetup;
+      const label = {
+        normal: {
+          //调整数值
+          position: "right",
+          // 地图省市区显隐
+          show: optionsSetup.isShowMap,
+          color: optionsSetup.fontColor,
+          fontSize: optionsSetup.fontSize,
+          fontWeight: optionsSetup.fontWeight,
+          fontStyle: optionsSetup.fontStyle,
+          fontFamily: optionsSetup.fontFamily,
+        },
+        emphasis: {
+          show: false,
+        },
+      }
+      this.options.series[0]['label'] = label;
+    },
     // 起点设置
     setOptionsSource() {
       const optionsSetup = this.optionsSetup;
-      const series = this.options.series[2];
+      const series = this.options.series[3];
       const normal = {
         show: optionsSetup.isShowSource,
-        position: "right",
-        color: optionsSetup.sourceFontTextColor,
-        fontSize: optionsSetup.sourceFontTextSize,
-        fontWeight: optionsSetup.sourceFontTextWeight,
+        position: optionsSetup.sourceFontPosition,
+        color: optionsSetup.sourceFontColor,
+        fontSize: optionsSetup.sourceFontSize,
+        fontWeight: optionsSetup.sourceFontWeight,
+        fontStyle: optionsSetup.sourceFontStyle,
+        fontFamily: optionsSetup.sourceFontFamily
       };
       const itemStyle = {
         normal: {
@@ -402,13 +423,15 @@ export default {
     // 终点设置
     setOptionsTarget() {
       const optionsSetup = this.optionsSetup;
-      const series = this.options.series[3];
+      const series = this.options.series[4];
       const normal = {
         show: optionsSetup.isShowTarget,
-        position: "right",
-        color: optionsSetup.targetFontTextColor,
-        fontSize: optionsSetup.targetFontTextSize,
-        fontWeight: optionsSetup.targetFontTextWeight,
+        position: optionsSetup.targetFontPosition,
+        color: optionsSetup.targetFontColor,
+        fontSize: optionsSetup.targetFontSize,
+        fontWeight: optionsSetup.targetFontWeight,
+        fontStyle: optionsSetup.sourceFontStyle,
+        fontFamily: optionsSetup.sourceFontFamily
       };
       const itemStyle = {
         normal: {
@@ -422,7 +445,7 @@ export default {
     // 图标设置
     setOptionsSymbol() {
       const optionsSetup = this.optionsSetup;
-      const series = this.options.series[1];
+      const series = this.options.series[2];
       const effect = {
         show: true,
         period: this.setPeriod(optionsSetup),
@@ -454,7 +477,7 @@ export default {
     // 线设置
     setOptionsLine() {
       const optionsSetup = this.optionsSetup;
-      const series = this.options.series[1];
+      const series = this.options.series[2];
       const lineStyle = {
         normal: {
           // 线条颜色
@@ -469,18 +492,49 @@ export default {
     // 地图颜色设置
     setOptionsColor() {
       const optionsSetup = this.optionsSetup;
-      const itemStyle = {
-        normal: {
-          // 地图的颜色
-          areaColor: optionsSetup.blockColor,
-          borderColor: optionsSetup.borderColor,
+      const itemStyle = this.options.series[0]["itemStyle"];
+      const normal = {
+        //地图块颜色
+        areaColor: {
+          x: 0,
+          y: 0,
+          x2: 0,
+          y2: 1,
+          colorStops: [
+            {
+              offset: 0,
+              color: optionsSetup.font0PreColor, // 0% 处的颜色
+            },
+            {
+              offset: 1,
+              color: optionsSetup.font100PreColor, // 100% 处的颜色
+            },
+          ],
         },
-        emphasis: {
-          // 地图块颜色
-          areaColor: optionsSetup.highlightColor,
+        borderColor: optionsSetup.borderColor,
+        borderWidth: optionsSetup.borderWidth,
+      };
+      //鼠标放置颜色加深
+      const emphasis = {
+        areaColor: {
+          x: 0,
+          y: 0,
+          x2: 0,
+          y2: 1,
+          colorStops: [
+            {
+              offset: 0,
+              color: "#073684", // 0% 处的颜色
+            },
+            {
+              offset: 1,
+              color: optionsSetup.fontHighlightColor, // 100% 处的颜色
+            },
+          ],
         },
       };
-      this.options.geo["itemStyle"] = itemStyle;
+      itemStyle["normal"] = normal;
+      itemStyle["emphasis"] = emphasis;
     },
     //数据解析
     setOptionsData(e, paramsConfig) {
@@ -508,9 +562,9 @@ export default {
     },
     staticDataFn(val) {
       const series = this.options.series;
-      series[0]["data"] = this.convertData(val);
       series[1]["data"] = this.convertData(val);
-      series[2]["data"] = val.map(function (dataItem) {
+      series[2]["data"] = this.convertData(val);
+      series[3]["data"] = val.map(function (dataItem) {
         if (geoCoordMap[dataItem.source] && geoCoordMap[dataItem.target]) {
           return {
             name: dataItem.source,
@@ -518,7 +572,7 @@ export default {
           };
         }
       });
-      series[3]["data"] = val.map(function (dataItem) {
+      series[4]["data"] = val.map(function (dataItem) {
         if (geoCoordMap[dataItem.source] && geoCoordMap[dataItem.target]) {
           return {
             name: dataItem.target,
@@ -546,9 +600,9 @@ export default {
     },
     renderingFn(val) {
       const series = this.options.series;
-      series[0]["data"] = this.convertData(val);
       series[1]["data"] = this.convertData(val);
-      series[2]["data"] = val.map(function (dataItem) {
+      series[2]["data"] = this.convertData(val);
+      series[3]["data"] = val.map(function (dataItem) {
         if (geoCoordMap[dataItem.source] && geoCoordMap[dataItem.target]) {
           return {
             name: dataItem.source,
@@ -556,7 +610,7 @@ export default {
           };
         }
       });
-      series[3]["data"] = val.map(function (dataItem) {
+      series[4]["data"] = val.map(function (dataItem) {
         if (geoCoordMap[dataItem.source] && geoCoordMap[dataItem.target]) {
           return {
             name: dataItem.target,