From 8f38cbf36743746bde6997cef3998eadc6e95e10 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 07 一月 2025 18:16:00 +0800
Subject: [PATCH] 核算重构
---
src/views/screen/components/map3.vue | 252 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 163 insertions(+), 89 deletions(-)
diff --git a/src/views/screen/components/map3.vue b/src/views/screen/components/map3.vue
index 1fbcbf2..80bb35c 100644
--- a/src/views/screen/components/map3.vue
+++ b/src/views/screen/components/map3.vue
@@ -14,46 +14,101 @@
type: Object,
default: {},
},
+ platformData: {
+ type: Object,
+ default: {},
+ },
},
data() {
return {
myChart: null, // ECharts 瀹炰緥
big: 130,
- data: [
+ dotData: [
{
name: '鑷祦浜曞尯',
- number: '0',
- value: [104.616237686031, 29.081, 300]
+ value: [104.621171408, 29.150000, 300],
+ platformOnline: true
},
{
name: '楂樻柊鍖�',
- number: '0',
- value: [104.84, 29.405, 300]
+ value: [104.780000, 29.19, 300],
+ platformOnline: true
},
{
name: '澶у畨鍖�',
- number: '0',
- value: [105.136, 29.30548885792289, 300]
+ value: [104.95805, 29.155946, 300],
+ platformOnline: true
},
{
name: '娌挎哗鍖�',
- number: '0',
- value: [104.956237686031, 29.2, 300]
+ value: [104.80504, 29.050594, 300],
+ platformOnline: true
},
{
name: '璐′簳鍖�',
- number: '0',
- value: [104.436237686031, 29.16048885792289, 300]
+ value: [104.46106, 29.101427, 300],
+ platformOnline: true
},
{
name: '鑽e幙',
- number: '0',
- value: [104.480237686031, 29.40048885792289, 300]
+ value: [104.2634, 29.2838, 300],
+ platformOnline: true
},
{
name: '瀵岄『鍘�',
- number: '0',
- value: [105.12, 29.076, 300]
+ value: [105.000000, 28.93, 300],
+ platformOnline: true
+ }
+ ],
+ markData: [
+ {
+ name: '鑷祦浜曞尯',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [104.911471408, 30.100000, 300]
+ },
+ {
+ name: '楂樻柊鍖�',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [104.867237686031, 29.39548885792289, 300]
+ },
+ {
+ name: '澶у畨鍖�',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [105.12337686031, 29.38948885792289, 300]
+ },
+ {
+ name: '娌挎哗鍖�',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [105.40537686031, 30.20048885792289, 300]
+ },
+ {
+ name: '璐′簳鍖�',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [104.51037686031, 29.42048885792289, 300]
+ },
+ {
+ name: '鑽e幙',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [104.25437686031, 29.64048885792289, 300]
+ },
+ {
+ name: '瀵岄『鍘�',
+ video: '0',
+ car: '0',
+ face: '0',
+ value: [105.208, 29.185, 300]
}
],
}
@@ -67,16 +122,33 @@
})
},
methods: {
+ setFontSize(res){
+ const clientWidth = window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
+ if (!clientWidth) return;
+ let fontSize = clientWidth / 1920;
+ return res*fontSize;
+ },
initializeMap() {
this.updateMapData()
this.getChinData('鑷础甯�', chinaJson)
},
updateMapData() {
- this.data.forEach(item => {
- if (this.geoCoordinates[item.name]) {
- item.number = this.geoCoordinates[item.name].score || '0'
- }
- })
+ if (this.geoCoordinates) {
+ this.markData.forEach(item => {
+ if (this.geoCoordinates[item.name]) {
+ item.video = this.geoCoordinates[item.name].video || '0.0'
+ item.car = this.geoCoordinates[item.name].car || '0.0'
+ item.face = this.geoCoordinates[item.name].face || '0.0'
+ }
+ })
+ }
+ if (this.platformData) {
+ this.dotData.forEach(item => {
+ if (this.platformData[item.name]) {
+ item.platformOnline = this.platformData[item.name].platformOnline
+ }
+ })
+ }
},
updateChart() {
if (this.myChart) {
@@ -84,7 +156,11 @@
// Update the scatter3D series data
const scatterSeries = option.series.find(s => s.type === 'scatter3D' && s.name !== '鏁g偣鍥�');
if (scatterSeries) {
- scatterSeries.data = this.data;
+ scatterSeries.data = this.markData;
+ }
+ const dotSeries = option.series.find(s => s.type === 'scatter3D' && s.name === '鏁g偣鍥�');
+ if (dotSeries) {
+ dotSeries.data = this.dotData;
}
this.myChart.setOption(option);
}
@@ -105,10 +181,12 @@
type: 'map',
map: name,
left: '-5%',
- top: '5%',
- boxWidth: 100,
- regionHeight: 2,
- zlevel: 5,
+ top: '20%',
+ width: '100%', // 鏄庣‘鎸囧畾瀹藉害
+ height: '100%', // 鏄庣‘鎸囧畾楂樺害
+ // boxWidth: 100,
+ regionHeight: 0.8,
+ zlevel: 10,
tooltip: {
show: true,
@@ -123,7 +201,7 @@
},
label: {
- show: true, // (鍦板浘涓婄殑鍩庡競鍚嶇О)鏄惁鏄剧ず鏍囩
+ show: false, // (鍦板浘涓婄殑鍩庡競鍚嶇О)鏄惁鏄剧ず鏍囩
distance: 5,
formatter: function (params) {
return params.name ? params.name : ' '
@@ -136,7 +214,7 @@
emphasis: {
label: {
- show: true,
+ show: false,
textStyle: {
color: '#ffffff' // 楂樹寒鏂囧瓧涓轰寒钃濊壊
}
@@ -161,10 +239,11 @@
rotateSensitivity: 0, // 鏃嬭浆
minBeta: -13,
maxBeta: -13,
+ distance: 120,
zoomSensitivity: 0, // 缂╂斁
panSensitivity: 0, // 骞崇Щ
center: [0, 0, 0],
- alpha: 70, // 鍊炬枩瑙掑害
+ alpha: 30, // 鍊炬枩瑙掑害
animationDurationUpdate: 1000, // 杩囨浮鍔ㄧ敾鐨勬椂闀�
animationEasingUpdate: 'cubicInOut' // 杩囨浮鍔ㄧ敾鐨勭紦鍔ㄦ晥鏋�
},
@@ -197,11 +276,13 @@
name: name,
type: 'map3D',
map: name,
- boxWidth: 100,
- regionHeight: 2,
+ // boxWidth: 100,
+ regionHeight: 0.8,
left: '-5%',
- top: '5%',
- zlevel: 10,
+ top: '20%',
+ width: '100%', // 鏄庣‘鎸囧畾瀹藉害
+ height: '100%', // 鏄庣‘鎸囧畾楂樺害
+ zlevel: 5,
// tooltip: {
// show: true,
@@ -235,10 +316,11 @@
rotateSensitivity: 0, // 鏃嬭浆
minBeta: -13,
maxBeta: -13,
+ distance: 120,
zoomSensitivity: 0, // 缂╂斁
panSensitivity: 0, // 骞崇Щ
center: [0, 0, 0],
- alpha: 70 // 鍊炬枩瑙掑害
+ alpha: 30 // 鍊炬枩瑙掑害
}
},
{
@@ -250,41 +332,18 @@
silent: true,
itemStyle: {
- color: '#fc840e',
+ color: function (param) {
+ if (param.data.platformOnline) {
+ return '#04CD44';
+ } else {
+ return '#FF0756';
+ }
+ },
borderWidth: 1,
borderColor: '#fff'
},
- data: [
- {
- name: '鑷祦浜曞尯',
- value: [104.665471408, 29.23008885, 300]
- },
- {
- name: '楂樻柊鍖�',
- value: [104.805193, 29.3, 300]
- },
- {
- name: '澶у畨鍖�',
- value: [104.90805, 29.345946, 300]
- },
- {
- name: '娌挎哗鍖�',
- value: [104.80804, 29.200594, 300]
- },
- {
- name: '璐′簳鍖�',
- value: [104.579106, 29.241427, 300]
- },
- {
- name: '鑽e幙',
- value: [104.3534, 29.3538, 300]
- },
- {
- name: '瀵岄『鍘�',
- value: [104.96, 29.08, 300]
- }
- ]
+ data: that.dotData
},
{
type: 'lines3D',
@@ -292,50 +351,57 @@
polyline: true,
lineStyle: {
color: '#a4ddee',
- width: 1,
- opacity: 1
+ width: 2,
+ opacity: 1,
},
data: [
+ // 鑷祦浜曠嚎
{
coords: [
- [104.665471408, 29.23008885, 300],
- [104.6, 29.125, 430]
+ [104.621171408, 29.150000, 300],
+ [104.941471408, 30.190000, 335]
]
},
+ // 楂樻柊鍖虹嚎
{
coords: [
- [104.805193, 29.30148885792289, 300],
- [104.780237686031, 29.39548885792289, 430]
+ [104.780000, 29.19, 300],
+ [104.880237686031, 29.42548885792289, 335]
]
},
+ // 澶у畨鍖虹嚎
{
coords: [
- [104.90805, 29.345946, 300],
- [105.056237686031, 29.33548885792289, 430]
+ [104.95805, 29.155946, 300],
+ [105.12137686031, 29.41948885792289, 335]
]
},
+ // 娌挎哗鍖虹嚎
{
coords: [
- [104.80804, 29.200594, 300],
- [104.906237686031, 29.20048885792289, 430]
+ [104.80504, 29.050594, 300],
+ [105.47237686031, 30.30048885792289, 335]
]
},
+ // 璐′簳鍖虹嚎
{
coords: [
- [104.579106, 29.241427, 300],
- [104.486237686031, 29.19048885792289, 430]
+ [104.46106, 29.101427, 300],
+ [104.51837686031, 29.45048885792289, 335]
]
},
+ // 鑽e幙绾�
{
coords: [
- [104.3534, 29.3538, 300],
- [104.456237686031, 29.39048885792289, 430]
+ [104.2634, 29.2838, 300],
+ [104.25437686031, 29.67048885792289, 335]
]
},
+ // 瀵岄『绾�
{
coords: [
- [104.96, 29.08, 300],
- [105.05, 29.083, 430]
+ [105.000000, 28.93, 300],
+ [105.218, 29.195, 335]
]
}
],
@@ -355,12 +421,12 @@
coordinateSystem: 'geo3D',
symbol: 'circle',
symbolSize: 0,
- data: that.data,
+ data: that.markData,
itemStyle: {
- opacity: 1,
+ opacity: 0.7,
borderWidth: 1,
- borderColor: 'a4ddee'
+ borderColor: 'a4ddee',
},
label: {
@@ -368,21 +434,22 @@
position: 'top',
textStyle: {
color: '#c6f4ff',
- fontSize: '16px',
+ fontSize: this.setFontSize(16),
backgroundColor: 'rgba(25,56,97,1)',
borderColor: '#a4ddee',
borderWidth: 0.5,
borderRadius: 5,
- padding: [8, 15]
+ padding: [4, 8]
},
formatter: function (params) {
- return `{style|${params.data.name}\n寰楀垎锛�${params.data.number}}`
+ // return `{style|${params.data.name} 锛�${params.data.number}}`
+ return `{style|${params.data.name} \n 瑙嗛锛�${params.data.video} \n 杞﹁締锛�${params.data.car} \n 浜鸿劯锛�${params.data.face}}`
},
rich: {
style: {
- fontSize: 16,
- lineHeight: 22
+ fontSize: this.setFontSize(14),
+ lineHeight: this.setFontSize(20),
// 鍏朵粬闇�瑕佺殑鏍峰紡
}
},
@@ -404,6 +471,13 @@
this.updateChart();
},
deep: true
+ },
+ platformData: {
+ handler(newValue) {
+ this.updateMapData(newValue);
+ this.updateChart();
+ },
+ deep: true
}
},
}
@@ -416,6 +490,6 @@
.map-main-container {
width: 100%;
- height: 100%;
+ height: 37vw; // 鍥哄畾楂樺害
}
</style>
--
Gitblit v1.8.0