|
@@ -0,0 +1,884 @@
|
|
|
+<!--
|
|
|
+ *@description: 贞达公司工程管理平台
|
|
|
+ *@author: Zhe
|
|
|
+ *@date: 2024-08-02 15:58:59
|
|
|
+ *@version: V1.0.0
|
|
|
+ -->
|
|
|
+
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <!-- 标题开始 -->
|
|
|
+ <div class="mainTitle">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <!-- 标题结束 -->
|
|
|
+ <!-- 上边五个 -->
|
|
|
+ <div class="mainTop">
|
|
|
+ <!-- 左边俩 -->
|
|
|
+ <div class="mainLeft">
|
|
|
+ <!-- 左上图一 -->
|
|
|
+ <div class="mainLeft_1">
|
|
|
+ <div class="title">施工进度统计</div>
|
|
|
+ <div class="header">钢管总数{{ progress.ironTotal }} PE总数{{ progress.peTotal }}</div>
|
|
|
+ <div id="echartsLeft_1"></div>
|
|
|
+ </div>
|
|
|
+ <!-- 左上图二 -->
|
|
|
+ <div class="mainLeft_2">
|
|
|
+ <div class="title">工程状态统计</div>
|
|
|
+ <div class="header">开工{{ projectStatus.todo }} 在建{{ projectStatus.doing }} 完工{{ projectStatus.done }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 左边俩 结束 -->
|
|
|
+ <!-- 中间地图 -->
|
|
|
+ <div id="echartsMap" class="mainMap" ref="mainMap"></div>
|
|
|
+ <!-- 中间地图 结束 -->
|
|
|
+ <!-- 右边俩 -->
|
|
|
+ <div class="mainRight">
|
|
|
+ <!-- 右上图一 -->
|
|
|
+ <div class="mainRight_1">
|
|
|
+ <div class="title">今日施工数</div>
|
|
|
+ <div class="header">今日施工数{{ totalRight_1 }}</div>
|
|
|
+ <div id="echartsRight_1"></div>
|
|
|
+ </div>
|
|
|
+ <!-- 右上图二 -->
|
|
|
+ <div class="mainRight_2">
|
|
|
+ <div class="title">今日使用人数</div>
|
|
|
+ <div class="header">今日施工人数{{ totalRight_2 }}人</div>
|
|
|
+ <div id="echartsRight_2"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 右边俩 结束 -->
|
|
|
+ </div>
|
|
|
+ <!-- 上边五个 结束 -->
|
|
|
+ <!-- 下边俩 -->
|
|
|
+ <div class="mainBottom">
|
|
|
+ <!-- 下边图一 -->
|
|
|
+ <div class="mainBottom_1">
|
|
|
+ <div class="title">各个区今日施工数</div>
|
|
|
+ <div id="echartsBottom_1"></div>
|
|
|
+ </div>
|
|
|
+ <!-- 下边图二 -->
|
|
|
+ <div class="mainBottom_2">
|
|
|
+ <div class="title">各个区今日旧改施工数</div>
|
|
|
+ <div id="echartsBottom_2"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 下边俩 结束 -->
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import * as echarts from "echarts";
|
|
|
+ import '@/api/zdsz/china.js' // 引入中国地图数据
|
|
|
+ import {
|
|
|
+ getConstructionProgress,
|
|
|
+ getProjectStatus,
|
|
|
+ getCountEngineering,
|
|
|
+ getCountPerson,
|
|
|
+ getConstructionMap,
|
|
|
+ getConstructionNew,
|
|
|
+ getConstructionOld,
|
|
|
+ formatTimestampToDateString,
|
|
|
+ } from '@/api/zdsz/bigscreen'
|
|
|
+ export default {
|
|
|
+ name: "bigScreen",
|
|
|
+ dicts: ['project_head', 'design_unit', 'supervision_unit', 'district'],
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ queryParams:{
|
|
|
+ time: formatTimestampToDateString(new Date()), // 当日日期
|
|
|
+ beginTime: '2024-08-03', // 开始时间
|
|
|
+ endTime: '2024-08-05', // 结束时间
|
|
|
+ },
|
|
|
+ progress: {
|
|
|
+ names: ['不锈钢波纹管', '螺旋焊管', '无缝钢管', '镀锌钢管', '燃气用埋地聚乙烯管'],
|
|
|
+ values: [],
|
|
|
+ ironTotal: 1600, // 钢管总数
|
|
|
+ peTotal: 1600, // PE总数
|
|
|
+ },
|
|
|
+ projectStatus: {
|
|
|
+ todo: 658, // 开工
|
|
|
+ doing: 658, // 在建
|
|
|
+ done: 658, // 完工
|
|
|
+ },
|
|
|
+ totalRight_1: 1111, // 今日施工数
|
|
|
+ totalRight_2: 1111, // 今日施工人数
|
|
|
+ zgns_newlst:[],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ // alert(this.queryParams.time)
|
|
|
+ this.getConstructionProgress(); // 施工进度统计
|
|
|
+ this.getProjectStatus(); // 工程状态统计
|
|
|
+ this.getCountEngineering(); // 今日施工数
|
|
|
+ this.getCountPerson(); // 今日使用人数
|
|
|
+ // this.getConstructionMap(); // 地图施工数据分布
|
|
|
+ // this.getConstructionNew(); // 各个区今日施工数
|
|
|
+ this.getConstructionOld(); // 各个区今日旧改施工数
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ let _this = this;
|
|
|
+ setTimeout(function() {
|
|
|
+ _this.echartsMap();
|
|
|
+ },1)
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getConstructionProgress(){ // 施工进度统计
|
|
|
+ getConstructionProgress(this.queryParams).then(res => {
|
|
|
+ console.log("施工进度统计", res);
|
|
|
+ let names = [];
|
|
|
+ let values = [];
|
|
|
+ let datas = [];
|
|
|
+ let result = res.data;
|
|
|
+ for (let key in result) {
|
|
|
+ let data = {
|
|
|
+ name: key,
|
|
|
+ value: result[key],
|
|
|
+ }
|
|
|
+ datas.push(data);
|
|
|
+ }
|
|
|
+ datas.shift();
|
|
|
+ datas.shift();
|
|
|
+ for (let i = 0; i < this.progress.names.length; i++) {
|
|
|
+ datas[i].name = this.progress.names[i];
|
|
|
+ }
|
|
|
+ this.echartsLeft_1(datas);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getProjectStatus(){ // 工程状态统计
|
|
|
+ getProjectStatus(this.queryParams).then(res => {
|
|
|
+ console.log("工程状态统计", res);
|
|
|
+ this.projectStatus = res.data;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getCountEngineering(){ // 今日施工数
|
|
|
+ getCountEngineering(this.queryParams).then(res => {
|
|
|
+ console.log("今日施工数", res);
|
|
|
+ let names = [];
|
|
|
+ let values = [];
|
|
|
+ let data = {
|
|
|
+ name: names,
|
|
|
+ value: values,
|
|
|
+ }
|
|
|
+ let result = res.data;
|
|
|
+ for (let key in result) {
|
|
|
+ names.push(key);
|
|
|
+ values.push(result[key]);
|
|
|
+ }
|
|
|
+ console.log("datadatadatadata",data)
|
|
|
+ this.echartsRight_1(data);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getCountPerson(){ // 今日使用人数
|
|
|
+ getCountPerson(this.queryParams).then(res => {
|
|
|
+ console.log("今日使用人数", res);
|
|
|
+ let names = [];
|
|
|
+ let values = [];
|
|
|
+ let data = {
|
|
|
+ name: names,
|
|
|
+ value: values,
|
|
|
+ }
|
|
|
+ let result = res.data;
|
|
|
+ for (let key in result) {
|
|
|
+ names.push(key);
|
|
|
+ values.push(result[key]);
|
|
|
+ }
|
|
|
+ this.echartsRight_2(data);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getConstructionMap(){ // 地图施工数据分布
|
|
|
+ getConstructionMap(this.queryParams).then(res => {
|
|
|
+ console.log("地图施工数据分布", res);
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getConstructionNew(){ // 各个区今日施工数
|
|
|
+ getConstructionNew(this.queryParams).then(res => {
|
|
|
+ console.log("各个区今日施工数", res);
|
|
|
+ // this.echartsBottom_1(res.data);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getConstructionOld(){ // 各个区今日旧改施工数
|
|
|
+ getConstructionOld(this.queryParams).then(res => {
|
|
|
+ console.log("各个区今日旧改施工数", res);
|
|
|
+ this.echartsBottom_1(res.data);
|
|
|
+ this.echartsBottom_2(res.data);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ echartsLeft_1(data){
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsLeft_1'));
|
|
|
+ let option = {
|
|
|
+ title: {
|
|
|
+ text: 'Referer of a Website',
|
|
|
+ subtext: 'Fake Data',
|
|
|
+ left: 'center'
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item'
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ orient: 'vertical',
|
|
|
+ left: 'left'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ // name: 'Access From',
|
|
|
+ name: '',
|
|
|
+ type: 'pie',
|
|
|
+ radius: '50%',
|
|
|
+ data: data,
|
|
|
+ // [
|
|
|
+ // { value: 1048, name: 'Search Engine' },
|
|
|
+ // { value: 735, name: 'Direct' },
|
|
|
+ // { value: 580, name: 'Email' },
|
|
|
+ // { value: 484, name: 'Union Ads' },
|
|
|
+ // { value: 300, name: 'Video Ads' }
|
|
|
+ // ],
|
|
|
+ emphasis: {
|
|
|
+ itemStyle: {
|
|
|
+ shadowBlur: 10,
|
|
|
+ shadowOffsetX: 0,
|
|
|
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ if (option && typeof option === "object") {
|
|
|
+ myChart.setOption(option);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ echartsLeft_2(){
|
|
|
+
|
|
|
+ },
|
|
|
+ echartsRight_1(data){
|
|
|
+ let names = ['民用工程', '工业工程', '市政工程', '碰口作业', '基建工程', '顶管工程'];
|
|
|
+ let values = [120, 200, 150, 80, 70, 110, 130];
|
|
|
+ // names = data.name;
|
|
|
+ values = data.value;
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsRight_1'));
|
|
|
+ let option = {
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: names
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ data: values,
|
|
|
+ type: 'bar'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ if (option && typeof option === "object") {
|
|
|
+ myChart.setOption(option);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ echartsRight_2(data){
|
|
|
+ let names = ['民用工程', '工业工程', '市政工程', '碰口作业', '基建工程', '顶管工程'];
|
|
|
+ let values = [120, 200, 150, 80, 70, 110, 130];
|
|
|
+ // names = data.name;
|
|
|
+ values = data.value;
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsRight_2'));
|
|
|
+ let option = {
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: names
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ data: values,
|
|
|
+ type: 'bar'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ if (option && typeof option === "object") {
|
|
|
+ myChart.setOption(option);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ echartsBottom_1(data){
|
|
|
+ let names = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
|
+ let values = [120, 200, 150, 80, 70, 110, 130];
|
|
|
+ names = data.name;
|
|
|
+ values = data.value;
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsBottom_1'));
|
|
|
+ let option = {
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: names
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ data: values,
|
|
|
+ type: 'bar'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ if (option && typeof option === "object") {
|
|
|
+ myChart.setOption(option);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ echartsBottom_2(data){
|
|
|
+ let names = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
|
+ let values = [120, 200, 150, 80, 70, 110, 130];
|
|
|
+ names = data.name;
|
|
|
+ values = data.value;
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsBottom_2'));
|
|
|
+ let option = {
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: names
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ data: values,
|
|
|
+ type: 'bar'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ if (option && typeof option === "object") {
|
|
|
+ myChart.setOption(option);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ echartsMap() {
|
|
|
+ let myChart = echarts.init(document.getElementById('echartsMap'));
|
|
|
+ window.onresize = myChart.resize;
|
|
|
+ var namedata = [{name: '1双阳区良园老年公寓火灾'}, {name: '2双阳区良园老年公寓火灾'}, {name: '3双阳区良园老年公寓火灾'}, {name: '4双阳区良园老年公寓火灾'}, {name: '5双阳区良园老年公寓火灾'}, {name: '双阳区良园老年公寓火灾'}, {name: '周'}, {name: '赵'}, {name: '钱'}, {name: '孙'},
|
|
|
+ {name: '吴'}, {name: '郑'}, {name: '王'}, {name: '冯'}, {name: '陈'}, {name: '杨'}, {name: '朱'}, {name: '双阳区良园老年公寓火灾'}, {name: '双阳区良园老年公寓火灾'}, {name: '双阳区良园老年公寓火灾'},
|
|
|
+ {name: '何'}, {name: '曹'}, {name: '陶'}, {name: '邹'}, {name: '苏'}, {name: '范'}, {name: '彭'}, {name: '双阳区良园老年公寓火灾'}, {name: '双阳区良园老年公寓火灾'}, {name: '方'},
|
|
|
+ {name: '唐'}, {name: '顾'}];
|
|
|
+ var option = null;
|
|
|
+ var geoCoordMap = {
|
|
|
+ '上海': [119.1803, 31.2891],
|
|
|
+ "福建": [119.4543, 25.9222],
|
|
|
+ "重庆": [108.384366, 30.439702],
|
|
|
+ '北京': [116.4551, 40.2539],
|
|
|
+ "辽宁": [123.1238, 42.1216],
|
|
|
+ "河北": [114.4995, 38.1006],
|
|
|
+ "天津": [117.4219, 39.4189],
|
|
|
+ "山西": [112.3352, 37.9413],
|
|
|
+ "陕西": [109.1162, 34.2004],
|
|
|
+ "甘肃": [103.5901, 36.3043],
|
|
|
+ "宁夏": [106.3586, 38.1775],
|
|
|
+ "青海": [101.4038, 36.8207],
|
|
|
+ "新疆": [87.9236, 43.5883],
|
|
|
+ "西藏": [91.11, 29.97],
|
|
|
+ "四川": [103.9526, 30.7617],
|
|
|
+ "吉林": [125.8154, 44.2584],
|
|
|
+ "山东": [117.1582, 36.8701],
|
|
|
+ "河南": [113.4668, 34.6234],
|
|
|
+ "江苏": [118.8062, 31.9208],
|
|
|
+ "安徽": [117.29, 32.0581],
|
|
|
+ "湖北": [114.3896, 30.6628],
|
|
|
+ "浙江": [119.5313, 29.8773],
|
|
|
+ '内蒙古': [110.3467, 41.4899],
|
|
|
+ "江西": [116.0046, 28.6633],
|
|
|
+ "湖南": [113.0823, 28.2568],
|
|
|
+ "贵州": [106.6992, 26.7682],
|
|
|
+ "云南": [102.9199, 25.4663],
|
|
|
+ "广东": [113.12244, 23.009505],
|
|
|
+ "广西": [108.479, 23.1152],
|
|
|
+ "海南": [110.3893, 19.8516],
|
|
|
+ '黑龙江': [127.96888, 45.368],
|
|
|
+ '台湾': [121.4648, 25.5630]
|
|
|
+ };
|
|
|
+ var chinaDatas = [
|
|
|
+ {
|
|
|
+ name: '北京',
|
|
|
+ value: 86
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '福建',
|
|
|
+ value: 65
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '广东',
|
|
|
+ value: 53
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '上海',
|
|
|
+ value: 48
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ name: '河北',
|
|
|
+ value: 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '天津',
|
|
|
+ value: 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '山西',
|
|
|
+ value: 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '陕西',
|
|
|
+ value: 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '甘肃',
|
|
|
+ value: 4
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '宁夏',
|
|
|
+ value: 5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '青海',
|
|
|
+ value: 3
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '新疆',
|
|
|
+ value: 0.4
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '西藏',
|
|
|
+ value: 0.3
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '四川',
|
|
|
+ value: 22
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '重庆',
|
|
|
+ value: 12
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '山东',
|
|
|
+ value: 9
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '河南',
|
|
|
+ value: 0.9
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '江苏',
|
|
|
+ value: 24
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '安徽',
|
|
|
+ value: 15
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '湖北',
|
|
|
+ value: 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '浙江',
|
|
|
+ value: 15
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '内蒙古',
|
|
|
+ value: 0.3
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '江西',
|
|
|
+ value: 34
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '湖南',
|
|
|
+ value: 12
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '贵州',
|
|
|
+ value: 0.8
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '广西',
|
|
|
+ value: 16
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '海南',
|
|
|
+ value: 37
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '辽宁',
|
|
|
+ value: 0.2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '吉林',
|
|
|
+ value: 0.4
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '云南',
|
|
|
+ value: 34
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '黑龙江',
|
|
|
+ value: 5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '台湾',
|
|
|
+ value: 43
|
|
|
+ }
|
|
|
+ ];
|
|
|
+
|
|
|
+ let myOption = { // 进行相关配置
|
|
|
+ tooltip: {// 鼠标移到图里面的浮动提示框
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ visualMap: {
|
|
|
+ show: false,
|
|
|
+ min: 0,
|
|
|
+ max: 200,
|
|
|
+ calculable: true,
|
|
|
+ seriesIndex: [1],
|
|
|
+ inRange: {
|
|
|
+ color: ['#01073f', '#000960'] // 深蓝到淡蓝 地图背景色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ geo: {// 这个是重点配置区
|
|
|
+ map: "china",// 表示中国地图
|
|
|
+ roam: false, //关闭鼠标缩放和漫游
|
|
|
+ zoom: 1, //地图缩放级别
|
|
|
+ selectedMode: false, //选中模式:single | multiple
|
|
|
+ layoutCenter: ["50%", "49%"], //设置后left/right/top/bottom等属性无效
|
|
|
+ layoutSize: "120%",
|
|
|
+ label: {
|
|
|
+ normal: {//静态的时候显示的默认样式
|
|
|
+ show: true, //是否显示地图省份得名称
|
|
|
+ textStyle: {
|
|
|
+ color: 'rgba(255,255,255,0.7)' // 地图名颜色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ emphasis: { //动态展示的样式
|
|
|
+ color: '#43d0d6',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ //静态的时候显示的默认样式
|
|
|
+ areaColor: '#010742',//地图区域背景色
|
|
|
+ borderColor: '#0847f5',//地图边框颜色
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ //鼠标移入动态的时候显示的默认样式
|
|
|
+ areaColor: '#010e8a',
|
|
|
+ borderWidth: '2',
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'scatter',
|
|
|
+ coordinateSystem: 'geo' // 对应上方配置
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '启动次数', // 浮动框的标题
|
|
|
+ type: 'map',
|
|
|
+ geoIndex: 0,
|
|
|
+ data: [{
|
|
|
+ "name": "北京",
|
|
|
+ "value": 599
|
|
|
+ }, {
|
|
|
+ "name": "上海",
|
|
|
+ "value": 142
|
|
|
+ }, {
|
|
|
+ "name": "黑龙江",
|
|
|
+ "value": 44
|
|
|
+ }, {
|
|
|
+ "name": "深圳",
|
|
|
+ "value": 92
|
|
|
+ }, {
|
|
|
+ "name": "湖北",
|
|
|
+ "value": 810
|
|
|
+ }, {
|
|
|
+ "name": "四川",
|
|
|
+ "value": 453
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'effectScatter',
|
|
|
+ coordinateSystem: 'geo',
|
|
|
+ z: 1,
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ zgns_dept: "南关区今日施工",
|
|
|
+ zgns_time: "",
|
|
|
+ zgns_msg: "190****4387",
|
|
|
+ value: [119.1803, 31.2891]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // data: this.zgns_newlst,
|
|
|
+ symbolSize: 14,
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ show: true,
|
|
|
+ formatter: function (params) {
|
|
|
+ //return '{fline|' + params.data.username + '}\n {fcine|' + params.data.telphone + '}\n{tline|' + params.data.address + '}';
|
|
|
+ return '{fline|' + params.data.zgns_dept + '}\n {fcine|' + params.data.zgns_time + '}\n{tline|' + params.data.zgns_msg + '}';
|
|
|
+ },
|
|
|
+ position: 'top',
|
|
|
+ backgroundColorAnnotation: '#090d73', // 气泡 背景颜色
|
|
|
+ backgroundColor: 'rgba(9,13,115,.8)',
|
|
|
+ // backgroundColor: 'rgba(1,5,42,.8)',
|
|
|
+ padding: [0, 0],
|
|
|
+ //borderRadius: 3,
|
|
|
+ lineHeight: 32+10, // 气泡框高度
|
|
|
+ color: '#f7fafb',
|
|
|
+ borderWidth: '1',
|
|
|
+ borderColor: '#0989e2',
|
|
|
+ rich: {
|
|
|
+ fline: {
|
|
|
+ padding: [0, 10, 20, 10],
|
|
|
+ color: '#0f0',
|
|
|
+ fontSize: 18,
|
|
|
+ },
|
|
|
+ fcine: {
|
|
|
+ padding: [0, 10, 0, 10],
|
|
|
+ color: '#fff',
|
|
|
+ },
|
|
|
+ tline: {
|
|
|
+ padding: [15, 10, 0, 10],
|
|
|
+ color: '#fff'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ show: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ color: '#0ff',
|
|
|
+ color: '#f40 ',
|
|
|
+ color: '#feae21',
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ if (myOption && typeof myOption === "object") {
|
|
|
+ // myChart.setOption(myOption);
|
|
|
+ myChart.setOption(myOption, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ function getTel() {
|
|
|
+ var n = 2, telstr = '1';
|
|
|
+ while (n < 12) {
|
|
|
+ if (n < 3) {
|
|
|
+ while (1) {
|
|
|
+ var nums = Math.floor(Math.random() * 10);
|
|
|
+ if (nums !== 0 && nums !== 1 && nums !== 2 && nums !== 3 && nums !== 4 && nums !== 6) {
|
|
|
+ telstr += nums;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (n > 3 && n < 8) {
|
|
|
+ telstr += '*';
|
|
|
+ } else {
|
|
|
+ telstr += Math.floor(Math.random() * 10);
|
|
|
+ }
|
|
|
+ n++;
|
|
|
+ }
|
|
|
+ return telstr;
|
|
|
+ }
|
|
|
+
|
|
|
+ function getName(type) {
|
|
|
+ var name = '';
|
|
|
+ var roundnum = Math.floor(Math.random() * 32);
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ name = namedata[roundnum].name;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ name = namedata[roundnum].name;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+
|
|
|
+ function getAddress(num, type) {
|
|
|
+ var addstr = '';
|
|
|
+ switch (type) {
|
|
|
+ case 1:
|
|
|
+ addstr = '在' + chinaDatas[num].name + '-保时捷4S店购买车辆';
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ addstr = '在' + chinaDatas[num].name + '-奔驰4S店购买车辆';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ addstr = '在' + chinaDatas[num].name + '-法拉利4S店购买车辆';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return addstr;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*var timer = setInterval(() => {
|
|
|
+ //数据情况重绘,清除formatter移动效果,也可根据自身需求是否需要,删除这两行代码
|
|
|
+ /*option.series[seriesjson[runidx].createType-1].data = [];
|
|
|
+ myChart.setOption(option, true);
|
|
|
+ var runidx = Math.floor(Math.random() * 3);
|
|
|
+ var typeidx = Math.floor(Math.random() * 3);
|
|
|
+ var dataidx = Math.floor(Math.random() * 32);
|
|
|
+ var ranval = Math.floor(Math.random() * 10);
|
|
|
+ chinaDatas[dataidx].value = chinaDatas[dataidx].value + ranval;
|
|
|
+ var valarr = geoCoordMap[chinaDatas[dataidx].name];
|
|
|
+ valarr.push(ranval);
|
|
|
+ myOption.series[typeidx].data = [{
|
|
|
+ name: '',
|
|
|
+ username: getName(runidx),
|
|
|
+ telphone: getTel(),
|
|
|
+ address: getAddress(dataidx, typeidx),
|
|
|
+ value: valarr
|
|
|
+ }];
|
|
|
+ myChart.setOption(myOption, true);
|
|
|
+ }, 3000);*/
|
|
|
+ },
|
|
|
+ }
|
|
|
+ };
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .mainTitle{
|
|
|
+ width: 1920px;
|
|
|
+ height: 62px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ background: url("../../../assets/images/logo.jpg");
|
|
|
+ }
|
|
|
+ /*1920 * 929 Google Chrome*/
|
|
|
+ /*1920 * 69 Title*/
|
|
|
+ /*1920 * 560 Top share 860 */
|
|
|
+ /*1920 * 280 Bottom share 860*/
|
|
|
+ /*1920 * 20 Remain */
|
|
|
+ .mainTop{
|
|
|
+ width: 1920px;
|
|
|
+ height: 560px;
|
|
|
+ margin: 0 auto 20px;
|
|
|
+ .mainLeft{
|
|
|
+ float: left;
|
|
|
+ width: 640px;
|
|
|
+ margin-left: 20px;
|
|
|
+ .mainLeft_1{ // 施工进度统计
|
|
|
+ background-color: #04183e;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ width: 100%;
|
|
|
+ height: 285px;
|
|
|
+ .title{
|
|
|
+ width: 640px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ .header{
|
|
|
+ width: 640px;
|
|
|
+ height:48px;
|
|
|
+ }
|
|
|
+ #echartsLeft_1{
|
|
|
+ width: 640px;
|
|
|
+ height: 190px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainLeft_2{ // 工程状态统计
|
|
|
+ background-color: #04183e;
|
|
|
+ width: 100%;
|
|
|
+ height: 265px;
|
|
|
+ .title{
|
|
|
+ width: 640px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ .header{
|
|
|
+ width: 640px;
|
|
|
+ height: 218px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainRight{
|
|
|
+ float: left;
|
|
|
+ width: 640px;
|
|
|
+ margin-left: 20px;
|
|
|
+ .mainRight_1{ // 今日施工数
|
|
|
+ margin-bottom: 10px;
|
|
|
+ width: 100%;
|
|
|
+ height: 275px;
|
|
|
+ .title{
|
|
|
+ width: 640px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ .header{
|
|
|
+ width: 640px;
|
|
|
+ height:48px;
|
|
|
+ }
|
|
|
+ #echartsRight_1{
|
|
|
+ width: 640px;
|
|
|
+ height: 180px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainRight_2{ // 今日施工人数
|
|
|
+ width: 100%;
|
|
|
+ height: 275px;
|
|
|
+ .title{
|
|
|
+ width: 640px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ .header{
|
|
|
+ width: 640px;
|
|
|
+ height:48px;
|
|
|
+ }
|
|
|
+ #echartsRight_2{
|
|
|
+ width: 640px;
|
|
|
+ height: 180px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainMap{
|
|
|
+ float: left;
|
|
|
+ width: 560px;
|
|
|
+ height: 560px;
|
|
|
+ margin-left: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainBottom{
|
|
|
+ width: 1920px;
|
|
|
+ height: 277px;
|
|
|
+ .mainBottom_1{
|
|
|
+ float: left;
|
|
|
+ width: 930px;
|
|
|
+ height: 100%;
|
|
|
+ margin-left: 20px;
|
|
|
+ .title{
|
|
|
+ width: 930px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ #echartsBottom_1{
|
|
|
+ width: 930px;
|
|
|
+ height: 230px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainBottom_2{
|
|
|
+ float: left;
|
|
|
+ width: 930px;
|
|
|
+ height: 100%;
|
|
|
+ margin-left: 20px;
|
|
|
+ .title{
|
|
|
+ width: 930px;
|
|
|
+ height:47px;
|
|
|
+ }
|
|
|
+ #echartsBottom_2{
|
|
|
+ width: 930px;
|
|
|
+ height: 230px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mainLeft_1, .mainLeft_2, .mainRight_1, .mainRight_2, .mainBottom_1, .mainBottom_2, .mainMap{
|
|
|
+ background-color: #04183e;
|
|
|
+ }
|
|
|
+ .app-container{
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+ }
|
|
|
+ .mainTop, .mainBottom, .app-container{
|
|
|
+ background-color: #0a1426;
|
|
|
+ /*background-color: #000;*/
|
|
|
+ /*background-color: red;*/
|
|
|
+ }
|
|
|
+</style>
|
|
|
+
|