From ab8f3297f7c8243d486c9da0900e4f813b2ea2df Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期三, 27 十一月 2024 17:16:46 +0800 Subject: [PATCH] 功能更新 --- src/views/visualization/list/chart.vue | 112 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 85 insertions(+), 27 deletions(-) diff --git a/src/views/visualization/list/chart.vue b/src/views/visualization/list/chart.vue index 214e717..94ec44c 100644 --- a/src/views/visualization/list/chart.vue +++ b/src/views/visualization/list/chart.vue @@ -1,7 +1,7 @@ <template> <div class="chartListBox" :childData="childData"> - <div class="aside-title">{{ childData.title }}</div> - <div class="echartBox"> + <div class="aside-title"> 闆�</div> + <div class="echartBox" v-show="roadItem.address"> <table class="chartTable"> <tr> <th></th> @@ -22,24 +22,32 @@ </div> </td> </tr> - <tr v-for="(item, i) in childData.val"> - <td>{{ item.address }}</td> - <td>{{ item.line }}</td> - <td style="color:#f56c6c">{{ item.level }}</td> + <tr> + <td>{{ roadItem.address }}</td> + <td>{{ roadItem.line }}</td> + <td style="color:#f56c6c">{{ roadItem.level }}</td> <td style="color:#409eff"> - <el-button v-show="flagData != item.address" class="elButton" type="primary" plain size="mini" - @click="setChangeItem(item)">璇︽儏</el-button> - <el-button v-show="flagData == item.address" class="elButton" type="danger" plain size="mini" - @click="setCannelItem(item)">閲嶇疆</el-button> + <el-button v-show="flagData != roadItem.type" class="elButton" type="primary" plain + size="mini" @click="setChangeItem()">璇︽儏</el-button> + <el-button v-show="flagData == roadItem.type" class="elButton" type="danger" plain + size="mini" @click="setCannelItem()">閲嶇疆</el-button> </td> </tr> </table> + <div class="chartEchart"> + <div class="myChart"> + <div id="chartRain" class="myChartID"></div> + + + </div> + </div> </div> </div> </template> <script> import * as echarts from 'echarts'; +import mapWeather from './mapWeather'; export default { props: { @@ -49,35 +57,61 @@ } }, watch: { - childData(newValue, oldValue) { - if (newValue) { - this.chartId = newValue.id; - this.title = newValue.title; - setTimeout(() => { - this.setEchartChange(newValue) - }, 1000); - } - } + "$store.state.mapLayers.disasterRain": { + handler(newVal, oldVal) { + if (newVal.val) { + this.setEchartChange(newVal); + } + }, + deep: true + }, }, data() { return { chartId: "", title: "", flagData: null, + roadItem: {}, } + }, + created() { + window.addEventListener('POIDetailDataChange', this.handlePOIDetailDataChange) + }, + mounted() { + }, methods: { setCannelItem() { + this.$store.state.mapLayers.weatherFlag = false; + this.$store.state.mapLayers.weatherFlag = 2 this.flagData = null; + mapWeather.closeRegionWeather() }, - setChangeItem(res) { - this.flagData = res.address; + handlePOIDetailDataChange() { + if (this.flagData == window.regionWeather) return + this.flagData = window.regionWeather; }, + setChangeItem() { + var res = this.roadItem; + window.regionWeather = res.type; + var event = new Event('POIDetailDataChange'); + this.$store.state.mapLayers.weatherMsg = mapWeather.getWearData(res); + this.$store.state.mapLayers.weatherFlag = 1; + window.dispatchEvent(event); + mapWeather.setRegionWeatherType(res); + }, + showEchart() { - setEchartChange(res) { - if (!res.data) return; - const data = res.data; - const id = document.getElementById(this.chartId) + if (!this.roadItem) return + if (!this.roadItem.data) return; + var div = document.getElementsByClassName("chartEchart")[0]; + if (div.offsetWidth == 0 || div.offsetHeight == 0) return + document.getElementById("chartRain").style.width = div.offsetWidth + "px" + document.getElementById("chartRain").style.height = div.offsetHeight + "px" + var data = this.roadItem.data; + + + const id = document.getElementById("chartRain") var std = []; for (var i = 0; i < data.length; i++) { var h = i + 1 @@ -86,8 +120,14 @@ } const myChart = echarts.init(id); var option = { + grid: { + left: "10%", + top: "10%", + right: "5%", + bottom: "25%", + }, title: { - text: res.address, + text: "", textStyle: { color: "white" } @@ -131,6 +171,13 @@ option && myChart.setOption(option); + }, + setEchartChange(res) { + + + this.roadItem = res.val[0] + this.showEchart(); + } } } @@ -152,7 +199,7 @@ color: #fff; width: 100%; height: 45px; - line-height: 45px; + line-height: 30px; background-size: 100% 100%; background-repeat: no-repeat; } @@ -164,11 +211,22 @@ color: white; display: flex; flex-direction: column; + // justify-content: space-around; + .chartEchart { + flex: 1; + } .myChart { width: 100%; height: 100%; + position: relative; + + + .myChartID { + position: absolute; + + } } .chartTd { -- Gitblit v1.9.3