master
loveflow 11 months ago
parent 62623f6360
commit 6dec70cb56

@ -1,5 +1,5 @@
window.$mapCfg = {
mapType: "online", //在线; offline:离线
mapType: "offline", //在线; offline:离线
lgt: "", //经度
lat: "", //纬度
center: [121.619992, 30.025703],

@ -38,7 +38,9 @@ export default {
this.$emit("goBack");
},
initMap() {
var BMap = window.BMap;
//var BMap = window.BMap;
let BMap =
window.$mapCfg.mapType === "online" ? window.BMapGL : window.BMap;
// console.log(BMap, 'BMap');
var map = new BMap.Map("container", {
style: {

@ -28,34 +28,20 @@
import * as echarts from "echarts";
import "echarts-gl";
export default {
data() {
return {
data: [
{
name: "已被核查人数",
value: 34567,
itemStyle: {
color: "#378DFF",
props: {
data: {
type: Array,
default: () => {
return [];
},
},
{
name: "未被核查人数",
value: 21456,
itemStyle: {
color: "#E15A4E",
},
},
],
total: 1,
data() {
return {
viewH: 1,
};
},
mounted() {
this.total = 1;
for (let i = 0; i < this.data.length; i++) {
this.total += this.data[i].value;
}
let temp = this.getHeight();
let height = parseInt(temp / 3);
this.viewH = 2 * height;

@ -46,7 +46,7 @@ export default {
},
},
{
value: 20,
value: 4,
name: "",
itemStyle: {
normal: {

@ -46,7 +46,7 @@ export default {
},
},
{
value: 20,
value: 4,
name: "",
itemStyle: {
normal: {

@ -29,7 +29,7 @@ export default {
show: false,
},
tooltip: {
show: false,
show: true,
},
radar: {
center: ["50%", "50%"], //
@ -80,8 +80,8 @@ export default {
data: [
{
value: [50, 60, 90, 30, 10, 80],
name: "商业射击馆枪支",
value: this.chartObj.yData,
name: this.chartObj.name,
lineStyle: {
color: "#5B8FF9",
},

@ -42,7 +42,7 @@ export default {
},
},
tooltip: {
show: false,
show: true,
},
radar: {
center: ["50%", "50%"], //
@ -90,39 +90,7 @@ export default {
lineStyle: {
width: 3,
},
data: [
{
value: [80, 80, 80, 70, 60, 50],
name: "猎枪",
lineStyle: {
color: "#C6403E",
},
areaStyle: {
color: "rgba(198,64,62,0.2)",
},
},
{
value: [40, 70, 50, 60, 30, 80],
name: "竞技体育用枪",
lineStyle: {
color: "#FF8A5A",
},
areaStyle: {
color: "rgba(255,138,90,0.2)",
},
},
{
value: [50, 60, 90, 30, 10, 80],
name: "商业射击馆枪支",
lineStyle: {
color: "#5B8FF9",
},
areaStyle: {
color: "rgba(91,143,249,0.2)",
},
},
],
data: this.chartObj.data,
},
],
};

@ -21,7 +21,9 @@ export default {
methods: {
//
init_map() {
let build_map = window.BMap;
//let build_map = window.BMap;
let build_map =
window.$mapCfg.mapType === "online" ? window.BMapGL : window.BMap;
let map = new build_map.Map("container", {
style: {
styleJson,

@ -22,13 +22,11 @@ export default {
},
methods: {
setNum() {
this.num = this.num + "";
let numStr = this.num + "";
this.numArr = [];
let length = this.num.length;
console.log(length);
console.log(this.num);
let length = numStr.length;
for (let i = 0; i < length; i++) {
this.numArr.push(this.num.charAt(i));
this.numArr.push(numStr.charAt(i));
}
},
},

@ -1,8 +1,8 @@
<template>
<div class="enterpriseTopic">
<div class="enterpriseTopicBody canvasDefault">
<div class="screenRow mb18">
<div class="screenCol mr18">
<div class="screenRow pb14">
<div class="screenCol mr14">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">人防数据</div>
@ -41,26 +41,26 @@
<div
class="screenErrorAlarm"
v-for="(item, index) in errorAlarm"
:key="item.name + index"
:key="item.enterpriseName + index"
>
<div class="line">
<div class="item">
<div class="label">企业名称</div>
<div class="value name">{{ item.name }}</div>
<div class="value name">{{ item.enterpriseName }}</div>
</div>
<div class="item">
<div class="label">预警时间</div>
<div class="value">{{ item.time }}</div>
<div class="value">{{ item.warningTime }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">异常类型</div>
<div class="value">{{ item.type }}</div>
<div class="value">{{ item.exceptionType }}</div>
</div>
<div class="item">
<div class="label">预警详情</div>
<div class="value">{{ item.detail }}</div>
<div class="value">{{ item.warningDetails }}</div>
</div>
</div>
</div>
@ -146,6 +146,17 @@ import radarTwo from "@/loveflow/components/echart/radar/two.vue";
import radarThree from "@/loveflow/components/echart/radar/three.vue";
import pieFour from "@/loveflow/components/echart/pie/four.vue";
import pieFive from "@/loveflow/components/echart/pie/five.vue";
import {
chemicals,
facility,
goodsend,
nums,
gunmanage,
radiation,
radiationuse,
relatedcompanycount,
transport,
} from "@/api/enterpriseTopic/listGoods/index.js";
export default {
components: { lineOne, barFour, radarTwo, radarThree, pieFour, pieFive },
data() {
@ -155,15 +166,10 @@ export default {
gridLeft: "8%",
yName: "单位:百分比",
legendTop: "4%",
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData: [
[31, 41, 28, 87, 32, 12, 97, 79],
[51, 52, 68, 57, 12, 72, 57, 39],
[91, 71, 98, 59, 61, 72, 78, 69],
[81, 87, 21, 56, 10, 19, 82, 91],
],
xData: [],
yData: [],
name: "人防数据",
legend: ["危化品", "放射物品", "民爆物品", "民用枪支"],
legend: [],
color: [
["#09C8F5", "rgba(9,200,245,0.1)", "rgba(9,200,245,0.1)"],
["#FFD16A", "rgba(255,209,106,0.1)", "rgba(255,209,106,0.1)"],
@ -204,131 +210,204 @@ export default {
icon: require("@/assets/images/topic/e4.png"),
},
],
errorAlarm: [
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
],
errorAlarm: [],
gunsList: [
{
name: "猎枪",
value: 213,
value: 0,
class: "oneGuns",
},
{
name: "竞技体育用枪",
value: 1113,
value: 0,
class: "twoGuns",
},
{
name: "商业射击馆枪支",
value: 2131,
value: 0,
class: "threeGuns",
},
],
mrObj: {
indicator: [
{
name: "枪支数量",
max: 100,
},
{
name: "使用人数",
max: 100,
},
{
name: "巡检次数",
max: 100,
},
{
name: "资质齐全占比",
max: 100,
},
indicator: [],
data: [
{
name: "使用登记次数",
max: 100,
value: [],
name: "猎枪",
lineStyle: {
color: "#C6403E",
},
{
name: "关联单位数",
max: 100,
areaStyle: {
color: "rgba(198,64,62,0.2)",
},
],
yData: [12, 13, 14, 15, 11, 14],
name: "民用枪支",
},
mlrObj: {
indicator: [
{
name: "使用次数",
max: 100,
value: [],
name: "竞技体育用枪",
lineStyle: {
color: "#FF8A5A",
},
{
name: "使用部门",
max: 100,
areaStyle: {
color: "rgba(255,138,90,0.2)",
},
{
name: "使用途径",
max: 100,
},
{
name: "使用人员",
max: 100,
value: [],
name: "商业射击馆枪支",
lineStyle: {
color: "#5B8FF9",
},
{
name: "使用方式",
max: 100,
areaStyle: {
color: "rgba(91,143,249,0.2)",
},
{
name: "关联单位",
max: 100,
},
],
yData: [12, 13, 14, 15, 11, 14],
name: "民用枪支",
},
mlrObj: {
indicator: [],
yData: [],
name: "放射源使用",
},
mllObj: {
color: ["#2B82F3", "#09C8F5", "#66C3FF", "#FEF699", "#E4FEF0"],
data: [
{ value: 448, name: "中子源1" },
{ value: 735, name: "中子源2" },
{ value: 580, name: "中子源3" },
{ value: 484, name: "中子源4" },
],
data: [],
name: "放射源种类及数量",
},
mlmObj: {
color: ["#2B82F3", "#66C3FF", "#E4FEF0", "#FF745A", "#FEF699"],
data: [
{ value: 484, name: "航空运输1" },
{ value: 567, name: "航空运输2" },
{ value: 489, name: "航空运输3" },
{ value: 517, name: "航空运输4" },
],
data: [],
name: "放射源运输",
},
};
},
mounted() {
this.getData();
},
methods: {
getData() {
chemicals().then((res) => {
if (res.code == 200) {
let data = res.data || {};
this.tlObj.xData = [];
this.tlObj.yData = [];
this.tlObj.legend = [];
Object.keys(data).forEach((key, index) => {
this.tlObj.legend.push(key);
let list = data[key];
let arr = [];
for (let i = 0; i < list.length; i++) {
if (index == 0) {
this.tlObj.xData.push(list[i]["monthnum"] + "月");
}
arr.push(list[i]["sum"] || 0);
}
this.tlObj.yData[index] = arr;
});
}
});
facility({ pageSize: 10000 }).then((res) => {
if (res.code == 200) {
this.errorAlarm = res.data || [];
}
});
goodsend().then((res) => {});
nums().then((res) => {
if (res.code == 200) {
let data = res.data || {};
this.gunsList[0]["value"] = data["猎枪"];
this.gunsList[1]["value"] = data["竞技体育用枪"];
this.gunsList[2]["value"] = data["商业射击馆枪支"];
}
});
gunmanage().then((res) => {
if (res.code == 200) {
let data = res.data || {};
Object.keys(data).forEach((key) => {
if (key.indexOf("猎枪") > -1) {
let arr = data[key];
for (let i = 0; i < arr.length; i++) {
this.mrObj.data[0]["value"].push(arr[i]["subcategoryQuantity"]);
this.mrObj.indicator.push({
name: arr[i]["subcategoryName"],
max: arr[0]["sum"],
});
}
}
if (key.indexOf("竞技体育") > -1) {
let arr = data[key];
for (let i = 0; i < arr.length; i++) {
this.mrObj.data[1]["value"].push(arr[i]["subcategoryQuantity"]);
}
}
if (key.indexOf("商业射击") > -1) {
let arr = data[key];
for (let i = 0; i < arr.length; i++) {
this.mrObj.data[2]["value"].push(arr[i]["subcategoryQuantity"]);
}
}
});
}
});
radiation().then((res) => {
if (res.code == 200) {
let data = res.data || {};
this.mllObj.data = [];
Object.keys(data).forEach((key) => {
if (key != "count") {
this.mllObj.data.push({
name: key,
value: data[key],
});
}
});
}
});
radiationuse().then((res) => {
if (res.code == 200) {
let data = res.data || {};
let list = [];
Object.keys(data).forEach((key) => {
list.push({
name: key,
value: data[key],
});
});
let maxValue = Math.max.apply(
Math,
list.map((item) => {
return item.value;
})
);
for (let i = 0; i < list.length; i++) {
let name = list[i]["name"];
this.mlrObj.indicator.push({
name: name,
max: maxValue,
});
this.mlrObj.yData.push(list[i]["value"]);
}
console.log(this.mlrObj);
}
});
relatedcompanycount().then((res) => {});
transport().then((res) => {
if (res.code == 200) {
let data = res.data || {};
this.mlmObj.data = [];
Object.keys(data).forEach((key) => {
if (key != "count") {
this.mlmObj.data.push({
name: key,
value: data[key],
});
}
});
}
});
},
},
};
</script>
@ -345,13 +424,11 @@ export default {
left: 16px;
width: calc(100% - 32px);
height: calc(100% - 110px);
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
.screenRow {
display: flex;
flex: 1;
height: 50%;
box-sizing: border-box;
.screenCol {
display: flex;
flex-direction: column;
@ -384,12 +461,10 @@ export default {
}
}
.screenErrorAlarmWrap {
display: flex;
flex-direction: column;
justify-content: space-between;
.screenErrorAlarm {
display: flex;
flex-direction: column;
justify-content: space-evenly;
background: url("~@/assets/images/topic/jx.png") no-repeat center
center;
background-size: 100% 100%;
@ -400,6 +475,7 @@ export default {
.item {
flex: 1;
display: flex;
align-items: center;
.label {
color: #d0deee;
}
@ -568,6 +644,7 @@ export default {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
.screenErrorWrap {
margin-top: vw(16);
.errorWrap {
@ -584,11 +661,12 @@ export default {
.screenErrorAlarmWrap {
margin: vw(15) vw(15) 0;
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
overflow-y: scroll;
&::-webkit-scrollbar {
display: none;
}
.screenErrorAlarm {
/* height: vw(56); */
height: vw(56);
margin-bottom: vw(12);
flex: 1;
font-size: vw(12);

@ -119,89 +119,95 @@ export default {
label: "性别",
},
{
prop: "zd",
prop: "personType",
label: "人员类型",
},
{
prop: "mz",
prop: "ethnicity",
label: "民族",
},
{
prop: "card",
prop: "idNumber",
label: "身份证号",
attrs: {
width: 180,
},
},
{
prop: "gender",
prop: "registeredProvinceCounty",
label: "户口省县",
attrs: {
width: 200,
},
},
{
prop: "address",
prop: "registeredAddress",
label: "户口详址",
attrs: {
width: 200,
},
},
{
prop: "hy",
prop: "maritalStatus",
label: "婚姻状况",
},
{
prop: "school",
prop: "educationLevel",
label: "文化程度",
attrs: {
width: 120,
},
},
{
prop: "address",
prop: "temporaryAddress",
label: "暂住地址",
attrs: {
width: 200,
},
},
{
prop: "address",
prop: "temporaryPlace",
label: "暂住场所",
attrs: {
width: 200,
},
},
{
prop: "quxian",
prop: "district",
label: "所属区县",
},
{
prop: "pcs",
prop: "policeStation",
label: "所属派出所",
attrs: {
width: 120,
},
},
{
prop: "wyh",
prop: "neighborhoodCommittee",
label: "所属委员会",
attrs: {
width: 120,
},
},
{
prop: "time",
prop: "registrationDate",
label: "登记日期",
attrs: {
width: 180,
},
},
{
prop: "zdlb",
prop: "keyCategory",
label: "重点类别",
attrs: {
width: 140,
},
},
],
url: {
list: "/special/personnel/postkey",
},
};
},
methods: {

@ -58,11 +58,11 @@
<div class="totalTypeWrap">
<div class="item">
<div class="label">实有人口数</div>
<div class="value">213432</div>
<div class="value">{{ syTotal }}</div>
</div>
<div class="item">
<div class="label">核销流动人员</div>
<div class="value">5487</div>
<div class="value">{{ hxTotal }}</div>
</div>
</div>
<div class="flowBtmWrap">
@ -89,7 +89,7 @@
<div class="screenChart">
<div class="flowPersonWrap">
<div class="topWrap">
<dPieOne :chartObj="{}"></dPieOne>
<dPieOne :data="hdryList"></dPieOne>
</div>
<div class="btmWrap">
<div class="flowHead">
@ -151,32 +151,34 @@ export default {
data() {
return {
backIcon: require("@/assets/images/topic/left.png"),
total: 53981 + "",
total: 0,
syTotal: 0,
hxTotal: 0,
tl1Obj: {
name: "危险品领用人员",
total: 3400,
point: 1000,
total: 1,
point: 0,
icon: require("@/assets/images/topic/pie1b.png"),
color: ["#57F0FF", "#37A1CC", "#08FAC4"],
},
tl2Obj: {
name: "危险品保管人员",
total: 3400,
point: 1200,
total: 1,
point: 0,
icon: require("@/assets/images/topic/pie2b.png"),
color: ["#FFF7E3", "#EB9104", "#FAC608"],
},
tl3Obj: {
name: "危险品使用人员",
total: 3400,
point: 1300,
total: 1,
point: 0,
icon: require("@/assets/images/topic/pie1b.png"),
color: ["#57F0FF", "#37A1CC", "#08FAC4"],
},
tl4Obj: {
name: "危险品技术资质人员",
total: 3400,
point: 900,
total: 1,
point: 0,
icon: require("@/assets/images/topic/pie4b.png"),
color: ["#FFE3E3", "#FF2C2C", "#FF6D6D"],
},
@ -184,27 +186,27 @@ export default {
l1: {
icon: require("@/assets/images/topic/l1.png"),
name: "重点人员数",
value: 56765,
value: 0,
},
l2: {
icon: require("@/assets/images/topic/l2.png"),
name: "企业访问人数",
value: 6765,
value: 0,
},
r1: {
icon: require("@/assets/images/topic/r1.png"),
name: "普通岗位数",
value: 43765,
value: 0,
},
r2: {
icon: require("@/assets/images/topic/r2.png"),
name: "重点岗位数",
value: 16765,
value: 0,
},
r3: {
icon: require("@/assets/images/topic/r3.png"),
name: "专家人员",
value: 987,
value: 0,
},
},
mList: [
@ -256,6 +258,22 @@ export default {
],
color: ["#FFDE9C", "#0E9FF7"],
},
hdryList: [
{
name: "已被核查人数",
value: 34567,
itemStyle: {
color: "#378DFF",
},
},
{
name: "未被核查人数",
value: 21456,
itemStyle: {
color: "#E15A4E",
},
},
],
};
},
mounted() {
@ -265,13 +283,81 @@ export default {
getData() {
population().then((res) => {});
emphasis().then((res) => {});
postkey().then((res) => {});
poplutop().then((res) => {});
nums().then((res) => {});
nums().then((res) => {
if (res.code == 200) {
let data = res.data || {};
this.syTotal = data["实有人口数"];
this.hxTotal = data["核销流动人员"];
this.total = data["流动人口总数"];
}
});
peoplenums().then((res) => {});
personnelnum().then((res) => {});
posterror().then((res) => {});
poplupople().then((res) => {});
personnelnum().then((res) => {
if (res.code == 200) {
let data = res.data || {};
Object.keys(data).forEach((key) => {
if (key == "重点人员") {
this.tmObj["l1"]["value"] = data[key];
}
if (key == "企业访问人员") {
this.tmObj["l2"]["value"] = data[key];
}
if (key == "普通岗位") {
this.tmObj["r1"]["value"] = data[key];
}
if (key == "重点岗位") {
this.tmObj["r2"]["value"] = data[key];
}
if (key == "专家人员") {
this.tmObj["r3"]["value"] = data[key];
}
});
}
});
posterror().then((res) => {
if (res.code == 200) {
let data = res.data || {};
let total = 0;
Object.keys(data).forEach((key) => {
total += data[key];
if (key.indexOf("领用人员") > -1) {
this.tl1Obj["point"] = data[key];
}
if (key.indexOf("保管人员") > -1) {
this.tl2Obj["point"] = data[key];
}
if (key.indexOf("使用人员") > -1) {
this.tl3Obj["point"] = data[key];
}
if (key.indexOf("资质") > -1) {
this.tl4Obj["point"] = data[key];
}
});
this.tl1Obj["total"] = total;
this.tl2Obj["total"] = total;
this.tl3Obj["total"] = total;
this.tl4Obj["total"] = total;
}
console.log(this.tl1Obj);
console.log(this.tl2Obj);
console.log(this.tl3Obj);
console.log(this.tl4Obj);
});
poplupople().then((res) => {
if (res.code == 200) {
let data = res.data || {};
Object.keys(data).forEach((key) => {
if (key == "已核查") {
this.hdryList[0]["value"] = data[key];
}
if (key == "未核查") {
this.hdryList[1]["value"] = data[key];
}
});
}
});
},
goBack() {
this.$router.back();

@ -236,7 +236,9 @@ export default {
},
//
cause_car_line_map(item, new_line) {
let BMap = window.BMap;
let BMap =
window.$mapCfg.mapType === "online" ? window.BMapGL : window.BMap;
//let BMap = window.BMap;
let map = new BMap.Map("container", {
style: {
styleJson,
@ -250,6 +252,7 @@ export default {
//29.531762999999998
//29.531762
setTimeout(() => {
console.log(".....:", new_line);
var point = new BMap.Point(new_line[0].longitude, new_line[0].latitude);
// ;
var myIcon = {};

@ -363,6 +363,10 @@ export default {
// { longitude: 121.596364, latitude: 29.904434 },
// ];
let arr = res.data;
if(!arr.length){
this.$message.info("暂无车辆轨迹");
return;
}
const new_line = arr.map((item) => ({
longitude: item.longitude,
latitude: item.latitude,

@ -57,7 +57,9 @@ export default {
this.$emit("goBack");
},
initMap() {
var BMap = window.BMap;
//var BMap = window.BMap;
let BMap =
window.$mapCfg.mapType === "online" ? window.BMapGL : window.BMap;
// console.log(BMap, 'BMap');
var map = new BMap.Map("container", {
style: {

@ -50,7 +50,9 @@ export default {
this.$emit("goBack");
},
initMap() {
var BMap = window.BMap;
//var BMap = window.BMap;
let BMap =
window.$mapCfg.mapType === "online" ? window.BMapGL : window.BMap;
// console.log(BMap, 'BMap');
var map = new BMap.Map("container", {
style: {

Loading…
Cancel
Save