From 8f3062cd6729850839b02b4dc0a4a76c4322f1c4 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 23 Apr 2021 17:32:41 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue
---
src/store/modules/user.js | 3
vue.config.js | 76 +-
src/views/policeTracking/policeTracking.vue | 601 +++++++++++++------------
public/map/popup/html/FlareClusterLayer_v3 copy.html | 60 +
src/views/supervisoryConsole/card.vue | 10
public/map/widgets/supervisoryMap/SupervisoryMap.js | 152 ++++--
src/views/clientManagement/clientManagement.vue | 2
src/page/crumbsL/crumbsL.vue | 55 +
src/store/modules/common.js | 4
public/img/ydlogo.png | 0
public/map/widgets/supervisoryMap/template.html | 12
src/views/supervisoryConsole/data.vue | 2
public/map/widgets/supervisoryMap/SupervisoryMap.css | 4
public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js | 302 +++++++-----
src/page/index/top/index.vue | 3
src/views/dataL/dataL.vue | 91 ++-
16 files changed, 791 insertions(+), 586 deletions(-)
diff --git a/public/img/ydlogo.png b/public/img/ydlogo.png
new file mode 100644
index 0000000..bdd814c
--- /dev/null
+++ b/public/img/ydlogo.png
Binary files differ
diff --git a/public/map/popup/html/FlareClusterLayer_v3 copy.html b/public/map/popup/html/FlareClusterLayer_v3 copy.html
index 05fefc7..3fb8dea 100644
--- a/public/map/popup/html/FlareClusterLayer_v3 copy.html
+++ b/public/map/popup/html/FlareClusterLayer_v3 copy.html
@@ -31,7 +31,7 @@
height: 484px;
border-radius: 10px;
margin: 16px 15px 16px 15px;
-
+ overflow: hidden;
/* border: springgreen solid 0.5px; */
}
@@ -63,11 +63,19 @@
justify-content: space-around;
}
+ .f-l-t-center {
+ width: auto;
+ position: relative;
+ left: -103px;
+ top: 5px;
+ }
+
.f-l-t-r-msg {
width: 200px;
height: 28px;
position: relative;
- top: 23px;
+ top: 10px;
+ left: -5px;
}
.f-l-t-r-but {
@@ -155,6 +163,7 @@
<input type="text" id="sidIput" ref="sidIput" style="display:none">
<div class="flare-liu-top">
<div class="f-l-t-heard">{{name}}</div>
+ <div class="f-l-t-center">{{machineCode}}</div>
<div class="f-l-t-right">
<div class="f-l-t-r-msg">{{statesss}}</div>
<div class="f-l-t-r-but"> <a href="#" @click="looks">查看详情</a> </div>
@@ -235,13 +244,14 @@
deploymentTime: '',
oldtime: '',
newtime: '',
+ machineCode: '',
a: true,
activeName: 'first'
},
methods: {
- looks(){
- window.parent.parent.location.hash = `#/dataL/dataL?id=${this.ourData.id}&deviceName=${this.ourData.deviceName}&deviceNumber=${this.ourData.deviceNumber}&deviceType=${this.ourData.deviceType}&ownership=${this.ourData.ownership}&ownerId=&devicestate=${this.ourData.devicestate}&stime=${this.ourData.stime}&parentId=${this.ourData.parentId}&jd=${this.ourData.jd}&wd=${this.ourData.wd}&street=${this.ourData.street}&dtype=${this.ourData.dtype}&serialNumber=${this.ourData.serialNumber}&stype=&channelNumber=${this.ourData.channelNumber}&pay=&expireTime=${this.ourData.expireTime}&heartbeat=${this.ourData.heartbeat}&province=${this.ourData.province}&city=${this.ourData.city}&district=${this.ourData.district}&state=&reason=&deptId=${this.ourData.deptId}&onePhone=${this.ourData.onePhone}&twoPhone=${this.ourData.twoPhone}&oneId=${this.ourData.oneId}&twoId=&threeId=&oneContacts=${this.ourData.oneContacts}&twoContacts=${this.ourData.twoContacts}&type=${this.ourData.type}&beginTime=&endTime=&pid=${this.ourData.pid}&onlineStatus=${this.ourData.onlineStatus}&jtype=${this.ourData.jtype}&threePhone=${this.ourData.threePhone}&threeContacts=${this.ourData.threeContacts}`;
+ looks() {
+ window.parent.parent.location.hash = `#/dataL/dataL?id=${this.ourData.id}&deviceName=${this.ourData.deviceName}&deviceNumber=${this.ourData.deviceNumber}&deviceType=${this.ourData.deviceType}&ownership=${this.ourData.ownership}&ownerId=&devicestate=${this.ourData.devicestate}&stime=${this.ourData.stime}&parentId=${this.ourData.parentId}&jd=${this.ourData.jd}&wd=${this.ourData.wd}&street=${this.ourData.street}&dtype=${this.ourData.dtype}&serialNumber=${this.ourData.serialNumber}&stype=&channelNumber=${this.ourData.channelNumber}&pay=&expireTime=${this.ourData.expireTime}&heartbeat=${this.ourData.heartbeat}&province=${this.ourData.province}&city=${this.ourData.city}&district=${this.ourData.district}&state=${this.ourData.state}&reason=&deptId=${this.ourData.deptId}&onePhone=${this.ourData.onePhone}&twoPhone=${this.ourData.twoPhone}&oneId=${this.ourData.oneId}&twoId=&threeId=&oneContacts=${this.ourData.oneContacts}&twoContacts=${this.ourData.twoContacts}&type=${this.ourData.type}&beginTime=&endTime=&pid=${this.ourData.pid}&onlineStatus=${this.ourData.onlineStatus}&jtype=${this.ourData.jtype}&threePhone=${this.ourData.threePhone}&threeContacts=${this.ourData.threeContacts}`;
},
getdatas(dat) {
@@ -261,10 +271,18 @@
if (xhr.status === 200) {
// 判断isJson是否传进来了
var imgD = JSON.parse(xhr.responseText);// JSON转js
- my.imgsl = imgD.data.length == 0? ['no'] : imgD.data;
+ // console.log(imgD)
+ var imgdatas = [];
+ if (imgD.data.length != 0) {
+ imgdatas = imgD.data[0].paddress.split(',');
+ } else {
+
+ }
+ // var imgdatas = imgD.data[0].paddress.split(',');
+ my.imgsl = imgdatas.length == 0 ? ['no'] : imgdatas;
// my.imgsl = [ //最多3张照片
// "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
-
+
// "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
// "https://resource-city.sensoro.com/6E0FB78DC42C35F3B8FF0F6A03472433",
// ]
@@ -272,7 +290,7 @@
}
}
}
- this.name = dat.deviceName;
+ this.name = dat.deviceName.length >= 15 ? dat.deviceName.substring(0, 15) + '···' : dat.deviceName;
me.num = dat.deviceNumber;
this.evaluate = "空气质量";
this.machineCode = "无数据" && dat.deviceNumber;
@@ -289,16 +307,26 @@
var ct = document.getElementsByClassName('flare-liu-top')[0];
var cordActive = document.getElementsByClassName('el-tabs__active-bar')[0];//滑块背景颜色
- if (dat.onlineStatus == 1) {//el-tabs__active-bar
- ct.style.backgroundImage = 'linear-gradient(to right, #3DDEA8 , #1FBD9A';
- cordActive.style.backgroundImage = 'linear-gradient(to right, #3DDEA8 , #1FBD9A';
- this.statesss = '在线';
-
+ if (dat.state != '') {
+ ct.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
+ this.statesss = '故障';
} else {
- ct.style.backgroundImage = 'linear-gradient(to right, #787878 , #5F5F5F';
- cordActive.style.backgroundImage = 'linear-gradient(to right, #787878 , #5F5F5F';
- this.statesss = '离线';
-
+ if (dat.jtype != 1) {
+ if (dat.onlineStatus == 1) {//el-tabs__active-bar
+ ct.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ this.statesss = '在线';
+ } else {
+ ct.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ this.statesss = '离线';
+ }
+ } else {
+ ct.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ this.statesss = '警报';
+ }
}
},
handleClick(tab, event) {//标签tab点击事件
diff --git a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
index f95b136..b231345 100644
--- a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
+++ b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
@@ -230,7 +230,7 @@
// return value;
// }
// );
-
+
var as = evt.graphic.attributes;
for (let key in as) {
if (typeof as[key] == 'object') {
@@ -251,7 +251,7 @@
// console.log(cache);
cache = null;
- var fCard = (posi, setdata) => { // 弹窗函数
+ var fCard = (posi, setdata, winSize) => { // 弹窗函数
var that = this,
url = './popup/html/FlareClusterLayer_v3.html',
clickD = null,
@@ -266,103 +266,134 @@
});
that.layuiLayer.close(that.layuiLayer.index);
// layer.alert('layer 新皮肤');
- that.layuiLayer.open({
- title: '',
- type: 2,
- shadeClose: false,
- shade: false,
- skin: 'demo-class',
- // id: 'onelyOne',
- maxmin: false, //开启最大化最小化按钮
- area: ['200px', '75px'],
- // area: 'auto',
- offset: posi,
- skin: 'flare',
- closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
- content: [url, 'no'],
- resize: false,
- scrollbar: false,
- // tipsMore: true, //允许多个tipe
- // content: num,
- success: function (layero, index) {//成功后添加全局点击关闭
- // console.log(evt.graphic.attributes);
- $("#layui-layer-iframe" + index).contents().find("#input1").val(setdata);
- // console.log(layero, index);
- that.indexs = index;
+ // that.layuiLayer.open({
+ // title: '',
+ // type: 2,
+ // shadeClose: false,
+ // shade: false,
+ // skin: 'demo-class',
+ // // id: 'onelyOne',
+ // maxmin: false, //开启最大化最小化按钮
+ // area: ['200px', '75px'],
+ // // area: 'auto',
+ // offset: posi,
+ // skin: 'flare',
+ // closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
+ // content: [url, 'no'],
+ // resize: false,
+ // scrollbar: false,
+ // // tipsMore: true, //允许多个tipe
+ // // content: num,
+ // success: function (layero, index) {//成功后添加全局点击关闭
+ // // console.log(evt.graphic.attributes);
+ // $("#layui-layer-iframe" + index).contents().find("#input1").val(setdata);
+ // // console.log(layero, index);
+ // that.indexs = index;
- var isclickD = true
- , endx = null
- , endy = null;
- layero[0].style.position = 'absolute';
+ // var isclickD = true
+ // , endx = null
+ // , endy = null;
+ // layero[0].style.position = 'absolute';
- downs = document.onmousedown = () => { //鼠标按下事件
- // console.log('down');//start
- // downs = document.onmousedown = null;
- var mx = window.event.clientX//鼠标初始位置
- , my = window.event.clientY
- , cx = this.offset[1].replace("px", "")//初始位置
- , cy = this.offset[0].replace("px", "");
+ // downs = document.onmousedown = () => { //鼠标按下事件
+ // // console.log('down');//start
+ // // downs = document.onmousedown = null;
+ // var mx = window.event.clientX//鼠标初始位置
+ // , my = window.event.clientY
+ // , cx = this.offset[1].replace("px", "")//初始位置
+ // , cy = this.offset[0].replace("px", "");
- //判断鼠标是否在地图上
- // console.log(mx,'+',my);
- if (mx > 359 && mx < 1543 && my > 5 && my < 818) {
- // console.log('on map')
- if (endx != null && endy != null) {
- cx = endx;
- cy = endy;
- }
- moves = document.onmousemove = () => {//鼠标移动事件
- // console.log('move');//move
- // console.log(this.offset)
- var ux = window.event.clientX//记录实时位置
- , uy = window.event.clientY;
- endx = +cx + (ux - mx)// 初始位置+(鼠标初始位置-实时位置)
- endy = +cy + (uy - my);
- layero[0].style.left = endx + 'px';
- layero[0].style.top = endy + 'px';
- // console.log(+cx, +cy,'初始位置');
- // console.log(mx, my,'鼠标初始位置');
- // console.log(ux, uy,'记录实时位置');
- // console.log(ux, uy,'最后位置');
- isclickD = false;
- ups = document.onmouseup = () => {//鼠标抬起事件
- // console.log('up');//end
- // downs = document.onmousedown = null;
- moves = document.onmousemove = null;
- ups = document.onmouseup = null;
- var timess = setTimeout(() => {
- clearTimeout(timess);
- timess = null;
- isclickD = true;
- }, 1);
- }
- }
- }
- }
- clickD = document.onclick = () => {
- if (isclickD) {
- parent[0].layer.close(index);
- parent[0].layer.close(+index + 1);
- // parent[0].layer.closeAll();
- // console.log(111111111111)
- clickD = document.onclick = null;
- }
- }
+ // //判断鼠标是否在地图上
+ // // console.log(mx,'+',my);
+ // if (mx > 359 && mx < 1543 && my > 5 && my < 818) {
+ // // console.log('on map')
+ // if (endx != null && endy != null) {
+ // cx = endx;
+ // cy = endy;
+ // }
+ // moves = document.onmousemove = () => {//鼠标移动事件
+ // // console.log('move');//move
+ // // console.log(this.offset)
+ // var ux = window.event.clientX//记录实时位置
+ // , uy = window.event.clientY;
+ // endx = +cx + (ux - mx)// 初始位置+(鼠标初始位置-实时位置)
+ // endy = +cy + (uy - my);
+ // layero[0].style.left = endx + 'px';
+ // layero[0].style.top = endy + 'px';
+ // // console.log(+cx, +cy,'初始位置');
+ // // console.log(mx, my,'鼠标初始位置');
+ // // console.log(ux, uy,'记录实时位置');
+ // // console.log(ux, uy,'最后位置');
+ // isclickD = false;
+ // ups = document.onmouseup = () => {//鼠标抬起事件
+ // // console.log('up');//end
+ // // downs = document.onmousedown = null;
+ // moves = document.onmousemove = null;
+ // ups = document.onmouseup = null;
+ // var timess = setTimeout(() => {
+ // clearTimeout(timess);
+ // timess = null;
+ // isclickD = true;
+ // }, 1);
+ // }
+ // }
+ // }
+ // }
+ // clickD = document.onclick = () => {
+ // if (isclickD) {
+ // parent[0].layer.close(index);
+ // parent[0].layer.close(+index + 1);
+ // // parent[0].layer.closeAll();
+ // // console.log(111111111111)
+ // clickD = document.onclick = null;
+ // }
+ // }
- var mouseWheel = that.map.on("mouse-wheel", myMouseWheelHandler);
+ // var mouseWheel = that.map.on("mouse-wheel", myMouseWheelHandler);
- function myMouseWheelHandler(event) {
- // console.log("Mouse wheel value = " + event.value);
- parent[0].layer.close(index);
- parent[0].layer.close(+index + 1);
- mouseWheel.remove();
- }
+ // function myMouseWheelHandler(event) {
+ // // console.log("Mouse wheel value = " + event.value);
+ // parent[0].layer.close(index);
+ // parent[0].layer.close(+index + 1);
+ // mouseWheel.remove();
+ // }
- },
- end: function () { //关闭事件
+ // },
+ // end: function () { //关闭事件
- }
- });
+ // }
+ // });
+ // that.layuiLayer.open({ //第二个iframe
+ // title: '',
+ // type: 2,
+ // shadeClose: true,
+ // shade: false,
+ // skin: 'demo-class',
+ // id: 'onelyTwo',
+ // maxmin: false, //开启最大化最小化按钮
+ // area: ['360px', '484px'],
+ // // area: 'auto',
+ // offset: 'r',
+ // skin: 'flare',
+ // isOutAnim: false,
+ // closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
+ // content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
+ // resize: false,
+ // scrollbar: false,
+ // // tipsMore: true, //允许多个tipe
+ // // content: num,
+ // success: function (layero, index) { //成功后添加全局点击关闭
+ // // var z = document.onclick = ()=>{
+ // // parent[0].layer.close(index);
+ // // // // parent[0].layer.close(+index + 1);
+ // // z = null;
+ // // }
+ // //尝试传值
+ // //js对象转json对象
+ // // $("#layui-layer-iframe" + index).contents().find("input").val(JSON.stringify(evt.graphic.attributes));
+ // $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+ // },
+ // })
that.layuiLayer.open({ //第二个iframe
title: '',
type: 2,
@@ -373,10 +404,10 @@
maxmin: false, //开启最大化最小化按钮
area: ['360px', '484px'],
// area: 'auto',
- offset: 'r',
+ offset: winSize,
skin: 'flare',
isOutAnim: false,
- closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
+ closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
resize: false,
scrollbar: false,
@@ -392,6 +423,7 @@
//js对象转json对象
// $("#layui-layer-iframe" + index).contents().find("input").val(JSON.stringify(evt.graphic.attributes));
$("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
+
},
})
})
@@ -399,15 +431,13 @@
if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
var offsetMy = [+evt.screenY - 300 + 'px', +evt.screenX - 172.5 + 'px'];
// console.log(evt.screenY);
- fCard(offsetMy, setdata);
+ var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px']
+ // console.log(winSize,4454645634536);
+ fCard(offsetMy, setdata, winSize);
mySelf.onceTimeMethod = setTimeout(() => {
mySelf.onceTimeMethod = null;
}, mySelf.onceTime);
- } else {};
-
-
-
-
+ } else { };
} else {
// var taxLotExtent = evt.graphic.geometry.getExtent();
@@ -754,8 +784,9 @@
},
_clusterData: function () {
-
+ //此函数当前仅适用于不使用预聚集数据的情况
//this function currently only applies if not using preclustered data
+ // console.log('改变111111111111111')
if (this.preClustered) {
return;
}
@@ -841,9 +872,10 @@
cl.singles.push(obj);
}
}
-
for (i = 0, len = this.gridClusters.length; i < len; i++) {
if (this.gridClusters[i].clusterCount === 1) {
+// console.log(this.gridClusters)
+
this._createSingle(this.gridClusters[i].singles[0]);
} else if (this.gridClusters[i].clusterCount > 0) {
this._createCluster(this.gridClusters[i]);
@@ -899,15 +931,21 @@
this.singles.push(single);
delete single.graphic;
var symbol;
- if (single.jtype == 1) {
- symbol = new esri.symbol.PictureMarkerSymbol("./images/yj-jingbao.png", 40, 40);
+ // console.log(single.state);
+ if (single.state != '') {
+ symbol = new esri.symbol.PictureMarkerSymbol("./images/by-jingbao.png", 40, 40);
} else {
- if (single.onlineStatus == 1) {
- symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
+ if (single.jtype == 1) {
+ symbol = new esri.symbol.PictureMarkerSymbol("./images/yj-jingbao.png", 40, 40);
} else {
- symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
+ if (single.onlineStatus == 1) {
+ symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
+ } else {
+ symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
+ }
}
}
+
var point = new Point(single[this.xPropertyName], single[this.yPropertyName], this.spatialRef);
var attributes = lang.clone(single);
@@ -1001,11 +1039,11 @@
//add a text element for the label to display the count and add to the group
var shapeCenter = this._getShapeCenter(cluster.graphicShape);
var textShape = groupShape.createText({
- x: shapeCenter.x,
- y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2),
- text: cluster.clusterCount,
- align: 'middle'
- })
+ x: shapeCenter.x,
+ y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2),
+ text: cluster.clusterCount,
+ align: 'middle'
+ })
.setFont({
size: this.textSymbol.font.size,
family: this.textSymbol.font.family,
@@ -1129,10 +1167,10 @@
//create a transparent circle that contains the boundary of the flares, this is to make sure the mouse events don't fire moving in between flares
var conCircleRadius = (center.x - (bbox.x - radius - buffer)) + radius; //get the radius of the circle to contain everything
var containerCircle = groupShape.createCircle({
- cx: center.x,
- cy: center.y,
- r: conCircleRadius
- })
+ cx: center.x,
+ cy: center.y,
+ r: conCircleRadius
+ })
//.setStroke({ width: 1, color: "000" })
.setFill(new Color([0, 0, 0, 0]));
containerCircle.rawNode.setAttribute("class", "flare-object cluster-object");
@@ -1433,11 +1471,11 @@
var textShapes = [];
for (var i = 0, len = lines.length; i < len; i++) {
var textShape = tooltipGroup.createText({
- x: xPos,
- y: yPos + (i * 10),
- text: lines[i],
- align: 'middle'
- })
+ x: xPos,
+ y: yPos + (i * 10),
+ text: lines[i],
+ align: 'middle'
+ })
.setFill("#000")
.setFont({
size: 8,
@@ -1451,12 +1489,12 @@
var rectPadding = 2;
var textBox = tooltipGroup.getBoundingBox();
var rectShape = tooltipGroup.createRect({
- x: textBox.x - rectPadding,
- y: textBox.y - rectPadding,
- width: textBox.width + (rectPadding * 2),
- height: textBox.height + (rectPadding * 2),
- r: 0
- })
+ x: textBox.x - rectPadding,
+ y: textBox.y - rectPadding,
+ width: textBox.width + (rectPadding * 2),
+ height: textBox.height + (rectPadding * 2),
+ r: 0
+ })
.setFill(new Color([255, 255, 255, 0.9]))
.setStroke({
color: "#000",
@@ -1592,11 +1630,11 @@
//Have to add the flare text after the flare group animation otherwise Edge just reloads the page and dies for some reason?
if (this.shape.flareText) {
var flareText = this.shape.createText({
- x: this.shape.flareText.location.x,
- y: this.shape.flareText.location.y,
- text: this.shape.flareText.text,
- align: 'middle'
- })
+ x: this.shape.flareText.location.x,
+ y: this.shape.flareText.location.y,
+ text: this.shape.flareText.text,
+ align: 'middle'
+ })
.setFill(layer.textSymbol.color)
.setFont({
size: this.shape.flareText.textSize,
diff --git a/public/map/widgets/supervisoryMap/SupervisoryMap.css b/public/map/widgets/supervisoryMap/SupervisoryMap.css
index 0fd2a64..0517612 100644
--- a/public/map/widgets/supervisoryMap/SupervisoryMap.css
+++ b/public/map/widgets/supervisoryMap/SupervisoryMap.css
@@ -352,7 +352,7 @@
height: 20px;
line-height: 20px;
color: #fff;
- background: #377DFF;
+ /* background: #377DFF; */
border: none;
border-radius: 5px;
cursor: pointer;
@@ -361,7 +361,7 @@
.analysis-container .analysis-container-equipment .table .tbody tr td:nth-child(2),
.analysis-container .analysis-container-equipment .table .thead tr th:nth-child(2) {
- width: 68px;
+ width: 138px;
}
.analysis-container .analysis-container-equipment .table .tbody tr td:nth-child(4),
diff --git a/public/map/widgets/supervisoryMap/SupervisoryMap.js b/public/map/widgets/supervisoryMap/SupervisoryMap.js
index ce39baa..6d5fb1f 100644
--- a/public/map/widgets/supervisoryMap/SupervisoryMap.js
+++ b/public/map/widgets/supervisoryMap/SupervisoryMap.js
@@ -260,6 +260,7 @@
var mySelf = this;
objThis._map.addLayer(objThis._siteLayer);
var that = this;
+ // console.log(mySelf.clusterLayer)
that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), '');
// 顶部tab得切换事件
$('.analysis-and-judgment-tab li').click(function () {
@@ -462,13 +463,13 @@
// console.log(that.clusterLayer, that._map, 6)
// console.log(id, 'id');
- // console.log(that.clusterLayer.indexs);
+ // console.log(that.clusterLayer);
var Tattributes = null
, ds = that.clusterLayer.allData;
for (var key in ds) {
- if (ds[key].id == id){
+ if (ds[key].id == id) {
Tattributes = ds[key];
- }
+ }
}
if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
var evtdata = {};
@@ -491,47 +492,47 @@
// $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
// event.stopPropagation();
// })
- $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', function (event) {
- event.stopPropagation();
- var lgtd = Number($(this).attr('lgtd'));
- var lttd = Number($(this).attr('lttd'));
- var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
- that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
+ // $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', function (event) {
+ // event.stopPropagation();
+ // var lgtd = Number($(this).attr('lgtd'));
+ // var lttd = Number($(this).attr('lttd'));
+ // var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
+ // that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
- var y = +window.innerHeight / 2 + 200;
- var x = (+window.innerWidth - 360) / 2 + 360 + 70;
- // document.elementFromPoint(x, y).click();
- // console.log(x, y)
+ // var y = +window.innerHeight / 2 + 200;
+ // var x = (+window.innerWidth - 360) / 2 + 360 + 70;
+ // // document.elementFromPoint(x, y).click();
+ // // console.log(x, y)
- // var a = document.elementFromPoint(21, 122);
- // console.log(a);
+ // // var a = document.elementFromPoint(21, 122);
+ // // console.log(a);
- // console.log(that.clusterLayer, that._map, 6)
- // console.log(id, 'id');
- // console.log(that.clusterLayer.indexs);
- var Tattributes = null
- , ds = that.clusterLayer.allData;
- for (var key in ds) {
- if (ds[key].id == id){
- Tattributes = ds[key];
- }
- }
- if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
- var evtdata = {};
- evtdata = {
- graphic: {
- attributes: Tattributes,
- },
- screenX: x,
- screenY: y,
- }
- that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
- mySelf.onceTimeMethod = setTimeout(() => {
- mySelf.onceTimeMethod = null;
- }, mySelf.onceTime);
- } else {
- };
- })
+ // // console.log(that.clusterLayer, that._map, 6)
+ // // console.log(id, 'id');
+ // // console.log(that.clusterLayer.indexs);
+ // var Tattributes = null
+ // , ds = that.clusterLayer.allData;
+ // for (var key in ds) {
+ // if (ds[key].id == id) {
+ // Tattributes = ds[key];
+ // }
+ // }
+ // if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
+ // var evtdata = {};
+ // evtdata = {
+ // graphic: {
+ // attributes: Tattributes,
+ // },
+ // screenX: x,
+ // screenY: y,
+ // }
+ // that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
+ // mySelf.onceTimeMethod = setTimeout(() => {
+ // mySelf.onceTimeMethod = null;
+ // }, mySelf.onceTime);
+ // } else {
+ // };
+ // })
// 警情列表中得热力图是否选中事件
$('#policeHeatMap').click(function () {
that.checkBoxSelect(this);
@@ -797,6 +798,7 @@
getEquipmentTable: function (dom, deviceType) {
dom.empty();
var that = this;
+ // console.log(that.clusterLayer)
// console.log(dom, deviceType);
// dom.append(deviceType);
// var str = "<td class='locationb'> <input type='button' value='定位'" + ' lgtd=' + 114.9285 + ' lttd=' + 25.850693 + "></td>"
@@ -810,35 +812,89 @@
// dom.append(str)
$.ajax({
- url: '/api/blade-jfpts/equipment/equipment/selectList?deviceType=' + deviceType,
+ url: '/api/blade-jfpts/equipment/equipment/listAll?deviceType=' + deviceType,
type: 'GET',
dataType: 'JSON',
success: function (data) {
- var result = data.data;
- // console.log(data)
+ var oldData = data.data
+ var result = [];
+ // console.log(result)
var str = '';
that.entitysData = [];
that.analysisAddEntitys.clear();
+
+
+ if(deviceType == ''){
+ result = oldData;
+ }else if(deviceType == '在线'){
+ for (var key in oldData){
+ // console.log(oldData[key]);
+ if(oldData[key].state == '' && oldData[key].jtype != 1 && oldData[key].onlineStatus == 1){
+ result.push(oldData[key]);
+ }
+ }
+ }else if(deviceType == '离线'){
+ for (var key in oldData){
+ // console.log(oldData[key]);
+ if(oldData[key].state == '' && oldData[key].jtype != 1 && oldData[key].onlineStatus != 1){
+ result.push(oldData[key]);
+ }
+ }
+ }else if(deviceType == '警报'){
+ for (var key in oldData){
+ // console.log(oldData[key]);
+ if(oldData[key].state == '' && oldData[key].jtype == 1){
+ result.push(oldData[key]);
+ }
+ }
+ }else if(deviceType == '故障'){
+ for (var key in oldData){
+ // console.log(oldData[key]);
+ if(oldData[key].state != ''){
+ result.push(oldData[key]);
+ }
+ }
+ }
+
+
for (var a, i = 0; i < result.length; i++) {
that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
lgtd: result[i].jd,
lttd: result[i].wd,
id: result[i].id
}, result[i].jd, result[i].wd, './images/ceshi.png');
+ var stares = '';
a = Number(i) + 1;
str += "<tr term-listid=" + result[i].id + ">";
str += '<td>' + a + '</td>';
str += '<td title=' + result[i].deviceName + '>' + result[i].deviceName + '</td>';
- str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
+ // str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
str += '<td>' + result[i].deviceNumber + '</td>';
- str += "<td class='location'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
+ // console.log(result[i].state);
+
+
+ if (result[i].state != '') {
+ stares = '故障';
+ str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F49966 , #F49966' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
+ } else {
+ if (result[i].jtype != 1) {
+ if (result[i].onlineStatus == 1) {//el-tabs__active-bar
+ stares = '在线';
+ str += "<td class='location'> <input style='background-image:linear-gradient(to right, #32C1A2 , #32C1A2' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
+ } else {
+ stares = '离线';
+ str += "<td class='location'> <input style='background-image:linear-gradient(to right, #CDCDCD , #CDCDCD' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
+ }
+ } else {
+ stares = '警报';
+ str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F35B5B , #F35B5B' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
+ }
+ }
str += '</tr>';
dom.append(str);
str = '';
}
-
-
}
})
},
diff --git a/public/map/widgets/supervisoryMap/template.html b/public/map/widgets/supervisoryMap/template.html
index 8717bad..8bfba5e 100644
--- a/public/map/widgets/supervisoryMap/template.html
+++ b/public/map/widgets/supervisoryMap/template.html
@@ -22,11 +22,10 @@
<div class='select-list'>
<ul>
<li>全部</li>
- <li>一体化摄像头</li>
- <li>普通枪式摄像头</li>
- <li>红外夜视防水型摄像头</li>
- <li>球型摄像头</li>
- <li>高速球</li>
+ <li>在线</li>
+ <li>警报</li>
+ <li>故障</li>
+ <li>离线</li>
</ul>
</div>
</li>
@@ -43,9 +42,8 @@
<tr>
<th>序号</th>
<th>设备名称</th>
- <th>设备类型</th>
<th>设备编码</th>
- <th>操作</th>
+ <th>设备状态</th>
</tr>
</thead>
</table>
diff --git a/src/page/crumbsL/crumbsL.vue b/src/page/crumbsL/crumbsL.vue
index d2c5fac..a6c9b2c 100644
--- a/src/page/crumbsL/crumbsL.vue
+++ b/src/page/crumbsL/crumbsL.vue
@@ -4,16 +4,29 @@
<div class="titles">您的位置:</div>
<!-- <button @click="cc">cccc</button> -->
<!-- <el-breadcrumb-item style="position: relative;top: -3px;left: 5px">您的位置:</el-breadcrumb-item> -->
- <el-breadcrumb separator="/">
- <!-- <el-breadcrumb-item v-show="!onceRouter" :to="{ path: '/wel/index' }">首页</el-breadcrumb-item> -->
+ <!-- <el-breadcrumb-item v-show="!onceRouter" :to="{ path: '/wel/index' }">首页</el-breadcrumb-item> -->
+ <!-- <el-breadcrumb separator="/">
<el-breadcrumb-item
:to="item.path"
v-for="item of breadListLast"
:key="item.path"
+ style="border: hotpink 1px solid"
>
{{ item.name }}
</el-breadcrumb-item>
- </el-breadcrumb>
+ </el-breadcrumb> -->
+ <div
+ class="ourCrumbsl"
+ v-for="(item, index) of breadListLast"
+ :key="item.path"
+ >
+ <div class="aaa" v-show="breadListLast.length != index + 1">
+ <a href="javascript:;" @click="$router.push({ path: item.path})">{{ item.name }}</a> / 
+ </div>
+ <div class="bbb" v-show="breadListLast.length == index + 1">
+ <div>{{ item.name }}</div>
+ </div>
+ </div>
</div>
<!-- <router-view></router-view> -->
</div>
@@ -64,9 +77,11 @@
methods: {
loadChange(states) {
//导航栏进就是一级路由,其他页面push
- if (this.isrf) {//刷新读取localStorage
+ if (this.isrf) {
+ //刷新读取localStorage
this.breadListLast = JSON.parse(localStorage.getItem("crumbsl"));
- } else {//关闭重写
+ } else {
+ //关闭重写
var path = this.$route.path,
p = path.split("/").pop(),
n = this.$route.name,
@@ -92,8 +107,8 @@
//判断是否有重复项,有则删除其后路由↓
var ourP = this.breadListLast;
for (var os in ourP) {
- if(n == '首页'){
- n = '数据模式'
+ if (n == "首页") {
+ n = "数据模式";
}
if (ourP[os].name == n && os != ourP.length - 1) {
this.breadListLast.splice(
@@ -104,11 +119,11 @@
}
}
// console.log(p, n, "写入多级面包屑");
-
}
this.sOld = s;
// window.localStorage.crumbsl = this.breadListLast;
localStorage.setItem("crumbsl", JSON.stringify(this.breadListLast));
+
}
},
loadChange2(states) {
@@ -285,8 +300,15 @@
console.log("首次被加载");
window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值
} else if (window.name == "isReload") {
- this.isrf = true;
- console.log("页面被刷新");
+ var abb = localStorage.getItem("crumbsl");
+ if (abb) {
+ this.isrf = true;
+ console.log("页面被刷新");
+ } else {
+ this.isrf = false;
+ console.log("页面被刷新,但后台没有数据");
+ }
+
}
this.loadChange("moun");
},
@@ -305,8 +327,19 @@
background: #fff;
.titles {
position: absolute;
- top: 17px;
+ top: 17.15px;
left: 5px;
+ font-weight: 400;
+ }
+ .ourCrumbsl {
+ // border: hotpink 1px solid;
+ float: left;
+ font-weight: 400;
+ position: relative;
+ top: -3px;
+ a{
+ font-weight: 400;
+ }
}
}
}
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 7186397..dfc23b5 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -22,7 +22,7 @@
</div>
<div class="top-bar__right">
<img
- src="/img/ydlg.png"
+ src="/img/ydlogo.png"
style="height: 44px; vertical-align: middle"
alt=""
/>
@@ -97,6 +97,7 @@
></i>
</div>
</el-tooltip>
+ <!-- 顶部导航用户图片位置 -->
<img class="top-bar__img" :src="userInfo.avatar" />
<el-dropdown>
<span class="el-dropdown-link">
diff --git a/src/store/modules/common.js b/src/store/modules/common.js
index 10dfea9..b2ec420 100644
--- a/src/store/modules/common.js
+++ b/src/store/modules/common.js
@@ -4,7 +4,7 @@
* @Author: song
* @Date: 2021-01-26 08:56:33
* @LastEditors: song
- * @LastEditTime: 2021-03-19 11:59:23
+ * @LastEditTime: 2021-04-23 13:45:26
*/
import {
setStore,
@@ -33,7 +33,7 @@
showMenu: true,
showColor: true,
colorName: getStore({name: 'colorName'}) || '#409EFF',
- themeName: getStore({name: 'themeName'}) || 'theme-vip',
+ themeName: getStore({name: 'themeName'}) || 'theme-white',
lockPasswd: getStore({name: 'lockPasswd'}) || '',
website: website,
//判断是否是导航栏点击的路由,是则↓属性自加
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 431ff96..afab619 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -103,11 +103,12 @@
})
},
//获取用户信息
- GetUserInfo({commit}) {
+ GetUserInfo({commit}) {//获取用户信息liu++
return new Promise((resolve, reject) => {
getUserInfo().then((res) => {
const data = res.data.data;
commit('SET_ROLES', data.roles);
+ console.log(data);
resolve(data);
}).catch(err => {
reject(err);
diff --git a/src/views/clientManagement/clientManagement.vue b/src/views/clientManagement/clientManagement.vue
index 3e8b720..7ed8060 100644
--- a/src/views/clientManagement/clientManagement.vue
+++ b/src/views/clientManagement/clientManagement.vue
@@ -570,7 +570,7 @@
"form.map": {
// form是表单或者表格绑定的数据集,v-model='form'
handler(val) {
- debugger
+
if (val) {
this.form.wd = val.latitude;
this.form.jd = val.longitude;
diff --git a/src/views/dataL/dataL.vue b/src/views/dataL/dataL.vue
index 7af7a06..2e01cbb 100644
--- a/src/views/dataL/dataL.vue
+++ b/src/views/dataL/dataL.vue
@@ -8,11 +8,25 @@
{{ name.length > 14 ? name.substr(0, 14) + "···" : name }}
</p>
<div class="l-t-state">
+ <!-- dataState: ["掉线", "在线", "故障", "预警"],
+ if (s != "") {
+ states = "故障";
+ } else {
+ if (j != 1) {
+ if (o == 1) {
+ states = "在线";
+ } else {
+ states = "掉线";
+ }
+ } else {
+ states = "预警";
+ }
+ }-->
<span
:class="{
'l-t-s-grey': state == dataState[0],
'l-t-s-green': state == dataState[1],
- 'l-t-s-yewllo': state == dataState[3],
+ 'l-t-s-yewllo': state == dataState[2],
'l-t-s-red': state == dataState[3],
'l-t-s-yuan': true,
}"
@@ -468,7 +482,7 @@
<div class="r-one">
<div class="r-heard">
<div class="r-heard-top">部署信息</div>
- <button @click="modifyl" class="r-but-top">修改</button>
+ <!-- <button @click="modifyl" class="r-but-top">修改</button> -->
</div>
<div class="r-body">
<div class="r-b-top">
@@ -945,25 +959,30 @@
size: "10",
};
var imgdadta = {
- deviceName: this.myDeviceNumber,
+ deviceNumber: this.myDeviceNumber,
};
getdataL(data).then((res) => {
var data = res.data.data.records[0];
var setimgl = null;
//插入图片api获取图片
-// this.stetDetails(data);
- getImg(imgdadta,'post').then((res) => {
- var imgdatas = res.data.data;
- // console.log(res);
- // imgdatas = [ //最多5张照片
- // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
- // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
- // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
+ // this.stetDetails(data);
+ getImg(imgdadta, "post").then((res) => {
+ // console.log(res.data.data.length != 0)
+ var imgdatas = [];
+ if (res.data.data.length != 0) {
+ imgdatas = res.data.data[0].paddress.split(",");
+ } else {
+ }
+ // console.log(imgdatas);
+ // imgdatas = [ //最多5张照片
+ // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
+ // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
+ // "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
- // "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
- // "https://resource-city.sensoro.com/6E0FB78DC42C35F3B8FF0F6A03472433",
- // ];
- setimgl = imgdatas.length == 0? ['no'] : imgdatas;
+ // "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
+ // "https://web.byisf.com/minio/jfpt/upload/depl/ad049799e7024c529b9c890d3ba434bc.JPEG",
+ // ];
+ setimgl = imgdatas.length == 0 ? ["no"] : imgdatas;
this.stetDetails(data, setimgl);
});
// console.log(data);
@@ -982,16 +1001,34 @@
o = this.a.onlineStatus,
s = this.a.state,
j = this.a.jtype;
- if (o == 0) {
- states = "掉线";
- } else if (o == 1) {
- states = "在线";
- } else if (s != "") {
+ // if (o == 0) {
+ // states = "掉线";
+ // } else if (o == 1) {
+ // states = "在线";
+ // } else if (s != "") {
+ // states = "故障";
+ // } else if (j != 2) {
+ // states = "预警";
+ // }
+ if (s != "") {
states = "故障";
- } else if (j != 2) {
- states = "预警";
+ } else {
+ if (j != 1) {
+ if (o == 1) {
+ states = "在线";
+ } else {
+ states = "掉线";
+ }
+ } else {
+ states = "预警";
+ }
}
- this.state = "无数据" && states;
+ // console.log(o, 1000);
+ // console.log(s, 1000);
+ // console.log(j, 1000);
+
+ // console.log(states, 1000);
+ this.state = states;
this.evaluate = "空气质量";
this.machineCode = "无数据" && this.a.deviceNumber;
@@ -1248,16 +1285,16 @@
border: 1px solid transparent;
}
.l-t-s-grey {
- background-color: rgb(187, 187, 187);
+ background-color: #CDCDCD;
}
.l-t-s-green {
- background-color: rgb(41, 202, 135);
+ background-color: #32C1A2;
}
.l-t-s-yewllo {
- background-color: rgb(240, 181, 20);
+ background-color: #F49966;
}
.l-t-s-red {
- background-color: rgba(247, 28, 28, 0.877);
+ background-color: #F35B5B;
}
}
}
diff --git a/src/views/policeTracking/policeTracking.vue b/src/views/policeTracking/policeTracking.vue
index ee81226..1d7858c 100644
--- a/src/views/policeTracking/policeTracking.vue
+++ b/src/views/policeTracking/policeTracking.vue
@@ -22,148 +22,149 @@
</div>
</div>
- <el-form
- :model="form"
- label-position="right"
- size="mini"
- class="policeForm"
- label-width="100px"
- style="
- background: #fff;
- margin-top: 20px;
- margin-left: 10px;
- margin-right: 10px;
- height: calc(100% - 40px);
- width: calc(100% - 20px);
- "
- >
- <el-row>
- <el-col span="12">
- <el-form-item label="报警人">
- <el-input
- disabled="true"
- v-model="form.galarmPeople"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="报警人电话">
- <el-input
- disabled="true"
- v-model="form.phoneNumber"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="负责人">
- <el-input
- disabled="true"
- v-model="form.oneContacts"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="负责人电话">
- <el-input
- disabled="true"
- v-model="form.onePhone"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="省份" class="cityClassParams">
- <avue-form :option="itemOption" v-model="form"></avue-form>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="事发地址">
- <el-input
- disabled="true"
- v-model="form.place"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="警情类型">
- <el-input
- disabled="true"
- v-model="form.waringType"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="设备编号">
- <el-input
- disabled="true"
- v-model="form.deviceNumber"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="接警人">
- <el-input
- disabled="true"
- v-model="form.alarmPeople"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="报警内容">
- <el-input
- disabled="true"
- v-model="form.content"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="报警时间">
- <el-input
- disabled="true"
- v-model="form.alarmTime"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="历史视频">
- <el-button type="primary" @click.stop="oldVideoSatart = true"
- >视频播放
- </el-button>
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row>
- <el-col span="12">
- <el-form-item label="备注">
- <el-input
- disabled="true"
- v-model="form.bz"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
+ <el-card>
+ <el-form
+ :model="form"
+ label-position="right"
+ size="mini"
+ class="policeForm"
+ label-width="100px"
+ style="
+ background: #fff;
+ margin-top: 20px;
+ margin-left: 10px;
+ margin-right: 10px;
+ height: calc(100% - 40px);
+ width: calc(100% - 20px);
+ "
+ >
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="报警人">
+ <el-input
+ disabled="true"
+ v-model="form.galarmPeople"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="报警人电话">
+ <el-input
+ disabled="true"
+ v-model="form.phoneNumber"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="负责人">
+ <el-input
+ disabled="true"
+ v-model="form.oneContacts"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="负责人电话">
+ <el-input
+ disabled="true"
+ v-model="form.onePhone"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="省份" class="cityClassParams">
+ <avue-form :option="itemOption" v-model="form"></avue-form>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="事发地址">
+ <el-input
+ disabled="true"
+ v-model="form.place"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="警情类型">
+ <el-input
+ disabled="true"
+ v-model="form.waringType"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="设备编号">
+ <el-input
+ disabled="true"
+ v-model="form.deviceNumber"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="接警人">
+ <el-input
+ disabled="true"
+ v-model="form.alarmPeople"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="报警内容">
+ <el-input
+ disabled="true"
+ v-model="form.content"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="报警时间">
+ <el-input
+ disabled="true"
+ v-model="form.alarmTime"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="历史视频">
+ <el-button type="primary" @click.stop="oldOpenVideo"
+ >视频播放
+ </el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="备注">
+ <el-input
+ disabled="true"
+ v-model="form.bz"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-card>
<div
v-if="form.jtype != 2"
@@ -185,7 +186,9 @@
<i class="el-icon-document avue-group__icon"></i>
<h1 class="avue-group__title">人员信息</h1>
<el-button
- @click="onSubmit('通知' + ensureNames, 1), (flag = false)"
+ @click="
+ onSubmit('通知' + ensureNames, 1, ensureId), (flag = false)
+ "
size="small"
style="position: absolute; right: 0"
:disabled="!flag"
@@ -329,147 +332,141 @@
</div>
</div>
- <el-form
- :model="security"
- label-position="right"
- size="mini"
- label-width="100px"
- style="
- background: #fff;
- margin-top: 20px;
- margin-left: 10px;
- margin-right: 10px;
- height: calc(100% - 40px);
- width: calc(100% - 20px);
- "
- >
- <el-row>
- <el-col span="12">
- <el-form-item label="人员编号">
- <el-input
- disabled="true"
- v-model="security.snumber"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col span="12">
- <el-form-item label="人员名称">
- <el-input
- disabled="true"
- v-model="security.sname"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col span="12">
- <el-form-item label="联系电话">
- <el-input
- disabled="true"
- v-model="security.phone"
- autocomplete="off"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
-
- <el-row :gutter="20">
- <el-col :span="16">
- <div class="grid-content bg-purple"></div>
- </el-col>
- <el-col :span="8">
- <div class="grid-content bg-purple"></div>
- </el-col>
- </el-row>
-
- <div class="demo-image__placeholder">
- <div
- role="tab"
- aria-expanded="true"
- aria-controls="el-collapse-content-823"
- aria-describedby="el-collapse-content-823"
+ <el-card>
+ <el-form
+ :model="security"
+ label-position="right"
+ size="mini"
+ label-width="100px"
+ style="
+ background: #fff;
+ margin-top: 20px;
+ margin-left: 10px;
+ margin-right: 10px;
+ height: calc(100% - 40px);
+ width: calc(100% - 20px);
+ "
>
- <div
- role="button"
- tabindex="0"
- class="el-collapse-item__header focusing is-active"
- >
- <div class="avue-group__header avue-group">
- <i class="el-icon-s-order avue-group__icon"></i>
- <h1 class="avue-group__title">警情反馈</h1>
- </div>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="人员编号">
+ <el-input
+ disabled="true"
+ v-model="security.snumber"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col span="12">
+ <el-form-item label="人员名称">
+ <el-input
+ disabled="true"
+ v-model="security.sname"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col span="12">
+ <el-form-item label="联系电话">
+ <el-input
+ disabled="true"
+ v-model="security.phone"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-s-order avue-group__icon"></i>
+ <h1 class="avue-group__title">警情反馈</h1>
</div>
</div>
+ </div>
+
+ <el-card>
<el-input
disabled="true"
type="textarea"
v-model="security.describe"
autocomplete="off"
></el-input>
+ </el-card>
- <div class="block">
- <div
- style="margin-top: 20px"
- role="tab"
- aria-expanded="true"
- aria-controls="el-collapse-content-823"
- aria-describedby="el-collapse-content-823"
- >
- <div
- role="button"
- tabindex="0"
- class="el-collapse-item__header focusing is-active"
- >
- <div class="avue-group__header avue-group">
- <i class="el-icon-camera-solid avue-group__icon"></i>
- <h1 class="avue-group__title">现场图片</h1>
- </div>
- </div>
- </div>
- <el-card class="scene-image-box">
- <el-image
- v-for="(item, index) in imgSrc"
- :key="index"
- :src="item"
- :preview-src-list="srcList"
- v-show="imgSrc.length > 0"
- ></el-image>
- <span v-show="imgSrc.length == 0">暂无现场图片</span>
- </el-card>
- </div>
- <div class="block">
- <div
- style="margin-top: 20px"
- role="tab"
- aria-expanded="true"
- aria-controls="el-collapse-content-823"
- aria-describedby="el-collapse-content-823"
- >
- <div
- role="button"
- tabindex="0"
- class="el-collapse-item__header focusing is-active"
- >
- <div class="avue-group__header avue-group">
- <i class="el-icon-video-camera-solid avue-group__icon"></i>
- <h1 class="avue-group__title">现场视频</h1>
- </div>
- </div>
- </div>
- <div>
- <video
- :src="feedbackVideo"
- style="width: 100%; height: 100%; object-fit: fill"
- controls
- v-show="feedbackVideo != ''"
- ></video>
- <span v-show="feedbackVideo == ''">暂无现场视频</span>
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-camera-solid avue-group__icon"></i>
+ <h1 class="avue-group__title">现场图片</h1>
</div>
</div>
</div>
+
+ <el-card class="scene-image-box">
+ <el-image
+ v-for="(item, index) in imgSrc"
+ :key="index"
+ :src="item"
+ :preview-src-list="srcList"
+ v-show="imgSrc.length > 0"
+ ></el-image>
+ <span v-show="imgSrc.length == 0">暂无现场图片</span>
+ </el-card>
+
+ <div
+ style="margin-top: 20px"
+ role="tab"
+ aria-expanded="true"
+ aria-controls="el-collapse-content-823"
+ aria-describedby="el-collapse-content-823"
+ >
+ <div
+ role="button"
+ tabindex="0"
+ class="el-collapse-item__header focusing is-active"
+ >
+ <div class="avue-group__header avue-group">
+ <i class="el-icon-video-camera-solid avue-group__icon"></i>
+ <h1 class="avue-group__title">现场视频</h1>
+ </div>
+ </div>
+ </div>
+
+ <el-card>
+ <video
+ :src="feedbackVideo"
+ style="width: 100%; height: 100%; object-fit: fill"
+ controls
+ v-show="feedbackVideo != ''"
+ ></video>
+ <span v-show="feedbackVideo == ''">暂无现场视频</span>
+ </el-card>
<el-row :align="center" style="margin-top: 40px">
<el-col :offset="10">
@@ -502,7 +499,6 @@
:visible.sync="oldVideoSatart"
:close-on-press-escape="false"
:close-on-click-modal="false"
- @opened="oldOpenVideo"
@close="vaddress = ''"
append-to-body
>
@@ -590,6 +586,7 @@
tableData: [],
multipleSelection: [],
ensureNames: "",
+ ensureId: "",
baseUrl: "",
oldVideoSatart: false,
vaddress: null,
@@ -621,7 +618,10 @@
arr.push(item);
}
});
- this.toggleSelection(arr);
+
+ if (this.form.jtype != 2) {
+ this.toggleSelection(arr);
+ }
},
methods: {
getDate() {
@@ -732,23 +732,27 @@
currenS,
};
},
- onSubmit(zc, jtype) {
+ onSubmit(zc, jtype, ensureId) {
var that = this;
+ var subData = {
+ jid: this.form.id,
+ jtype: jtype,
+ rid: this.form.alarmId,
+ bz: this.form.bz,
+ snumber: this.form.alarmId,
+ sname: this.form.alarmPeople,
+ zc: zc,
+ zctime: this.getDate().current,
+ };
+ if (ensureId && ensureId != "") {
+ subData.securityArr = ensureId;
+ }
axios
.post(
"/api/blade-jfpts/alarm/alarm/updateJtype",
{},
{
- params: {
- jid: this.form.id,
- jtype: jtype,
- rid: this.form.alarmId,
- bz: this.form.bz,
- snumber: this.form.alarmId,
- sname: this.form.alarmPeople,
- zc: zc,
- zctime: this.getDate().current,
- },
+ params: subData,
}
)
.then(function (res) {
@@ -816,8 +820,12 @@
},
handleSelectionChange(val) {
+ console.log(val, 9898);
this.ensureNames = "";
+ this.ensureId = "";
val.forEach((item, index) => {
+ this.ensureId += item.id;
+ this.ensureId += ",";
if (index == val.length - 1) {
this.ensureNames += item.name;
this.ensureNames += "。";
@@ -848,7 +856,8 @@
jid: this.form.id,
},
}).then((resdata) => {
- this.audios = resdata.data.data.records;
+ if (resdata.data.data.records.length > 0)
+ this.audios = resdata.data.data.records;
});
},
@@ -860,22 +869,28 @@
jid: this.form.id,
},
}).then((resdata) => {
- console.log(resdata.data.data[0], 56569);
- this.security = resdata.data.data[0].List[0];
- this.imgSrc = resdata.data.data[0].tp;
- this.srcList = resdata.data.data[0].tp;
- this.feedbackVideo = resdata.data.data[0].sp[0];
+ if (resdata.data.data.length > 0) {
+ if (resdata.data.data[0].List.length > 0)
+ this.security = resdata.data.data[0].List[0];
+ if (resdata.data.data[0].tp.length > 0) {
+ this.imgSrc = resdata.data.data[0].tp;
+ this.srcList = resdata.data.data[0].tp;
+ }
+ if (resdata.data.data[0].sp.length > 0) {
+ this.feedbackVideo = resdata.data.data[0].sp[0];
+ }
+ }
});
},
oldOpenVideo() {
getclient(this.form.id).then((res) => {
if (res.data.data.vaddress != "") {
- this.vaddress = res.data.data.vaddress;
+ this.vaddress = res.data.data.vaddress;
}
+ this.oldVideoSatart = true;
});
- }
-
+ },
},
};
</script>
diff --git a/src/views/supervisoryConsole/card.vue b/src/views/supervisoryConsole/card.vue
index 39388a6..7c9f4bb 100644
--- a/src/views/supervisoryConsole/card.vue
+++ b/src/views/supervisoryConsole/card.vue
@@ -52,7 +52,7 @@
"
>
<div>{{ item.deviceName }}</div>
- <div style="width: 80%;">{{ item.street }}</div>
+ <div style="width: 80%">{{ item.street }}</div>
<div class="cet">
{{
@@ -129,7 +129,7 @@
this.loading = false;
}, 2000);
},
-
+
inputSearchBtn() {
this.getEquipmentLists();
},
@@ -161,11 +161,7 @@
});
} else if (this.radio == "仅显示设备掉线") {
res.data.data.forEach((item) => {
- if (item.jtype == 1 && item.onlineStatus != 1) {
- f.push(item);
- } else {
- if (item.onlineStatus != 1) b.push(item);
- }
+ if (item.onlineStatus != 1) b.push(item);
});
} else if (this.radio == "仅显示设备故障") {
res.data.data.forEach((item) => {
diff --git a/src/views/supervisoryConsole/data.vue b/src/views/supervisoryConsole/data.vue
index 593130d..2e43caa 100644
--- a/src/views/supervisoryConsole/data.vue
+++ b/src/views/supervisoryConsole/data.vue
@@ -78,7 +78,7 @@
class="info-content-table"
:data="tableData"
stripe
- style="width: 100%; margin: 10px"
+ style="width: 100%; margin: 0 10px"
max-height="380px"
:resizable="false"
>
diff --git a/vue.config.js b/vue.config.js
index 906b7b2..35901e5 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -7,42 +7,44 @@
* @LastEditTime: 2021-01-29 15:58:39
*/
module.exports = {
- //路径前缀
- publicPath: "./",
- lintOnSave: true,
- productionSourceMap: false,
- chainWebpack: (config) => {
- //忽略的打包文件
- config.externals({
- 'vue': 'Vue',
- 'vue-router': 'VueRouter',
- 'vuex': 'Vuex',
- 'axios': 'axios',
- 'element-ui': 'ELEMENT',
- });
- const entry = config.entry('app');
- entry.add('babel-polyfill').end();
- entry.add('classlist-polyfill').end();
- entry.add('@/mock').end();
- },
- css: {
- extract: { ignoreOrder: true }
- },
- //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
- devServer: {
- port: 1888,
- proxy: {
- '/api': {
- //本地服务接口地址
- // target: 'http://localhost:82/',
- target: 'https://web.byisf.com/api/',
- //远程演示服务地址,可用于直接启动项目
- //target: 'https://saber.bladex.vip/api',
- ws: true,
- pathRewrite: {
- '^/api': '/'
- }
- }
- }
+ //路径前缀
+ publicPath: "./",
+ lintOnSave: true,
+ productionSourceMap: false,
+ chainWebpack: (config) => {
+ //忽略的打包文件
+ config.externals({
+ 'vue': 'Vue',
+ 'vue-router': 'VueRouter',
+ 'vuex': 'Vuex',
+ 'axios': 'axios',
+ 'element-ui': 'ELEMENT',
+ });
+ const entry = config.entry('app');
+ entry.add('babel-polyfill').end();
+ entry.add('classlist-polyfill').end();
+ entry.add('@/mock').end();
+ },
+ css: {
+ extract: {
+ ignoreOrder: true
}
+ },
+ //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
+ devServer: {
+ port: 1888,
+ proxy: {
+ '/api': {
+ //本地服务接口地址
+ // target: 'http://192.168.0.109:82/',
+ target: 'https://web.byisf.com/api/',
+ //远程演示服务地址,可用于直接启动项目
+ //target: 'https://saber.bladex.vip/api',
+ ws: true,
+ pathRewrite: {
+ '^/api': '/'
+ }
+ }
+ }
+ }
};
--
Gitblit v1.9.3