<template> <panel-container> <modular-layout type="roundCorner"> <panel-title-1>城市治理</panel-title-1> <div class="Modular_main"> <div> <vue-scroll> <div class="row"> <div class="col-40"> <TitleThree title="地下管网" /> <div id="traffic_govern_box" class=""> <EchartBar1Color :id="traffic_govern.id" :width="traffic_govern.width" :height="traffic_govern.height" :xAxisData="traffic_govern.xAxisData" :seriesData="traffic_govern.seriesData" /> </div> </div> <div class="col-60 "> <TitleThree title="交通治理" /> <div> <div class="col-45"> <DataList :data="sscw" :title="['实时车位','数据']" > <Corner2 slot="corner" /> </DataList> </div> <div class="col-55" id="traffic_govern_line_box"> <EchartLine :id="traffic_govern_line.id" :width="traffic_govern_line.width" :height="traffic_govern_line.height" :legend="traffic_govern_line.legend" :xAxisData="traffic_govern_line.xAxisData" :yAxisData="traffic_govern_line.yAxisData" /> </div> </div> </div> </div> <div class="row"> <!--问题事件总数--> <div class="col-40"> <TitleThree title="问题事件总数" /> <div class="Modular_left"> <div class="module-corner"> <EarthViews :data="wtsjzs" height="1rem" /> <Corner2 /> </div> </div> </div> <!--问题事件分析--> <div class="col-60"> <TitleThree title="问题事件分析" /> <div class="row-flex"> <div id="problem_analysis_box" class="col-60"> <EchartBar1 :id="problem_analysis.id" :width="problem_analysis.width" :height="problem_analysis.height" :xAxisData="problem_analysis.xAxisData" :seriesData="problem_analysis.seriesData" /> </div> <div class="col-40"> <DataList :data="hwss" class="Modular_right" :title="['环卫设施','数据']" > <corner3 slot="corner"/> </DataList> </div> </div> </div> </div> <div class="row"> <!--案件状态分布--> <div class="col-40"> <TitleThree title="案件状态分布" /> <div class="Modular_left"> <div class="module-corner" id="case_status_box"> <EchartPieAnnular :id="case_status.id" :width="case_status.width" :height="case_status.height" :legend="case_status.legend" :seriesData="case_status.seriesData" /> <Corner2 /> </div> </div> </div> <!--近一周空气质量--> <div class="col-60"> <TitleThree title="近一周空气质量" /> <div id="air_quality_box" class="Modular_right"> <EchartLine :id="air_quality.id" :width="air_quality.width" :height="air_quality.height" :legend="air_quality.legend" :xAxisData="air_quality.xAxisData" :yAxisData="air_quality.yAxisData" /> </div> </div> </div> </vue-scroll> </div> </div> </modular-layout> </panel-container> </template> <script> import {countSize} from '@/utils/utils' import EarthViews from '@/components/earthViews/EarthViews' import Corner2 from '@/components/Corner2' import DataList from '@/components/board/DataList' import EchartBar1Color from '@/components/echart/EchartBar1Color' import EchartLine from '@/components/echart/EchartLine' import EchartBar1 from '@/components/echart/EchartBar1' import EchartPieAnnular from '@/components/echart/EchartPieAnnular' import PanelContainer from '@/components/layout/panelContainer' import ModularLayout from '@/components/layout/modularLayout' import PanelTitle1 from '@/components/title/panelTitle1' import Corner3 from '@/components/corner/Corner3' export default { components: { Corner3, PanelTitle1, ModularLayout, PanelContainer, EarthViews, Corner2, DataList, EchartBar1Color, EchartLine, EchartBar1, EchartPieAnnular }, data () { return { traffic_govern: { id: 'traffic_govern_id', width: 0, height: 0, xAxisData: ['给水', '雨污水', '燃气', '通讯', '排污', '其他'], seriesData: [10, 52, 200, 334, 390] }, // 交通治理 // traffic_govern:{ // id: 'traffic_govern_id', // width: 0, // height: 0, // xAxisData: ['燃气管线报警','燃气管线报警','燃气管线报警','燃气管线报警','燃气管线报警','燃气管线报警'], // legend: ['总数量','抢修次数','抢修率'], // yAxisData: [ // [200, 34.9, 57, 23.2, 25.6, 76.7], // [206, 200, 145, 126.4, 28.7, 70.7], // [220, 266, 163, 295, 183, 302] // ] // }, traffic_govern_line: { id: 'traffic_govern_line_id', width: 0, height: 0, legend: ['近一周日均车位占用率', '近一周日均车位停车次数'], xAxisData: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], yAxisData: [ {name: '近一周日均车位占用率', data: [120, 252, 101, 134, 290, 230, 110], color: '58,55,194'}, {name: '近一周日均车位停车次数', data: [120, 222, 191, 234, 250, 200, 310], color: '109,202,23'} ] }, // 实时车位 sscw: [ { name: '车位总数', num: '250', unit: '(个)' }, { name: '占用车位数', num: '80', unit: '(个)' }, { name: '空闲车位数', num: '170', unit: '(个)' }, { name: '占用率', num: '32%' } ], // 环卫设施 hwss: [ { name: '中转站', num: '15', unit: '(个)' }, { name: '渣土车', num: '54', unit: '(个)' }, { name: '洒水车', num: '37', unit: '(个)' }, { name: '环卫工', num: '267', unit: '(个)' }, { name: '消纳场', num: '22', unit: '(个)' }, { name: '工地', num: '28', unit: '(个)' } ], // 问题事件总数 wtsjzs: [ { name: '事件总数', num: '457' }, { name: '处理事件总数', num: '323' }, { name: '处理率', num: '83%' } ], /* 问题事件分析 */ problem_analysis: { id: 'problem_analysis', width: 0, height: 0, xAxisData: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], seriesData: [320, 302, 301, 334, 390, 330, 320] }, // 案件状态分布 case_status: { id: 'case_status', width: 0, height: 0, legend: ['申报立案', '调查取证', '大队执行', '立案审核', '法制审批'], seriesData: [ {value: 34, name: '申报立案'}, {value: 25, name: '调查取证'}, {value: 45, name: '大队执行'}, {value: 14, name: '立案审核'}, {value: 24, name: '法制审批'} ] }, // 近一周空气质量 air_quality: { id: 'air_quality_id', width: 0, height: 0, xAxisData: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], legend: ['PM2.5', 'NO2'], yAxisData: [ {name: 'PM2.5', data: [ 855, 1278, 856, 865, 1290, 782, 1210 ], color: '255,45,85'}, {name: 'NO2', data: [400, 632, 333, 554, 490, 530, 610], color: '255,204,0'} ] } } }, created () {}, mounted () { // 获取智慧官网-井盖开启次数 this.getPipelineAlarm() // 地下管网echart this.callEchart('traffic_govern_box', this.traffic_govern, 1.85) // 交通治理echart this.callEchart('traffic_govern_line_box', this.traffic_govern_line, 1.7) // 问题事件分析echart this.callEchart('problem_analysis_box', this.problem_analysis, 1.5) // 案件状态分布echart this.callEchart('case_status_box', this.case_status, 1.7) // 近一周空气质量echart this.callEchart('air_quality_box', this.air_quality, 2.5) }, methods: { // 获取智慧官网-井盖开启次数 getPipelineAlarm () { let params = { appkey: '53a21bdd-626a-4b3b-9170-0c79498193e6', id: '155', flag: '97', format: 'json', param_dsid: '1086' } this.request({ url: '/platformbigdata/modelservlet', method: 'get', params }).then(res => { if (res.ret_code == 200) { let xAxisData = [] let seriesData = [] res.data.forEach((item, index) => { if (index < 10) { xAxisData.push(item.SJ.slice(5, 10)) seriesData.push(item.SL) } else { } }) this.traffic_govern.xAxisData = xAxisData this.traffic_govern.seriesData = seriesData this.callEchart('traffic_govern_box', this.traffic_govern, 1.85) } }) }, callEchart (idBox, data, offset) { const _width = document.getElementById(idBox).clientWidth this.$set(data, 'width', _width) this.$set(data, 'height', _width / offset) } } } </script> <style scoped> .panel-container{ width: 100%; height: 100%; overflow: auto; } /* 盒子 */ .row{ width: 100%; overflow: hidden; margin: 0.07rem 0; } .row-flex{ display:flex; justify-content:space-between; } .col-40{ width: 38%; float: left; } .col-60{ width: 62%; float: left; } .col-45{ width: 45%; float: left; } .col-55{ width: 55%; float: left; } /* 环卫设施-定制的四角 */ /*.corner-top{*/ /*position: absolute;*/ /*top: 0;*/ /*left: 0;*/ /*width: .1rem;*/ /*height: .1rem;*/ /*background: url("../../assets/images/module-horn2.png") no-repeat;*/ /*background-size: 100% 100%;*/ /*}*/ /*.corner-bottom{*/ /*position: absolute;*/ /*bottom: 0;*/ /*left: 0;*/ /*width: 100%;*/ /*height: 40%;*/ /*background: url("../../assets/images/module-horn3.png") no-repeat;*/ /*background-size: 100% 100%;*/ /*}*/ </style> <style> .page-cszl .dataListBox li{ padding: .05rem .08rem !important; } </style>