Commit b87f0c41 authored by 王晓倩's avatar 王晓倩

Merge remote-tracking branch 'origin/master'

parents eda77637 f6bce482
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
"quill": "1.3.7", "quill": "1.3.7",
"screenfull": "5.0.2", "screenfull": "5.0.2",
"sortablejs": "1.10.2", "sortablejs": "1.10.2",
"velocity-animate": "^1.5.2",
"vue": "2.6.12", "vue": "2.6.12",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
......
import request from '@/utils/request' /*
* @Author: your name
* @Date: 2022-02-26 16:01:37
* @LastEditTime: 2022-02-26 21:11:12
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /gassafety-progress/gassafetyprogress-web/src/api/detector/detectorInfo.js
*/
import request from "@/utils/request";
// 查询探测器列表 // 查询探测器列表
export function listDetectorInfo(query) { export function listDetectorInfo(query) {
return request({ return request({
url: '/detector/detectorInfo/list', url: "/detector/detectorInfo/list",
method: 'get', method: "get",
params: query params: {
}) pageNum: 1,
pageSize: 20,
...query,
},
});
} }
// 探测器列表 // 探测器列表
export function detectorInfoList(query) { export function detectorInfoList(query) {
return request({ return request({
url: '/detector/detectorInfo/detectorInfoList', url: "/detector/detectorInfo/detectorInfoList",
method: 'get', method: "get",
params: query
}) params: query,
});
} }
// 新增探测器 // 新增探测器
export function addDetectorInfo(data) { export function addDetectorInfo(data) {
return request({ return request({
url: '/detector/detectorInfo', url: "/detector/detectorInfo",
method: 'post', method: "post",
data: data data: data,
}) });
} }
// 修改探测器 // 修改探测器
export function updateDetectorInfo(data) { export function updateDetectorInfo(data) {
return request({ return request({
url: '/detector/detectorInfo', url: "/detector/detectorInfo",
method: 'put', method: "put",
data: data data: data,
}) });
} }
// 删除探测器 // 删除探测器
export function delDetectorInfo(detectorId) { export function delDetectorInfo(detectorId) {
return request({ return request({
url: '/detector/detectorInfo/' + detectorId, url: "/detector/detectorInfo/" + detectorId,
method: 'delete' method: "delete",
}) });
} }
// 导出探测器 // 导出探测器
export function exportDetectorInfo(query) { export function exportDetectorInfo(query) {
return request({ return request({
url: '/detector/detectorInfo/export', url: "/detector/detectorInfo/export",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 右上角的综合列表 // 右上角的综合列表
export function alarmData(query) { export function alarmData(query) {
return request({ return request({
url: '/detector/detectorInfo/getAlarmData', url: "/detector/detectorInfo/getAlarmData",
method: 'get', method: "get",
params: query params: query,
}) });
} }
...@@ -114,7 +114,7 @@ export default { ...@@ -114,7 +114,7 @@ export default {
this.pageCurrent = val; this.pageCurrent = val;
}, },
close() { close() {
this.$parent.centerShow(false); this.$parent.myCenterShow(false);
}, },
}, },
}; };
......
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2022-01-26 20:07:52 * @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-02-26 14:16:23 * @LastEditTime: 2022-02-26 23:06:21
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<div class="group"> <div class="group">
<div class="left">设备类型:</div> <div class="left">设备类型:</div>
<div class="right zzz"> <div class="right zzz">
{{ deviceType[deviceData.type] }} {{ deviceType[deviceData.iconType] }}
</div> </div>
</div> </div>
<div class="group"> <div class="group">
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
> >
{{ deviceData.stationAddr || "-" }} {{ deviceData.stationAddr || "-" }}
</div> </div>
<div v-else>-</div>
</div> </div>
</div> </div>
......
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2022-01-27 14:25:45 * @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-02-26 14:16:16 * @LastEditTime: 2022-02-26 21:27:45
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /hello-world/src/views/components/User.vue
* @FilePath: /test/hello-world/src/views/components/deviceA.vue
--> -->
<template> <template>
<div class="user-wrapper"> <div class="devicea-wrapper">
<div class="title">{{ deviceData.usrName }}</div> <div class="title">
{{ deviceData.nickName }}
</div>
<div class="close" @click="close"> <div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" /> <img src="@/assets/mapImages/closeBtn.png" alt="" />
</div> </div>
<div class="group flex first"> <div class="top flex">
<div class="left">用户姓名:</div> <div class="group">
<div :title="deviceData.usrName" class="right zzz"> <div class="left">联系人:</div>
{{ deviceData.usrName }} <div class="right zzz">{{ deviceData.nickName }}</div>
</div>
<div class="group">
<div class="left">联系电话:</div>
<div class="right zzz">
{{ deviceData.phone }}
</div>
</div>
<div class="group">
<div class="left">联系地址:</div>
<div :title="deviceData.address" class="right last zzz">
{{ deviceData.address || "-" }}
</div>
</div> </div>
</div> </div>
<div class="group flex"> <div class="foot">
<div class="left">联系方式:</div> <div class="thead flex">
<div v-unValue class="right">{{ deviceData.phone }}</div> <div class="first">设备类型</div>
<div>设备数量</div>
<div>在线设备</div>
<div>离线设备</div>
<div>历史报警</div>
<div>已处理报警</div>
<div class="last">报警中</div>
</div>
<div class="tbody flex">
<div class="first zzz">{{ 123 }}</div>
<div class="">{{ deviceData.detectorCount }}</div>
<div v-unValue class="">
{{ deviceData.onLineNum }}
</div>
<div v-unValue class="">
{{ deviceData.offLineNum }}
</div>
<div v-unValue class="">
{{ deviceData.historyAlarmNum }}
</div>
<div v-unValue class="">
{{ deviceData.cancelAlarmNum }}
</div>
<div v-unValue class="last zzz">
{{ deviceData.processingAlarmNum }}
</div>
</div>
</div> </div>
<div class="group flex"> <div class="btn">
<div class="left">用户地址:</div> <div @click="btnClick">感知设备</div>
<div :title="deviceData.address" class="right zzz">
{{ deviceData.address }}
</div>
</div> </div>
<!-- <div class="group flex">
<div class="left">所属公司:</div>
<div class="right">{{ companyType[deviceData.companyType] }}</div>
</div> -->
</div> </div>
</template> </template>
<script> <script>
import { companyType } from "@/utils/mapClass/config.js"; import { companyType, deviceType } from "@/utils/mapClass/config.js";
export default { export default {
data() { data() {
return { return {
companyType, companyType,
deviceType,
}; };
}, },
computed: { computed: {
...@@ -64,22 +98,29 @@ export default { ...@@ -64,22 +98,29 @@ export default {
this.companyType[item.conpanyId] = item.companyName; this.companyType[item.conpanyId] = item.companyName;
}); });
} }
console.log(this.deviceData);
}, },
methods: { methods: {
close() { close() {
this.mapClass.infowindowClose(); this.mapClass.infowindowClose();
}, },
btnClick() {
// this.vueRoot.centerDataFunc(this.deviceData.pressureFlows);
this.vueRoot.getDetectorInfoList({ userId: this.deviceData.userId },this.deviceData.nickName);
},
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.user-wrapper { .devicea-wrapper {
background-color: rgba(9, 18, 32, 0.6); background-color: rgba(9, 18, 32, 0.6);
padding: 10px; padding: 10px;
position: relative; position: relative;
width: 300px; width: 700px;
.title { .title {
// padding-top: 10px;
// padding-left: 10px;
font-size: 14px; font-size: 14px;
line-height: 14px; line-height: 14px;
color: #ffffff; color: #ffffff;
...@@ -90,29 +131,95 @@ export default { ...@@ -90,29 +131,95 @@ export default {
top: 5px; top: 5px;
cursor: pointer; cursor: pointer;
} }
.group {
.top {
margin-top: 10px;
margin-bottom: 10px;
border: 1px solid #cccccc; border: 1px solid #cccccc;
border-top: none; box-sizing: border-box;
height: 28px; .group {
height: 30px;
flex: 1;
display: flex;
justify-content: space-between;
box-sizing: border-box;
div {
flex: 1;
box-sizing: border-box;
border-right: 1px solid #cccccc;
text-align: center;
font-size: 14px;
color: #ffffff;
line-height: 30px;
padding: 0 5px;
&.last {
border-right: none;
}
}
.left {
text-align: right;
background-color: rgba(255, 255, 255, 0.1);
}
}
}
.middle {
width: 100%;
padding: 5px;
border: 1px solid #ffffff;
box-sizing: border-box;
font-size: 14px;
color: #ffffff;
text-indent: 2em;
margin-bottom: 10px;
}
.foot {
font-size: 14px; font-size: 14px;
line-height: 28px;
color: #ffffff; color: #ffffff;
&.first { .thead,
border-top: 1px solid #cccccc; .tbody {
margin-top: 10px; border: 1px solid #cccccc;
div {
flex: 1;
text-align: left;
border-right: 1px solid #cccccc;
box-sizing: border-box;
padding: 0 5px;
}
.first {
flex: 2;
}
.last {
border-right: none;
}
} }
div { .tbody {
flex: 1; border-top: none;
} }
.left { .thead {
border-right: 1px solid #cccccc; div {
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1);
text-align: right; }
} }
.right { }
.btn {
position: relative;
margin-top: 10px;
text-align: right;
div {
font-size: 14px;
color: #ffffff;
padding: 2px 4px;
box-sizing: border-box; box-sizing: border-box;
text-align: left; display: inline-block;
padding: 0 1em; cursor: pointer;
border: 1px solid #cccccc;
background-color: #1890ff;
&:hover {
// background: rgba(9, 18, 32, 0.6);
background-color: #18baff;
}
} }
} }
.flex { .flex {
......
<template> <template>
<transition <transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:before-leave="beforeLeave"
v-on:leave="leave"
v-bind:css="false"
> >
<div v-show="show" class="wrapper center"> <div v-show="show" class="wrapper myCenter">
<div class="left"> <div class="left">
<div class="title-wrapper"> <div class="title-wrapper">
<div class="title">{{title}}报警器列表</div> <div class="title">{{ title }}报警器列表</div>
<div class="close" @click="close"> <div class="close" @click="close">
<img src="@/assets/images/closeBtn.png" alt="" /> <img src="@/assets/mapImages/closeBtn.png" alt="" />
</div> </div>
</div>detectorInfo. </div>
<div class="bottom right-bottom-data-left"> <div class="bottom right-bottom-data-left">
<el-table <el-table
size="mini" size="mini"
:data="tableData" :data="tableData"
style="width: 100%" style="width: 100%"
:height="tableHeight"
class="el-bottom" class="el-bottom"
:key="Math.random()" :key="Math.random()"
> >
<!-- :height="tableHeight" --> <!-- :height="tableHeight" -->
<el-table-column prop="detectorCode" label="设备编号" width="180"> <el-table-column prop="detectorCode" label="设备编号" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div :title="scope.row.detectorCode" class="ddd" v-un-content> <div :title="scope.row.detectorCode" class="ddd" v-unValue>
{{ scope.row.detectorCode }} {{ scope.row.detectorCode }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="detectorName" label="设备名称" width="100"> <el-table-column prop="detectorName" label="设备名称" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div :title="scope.row.detectorName" class="ddd" v-un-content> <div :title="scope.row.detectorName" class="ddd" v-unValue>
{{ scope.row.detectorName }} {{ scope.row.detectorName }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="medium" label="监测介质" width=""> <el-table-column prop="medium" label="监测介质" width="">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-un-content>{{ scope.row.medium }}</div> <div v-unValue>{{ scope.row.medium }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="linkman" label="联系人" width="100"> <el-table-column prop="linkman" label="联系人" width="100">
...@@ -51,16 +46,7 @@ ...@@ -51,16 +46,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="alarmTime" label="报警时间" width="200"> <el-table-column prop="alarmTime" label="报警时间" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-un-content>{{ scope.row.alarmTime }}</div> <div v-unValue>{{ scope.row.alarmTime }}</div>
</template>
</el-table-column>
<el-table-column prop="alarmValue" label="定位" width="50">
<template slot-scope="scope">
<div
@click="createDetector(scope)"
class="iconfont icon-bjqdw"
></div>
<!-- {{ scope.row.userId }} -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -71,7 +57,7 @@ ...@@ -71,7 +57,7 @@
layout="prev, pager, next, jumper" layout="prev, pager, next, jumper"
:total="total" :total="total"
:hide-on-single-page="total <= pageSize" :hide-on-single-page="total <= pageSize"
:key="total+''+pageSize" :key="total + '' + pageSize"
> >
</el-pagination> </el-pagination>
</div> </div>
...@@ -82,13 +68,14 @@ ...@@ -82,13 +68,14 @@
</template> </template>
<script> <script>
import Velocity from "velocity-animate"; // import Velocity from "velocity-animate";
import { listDeviceAlarm } from "@/api/dataMonitoring/deviceAlarm"; // import { listDeviceAlarm } from "@/api/dataMonitoring/deviceAlarm";
export default { export default {
props: { props: {
detcetorList: { detcetorList: {
type: Array, type: Array,
default:()=>[],
}, },
show: { show: {
type: Boolean, type: Boolean,
...@@ -109,9 +96,7 @@ export default { ...@@ -109,9 +96,7 @@ export default {
data() { data() {
return { return {
// 动画效果的切换 // 动画效果的切换
animateChange: 0, // tableHeight: 600,
fade: "fade",
tableHeight: 600,
tableData: [ tableData: [
// { // {
// deviceCode: "2016-05-05", // deviceCode: "2016-05-05",
...@@ -121,8 +106,7 @@ export default { ...@@ -121,8 +106,7 @@ export default {
// address: "上海市普陀区金沙江路", // address: "上海市普陀区金沙江路",
// }, // },
], ],
moveX: 0,
moveY: 0,
}; };
}, },
created() { created() {
...@@ -136,6 +120,7 @@ export default { ...@@ -136,6 +120,7 @@ export default {
// if (bol) { // if (bol) {
console.log(newData); console.log(newData);
this.tableData = [...newData]; this.tableData = [...newData];
// } // }
}, },
}, },
...@@ -145,115 +130,18 @@ export default { ...@@ -145,115 +130,18 @@ export default {
console.log(val); console.log(val);
}, },
handleCurrentChangvale(val) { handleCurrentChangvale(val) {
this.$parent.getDetectorInfoList({ this.$parent.getDetectorInfoList(
userId: this.userId, {
pageNum: val, userId: this.userId,
pageSize: this.pageSize, pageNum: val,
},this.title); pageSize: this.pageSize,
},
this.title
);
}, },
close() { close() {
this.fade = "fade"; // this.fade = "fade";
this.$parent.centerShow = false; this.$parent.centerShow = false;
this.$parent.circleShow = false;
},
// 点击创建点并且定位过去
createDetector(data) {
// 如果有经纬度才能走通,没有套弹框提示
if (data.row.latitude && data.row.longitude) {
this.fade = "scale";
this.$parent.centerShow = false;
this.$parent.circleShow = true;
this.$parent.gaoMap.addMarker("detector_only", data.row);
} else {
this.msgError("数据不完善,无法定位");
}
},
beforeEnter: function (el) {
// 如果点的是关闭
if (this.fade == "fade") {
// 如果点的是定位
el.style.opacity = 0;
console.log(el);
} else {
el.style.transfrom = `translate(${this.moveX},${this.moveY})`;
el.style.transfrom = "scale(0,0)";
}
},
enter: function (el, done) {
if (this.fade == "fade") {
Velocity(
el,
{
opacity: 1,
translateX: "0px",
translateY: "0px",
scaleX: 1,
scaleY: 1,
// scaleX:1,
// scaleY:1
},
{ duration: 0, complete: done }
);
} else {
Velocity(
el,
{
translateX: "0px",
translateY: "0px",
scaleX: 1,
scaleY: 1,
},
{ duration: 300, complete: done }
);
}
},
beforeLeave(el) {
if (this.fade == "fade") {
el.style.opacity = 1;
} else {
el.style.transfrom = "translate(0px,0px)";
el.style.transfrom = "scale(1,1)";
}
},
leave: function (el, done) {
if (this.fade == "fade") {
Velocity(
el,
{
opacity: 0,
},
{ duration: 0, complete: done }
);
} else {
// 列表的位置参数
const { top, left, height, width } = el.getBoundingClientRect();
// 当列表缩下去的右下角的位置参数
const {
top: topC,
left: leftC,
height: heightC,
width: widthC,
} = this.$parent.$refs.circle.getBoundingClientRect();
const moveX = Math.abs(leftC - left) - width / 2 + heightC / 2 + "px";
const moveY = Math.abs(topC - top) - height / 2 + heightC / 2 + "px";
this.moveX = moveX;
this.moveY = moveY;
Velocity(
el,
{
translateX: moveX,
translateY: moveY,
scaleX: 0,
scaleY: 0,
},
{ duration: 300, complete: done }
);
}
}, },
}, },
}; };
......
...@@ -450,7 +450,7 @@ ...@@ -450,7 +450,7 @@
this.timerAni(); this.timerAni();
}, },
timerAni() { timerAni() {
console.log("zhix")
const selectWrap = this.$refs.table.$el.querySelector( const selectWrap = this.$refs.table.$el.querySelector(
".el-table__body-wrapper" ".el-table__body-wrapper"
); );
...@@ -685,43 +685,43 @@ ...@@ -685,43 +685,43 @@
}, },
] ]
}); });
myChart32.setOption({ // myChart32.setOption({
title: { // title: {
text: '设备数量:'+data.deviceNum, // text: '设备数量:'+data.deviceNum,
left: 'center', // left: 'center',
textStyle: { // textStyle: {
color: "#0ff" // color: "#0ff"
} // }
}, // },
tooltip: { // tooltip: {
trigger: 'item' // trigger: 'item'
}, // },
series: [ // series: [
{ // {
name: '设备概况', // name: '设备概况',
type: 'pie', // type: 'pie',
radius: ['50%', '70%'], // radius: ['50%', '70%'],
center: ['50%', '60%'], // center: ['50%', '60%'],
avoidLabelOverlap: false, // avoidLabelOverlap: false,
label: { // label: {
show: false, // show: false,
position: 'center' // position: 'center'
}, // },
emphasis: { // emphasis: {
label: { // label: {
show: true, // show: true,
fontSize: '40', // fontSize: '40',
fontWeight: 'bold' // fontWeight: 'bold'
} // }
}, // },
labelLine: { // labelLine: {
show: false // show: false
}, // },
data:data.divice, // data:data.divice,
color:["#188df0","#ffff00","#FF4040"] // color:["#188df0","#ffff00","#FF4040"]
} // }
] // ]
}); // });
} }
} }
} }
......
/* /*
* @Author: your name * @Author: your name
* @Date: 2022-02-25 17:07:40 * @Date: 2022-02-25 17:07:40
* @LastEditTime: 2022-02-25 17:15:54 * @LastEditTime: 2022-02-26 20:59:40
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /newDev/gassafety-progress/gassafetyprogress-web/src/directive/permission/hasValue.js * @FilePath: /newDev/gassafety-progress/gassafetyprogress-web/src/directive/permission/hasValue.js
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
export default { export default {
inserted(el, binding, vnode) { inserted(el, binding, vnode) {
console.log("el",el)
el.innerHTML = el.innerHTML.replace(/\s+/g, "") ? el.innerHTML : "-"; el.innerHTML = el.innerHTML.replace(/\s+/g, "") ? el.innerHTML : "-";
} }
}; };
/* /*
* @Author: your name * @Author: your name
* @Date: 2022-01-07 11:29:13 * @Date: 2022-01-07 11:29:13
* @LastEditTime: 2022-02-18 17:29:27 * @LastEditTime: 2022-02-26 20:59:19
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /gassafety-progress/gassafetyprogress-web/src/main.js * @FilePath: /gassafety-progress/gassafetyprogress-web/src/main.js
...@@ -85,7 +85,7 @@ Element.Dialog.props.closeOnPressEscape = false; ...@@ -85,7 +85,7 @@ Element.Dialog.props.closeOnPressEscape = false;
Vue.use(Element, { Vue.use(Element, {
size: Cookies.get("size") || "medium", // set element-ui default size size: Cookies.get("size") || "medium", // set element-ui default size
}); });
console.log(Element);
Vue.config.productionTip = false; Vue.config.productionTip = false;
......
/* /*
* @Author: your name * @Author: your name
* @Date: 2022-01-11 13:45:12 * @Date: 2022-01-11 13:45:12
* @LastEditTime: 2022-02-26 13:59:03 * @LastEditTime: 2022-02-26 23:40:59
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/utils/mapClass.js * @FilePath: /test/hello-world/src/utils/mapClass.js
...@@ -349,7 +349,6 @@ export class EditorMap { ...@@ -349,7 +349,6 @@ export class EditorMap {
// 地图上add管道 // 地图上add管道
addPipeLine(objData, component) { addPipeLine(objData, component) {
const { path, pipePressure, iconType } = objData; const { path, pipePressure, iconType } = objData;
console.log(path);
// 根据压力获取颜色 // 根据压力获取颜色
const color = pipeColor[pipePressure + 1]; const color = pipeColor[pipePressure + 1];
const pipe = this.createPipeLine({ const pipe = this.createPipeLine({
...@@ -361,7 +360,6 @@ export class EditorMap { ...@@ -361,7 +360,6 @@ export class EditorMap {
}); });
this.map.add(pipe); this.map.add(pipe);
console.log(pipe.getExtData());
// pipe.hide(); // pipe.hide();
if (!Array.isArray(this.pipeArr[iconType])) { if (!Array.isArray(this.pipeArr[iconType])) {
this.pipeArr[iconType] = []; this.pipeArr[iconType] = [];
...@@ -445,7 +443,7 @@ export class EditorMap { ...@@ -445,7 +443,7 @@ export class EditorMap {
this.infowindow.close(); this.infowindow.close();
} }
allilter(companyArr, typeArr) { allfilter(companyArr, typeArr) {
for (let pipeItem in this.pipeArr) { for (let pipeItem in this.pipeArr) {
this.pipeArr[pipeItem].forEach((pipe) => { this.pipeArr[pipeItem].forEach((pipe) => {
const data = pipe.getExtData(); const data = pipe.getExtData();
...@@ -463,7 +461,8 @@ export class EditorMap { ...@@ -463,7 +461,8 @@ export class EditorMap {
// 燃气没有公司,所以没有device.companyType不收到公司的控制 // 燃气没有公司,所以没有device.companyType不收到公司的控制
const companyHas = companyArr.indexOf(data.companyType + "") >= 0; const companyHas = companyArr.indexOf(data.companyType + "") >= 0;
// 设备存在 // 设备存在
const deviceHas = typeArr.indexOf(data.iconType + "") >= 0; const deviceHas = typeArr.indexOf(+data.iconType ) >= 0;
console.log(deviceHas)
// 必须设备存在数组里,才会显示设备 !data.companyType代表用户不受公司制约 // 必须设备存在数组里,才会显示设备 !data.companyType代表用户不受公司制约
if (deviceHas && (companyHas || !data.companyType)) { if (deviceHas && (companyHas || !data.companyType)) {
device.show(); device.show();
......
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2022-01-11 13:44:17 * @Date: 2022-01-11 13:44:17
* @LastEditTime: 2022-02-26 10:08:49 * @LastEditTime: 2022-02-26 23:40:26
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/Home.vue * @FilePath: /test/hello-world/src/views/Home.vue
...@@ -11,6 +11,15 @@ ...@@ -11,6 +11,15 @@
<div class="goSystem" @click="$router.push('/index')">进入管理系统</div> <div class="goSystem" @click="$router.push('/index')">进入管理系统</div>
<div id="map"></div> <div id="map"></div>
<Center :show="show" :centerData="centerData" /> <Center :show="show" :centerData="centerData" />
<UserCenter
:title="centerTitle"
:show="centerShow"
ref="userCenter"
:detcetorList="detcetorList"
:userId="centerUserId"
:total="centerTotal"
:pageSize="20"
/>
<PipeColor /> <PipeColor />
<!-- 底部按钮 --> <!-- 底部按钮 -->
<div class="home-div"> <div class="home-div">
...@@ -36,12 +45,21 @@ ...@@ -36,12 +45,21 @@
</div> </div>
<!-- 设备按钮 --> <!-- 设备按钮 -->
<div class="typelist-div"> <div class="typelist-div">
<div class="list" v-for="(item,index) in arr" :key="index" :class="item.ischeck==true?'active':''" @click="sel1(index,item)"> <div
<img :src="item.imgurl" style="margin-top: 2px;float: left;margin-right: 3px;" /> {{item.name}} class="list"
</div> v-for="(item, index) in arr"
:key="index"
:class="selarr1.indexOf(item.val) >= 0 ? 'active' : ''"
@click="sel1(index, item)"
>
<img
:src="item.imgurl"
style="margin-top: 2px; float: left; margin-right: 3px"
/>
{{ item.name }}
</div> </div>
</div>
<!-- 弹框 --> <!-- 弹框 -->
<div <div
...@@ -104,10 +122,10 @@ ...@@ -104,10 +122,10 @@
z-index: 999; z-index: 999;
width: 200px; width: 200px;
height: 50px; height: 50px;
color: #339CC9; color: #339cc9;
" "
> >
<div style="height: 20px; width: 100%; float: right; font-size: 14px;"> <div style="height: 20px; width: 100%; float: right; font-size: 14px">
{{ nowDate }}&nbsp;{{ nowtime }}&nbsp;{{ nowweek }} {{ nowDate }}&nbsp;{{ nowtime }}&nbsp;{{ nowweek }}
</div> </div>
</div> </div>
...@@ -118,6 +136,8 @@ ...@@ -118,6 +136,8 @@
// @ is an alias to /src // @ is an alias to /src
import { EditorMap } from "@/utils/mapClass/map"; import { EditorMap } from "@/utils/mapClass/map";
import { mapGetters, mapActions } from "vuex"; import { mapGetters, mapActions } from "vuex";
import { listDetectorInfo } from "@/api/detector/detectorInfo";
import { detectorUserList } from "@/api/detector/detectorUser";
import { import {
pipeData, pipeData,
tiaoyaxiang, tiaoyaxiang,
...@@ -139,6 +159,7 @@ import VideoView from "@/components/bigWindow/VideoView.vue"; ...@@ -139,6 +159,7 @@ import VideoView from "@/components/bigWindow/VideoView.vue";
import DeviceA from "@/components/bigWindow/DeviceA.vue"; import DeviceA from "@/components/bigWindow/DeviceA.vue";
import User from "@/components/bigWindow/User.vue"; import User from "@/components/bigWindow/User.vue";
import Center from "@/components/bigWindow/Center.vue"; import Center from "@/components/bigWindow/Center.vue";
import UserCenter from "@/components/bigWindow/UserCenter.vue";
import PipeColor from "@/components/bigWindow/PipeColor.vue"; import PipeColor from "@/components/bigWindow/PipeColor.vue";
// import markerInfoWindow from './components/markerInfoWindow.vue' // import markerInfoWindow from './components/markerInfoWindow.vue'
...@@ -150,6 +171,7 @@ export default { ...@@ -150,6 +171,7 @@ export default {
leftBar, leftBar,
rightBar, rightBar,
Center, Center,
UserCenter,
PipeColor, PipeColor,
}, },
data() { data() {
...@@ -179,41 +201,52 @@ export default { ...@@ -179,41 +201,52 @@ export default {
name: "中燃韵科", name: "中燃韵科",
}, },
], ],
arr:[ // 2:"调压箱",
// 3:"阀门",
// 4:"厂站",
// 5:"监控",
// 6:"用户",
arr: [
{ {
val:1, val: 2,
ischeck:false, ischeck: false,
imgurl: require('@/assets/image/tyxsub.svg'), imgurl: require("@/assets/image/tyxsub.svg"),
name: "调压箱" name: "调压箱",
}, },
{ {
val:2, val: 3,
ischeck:false, ischeck: false,
imgurl: require('@/assets/image/fmjsub.svg'), imgurl: require("@/assets/image/fmjsub.svg"),
name: "阀门井" name: "阀门井",
}, },
{ {
val:3, val: 4,
ischeck:false, ischeck: false,
imgurl: require('@/assets/image/czsub.svg'), imgurl: require("@/assets/image/czsub.svg"),
name: "场 站" name: "厂 站",
}, },
{ {
val:4, val: 6,
ischeck:false, ischeck: false,
imgurl: require('@/assets/image/usersub.svg'), imgurl: require("@/assets/image/usersub.svg"),
name: "用 户" name: "用 户",
}, },
{ {
val:5, val: 5,
ischeck:false, ischeck: false,
imgurl: require('@/assets/image/jksub.svg'), imgurl: require("@/assets/image/jksub.svg"),
name: "监 控" name: "监 控",
} },
], ],
selarr1:[], selarr1: [],
}; // 用户的center数据
}, detcetorList: [],
centerUserId: null,
centerTotal: null,
centerShow: false,
centerTitle: "",
};
},
computed: { computed: {
...mapGetters(["company", "systemSetting"]), ...mapGetters(["company", "systemSetting"]),
...@@ -224,8 +257,8 @@ export default { ...@@ -224,8 +257,8 @@ export default {
watch: { watch: {
selarr(newValue) { selarr(newValue) {
if (newValue.length == this.companyLength) { if (newValue.length == this.companyLength) {
this.$refs.mychild.choice(0); // this.$refs.mychild.choice(0);
this.$refs.mychild2.choice(0); // this.$refs.mychild2.choice(0);
} }
}, },
}, },
...@@ -264,13 +297,16 @@ export default { ...@@ -264,13 +297,16 @@ export default {
name: item.companyName, name: item.companyName,
})); }));
this.selarr = this.company.map((item) => item.conpanyId); this.selarr = this.company.map((item) => item.conpanyId);
this.selarr1 = this.arr.map((item) => item.val);
this.arr.forEach((item) => (item.ischeck = true));
// getPipe() getTyx() getFm() getCz() getVideo() getUser() // getPipe() getTyx() getFm() getCz() getVideo() getUser()
this.goMap(getPipe, this.addPipeLine, Line); this.goMap(getPipe, this.addPipeLine, Line);
this.goMap(getTyx, this.addDevice, DeviceA); this.goMap(getTyx, this.addDevice, DeviceA);
this.goMap(getFm, this.addDevice, DeviceA); this.goMap(getFm, this.addDevice, DeviceA);
this.goMap(getCz, this.addDevice, DeviceA); this.goMap(getCz, this.addDevice, DeviceA);
this.goMap(getVideo, this.addDevice, VideoView); this.goMap(getVideo, this.addDevice, VideoView);
this.goMap(getUser, this.addDevice, User); this.goMap(detectorUserList, this.addDevice, User);
// getVideo().then((res) => { // getVideo().then((res) => {
// console.log("getVideo", res); // console.log("getVideo", res);
// }); // });
...@@ -302,11 +338,29 @@ export default { ...@@ -302,11 +338,29 @@ export default {
}, },
goMap(httpFunc, addFunc, component) { goMap(httpFunc, addFunc, component) {
httpFunc().then((res) => { httpFunc().then((res) => {
console.log("resresres", res); // 给用户加icontype
if (res.data && !res.data[0].iconType) {
res.data.forEach((item) => {
item.iconType = 6;
});
}
// if (res.data && !res.data[0].iconType) {
// res.data.forEach((item) => {
// item.iconType = 6;
// });
// }
// 根据数据格式不同,赋值不同,如果是个数组,就用res,如果不是就用res.data // 根据数据格式不同,赋值不同,如果是个数组,就用res,如果不是就用res.data
let config = {}; let config = {};
if (Array.isArray(res)) { if (Array.isArray(res)) {
config = { data: res }; config = { data: res };
// 给视频设备的conpanyType变成null
if(res[0].iconType==5){
res.forEach(item=>{
item.companyType = null;
})
}
} else { } else {
config = { data: res.data }; config = { data: res.data };
} }
...@@ -314,7 +368,7 @@ export default { ...@@ -314,7 +368,7 @@ export default {
}); });
}, },
centerShow(boolean) { myCenterShow(boolean) {
this.show = boolean; this.show = boolean;
}, },
centerDataFunc(centerData) { centerDataFunc(centerData) {
...@@ -341,36 +395,49 @@ export default { ...@@ -341,36 +395,49 @@ export default {
if (ind >= 0) { if (ind >= 0) {
this.selarr.splice(ind, 1); this.selarr.splice(ind, 1);
if (item.val == 3) { if (item.val == 3) {
this.$refs.mychild.choice(1); // this.$refs.mychild.choice(1);
this.$refs.mychild2.choice(1); // this.$refs.mychild2.choice(1);
} else { } else {
this.$refs.mychild.choice(item.val + 1); // this.$refs.mychild.choice(item.val + 1);
this.$refs.mychild2.choice(item.val + 1); // this.$refs.mychild2.choice(item.val + 1);
} }
} else { } else {
this.selarr.push(item.val); this.selarr.push(item.val);
this.$refs.mychild.choice(item.val); // this.$refs.mychild.choice(item.val);
this.$refs.mychild2.choice(item.val); // this.$refs.mychild2.choice(item.val);
} }
this.map.companyFilter(this.selarr); // this.map.companyFilter(this.selarr);
this.map.allfilter(this.selarr, this.selarr1);
}, },
sel1(index,item){ sel1(index, item) {
let arr=[...this.arr]; const ind = this.selarr1.indexOf(item.val);
let selarr1=[...this.selarr1]; if (ind >= 0) {
if(arr[index].ischeck==false){ this.selarr1.splice(ind, 1);
arr[index].ischeck=true; } else {
selarr1.push(item) this.selarr1.push(item.val);
}else{
arr[index].ischeck=false;
var index11=selarr1.indexOf(index)
selarr1.splice(index11,1)
} }
this.arr=arr; this.map.allfilter(this.selarr, this.selarr1);
this.selarr1=selarr1;
}, },
//用户的设备center
getDetectorInfoList(queryParams, title) {
console.log(queryParams);
return listDetectorInfo(queryParams).then((res) => {
console.log("queryParams", res);
if (res.code == 200) {
this.detcetorList = res.rows;
this.centerUserId = queryParams.userId;
// 总数据
this.centerTotal = res.total;
// this.$refs.userCenter.fade = "fade";
this.centerShow = true;
this.centerTitle = title;
// 传递回去
return res.code;
}
});
},
currentTime() { currentTime() {
setInterval(() => { setInterval(() => {
this.formatDate(); this.formatDate();
...@@ -424,11 +491,11 @@ export default { ...@@ -424,11 +491,11 @@ export default {
color: #18baff; color: #18baff;
cursor: pointer; cursor: pointer;
padding: 3px 5px; padding: 3px 5px;
border: 1px solid #339CC9; border: 1px solid #339cc9;
color: #339CC9; color: #339cc9;
&:hover { &:hover {
background-color: #053B6A ; background-color: #053b6a;
color: #2CD5DB; color: #2cd5db;
} }
} }
#map { #map {
...@@ -545,7 +612,7 @@ export default { ...@@ -545,7 +612,7 @@ export default {
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
} }
.typelist-div{ .typelist-div {
width: 450px; width: 450px;
height: 50px; height: 50px;
z-index: 9999; z-index: 9999;
...@@ -554,7 +621,7 @@ export default { ...@@ -554,7 +621,7 @@ export default {
margin-top: 120px; margin-top: 120px;
right: 450px; right: 450px;
} }
.list{ .list {
z-index: 9999; z-index: 9999;
float: left; float: left;
margin-left: 15px; margin-left: 15px;
...@@ -562,14 +629,15 @@ export default { ...@@ -562,14 +629,15 @@ export default {
line-height: auto; line-height: auto;
text-align: center; text-align: center;
background: linear-gradient(86deg, #112238 0%, #086187 62%, #112238 100%); background: linear-gradient(86deg, #112238 0%, #086187 62%, #112238 100%);
box-shadow: inset 0px 1px 2px 1px #125C9B; box-shadow: inset 0px 1px 2px 1px #125c9b;
font-size: 14px; font-size: 14px;
padding: 5px 7px; padding: 5px 7px;
cursor: pointer;
} }
.list.active{ .list.active {
background: linear-gradient(86deg, #112238 0%, #32A3D3 62%, #112238 100%); background: linear-gradient(86deg, #112238 0%, #32a3d3 62%, #112238 100%);
box-shadow: inset 0px 1px 2px 1px #125C9B; box-shadow: inset 0px 1px 2px 1px #125c9b;
color: #2ee7e7; color: #2ee7e7;
font-size: 14px; font-size: 14px;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment