diff --git a/DataRoom/dataroom-core/pom.xml b/DataRoom/dataroom-core/pom.xml
index 1d27e360..f00689d3 100644
--- a/DataRoom/dataroom-core/pom.xml
+++ b/DataRoom/dataroom-core/pom.xml
@@ -6,7 +6,7 @@
com.gccloud
dataroom
- 1.0.1.2023081101.Alpha
+ 1.0.1.2023083001.Alpha
dataroom-core
diff --git a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenMapChart.java b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenMapChart.java
index b0b3cefc..26c3af26 100644
--- a/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenMapChart.java
+++ b/DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenMapChart.java
@@ -80,6 +80,15 @@ public class ScreenMapChart extends Chart {
@ApiModelProperty(notes = "值")
private String value;
+ @ApiModelProperty(notes = "图形字体颜色")
+ private String fontGraphicColor;
+
+ @ApiModelProperty(notes = "图形字体大小")
+ private String fontSize;
+
+ @ApiModelProperty(notes = "是否开启下钻")
+ private Boolean down;
+
}
diff --git a/DataRoom/dataroom-server/pom.xml b/DataRoom/dataroom-server/pom.xml
index 1c2e9079..662b7142 100644
--- a/DataRoom/dataroom-server/pom.xml
+++ b/DataRoom/dataroom-server/pom.xml
@@ -6,7 +6,7 @@
com.gccloud
dataroom
- 1.0.1.2023081101.Alpha
+ 1.0.1.2023083001.Alpha
dataroom-server
@@ -29,7 +29,7 @@
com.gccloud
dataroom-core
- 1.0.1.2023081101.Alpha
+ 1.0.1.2023083001.Alpha
diff --git a/DataRoom/pom.xml b/DataRoom/pom.xml
index 6de50d6c..2d543599 100644
--- a/DataRoom/pom.xml
+++ b/DataRoom/pom.xml
@@ -12,7 +12,7 @@
com.gccloud
dataroom
- 1.0.1.2023081101.Alpha
+ 1.0.1.2023083001.Alpha
pom
基于G2Plot、Echarts的大屏设计服务端,具备设计、预览能力,支持MySQL、Oracle、PostgreSQL、Groovy等数据集接入
@@ -60,7 +60,7 @@
0.3.2
2.2
4.9.1
- 1.0.1.2023082801.Alpha
+ 1.0.1.2023083001.Alpha
diff --git a/README.md b/README.md
index ba3e81a6..a473d801 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
-🔥DataRoom是一款基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的大屏设计器,具备大屏设计、预览能力,支持MySQL、Oracle、PostgreSQL、JSON、JS、HTTP、Groovy等数据集接入,使用简单,完全免费,代码开源。
+🔥DataRoom是一款基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的大屏设计器,具备大屏设计、预览能力,支持MySQL、Oracle、PostgreSQL、MSSQL、JSON、JS、HTTP、Groovy等数据集接入,使用简单,完全免费,代码开源。
## 效果图
diff --git a/data-room-ui/package-lock.json b/data-room-ui/package-lock.json
index a92d268f..c742673e 100644
--- a/data-room-ui/package-lock.json
+++ b/data-room-ui/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@gcpaas/data-room-ui",
- "version": "1.0.1-2023082201-Alpha",
+ "version": "1.0.1-2023082902-Alpha",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -3397,27 +3397,6 @@
"whatwg-fetch": "^3.6.2"
},
"dependencies": {
- "@vue/vue-loader-v15": {
- "version": "npm:vue-loader@15.10.2",
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
- "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
- "dev": true,
- "requires": {
- "@vue/component-compiler-utils": "^3.1.0",
- "hash-sum": "^1.0.2",
- "loader-utils": "^1.1.0",
- "vue-hot-reload-api": "^2.3.0",
- "vue-style-loader": "^4.1.0"
- },
- "dependencies": {
- "hash-sum": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
- "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
- "dev": true
- }
- }
- },
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
@@ -3489,26 +3468,6 @@
"tapable": "^2.0.0"
}
},
- "json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "loader-utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
- "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- }
- },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -3726,6 +3685,47 @@
"lodash": "^4.17.4"
}
},
+ "@vue/vue-loader-v15": {
+ "version": "npm:vue-loader@15.10.2",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
+ "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
+ "dev": true,
+ "requires": {
+ "@vue/component-compiler-utils": "^3.1.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ },
+ "dependencies": {
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ }
+ }
+ }
+ },
"@vue/vue2-jest": {
"version": "27.0.0",
"resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz",
diff --git a/data-room-ui/package.json b/data-room-ui/package.json
index dc625b22..a5dc9a74 100644
--- a/data-room-ui/package.json
+++ b/data-room-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "@gcpaas/data-room-ui",
- "version": "1.0.1-2023082902-Alpha",
+ "version": "1.0.1-2023083002-Alpha",
"description": "自定义大屏",
"author": "gcpaas",
"license": "MIT",
diff --git a/data-room-ui/packages/BasicComponents/FlyMap/index.vue b/data-room-ui/packages/BasicComponents/FlyMap/index.vue
new file mode 100644
index 00000000..50cb866f
--- /dev/null
+++ b/data-room-ui/packages/BasicComponents/FlyMap/index.vue
@@ -0,0 +1,320 @@
+
+
+
+
+
+
diff --git a/data-room-ui/packages/BasicComponents/FlyMap/json/mapData.js b/data-room-ui/packages/BasicComponents/FlyMap/json/mapData.js
new file mode 100644
index 00000000..4b6a6f7a
--- /dev/null
+++ b/data-room-ui/packages/BasicComponents/FlyMap/json/mapData.js
@@ -0,0 +1,219 @@
+export const nameMap = {
+ Afghanistan: '阿富汗',
+ Singapore: '新加坡',
+ Angola: '安哥拉',
+ Albania: '阿尔巴尼亚',
+ 'United Arab Emirates': '阿联酋',
+ Argentina: '阿根廷',
+ Armenia: '亚美尼亚',
+ 'French Southern and Antarctic Lands':
+ '法属南半球和南极领地',
+ Australia: '澳大利亚',
+ Austria: '奥地利',
+ Azerbaijan: '阿塞拜疆',
+ Burundi: '布隆迪',
+ Belgium: '比利时',
+ Benin: '贝宁',
+ 'Burkina Faso': '布基纳法索',
+ Bangladesh: '孟加拉国',
+ Bulgaria: '保加利亚',
+ 'The Bahamas': '巴哈马',
+ 'Bosnia and Herzegovina': '波斯尼亚和黑塞哥维那',
+ Belarus: '白俄罗斯',
+ Belize: '伯利兹',
+ Bermuda: '百慕大',
+ Bolivia: '玻利维亚',
+ Brazil: '巴西',
+ Brunei: '文莱',
+ Bhutan: '不丹',
+ Botswana: '博茨瓦纳',
+ 'Central African Republic': '中非共和国',
+ Canada: '加拿大',
+ Switzerland: '瑞士',
+ Chile: '智利',
+ China: '中国',
+ 'Ivory Coast': '象牙海岸',
+ Cameroon: '喀麦隆',
+ 'Democratic Republic of the Congo': '刚果民主共和国',
+ 'Republic of the Congo': '刚果共和国',
+ Colombia: '哥伦比亚',
+ 'Costa Rica': '哥斯达黎加',
+ Cuba: '古巴',
+ 'Northern Cyprus': '北塞浦路斯',
+ Cyprus: '塞浦路斯',
+ 'Czech Republic': '捷克共和国',
+ Germany: '德国',
+ Djibouti: '吉布提',
+ Denmark: '丹麦',
+ 'Dominican Republic': '多明尼加共和国',
+ Algeria: '阿尔及利亚',
+ Ecuador: '厄瓜多尔',
+ Egypt: '埃及',
+ Eritrea: '厄立特里亚',
+ Spain: '西班牙',
+ Estonia: '爱沙尼亚',
+ Ethiopia: '埃塞俄比亚',
+ Finland: '芬兰',
+ Fiji: '斐',
+ 'Falkland Islands': '福克兰群岛',
+ France: '法国',
+ Gabon: '加蓬',
+ 'United Kingdom': '英国',
+ Georgia: '格鲁吉亚',
+ Ghana: '加纳',
+ Guinea: '几内亚',
+ Gambia: '冈比亚',
+ 'Guinea Bissau': '几内亚比绍',
+ Greece: '希腊',
+ Greenland: '格陵兰',
+ Guatemala: '危地马拉',
+ 'French Guiana': '法属圭亚那',
+ Guyana: '圭亚那',
+ Honduras: '洪都拉斯',
+ Croatia: '克罗地亚',
+ Haiti: '海地',
+ Hungary: '匈牙利',
+ Indonesia: '印度尼西亚',
+ India: '印度',
+ Ireland: '爱尔兰',
+ Iran: '伊朗',
+ Iraq: '伊拉克',
+ Iceland: '冰岛',
+ Israel: '以色列',
+ Italy: '意大利',
+ Jamaica: '牙买加',
+ Jordan: '约旦',
+ Japan: '日本',
+ Kazakhstan: '哈萨克斯坦',
+ Kenya: '肯尼亚',
+ Kyrgyzstan: '吉尔吉斯斯坦',
+ Cambodia: '柬埔寨',
+ Kosovo: '科索沃',
+ Kuwait: '科威特',
+ Laos: '老挝',
+ Lebanon: '黎巴嫩',
+ Liberia: '利比里亚',
+ Libya: '利比亚',
+ 'Sri Lanka': '斯里兰卡',
+ Lesotho: '莱索托',
+ Lithuania: '立陶宛',
+ Luxembourg: '卢森堡',
+ Latvia: '拉脱维亚',
+ Morocco: '摩洛哥',
+ Moldova: '摩尔多瓦',
+ Madagascar: '马达加斯加',
+ Mexico: '墨西哥',
+ Macedonia: '马其顿',
+ Mali: '马里',
+ Myanmar: '缅甸',
+ Montenegro: '黑山',
+ Mongolia: '蒙古',
+ Mozambique: '莫桑比克',
+ Mauritania: '毛里塔尼亚',
+ Malawi: '马拉维',
+ Malaysia: '马来西亚',
+ Namibia: '纳米比亚',
+ 'New Caledonia': '新喀里多尼亚',
+ Niger: '尼日尔',
+ Nigeria: '尼日利亚',
+ Nicaragua: '尼加拉瓜',
+ Netherlands: '荷兰',
+ Norway: '挪威',
+ Nepal: '尼泊尔',
+ 'New Zealand': '新西兰',
+ Oman: '阿曼',
+ Pakistan: '巴基斯坦',
+ Panama: '巴拿马',
+ Peru: '秘鲁',
+ Philippines: '菲律宾',
+ 'Papua New Guinea': '巴布亚新几内亚',
+ Poland: '波兰',
+ 'Puerto Rico': '波多黎各',
+ 'North Korea': '北朝鲜',
+ Portugal: '葡萄牙',
+ Paraguay: '巴拉圭',
+ Qatar: '卡塔尔',
+ Romania: '罗马尼亚',
+ Russia: '俄罗斯',
+ Rwanda: '卢旺达',
+ 'Western Sahara': '西撒哈拉',
+ 'Saudi Arabia': '沙特阿拉伯',
+ Sudan: '苏丹',
+ 'South Sudan': '南苏丹',
+ Senegal: '塞内加尔',
+ 'Solomon Islands': '所罗门群岛',
+ 'Sierra Leone': '塞拉利昂',
+ 'El Salvador': '萨尔瓦多',
+ Somaliland: '索马里兰',
+ Somalia: '索马里',
+ 'Republic of Serbia': '塞尔维亚',
+ Suriname: '苏里南',
+ Slovakia: '斯洛伐克',
+ Slovenia: '斯洛文尼亚',
+ Sweden: '瑞典',
+ Swaziland: '斯威士兰',
+ Syria: '叙利亚',
+ Chad: '乍得',
+ Togo: '多哥',
+ Thailand: '泰国',
+ Tajikistan: '塔吉克斯坦',
+ Turkmenistan: '土库曼斯坦',
+ 'East Timor': '东帝汶',
+ 'Trinidad and Tobago': '特里尼达和多巴哥',
+ Tunisia: '突尼斯',
+ Turkey: '土耳其',
+ 'United Republic of Tanzania': '坦桑尼亚',
+ Uganda: '乌干达',
+ Ukraine: '乌克兰',
+ Uruguay: '乌拉圭',
+ 'United States': '美国',
+ Uzbekistan: '乌兹别克斯坦',
+ Venezuela: '委内瑞拉',
+ Vietnam: '越南',
+ Vanuatu: '瓦努阿图',
+ 'West Bank': '西岸',
+ Yemen: '也门',
+ 'South Africa': '南非',
+ Zambia: '赞比亚',
+ Korea: '韩国',
+ Tanzania: '坦桑尼亚',
+ Zimbabwe: '津巴布韦',
+ Congo: '刚果',
+ 'Central African Rep.': '中非',
+ Serbia: '塞尔维亚',
+ 'Bosnia and Herz.': '波黑',
+ 'Czech Rep.': '捷克',
+ 'W. Sahara': '西撒哈拉',
+ 'Lao PDR': '老挝',
+ 'Dem.Rep.Korea': '朝鲜',
+ 'Falkland Is.': '福克兰群岛',
+ 'Timor-Leste': '东帝汶',
+ 'Solomon Is.': '所罗门群岛',
+ Palestine: '巴勒斯坦',
+ 'N. Cyprus': '北塞浦路斯',
+ Aland: '奥兰群岛',
+ 'Fr. S. Antarctic Lands': '法属南半球和南极陆地',
+ Mauritius: '毛里求斯',
+ Comoros: '科摩罗',
+ 'Eq. Guinea': '赤道几内亚',
+ 'Guinea-Bissau': '几内亚比绍',
+ 'Dominican Rep.': '多米尼加',
+ 'Saint Lucia': '圣卢西亚',
+ Dominica: '多米尼克',
+ 'Antigua and Barb.': '安提瓜和巴布达',
+ 'U.S. Virgin Is.': '美国原始岛屿',
+ Montserrat: '蒙塞拉特',
+ Grenada: '格林纳达',
+ Barbados: '巴巴多斯',
+ Samoa: '萨摩亚',
+ Bahamas: '巴哈马',
+ 'Cayman Is.': '开曼群岛',
+ 'Faeroe Is.': '法罗群岛',
+ 'IsIe of Man': '马恩岛',
+ Malta: '马耳他共和国',
+ Jersey: '泽西',
+ 'Cape Verde': '佛得角共和国',
+ 'Turks and Caicos Is.': '特克斯和凯科斯群岛',
+ 'St. Vin. and Gren.': '圣文森特和格林纳丁斯'
+}
+
diff --git a/data-room-ui/packages/BasicComponents/FlyMap/setting.vue b/data-room-ui/packages/BasicComponents/FlyMap/setting.vue
new file mode 100644
index 00000000..ed96a6a4
--- /dev/null
+++ b/data-room-ui/packages/BasicComponents/FlyMap/setting.vue
@@ -0,0 +1,417 @@
+
+
+
+ 标题
+
+
+
+
+
+ 位置
+
+ 基础
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js b/data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js
new file mode 100644
index 00000000..ac49dd87
--- /dev/null
+++ b/data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js
@@ -0,0 +1,122 @@
+import { commonConfig, displayOption } from 'data-room-ui/js/config'
+// import Icon from 'data-room-ui/assets/images/bigScreenIcon/export'
+import cloneDeep from 'lodash/cloneDeep'
+import Icon from 'data-room-ui/assets/images/bigScreenIcon/export'
+export const settingConfig = {
+ padding: [30, 30, 50, 80],
+ legend: false,
+ isGroup: true,
+ data: [],
+ color: '',
+ theme: 'dark',
+ displayOption: {
+ ...displayOption,
+ params: {
+ enable: true
+ },
+ headerField: {
+ enable: false
+ },
+ mapField: {
+ enable: false
+ },
+ metricField: {
+ // 指标
+ label: '维度',
+ enable: false,
+ multiple: false // 是否多选
+ },
+ dimensionField: {
+ // 表格列
+ label: '展示字段', // 维度/查询字段
+ enable: false,
+ multiple: false // 是否多选
+ }
+ }
+}
+const customConfig = {
+ type: 'flyMap',
+ root: {
+ version: '2023071001',
+ contribution: false
+ },
+ customize: {
+ // 是否显示文字
+ mapName: false,
+ // 悬浮框背景色
+ tooltipBackgroundColor: '#0C121C',
+ // 悬浮框边框色
+ borderColor: 'rgba(0, 0, 0, 0.16)',
+ // 悬浮框字体颜色
+ fontColor:'#DADADA',
+ // 打点图背景颜色
+ scatterBackgroundColor: 'rgba(255,0,0,.7)',
+ // 打点图文字颜色
+ scatterColor: 'rgba(165, 108, 91, 1)',
+ // 打点图中心点文字颜色
+ scatterCenterColor:'rgba(205, 196, 110, 1)',
+ // 分割线颜色
+ mapLineColor: 'rgba(53, 86, 165, 1)',
+ // 水印字体颜色
+ fontGraphicColor: '#fff',
+ fontSize:'30',
+ // 是否开启下钻
+ down: false,
+ // 轨迹图像
+ symbol: 'arrow',
+ // 轨迹颜色
+ symbolColor: '#01AAED',
+ // 轨迹大小
+ symbolSize:8,
+ // 地图级别
+ level: 'country',
+ // 范围
+ scope: '中国',
+ // 地图区域颜色
+ areaColor: 'rgba(31, 50, 121, 1)',
+ // 是否开启筛选
+ visual: true,
+ graphic:['中华人民共和国'],
+ // 筛选范围
+ range: [0, 100],
+ scatterFormatter:'`${params.name}
`',
+ // 格式化脚本
+ lineFormatter:'`销售额
${params.data.msg.from}-->${params.data.msg.to} ${params.data.msg.value}
`',
+ // 从上到下的颜色
+ rangeColor: ['rgba(165, 108, 91, 1)', 'rgba(205, 196, 110, 1)'],
+ // 地图数据
+ dataMap: '中华人民共和国.json',
+ // 展示字段
+ value: '',
+ // 横坐标
+ xaxis: '',
+ // 纵坐标
+ yaxis: '',
+ // 名称
+ name: ''
+
+ }
+}
+
+export const dataConfig = {
+ ...commonConfig(customConfig)
+}
+
+export const FlyMapData = {
+ name: '飞线图',
+ title: '飞线图',
+ icon: Icon.getNameList()[18],
+ className:
+ 'com.gccloud.dataroom.core.module.chart.components.ScreenFlyMapChart',
+ w: 800,
+ h: 700,
+ x: 0,
+ y: 0,
+ type: 'flyMap',
+ option: {
+ ...cloneDeep(settingConfig)
+ },
+ setting: undefined, // 右侧面板自定义配置
+ dataHandler: {}, // 数据自定义处理js脚本
+ ...cloneDeep(dataConfig)
+}
diff --git a/data-room-ui/packages/BasicComponents/Map/index.vue b/data-room-ui/packages/BasicComponents/Map/index.vue
index dddb8911..1bf49012 100644
--- a/data-room-ui/packages/BasicComponents/Map/index.vue
+++ b/data-room-ui/packages/BasicComponents/Map/index.vue
@@ -31,7 +31,8 @@ export default {
data () {
return {
charts: null,
- hasData: false
+ hasData: false,
+ level:''
}
},
computed: {
@@ -94,8 +95,16 @@ export default {
const option = {
// 背景颜色
backgroundColor: config.customize.backgroundColor,
+ graphic: [
+ ],
geo: {
map: config.customize.scope,
+ zlevel: 10,
+ show:true,
+ layoutCenter: ['50%', '50%'],
+ roam: true,
+ layoutSize: "100%",
+ zoom: 1,
label: {
// 通常状态下的样式
normal: {
@@ -253,10 +262,73 @@ export default {
}
}
}
+ if(config.customize.down){
+ // config?.customize?.graphic?.forEach((item,index)=>{
+ option.graphic.push({
+ type: "text",
+ left: `220px`,
+ top: "5%",
+ style: {
+ text: '中国',
+ font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`,
+ fill: config.customize.fontGraphicColor,
+ },
+ onclick:async()=>{
+ this.level='country'
+ const index = option.graphic.findIndex(i => i.style.text === '中国');
+ // 点击元素之后的所有元素全部删除
+ option.graphic.splice(index + 1);
+ const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/country/中华人民共和国.json`
+ const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true)
+ option.geo.map = '中华人民共和国'
+ this.changeData({...config,customize:{...config.customize,level:'country',scope:'中国'}})
+ echarts.registerMap('中华人民共和国', map);
+ this.charts.setOption(option, true);
+
+ }
+ },)
+ // })
+ }
const mapUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/${config.customize.level}/${config.customize.dataMap}`
const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true)
echarts.registerMap(config.customize.scope, map)
this.charts.setOption(option)
+ this.charts.on('click', async(params)=> {
+ const index = option.graphic.findIndex(i => i.style.text === params.name);
+ if(params.name=='' || index !== -1) return
+ if(config.customize.down===false||this.level==='province') return
+ const idx = option.graphic.length + 1;
+ option.graphic.push({
+ type: "text",
+ left: `${idx * 220}px`,
+ top: "5%",
+ style: {
+ text: params.name,
+ font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`,
+ fill: config.customize.fontGraphicColor,
+ },
+ onclick: async() => {
+ const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/${params.name=='中华人民共和国'?'country':'province'}/${params.name}.json`
+ const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true)
+ // 利用函数的作用域,可以直接拿上面的name来用
+ const index = option.graphic.findIndex(i => i.style.text === params.name);
+ // 点击元素之后的所有元素全部删除
+ option.graphic.splice(index + 1);
+ // 很多操作重复了,你可以将公共部分抽离出来
+ option.geo.map = params.name;
+ this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}})
+ echarts.registerMap(params.name, map);
+ this.charts.setOption(option, true);
+ },
+ });
+ this.level='province'
+ const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/province/${params.name}.json`
+ const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true)
+ this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}})
+ option.geo.map = params.name
+ echarts.registerMap(params.name, map);
+ this.charts.setOption(option, true);
+ });
}
}
}
diff --git a/data-room-ui/packages/BasicComponents/Map/setting.vue b/data-room-ui/packages/BasicComponents/Map/setting.vue
index dc9c9eae..244d5b13 100644
--- a/data-room-ui/packages/BasicComponents/Map/setting.vue
+++ b/data-room-ui/packages/BasicComponents/Map/setting.vue
@@ -74,6 +74,39 @@
/>
+
+
+
+
+
+
+
+
+
-
@@ -565,7 +565,7 @@
:source-field-list="sourceFieldList"
/>
diff --git a/data-room-ui/packages/BigScreenDesign/index.vue b/data-room-ui/packages/BigScreenDesign/index.vue
index 2041576f..be4e1acc 100644
--- a/data-room-ui/packages/BigScreenDesign/index.vue
+++ b/data-room-ui/packages/BigScreenDesign/index.vue
@@ -419,7 +419,7 @@ export default {
},
// 自定义属性更新
updateSetting (config) {
- if (config.type === 'map' || config.type === 'video') {
+ if (config.type === 'map' || config.type === 'video' ||config.type === 'flyMap') {
config.key = new Date().getTime()
}
this.changeChartConfig(cloneDeep(config))
diff --git a/data-room-ui/packages/DataSetManagement/src/DatasetTypeDialog.vue b/data-room-ui/packages/DataSetManagement/src/DatasetTypeDialog.vue
index 95a4e99b..ca03c023 100644
--- a/data-room-ui/packages/DataSetManagement/src/DatasetTypeDialog.vue
+++ b/data-room-ui/packages/DataSetManagement/src/DatasetTypeDialog.vue
@@ -26,7 +26,14 @@
class="type-item"
@click="openAddForm(dataset.datasetType,dataset.componentName)"
>
- {{ dataset.name }}
+
+ {{ dataset.name }}
+
+
+
+ {{ dataset.description }}
+
+
@@ -49,6 +56,7 @@ export default {
}
},
created () { },
+ mounted () { },
methods: {
// 选择新增类型
openAddForm (type, componentName) {
@@ -62,17 +70,16 @@ export default {