From dc91db9bb3473c3ed058f86f74359e15c035a8a5 Mon Sep 17 00:00:00 2001
From: zhengpz <1838927346@qq.com>
Date: Mon, 23 Aug 2021 22:13:10 +0800
Subject: [PATCH] 表查询完善
---
src/views/home/indexEchart.js | 780 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 567 insertions(+), 213 deletions(-)
diff --git a/src/views/home/indexEchart.js b/src/views/home/indexEchart.js
index 169adaa..72c7276 100644
--- a/src/views/home/indexEchart.js
+++ b/src/views/home/indexEchart.js
@@ -1,28 +1,46 @@
+import * as echarts from "echarts";
+import nc from "../../../public/nc.json";
function left1Data(allData) {
let nameArr = [];
let data1 = [];
let data2 = [];
let data3 = [];
let data4 = [];
+ let data5 = [];
+ // let legend = ["自招保安单位", "保安培训公司", "保安服务公司", "武装守押公司"];
allData.forEach(item => {
nameArr.push(item.name);
data1.push(item.server.confess);
data2.push(item.server.staff);
data3.push(item.server.security);
data4.push(item.server.armed);
+ data5.push(item.server.region);
});
+ nameArr.reverse();
+ data1.reverse();
+ data2.reverse();
+ data3.reverse();
+ data4.reverse();
+ data5.reverse();
let option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow"
+ },
+ backgroundColor: "#031952", //设置背景图片 rgba格式
+ color: "#fff",
+ borderWidth: "0", //边框宽度设置1
+ // borderColor: "gray", //设置边框颜色
+ textStyle: {
+ color: "#fff" //设置文字颜色
}
},
color: [
- '#2ec7c9',
- '#b6a2de',
- '#5ab1ef',
- '#ffb980',
+ "#2ec7c9",
+ "#b6a2de",
+ "#5ab1ef",
+ "#ffb980",
// "#fac858",
// "#73c0de",
@@ -31,24 +49,27 @@
"#9a60b4",
"#3fb1e3",
"#6be6c1",
- '#626c91',
- '#a0a7e6',
- '#c4ebad',
- '#96dee8'
+ "#626c91",
+ "#a0a7e6",
+ "#c4ebad",
+ "#96dee8"
],
- legend: {
- data: ["自招保安单位", "保安培训公司", "保安服务公司", "武装守押公司"],
- bottom: "1%",
- itemWidth: 20,
- textStyle: {
- color: "#fff"
- }
- },
+ // legend: {
+ // data: ["自招保安单位", "保安培训公司", "保安服务公司", "武装守押公司"],
+ // bottom: "1%",
+ // itemWidth: 20,
+ // textStyle: {
+ // color: "#fff"
+ // },
+ // // formatter: function (legend1) {
+ // // return legend1;
+ // // }
+ // },
grid: {
- top:'5%',
+ top: "5%",
left: "5%",
- right: "6%",
- bottom: "10%",
+ right: "10%",
+ bottom: "5%",
containLabel: true
},
xAxis: {
@@ -75,7 +96,7 @@
name: "自招保安单位",
type: "bar",
stack: "total",
- barWidth: 20,
+ barWidth: 17,
emphasis: {
focus: "series"
},
@@ -107,6 +128,15 @@
focus: "series"
},
data: data4
+ },
+ {
+ name: "跨区域保安公司",
+ type: "bar",
+ stack: "total",
+ emphasis: {
+ focus: "series"
+ },
+ data: data5
}
]
};
@@ -126,6 +156,13 @@
trigger: "axis",
axisPointer: {
type: "shadow"
+ },
+ backgroundColor: "#031952", //设置背景图片 rgba格式
+ color: "#fff",
+ borderWidth: "0", //边框宽度设置1
+ // borderColor: "gray", //设置边框颜色
+ textStyle: {
+ color: "#fff" //设置文字颜色
}
},
color: [
@@ -137,27 +174,36 @@
"#9a60b4",
"#3fb1e3",
"#6be6c1",
- '#626c91',
- '#a0a7e6',
- '#c4ebad',
- '#96dee8'
+ "#626c91",
+ "#a0a7e6",
+ "#c4ebad",
+ "#96dee8"
],
legend: {
data: ["持证人数", "未持证人数"],
bottom: "1%",
+ left :'13%',
itemWidth: 20,
textStyle: {
color: "#fff"
}
},
grid: {
- top:'5%',
+ top: "10%",
left: "5%",
right: "6%",
- bottom: "15%",
+ bottom: "4%",
containLabel: true
},
xAxis: {
+ type: "category",
+ axisLabel: {
+ color: "#fff",
+ rotate: 40
+ },
+ data: nameArr
+ },
+ yAxis: {
type: "value",
axisLabel: {
color: "#fff"
@@ -170,19 +216,12 @@
show: false
}
},
- yAxis: {
- type: "category",
- axisLabel: {
- color: "#fff"
- },
- data: nameArr
- },
series: [
{
name: "持证人数",
type: "bar",
// barWidth:30,
- barWidth: 20,
+ barWidth: 15,
stack: "total",
emphasis: {
focus: "series"
@@ -197,6 +236,62 @@
focus: "series"
},
data: data2
+ }
+ ]
+ };
+ return option;
+}
+
+function left3Data(allData) {
+ let data = [
+ { value: allData[0].mnum ? Number(allData[0].mnum) : 0, name: "男" },
+ { value: allData[0].gnum ? Number(allData[0].gnum) : 0, name: "女" }
+ ];
+ let option = {
+ tooltip: {
+ trigger: "item",
+ formatter: "{a}<br>{b}:{c}({d}%)",
+ axisPointer: {
+ type: "shadow"
+ },
+ backgroundColor: "#031952", //设置背景图片 rgba格式
+ color: "#fff",
+ borderWidth: "0", //边框宽度设置1
+ // borderColor: "gray", //设置边框颜色
+ textStyle: {
+ color: "#fff" //设置文字颜色
+ }
+ },
+ color: ["#008DEC", "#886EFF"],
+ // legend: {
+ // right: "8%",
+ // bottom: "10%",
+ // itemHeight: 10,
+ // show: true,
+ // selectedMode: false,
+ // textStyle: {
+ // color: "#fff"
+ // },
+ // data: ['男', '女'],
+ // orient: "vertical"
+ // },
+ grid: {
+ top: "10%",
+ left: "5%",
+ right: "30%",
+ bottom: "4%",
+ containLabel: true
+ },
+ series: [
+ {
+ name: "性别比例",
+ type: "pie",
+ center: ["33%", "50%"],
+ radius: "70%",
+ data: data,
+ label: {
+ color: "#fff"
+ }
}
]
};
@@ -238,10 +333,10 @@
"#9a60b4",
"#3fb1e3",
"#6be6c1",
- '#626c91',
- '#a0a7e6',
- '#c4ebad',
- '#96dee8'
+ "#626c91",
+ "#a0a7e6",
+ "#c4ebad",
+ "#96dee8"
],
legend: {
@@ -303,10 +398,10 @@
"#9a60b4",
"#3fb1e3",
"#6be6c1",
- '#626c91',
- '#a0a7e6',
- '#c4ebad',
- '#96dee8'
+ "#626c91",
+ "#a0a7e6",
+ "#c4ebad",
+ "#96dee8"
],
legend: {
@@ -356,129 +451,202 @@
}
function right3Data(allData) {
- let data = [
- {
- name: "新建县",
- value: 154
- },
- {
- name: "安义县",
- value: 611
- },
- {
- name: "红谷滩新区",
- value: 400
- },
- {
- name: "西湖区",
- value: 200
- },
- {
- name: "东湖区",
- value: 250
- },
- {
- name: "经开区",
- value: 281
- },
- {
- name: "青云谱区",
- value: 320
- },
- {
- name: "高新区",
- value: 231
- },
- {
- name: "湾里区",
- value: 210
- },
- {
- name: "进贤县",
- value: 187
- },
- {
- name: "青山湖区",
- value: 190
- }
- ];
+ let data = [];
+ let legendData = [];
+ let datas = allData.sort((a, b) => {
+ return b.Count - a.Count;
+ });
+ datas.forEach(item => {
+ let obj = {
+ name: item.jurname,
+ value: item.Count
+ };
+ legendData.push(item.jurname);
+ // sumValue += Number(item.Count)
+ data.push(obj);
+ });
// let arrName = getArrayValue(data, "name");
// let arrValue = getArrayValue(data, "value");
- let sumValue = 1000;
+ // let sumValue = 1000;
// let objData = array2obj(data, "name");
- let optionData = getData(data);
+ // let optionData = getData(data);
- function getArrayValue(array, key) {
- var key = key || "value";
- var res = [];
- if (array) {
- array.forEach(function(t) {
- res.push(t[key]);
- });
- }
- return res;
- }
+ // function getArrayValue(array, key) {
+ // var key = key || "value";
+ // var res = [];
+ // if (array) {
+ // array.forEach(function (t) {
+ // res.push(t[key]);
+ // });
+ // }
+ // return res;
+ // }
- function array2obj(array, key) {
- var resObj = {};
- for (var i = 0; i < array.length; i++) {
- resObj[array[i][key]] = array[i];
- }
- return resObj;
- }
+ // function array2obj(array, key) {
+ // var resObj = {};
+ // for (var i = 0; i < array.length; i++) {
+ // resObj[array[i][key]] = array[i];
+ // }
+ // return resObj;
+ // }
- function getData(data) {
- var res = {
- series: [],
- yAxis: []
- };
- for (let i = 0; i < data.length; i++) {
- res.series.push({
- name: "分局预警占比",
- type: "pie",
- clockWise: true,
- z: 2,
- hoverAnimation: false,
- radius: [90 - i * 8 + "%", 85 - i * 8 + "%"],
- center: ["30%", "50%"],
- labelLine: {
- show: false
- },
- label: {
- show: false
- },
- data: [
- {
- value: data[i].value,
- name: data[i].name
- },
- {
- value: sumValue - data[i].value,
- name: "",
- itemStyle: {
- color: "rgba(0,0,0,0)",
- borderWidth: 0
- },
- tooltip: {
- show: false
- },
- label: {
- show: false
- },
- hoverAnimation: false
- }
- ]
- });
- res.yAxis.push(data[i].name);
- }
- return res;
- }
+ // function getData(data) {
+ // var res = {
+ // series: [],
+ // yAxis: []
+ // };
+ // for (let i = 0; i < data.length; i++) {
+ // res.series.push({
+ // name: "分局预警占比",
+ // type: "pie",
+ // clockwise: true,
+ // z: 2,
+ // emphasis: {
+ // scale: false
+ // },
+ // // hoverAnimation: false,
+ // radius: [83 - i * 12 + '%', 78 - i * 12 + '%'],
+ // center: ["30%", "50%"],
+ // labelLine: {
+ // show: false
+ // },
+ // label: {
+ // show: false
+ // },
+ // data: [
+ // {
+ // value: data[i].value,
+ // name: data[i].name
+ // },
+ // {
+ // value: sumValue - data[i].value,
+ // name: "",
+ // itemStyle: {
+ // color: "rgba(0,0,0,0)",
+ // borderWidth: 0
+ // },
+ // tooltip: {
+ // show: false
+ // },
+ // label: {
+ // show: false
+ // },
+ // emphasis: {
+ // scale: false
+ // }
+ // // hoverAnimation: false
+ // }
+ // ]
+ // });
+ // res.yAxis.push(data[i].name);
+ // }
+ // return res;
+ // }
+ // let option = {
+ // tooltip: {
+ // show: true,
+ // trigger: "item",
+ // formatter: "{a}<br>{b}:{c}({d}%)",
+ // backgroundColor: "#031952", //设置背景图片 rgba格式
+ // color: "#fff",
+ // borderWidth: "0", //边框宽度设置1
+ // // borderColor: "gray", //设置边框颜色
+ // textStyle: {
+ // color: "#fff" //设置文字颜色
+ // },
+ // },
+ // color: [
+ // "#91cc75",
+ // "#fac858",
+ // "#73c0de",
+ // "#3ba272",
+ // "#fc8452",
+ // "#9a60b4",
+ // "#3fb1e3",
+ // "#6be6c1",
+ // '#626c91',
+ // '#a0a7e6',
+ // '#c4ebad',
+ // '#96dee8'
+ // ],
+
+ // legend: {
+ // right: "2%",
+ // top: "3%",
+ // // icon: "circle",
+ // itemHeight: 10,
+ // show: true,
+ // data: legendData,
+ // selectedMode: false,
+ // textStyle: {
+ // color: "#fff"
+ // },
+ // orient: "vertical"
+ // },
+ // grid: {
+ // top: "5%",
+ // bottom: "50%",
+ // left: "30%",
+ // containLabel: false
+ // },
+ // yAxis: [
+ // {
+ // type: "category",
+ // inverse: true,
+ // z: 3,
+ // axisLine: {
+ // show: false
+ // },
+ // axisTick: {
+ // show: false
+ // },
+ // axisLabel: {
+ // interval: 0,
+ // inside: false,
+ // color: "#fff",
+ // fontSize: 8,
+ // // textStyle: {
+
+ // // },
+ // show: true
+ // },
+ // data: optionData.yAxis
+ // }
+ // ],
+ // xAxis: [
+ // {
+ // show: false
+ // }
+ // ],
+ // series: optionData.series
+ // };
let option = {
tooltip: {
show: true,
trigger: "item",
- formatter: "{a}<br>{b}:{c}({d}%)"
+ formatter: "{a}<br>{b}:{c}({d}%)",
+ backgroundColor: "#031952", //设置背景图片 rgba格式
+ color: "#fff",
+ borderWidth: "0", //边框宽度设置1
+ // borderColor: "gray", //设置边框颜色
+ textStyle: {
+ color: "#fff" //设置文字颜色
+ }
+ },
+ legend: {
+ right: "5%",
+ top: "5%",
+ itemHeight: 10,
+ show: true,
+ itemGap:8,
+ selectedMode: false,
+ textStyle: {
+ color: "#fff",
+ fontSize:9
+ },
+ data: legendData,
+ orient: "vertical"
},
color: [
"#91cc75",
@@ -489,79 +657,265 @@
"#9a60b4",
"#3fb1e3",
"#6be6c1",
- '#626c91',
- '#a0a7e6',
- '#c4ebad',
- '#96dee8'
+ "#626c91",
+ "#a0a7e6",
+ "#c4ebad",
+ "#96dee8"
],
+ series: [
+ {
+ name: "分局预警占比",
+ type: "pie",
+ radius: "75%",
+ center: ["35%", "55%"],
+ roseType: "radius",
+ itemStyle: {
+ borderRadius: 0
+ },
+ label: {
+ show: false
+ },
+ emphasis: {
+ label: {
+ show: false
+ }
+ },
+ data: data
+ }
+ // {
+ // name: '面积模式',
+ // type: 'pie',
+ // radius: [20, 140],
+ // center: ['75%', '50%'],
+ // roseType: 'area',
+ // itemStyle: {
+ // borderRadius: 5
+ // },
+ // data: [
+ // {value: 30, name: 'rose 1'},
+ // {value: 28, name: 'rose 2'},
+ // {value: 26, name: 'rose 3'},
+ // {value: 24, name: 'rose 4'},
+ // {value: 22, name: 'rose 5'},
+ // {value: 20, name: 'rose 6'},
+ // {value: 18, name: 'rose 7'},
+ // {value: 16, name: 'rose 8'}
+ // ]
+ // }
+ ]
+ };
+ return option;
+}
+function middleData(allData, type) {
+ var ncMap = nc;
+ // var convertData = function (allData) {
+ // var res = [];
+ // for (var i = 0; i < data.length; i++) {
+ // var geoCoord = geoCoordMap[data[i].name];
+ // if (geoCoord) {
+ // res.push({
+ // name: data[i].name,
+ // value: geoCoord.concat(data[i].value)
+ // });
+ // }
+ // }
+ // return res;
+ // };
+ let name = "";
+ let label = "";
+ let symbolUrl = "";
+ let geoData = [];
+ allData["table"].forEach((item, i) => {
+ let obj = {};
+ if (type === 1) {
+ name = "保安员名称";
+ label =
+ "押运人员:" +
+ item.name +
+ "<br />当前位置:" +
+ item.location +
+ "<br />所属公司:" +
+ item.linkman +
+ "<br />联系电话:" +
+ item.tel;
+ symbolUrl = require("@/assets/img/people.png");
+ obj = {
+ name: label,
+ value: allData["geoData"][i]
+ };
+ } else if (type === 2) {
+ name = "押运车辆";
+ label =
+ "押运车辆车牌号:" +
+ item.carNum +
+ "<br />当前位置:" +
+ item.location +
+ "<br />所属公司:" +
+ item.company +
+ "<br />联系人:" +
+ item.linkman +
+ "<br />联系电话:" +
+ item.tel;
+ symbolUrl = require("@/assets/img/car.png");
+ obj = {
+ name: label,
+ value: allData["geoData"][i]
+ };
+ } else if (type === 3) {
+ name = "枪支";
+ label =
+ "枪支编号:" +
+ item.number +
+ "<br />当前位置:" +
+ item.location +
+ "<br />所属公司:" +
+ item.company +
+ "<br />负责人:" +
+ item.linkman +
+ "<br />联系电话:" +
+ item.tel;
+ symbolUrl = require("@/assets/img/gun.png");
+ obj = {
+ name: label,
+ value: allData["geoData"][i]
+ };
+ }
+ geoData.push(obj);
+ });
- legend: {
- right: "2%",
- top: "3%",
- // icon: "circle",
- itemHeight: 10,
- show: true,
- data: [
- "新建县",
- "安义县",
- "红谷滩新区",
- "西湖区",
- "东湖区",
- "经开区",
- "青云谱区",
- "高新区",
- "湾里区",
- "进贤县",
- "青山湖区"
- ],
- selectedMode: false,
- textStyle: {
- color: "#fff"
+ echarts.registerMap("ncMap", ncMap);
+ // echarts.registerMap('chinaMapOutline', chinaMapOutline);
+ let option = {
+ // backgroundColor: '#181F4E',
+ // tooltip: {
+ // trigger: 'item',
+ // },
+ tooltip: {
+ trigger: "item",
+ formatter: function(params) {
+ if (typeof params.value[1] == "undefined") {
+ return params.name;
+ } else {
+ return params.name;
+ }
},
- orient: "vertical"
+ backgroundColor: "#031952", //设置背景图片 rgba格式
+ color: "#fff",
+ borderWidth: "0", //边框宽度设置1
+ borderColor: "gray", //设置边框颜色
+ extraCssText: "box-shadow: 0 0 3px rgba( 211,211,211, 0.5);",
+ textStyle: {
+ color: "#fff" //设置文字颜色
+ }
},
- grid: {
- top: "5%",
- bottom: "50%",
- left: "30%",
- containLabel: false
- },
- yAxis: [
- {
- type: "category",
- inverse: true,
- z: 3,
- axisLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- interval: 0,
- inside: false,
+ geo: {
+ // silent: true,
+ map: "ncMap",
+ show: true,
+ zoom: 1.04,
+ top: "8%",
+ label: {
+ show: false,
+ color: "#fff",
+ emphasis: {
textStyle: {
- color: "#fff",
- fontSize: 8
- },
- show: true
- },
- data: optionData.yAxis
+ color: "#fff"
+ }
+ }
+ },
+
+ roam: true,
+ itemStyle: {
+ areaColor: "rgba(0,255,255,.02)",
+ borderColor: "#00ffff",
+ borderWidth: 1.5,
+ shadowColor: "#00ffff",
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10
+ },
+ emphasis: {
+ itemStyle: {
+ color: "transparent", //悬浮背景
+ textStyle: {
+ color: "#fff"
+ }
+ }
}
- ],
- xAxis: [
+ },
+ series: [
{
- show: false
+ map: "ncMap",
+ // silent: true,
+ type: "map",
+ geoIndex: 0,
+ // aspectScale: 0.75, //长宽比
+ zoom: 1.14,
+ label: {
+ show: false,
+ color: "#fff"
+ },
+ emphasis: {
+ label: {
+ color: "#fff"
+ }
+ },
+ top: "10%",
+ roam: true,
+ itemStyle: {
+ areaColor: "rgba(0,255,255,.02)",
+ borderColor: "#00ffff",
+ borderWidth: 1.5,
+ shadowColor: "#00ffff",
+ shadowOffsetX: 0,
+ shadowOffsetY: 4,
+ shadowBlur: 10
+ },
+ emphasis: {
+ itemStyle: {
+ areaColor: "transparent", //悬浮背景
+ textStyle: {
+ color: "#fff"
+ }
+ }
+ }
+ },
+ {
+ name: name,
+ type: "scatter",
+ coordinateSystem: "geo",
+ // roam: false,
+ symbol: "image://" + symbolUrl,
+ symbolSize: [30, 30],
+ label: {
+ show: false,
+ color: "#fff",
+ fontSize: 9
+ },
+ itemStyle: {
+ color: "#FF0000" //标志颜色
+ },
+ data: geoData,
+ showEffectOn: "render",
+ rippleEffect: {
+ brushType: "stroke"
+ },
+ hoverAnimation: true,
+ emphasis: {
+ scale: true
+ },
+ zlevel: 1
}
- ],
- series: optionData.series
+ ]
};
return option;
}
export default {
left1Data,
left2Data,
+ left3Data,
right1Data,
right2Data,
- right3Data
+ right3Data,
+ middleData
};
--
Gitblit v1.9.3