Commit 54e22055 authored by yaqizhang's avatar yaqizhang

Merge branch 'master' of http://111.61.77.35:9999/gengdidi/gassafety into master

parents e1d1679a 444b3437
...@@ -74,13 +74,13 @@ public class TDeviceInfo extends BaseEntity ...@@ -74,13 +74,13 @@ public class TDeviceInfo extends BaseEntity
private String phone; private String phone;
/** 安装时间 */ /** 安装时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date installationTime; private Date installationTime;
/** 最后巡检时间 */ /** 最后巡检时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime; private Date inspectionTime;
/** 是否删除 */ /** 是否删除 */
......
...@@ -57,13 +57,13 @@ public class TPipe extends BaseEntity ...@@ -57,13 +57,13 @@ public class TPipe extends BaseEntity
private String iconUrl; private String iconUrl;
/** 安装时间 */ /** 安装时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date installationTime; private Date installationTime;
/** 最后巡检时间 */ /** 最后巡检时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime; private Date inspectionTime;
/** 是否删除 */ /** 是否删除 */
......
...@@ -79,13 +79,13 @@ public class DeviceInfoVo extends BaseEntity ...@@ -79,13 +79,13 @@ public class DeviceInfoVo extends BaseEntity
private String phone; private String phone;
/** 安装时间 */ /** 安装时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date installationTime; private Date installationTime;
/** 最后巡检时间 */ /** 最后巡检时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime; private Date inspectionTime;
/** 是否删除 */ /** 是否删除 */
......
...@@ -63,13 +63,13 @@ public class PipeVo extends BaseEntity ...@@ -63,13 +63,13 @@ public class PipeVo extends BaseEntity
private String iconUrl; private String iconUrl;
/** 安装时间 */ /** 安装时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date installationTime; private Date installationTime;
/** 最后巡检时间 */ /** 最后巡检时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后巡检时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inspectionTime; private Date inspectionTime;
/** 是否删除 */ /** 是否删除 */
......
...@@ -8,17 +8,17 @@ ...@@ -8,17 +8,17 @@
<el-form ref="form" :model="form" :rules="rules" label-width="135px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="所属管道" prop="pipeCode"> <el-form-item label="所属管道" prop="pipeId">
<el-select <el-select
v-model="form.pipeCode" v-model="form.pipeId"
placeholder="请选择所属管道" placeholder="请选择所属管道"
style="width: 100%" style="width: 100%"
> >
<el-option <el-option
v-for="item in pipeList" v-for="item in pipeList"
:key="item.pipeCode" :key="item.pipeId"
:label="item.pipeName" :label="item.pipeName"
:value="item.pipeCode" :value="item.pipeId"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -163,7 +163,7 @@ export default { ...@@ -163,7 +163,7 @@ export default {
pipeList: [], pipeList: [],
rules: { rules: {
pipeCode: [ pipeId: [
{ required: true, message: "请选择所属管道", trigger: "blur" }, { required: true, message: "请选择所属管道", trigger: "blur" },
// { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }, // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
], ],
...@@ -211,6 +211,8 @@ export default { ...@@ -211,6 +211,8 @@ export default {
}, },
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
// console.log("this.form流量计",this.form)
// return;
if (valid) { if (valid) {
if (this.form.deviceId != null) { if (this.form.deviceId != null) {
updateDeviceInfo(this.form).then((response) => { updateDeviceInfo(this.form).then((response) => {
......
...@@ -8,17 +8,17 @@ ...@@ -8,17 +8,17 @@
<el-form ref="form" :model="form" :rules="rules" label-width="135px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="所属管道" prop="pipeCode"> <el-form-item label="所属管道" prop="pipeId">
<el-select <el-select
v-model="form.pipeCode" v-model="form.pipeId"
placeholder="请选择所属管道" placeholder="请选择所属管道"
style="width: 100%" style="width: 100%"
> >
<el-option <el-option
v-for="item in pipeList" v-for="item in pipeList"
:key="item.pipeCode" :key="item.pipeId"
:label="item.pipeName" :label="item.pipeName"
:value="item.pipeCode" :value="item.pipeId"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -156,7 +156,7 @@ export default { ...@@ -156,7 +156,7 @@ export default {
fileList: [], fileList: [],
// 表单校验 // 表单校验
rules: { rules: {
pipeCode: [ pipeId: [
{ required: true, message: "请选择所属管道", trigger: "blur" }, { required: true, message: "请选择所属管道", trigger: "blur" },
// { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }, // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
], ],
...@@ -209,6 +209,8 @@ export default { ...@@ -209,6 +209,8 @@ export default {
}, },
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
// console.log("this.form)",this.form)
if (valid) { if (valid) {
if (this.form.deviceId != null) { if (this.form.deviceId != null) {
updateDeviceInfo(this.form).then((response) => { updateDeviceInfo(this.form).then((response) => {
......
...@@ -8,17 +8,17 @@ ...@@ -8,17 +8,17 @@
<el-form ref="form" :model="form" :rules="rules" label-width="135px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="所属管道" prop="pipeCode"> <el-form-item label="所属管道" prop="pipeId">
<el-select <el-select
v-model="form.pipeCode" v-model="form.pipeId"
placeholder="请选择所属管道" placeholder="请选择所属管道"
style="width: 100%" style="width: 100%"
> >
<el-option <el-option
v-for="item in pipeList" v-for="item in pipeList"
:key="item.pipeCode" :key="item.pipeId"
:label="item.pipeName" :label="item.pipeName"
:value="item.pipeCode" :value="item.pipeId"
> >
</el-option> </el-option>
</el-select> </el-select>
...@@ -160,7 +160,7 @@ export default { ...@@ -160,7 +160,7 @@ export default {
fileArr: [], fileArr: [],
pipeList: [], pipeList: [],
rules: { rules: {
pipeCode: [ pipeId: [
{ required: true, message: "请选择所属管道", trigger: "blur" }, { required: true, message: "请选择所属管道", trigger: "blur" },
// { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }, // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
], ],
...@@ -209,6 +209,7 @@ export default { ...@@ -209,6 +209,7 @@ export default {
}, },
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
// console.log("this.form",this.form)
if (valid) { if (valid) {
if (this.form.deviceId != null) { if (this.form.deviceId != null) {
updateDeviceInfo(this.form).then((response) => { updateDeviceInfo(this.form).then((response) => {
......
...@@ -132,9 +132,11 @@ export default { ...@@ -132,9 +132,11 @@ export default {
deviceMore() { deviceMore() {
console.log(this.obj.polyline.getExtData().lineData) console.log(this.obj.polyline.getExtData().lineData)
this.obj.polyline.getExtData().class.view.$router.push({ this.obj.polyline.getExtData().class.view.$router.push({
path: "/realtimeData/realtimedetail", path: "/dataMonitoring/realtimedetail",
query: { query: {
deviceId: this.obj.polyline.getExtData().lineData.pipeId, deviceId: this.obj.polyline.getExtData().lineData.pipeId,
//这里是传数字
deviceType:"0",
}, },
}); });
}, },
......
...@@ -167,7 +167,7 @@ export default { ...@@ -167,7 +167,7 @@ export default {
}, },
checkWork() { checkWork() {
this.obj.polyline.getExtData().class.view.$router.push({ this.obj.polyline.getExtData().class.view.$router.push({
path: "/basicsInfo/detail", path: "/workOrder/detail",
query: { query: {
orderId: this.obj.polyline.getExtData().lineData.orderId, orderId: this.obj.polyline.getExtData().lineData.orderId,
}, },
...@@ -191,9 +191,10 @@ export default { ...@@ -191,9 +191,10 @@ export default {
deviceMore() { deviceMore() {
console.log(this.obj.polyline.getExtData().lineData); console.log(this.obj.polyline.getExtData().lineData);
this.obj.polyline.getExtData().class.view.$router.push({ this.obj.polyline.getExtData().class.view.$router.push({
path: "/deviceAlarm/alarmdetail", path: "/dataMonitoring/alarmdetail",
query: { query: {
alarmId: this.obj.polyline.getExtData().lineData.alarmId, alarmId: this.obj.polyline.getExtData().lineData.alarmId,
deviceType:"管道"
}, },
}); });
}, },
......
...@@ -91,9 +91,10 @@ export default { ...@@ -91,9 +91,10 @@ export default {
moment, moment,
deviceMore() { deviceMore() {
this.data.class.view.$router.push({ this.data.class.view.$router.push({
path: "/realtimeData/realtimedetail", path: "/dataMonitoring/realtimedetail",
query: { query: {
deviceId: this.data.deviceId, deviceId: this.data.deviceId,
deviceType: this.data.deviceType,
}, },
}); });
}, },
......
...@@ -104,6 +104,16 @@ export default { ...@@ -104,6 +104,16 @@ export default {
data: {}, data: {},
map: null, map: null,
}, },
data() {
return {
deviceType: {
1: "调压箱",
2: "阀门井",
3: "流量计",
4: "智能燃气表",
},
};
},
computed: { computed: {
orderId() { orderId() {
// 如果已经生成过工单,就不能再次生成了 // 如果已经生成过工单,就不能再次生成了
...@@ -141,16 +151,17 @@ export default { ...@@ -141,16 +151,17 @@ export default {
// }, // },
deviceMore() { deviceMore() {
this.data.view.$router.push({ this.data.view.$router.push({
path: "/deviceAlarm/alarmdetail", path: "/dataMonitoring/alarmdetail",
query: { query: {
alarmId: this.data.alarmId, alarmId: this.data.alarmId,
dcviceType: this.deviceType[this.data.deviceType],
}, },
}); });
}, },
// 查看工单 // 查看工单
checkWork() { checkWork() {
this.data.view.$router.push({ this.data.view.$router.push({
path: "/basicsInfo/detail", path: "/workOrder/detail",
query: { query: {
orderId: this.data.orderId, orderId: this.data.orderId,
}, },
......
...@@ -23,10 +23,11 @@ ...@@ -23,10 +23,11 @@
<el-button size="small" @click="$emit('dialogcancelFun')">取消</el-button <el-button size="small" @click="$emit('dialogcancelFun')">取消</el-button
> >
</el-row> </el-row>
<div style="width: 47vw; height: 57vh" id="container"></div> <div style="width: 47vw; height: 65vh" id="container"></div>
<el-col :span="8" class="button"> <el-col :span="8" class="button">
<el-input id="ss" placeholder="输入地址" v-model="keyWorld" ></el-input><el-button size="small" type="primary" icon="el-icon-search" @click="search" style="position: fixed;margin-left: 3px;">搜索</el-button> <el-input id="ss" placeholder="输入地址" v-model="keyWorld" ></el-input>
<el-button size="small" type="primary" icon="el-icon-search" @click="search" style="position: fixed;margin-left: 3px;">搜索</el-button>
</el-col> </el-col>
</el-dialog> </el-dialog>
...@@ -47,51 +48,59 @@ ...@@ -47,51 +48,59 @@
keyWorld: "" keyWorld: ""
} }
}, },
mounted(){ watch:{
let that = this; dialogTableVisible:{
that.$nextTick(() => { handler(value) {
//初始化地图 if(value){
let map = new AMap.Map("container", { let that = this;
center: [114.72995, 38.37417], that.$nextTick(() => {
// resizeEnable: true, //初始化地图
disableSocket: true, let map = new AMap.Map("container", {
viewMode: "3D", center: [114.72995, 38.37417],
showLabel: true, // resizeEnable: true,
pitch: 8, disableSocket: true,
zoom: 10 viewMode: "3D",
}); showLabel: true,
map.setFitView(); pitch: 8,
zoom: 12
});
var overlays = [];
//坐标回显
if (typeof that.slng == "number" && that.slng != 0) {
that.lnglat.lng = that.slng;
that.lnglat.lat = that.slat;
let marker = new AMap.Marker({
position: [that.slng,that.slat]
});
marker.setMap(map);
map.setCenter([that.slng,that.slat]);
overlays.push(marker);
}
//坐标回显 //点击获取坐标点
if (typeof that.slng == "number" && that.slng != 0) { var mouseTool = new AMap.MouseTool(map);
that.lnglat.lng = that.slng; //监听draw事件可获取画好的覆盖物
that.lnglat.lat = that.slat; mouseTool.on('draw',function(e){
let marker = new AMap.Marker({ map.remove(overlays);
position: [that.slng,that.slat] overlays.push(e.obj);
}); that.lnglat.lat = e.obj._position.lat;
marker.setMap(map); that.lnglat.lng = e.obj._position.lng;
map.setCenter([that.slng,that.slat]); })
} that.draw(mouseTool);
//点击获取坐标点 //搜索功能
var mouseTool = new AMap.MouseTool(map); AMap.plugin(["AMap.AutoComplete","AMap.PlaceSearch"], function() {
//监听draw事件可获取画好的覆盖物 that.placeSearch = new AMap.PlaceSearch({
var overlays = []; map: map
mouseTool.on('draw',function(e){ });
map.remove(overlays); });
overlays.push(e.obj); })
that.lnglat.lat = e.obj._position.lat; }
that.lnglat.lng = e.obj._position.lng; },
}) // 代表在wacth里声明了firstName这个方法之后立即先去执行handler方法
that.draw(mouseTool); immediate: true
//搜索功能 }
AMap.plugin(["AMap.AutoComplete","AMap.PlaceSearch"], function() {
that.placeSearch = new AMap.PlaceSearch({
map: map
});
});
})
}, },
methods:{ methods:{
confirmFun(){ confirmFun(){
...@@ -123,7 +132,7 @@ ...@@ -123,7 +132,7 @@
.button{ .button{
position: relative; position: relative;
top: -393px; top: -453px;
left: 14px; left: 14px;
} }
......
<template>
<el-dialog
title="拾取坐标"
:visible.sync="dialogTableVisible"
:show-close="false"
:close-on-click-modal="false"
>
<div style="postion:relative">
<el-row :span="8" class="button">
<el-input id="ss" placeholder="输入地址" v-model="keyWorld" ></el-input>
<el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
</el-row>
</div>
<div style="" id="container" ref="elD"></div>
<el-row class="lt">
<el-button type="primary" size="small" @click="confirmFun">确定</el-button>
<el-button size="small" @click="$emit('dialogcancelFun')">取消</el-button>
</el-row>
</el-dialog>
</template>
<script>
import gaodeMap from "./js/gaodeMapDialog.js";
import { getString } from "@/utils/gassafety.js";
export default {
props: {
dialogTableVisible: {
type:Boolean,
},
slat: 0,
slng: 0,
str:{
type:String,
}
},
data(){
return{
lnglat: {
lat: "",
lng: ""
},
keyWorld: "",
map:{},
div:null,
}
},
watch:{
dialogTableVisible:{
handler(value) {
if(value){
window.addEventListener("click", this.barClose);
this.$nextTick(() => {
this.map = new gaodeMap("石家庄");
this.map.addMouseTool();
if(this.str){
this.map.addPolyline([{coordinates:this.str}]);
}
this.map.lineType = 1;
if (this.map.newLineObj == null) {
this.map.createNewLine();
}
})
}else{
console.log("清除事件")
window.removeEventListener("click", this.barClose);
}
},
// 代表在wacth里声明了firstName这个方法之后立即先去执行handler方法
immediate: true
}
},
methods:{
confirmFun(){
console.log("path",this.map.newLineObj.getPath())
const pathArr = this.map.newLineObj.getPath().map(item=>{
return [
item.lng,item.lat
]
})
const str = getString(pathArr)
this.$emit('confirmFun',str);
this.$emit('dialogcancelFun');
},
search(){
this.placeSearch.search(this.keyWorld); //关键字查询查询
},
barClose() {
console.log("window");
this.deviceType = false;
// 关闭当前线条的infowindow
this.map.closeInfoWindow();
this.map.lineFlag = false;
},
},
beforeDestroy() {
},
}
</script>
<style scoped lang="scss">
.dialog{
position:relative;
}
#container{
width: 100%;
height: 500px;
}
.lt{
margin-top: 15px;
text-align: right;
}
.lt .el-input {
width: 120px;
margin-right: 15px;
display: inline-block;
}
.button{
position: absolute;
top: 90px;
left: 30px;
z-index: 999;
}
.button .el-input{
width: 180px;
margin-right: 10px;
display: inline-block;
}
</style>
 import createPop from "@/utils/createPop";
import regulatorBox from "@/components/PopWindow/regulatorBox.vue";
import valveWell from "@/components/PopWindow/valveWell.vue";
import flowMeter from "@/components/PopWindow/flowMeter.vue";
import pressureGage from "@/components/PopWindow/pressureGage.vue";
import pipelineView from "@/components/PopWindow/pipelineView.vue";
import lineInfoWindow from "@/components/PopWindow/lineInfoWindow.vue";
import { delDeviceInfo } from "@/api/device/deviceInfo";
import markerInfoWindow from "@/components/PopWindow/markerInfoWindow.vue";
import { getArray } from "@/utils/gassafety.js";
import { delPipe } from "@/api/device/pipe.js";
import vue from "@/main";
let defaultCenter = "石家庄";
export let map;
export const DEVICE_TYPE = {
PIPEPLINE: "1",
REGEULATORBOX: "2",
VALUEWELL: "3",
FLOWMETER: "4",
DUTYPERSON: "5",
WORKORDER: "6",
PRESSUREGAGE: "7",
INSPECTOR: "8"
};
class gaodeMap {
// 所有线的数组
polyLines = [];
// 是否开启新增
lineType = 0;
// 创建一个新的lineObj
newLineObj = null;
// onceFlag=false;
lineFlag = false;
mouseTool = null;
myMap = null;
showInfoWindow = null;
//构造函数中设置中央点默认值
constructor(center) {
this.markers = [];
this.center = center ? center : defaultCenter;
map = new AMap.Map("container", {
//mask: addMask(result.districtList[0].boundaries),
center: [114.72995, 38.37417],
// resizeEnable: true,
disableSocket: true,
viewMode: "3D",
showLabel: true,
// labelzIndex: 110,
pitch: 8,
zoom: 12
//mapStyle: 'amap://styles/darkblue',
// mapStyle: 'amap://styles/3b679a15f448a4740ba2ff7524e1a4ae',
});
this.myMap = map;
this.myMap.on("click", e => {
// if (this.lineType !=1 || this.lineFlag) return;
if (this.lineType != 1 || this.lineFlag) return;
// 除了这里,还要利用vue页面的window事件辅助,当组件出来的时候,就得利用window事件
if (this.newLineObj) {
vue
.$confirm("是否重新画管道")
.then(() => {
this.newLineObj.polyEditor.close();
map.remove(this.newLineObj);
this.newLineObj = null;
this.lineFlag = false;
this.createNewLine();
console.log("map点击事件新建");
})
.catch(() => {});
}
// console.log("抬起来了");
});
// 地图开始平移删除infowindow
this.myMap.on("movestart",()=>{
// console.log("地图平移");
this.closeInfoWindow()
})
// 地图开始缩放删除infowindow
this.myMap.on("zoomstart",()=>{
// console.log("缩放开始")
this.closeInfoWindow()
})
this.districtBoundaries();
}
/**
* 获取map
* @returns {AMap.Map}
*/
get getMap() {
return this.map;
}
/**
* 重新设置中央点
* @param value
*/
set setCenter(value) {
this.center = value;
this.districtBoundaries();
}
resetMapCenter(value) {
map.setCenter(value);
}
/**
* 设置城市边界
*/
districtBoundaries() {
let that = this;
let opts = {
subdistrict: 0,
extensions: "all",
level: "city"
};
let district = new AMap.DistrictSearch(opts);
district.search(that.center, function(status, result) {
if (status == "complete") {
let defaultCenter = [];
defaultCenter.push(result.districtList[0].center.lng);
defaultCenter.push(result.districtList[0].center.lat);
map.setCenter(defaultCenter);
let bounds = result.districtList[0].boundaries;
for (let i = 0; i < bounds.length; i += 1) {
new AMap.Polyline({
path: bounds[i],
strokeColor: "#0088ff",
strokeWeight: 5,
strokeOpacity: 7,
map: map
});
}
}
});
}
/**
* 添加Market
* @param markerType
* @param lnglats
*/
addMarker(markerType, data) {
let that = this;
that.markerType = markerType;
let infoWindow = new AMap.InfoWindow({
isCustom: true,
offset: new AMap.Pixel(24, -38),
anchor: "left-top"
});
infoWindow.on("mouseover",function () {
let options = map.getStatus();
options.scrollWheel = false;
map.setStatus(options);
});
infoWindow.on("mouseout",function () {
let options = map.getStatus();
options.scrollWheel = true;
map.setStatus(options);
});
let marker = new AMap.Marker({
position: [data.longitude, data.latitude],
map: map,
offset: new AMap.Pixel(0, 5)
});
this.setMarkerIcon(marker);
if (DEVICE_TYPE.WORKORDER != markerType && DEVICE_TYPE.INSPECTOR != markerType) {
marker.content = this.getMarketContent(data);
marker.on("mouseover", infoOpen);
marker.on("mouseout", infoClose);
marker.setExtData(data);
that.deviceType = markerType;
let editWindow = that.createInfowindow("编辑");
editWindow.fileArr =
data.iconUrl != "" && data.iconUrl != undefined
? [{ url: data.iconUrl }]
: [];
editWindow.obj = marker;
editWindow.gaoMap = that;
editWindow.map = map;
marker.on("click", function(e) {
if ("edit" == that.mapOperateType) {
editWindow.form = e.target.getExtData();
editWindow.show();
} else if ("delete" == that.mapOperateType) {
let diviceType = {"2":"调压箱","3":"阀门井","4":"流量计","7":"压力表",};
vue.$confirm('是否删除名称为"'+e.target.getExtData().deviceName+'"的'+diviceType[markerType]+" ?", "提示", {
type: "warning"
// center: true
}).then(() => {
map.remove(marker);
that.deleteMarker(markerType, data.deviceId);
}).catch(() => {
vue.$message({
type: "info",
// center:true,
offset: 100,
message: "已取消删除"
});
});
} /*else {
//map.setZoomAndCenter(13, e.target.getPosition());
let infoWindow = new AMap.InfoWindow({
isCustom: true,
offset: new AMap.Pixel(24, -38),
anchor: "left-top"
});
infoWindow.setContent(e.target.content);
infoWindow.open(map, e.target.getPosition());
}*/
});
marker.on("dragend", function(e) {
editWindow.form.longitude = e.lnglat.lng;
editWindow.form.latitude = e.lnglat.lat;
});
}else{
marker.on("mouseover",function(){
marker.setLabel({
offset: new AMap.Pixel(0, -10), //设置文本标注偏移量
content: "<div class='info'>"+data.deviceName+"</div>", //设置文本标注内容
direction: 'top' //设置文本标注方位
});
});
marker.on("mouseout",function(){
marker.setLabel({
content: null
});
});
}
this.markers.push(marker);
map.setZoom("11");
//map.setFitView();
function infoClose(e) {
let options = map.getStatus();
options.scrollWheel = true;
map.setStatus(options);
//infoWindow.close(map, e.target.getPosition());
}
function infoOpen(e) {
let options = map.getStatus();
options.scrollWheel = false;
map.setStatus(options);
infoWindow.setContent(e.target.content);
infoWindow.open(map, e.target.getPosition());
that.markerInfoWindow = infoWindow;
}
}
/**
* marker添加拖拽事件
*/
addMarkerDragg() {
for (var i = 0; i < this.markers.length; i++) {
this.markers[i].setDraggable(true);
}
}
/**
* marker移除拖拽事件
*/
removeMarkerDragg() {
for (var i = 0; i < this.markers.length; i++) {
this.markers[i].setDraggable(false);
}
}
/**
* 添加marker信息
* @param data
* @returns {string}
*/
getMarketContent(data) {
switch (this.markerType) {
case DEVICE_TYPE.REGEULATORBOX: {
const dom = createPop(markerInfoWindow, {
title: "调压箱",
data: data,
map: map
});
const html = dom.$el;
dom.remove();
return html;
}
case DEVICE_TYPE.VALUEWELL: {
const dom = createPop(markerInfoWindow, {
title: "阀门井",
data: data,
map: map
});
const html = dom.$el;
dom.remove();
return html;
}
case DEVICE_TYPE.FLOWMETER: {
const dom = createPop(markerInfoWindow, {
title: "流量计",
data: data,
map: map
});
const html = dom.$el;
dom.remove();
return html;
}
case DEVICE_TYPE.PRESSUREGAGE: {
const dom = createPop(markerInfoWindow, {
title: "压力表",
data: data,
map: map
});
const html = dom.$el;
dom.remove();
return html;
}
}
}
/**
* 删除marker
* @param delType
* @param deviceId
*/
deleteMarker(delType, deviceId) {
if (
DEVICE_TYPE.REGEULATORBOX == delType ||
DEVICE_TYPE.VALUEWELL == delType ||
DEVICE_TYPE.FLOWMETER == delType ||
DEVICE_TYPE.PRESSUREGAGE == delType
) {
delDeviceInfo(deviceId);
}
}
/**
* 设置设备图标
* @param marker
*/
setMarkerIcon(marker) {
switch (this.markerType) {
case DEVICE_TYPE.REGEULATORBOX: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/tiaoyaxiang.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.VALUEWELL: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/famenjing.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.FLOWMETER: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/liuliangji.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.DUTYPERSON: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/zhibanrenyuan.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.WORKORDER: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/zhibanrenyuan.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.PRESSUREGAGE: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/yalibiao.png")
});
marker.setIcon(icon);
break;
}
case DEVICE_TYPE.INSPECTOR: {
let icon = new AMap.Icon({
//size: new AMap.Size(51, 23),
image: require("@/assets/images/zhibanrenyuan.png")
});
marker.setIcon(icon);
break;
}
}
}
/**
* 添加折线
* @param path
*/
addPolyline(arr) {
// this` polyLines = [];
console.log("包装的数组", arr);
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
let { coordinates } = item;
// console.log("coordinates",coordinates)
// let path = coordinates ? getArray(coordinates) :[];
// 字符串转二维数组
let path = coordinates ? eval(coordinates) : [];
let polyline = new AMap.Polyline({
path,
strokeColor: "#80d8ff",
strokeWeight: 4,
strokeOpacity: 0.9,
zIndex: 50,
bubble: true,
geodesic: true,
extData: {
type: "newLine",
//当前line状态 0:正常状态 1:正在编辑状态
isState: 0,
lineData: item
}
});
this.polyLines.push(polyline);
this.newLineObj=polyline;
// 信息窗体
const dom = createPop(lineInfoWindow, {
obj: { a: 123, editorPage: true, ...item, polyline }
});
console.log("dom", dom.$el);
dom.$el.addEventListener("mouseover", () => {
let options = this.myMap.getStatus();
options.scrollWheel = false;
this.myMap.setStatus(options);
});
dom.$el.addEventListener("mouseout", () => {
let options = this.myMap.getStatus();
options.scrollWheel = true;
this.myMap.setStatus(options);
});
let infoWindow = new AMap.InfoWindow({
isCustom: true,
autoMove: false,
content: dom.$el,
//信息船体偏移量
offset: new AMap.Pixel(0, 0),
anchor: "left-top"
});
this.newLineAddEvent(polyline);
polyline.infoWindow = infoWindow;
//添加事件
polyline.on("mouseover", e => {
if (this.lineType == 1) return;
// 上方导航的高
const topBar = 81;
// 坐标导航的宽
const leftBar = 100;
// 屏幕可视区的宽高
const {
clientWidth: windowClientWidth,
clientHeight: windowClientHeight
} = document.body;
// 弹出的信息窗口的宽高
const {
offsetWidth: infoWindowWidth,
offsetHeight: infoWindowHeight
} = { offsetWidth: 406, offsetHeight: 316 };
// 鼠标碰到线后的位置
const { clientX: mouseClientX, clientY: mouseClientY } = e.originEvent;
// 鼠标到左边界的距离
const offsetLeftX = mouseClientX - 100;
// 鼠标到右边界的距离
const offsetRightX = windowClientWidth - mouseClientX;
const offsetTopY = mouseClientY - 81;
const offsetBottomY = windowClientHeight - mouseClientY;
const offsetY = mouseClientY - 80 - infoWindowHeight;
let X = 20,
Y = -20;
if (offsetLeftX <= infoWindowWidth) {
console.log("靠左了");
X = 20;
} else if (offsetRightX <= infoWindowWidth) {
console.log("靠右了");
X = -infoWindowWidth - 20;
}
if (offsetTopY <= infoWindowHeight) {
console.log("靠上了");
Y = 20;
} else if (offsetBottomY <= infoWindowHeight + 81) {
console.log("靠下了");
Y = -infoWindowHeight - 20;
}
polyline.setOptions({ strokeColor: "#80d8ff" });
infoWindow.setOffset(new AMap.Pixel(X, Y));
infoWindow.open(map, e.lnglat);
// polyline.infoWindow=infoWindow;
this.showInfoWindow = infoWindow;
// const
});
polyline.on("mouseout", e => {
polyline.setOptions({ strokeColor: "#80d8ff" });
// infoWindow.close();
});
// 计算info的位置
// function infoPosition() {}
}
map.add(this.polyLines);
// 缩放地图到合适的视野级别
map.setFitView();
}
// 创建一条新的线
createNewLine() {
map.remove(this.markerOverlays);
this.mouseTool.polyline({
// bubbles:false,
strokeWeight: 4,
strokeColor: "#80d8ff",
extData: {
type: "newLine",
//当前line状态 0:正常状态 1:正在编辑状态
isState: 0
}
//同Polyline的Option设置
});
// 让它不再等于null
// this.newLineObj={a:123}
}
// 创建出来的新线归位,重置,当点击编辑跟删除的时候
newLineReset() {
this.lineFlag = false;
if (this.mouserTool) {
this.mouseTool.close();
}
if (this.newLineObj) {
this.newLineObj.polyEditor.close();
map.remove(this.newLineObj);
this.newLineObj = null;
}
}
// 新建line增加编辑以及右键菜单
closeInfoWindow() {
this.showInfoWindow && this.showInfoWindow.close();
this.markerInfoWindow && this.markerInfoWindow.close();
}
// 新line与老line添加点击事件
newLineAddEvent(obj) {
obj.polyEditor = new AMap.PolyEditor(map, obj);
// obj.polyEditor.on('adjust',(e)=>{
// console.log("addnode")
// })
obj.on("mousedown", e => {
console.log(e.originEvent);
console.log("lineType", this.lineType);
this.lineFlag = true;
// 每次点击关闭然后再次激活
// 如果是新线就关闭
if (obj.getExtData().type == "newLine") {
this.mouseTool.close();
}
// 删除
if (this.lineType == 3) {
this.lineDelete(obj);
return;
}
// 获取当前状态 0普通状态,1是正编辑状态
const { isState, type } = obj.getExtData();
// 如果不是新线的时候并且没点编辑,点击是无效的
if (type != "newLine" && this.lineType != 2) return;
if (isState == 0) {
// 如果是0,就打开编辑,变成编辑状态
obj.polyEditor.open();
let opstions = obj.getExtData();
opstions.isState = 1;
console.log(opstions);
obj.setExtData(opstions);
} else {
return;
// 经纬度
const lnglatsArr = obj.getPath().map(item => [item.lng, item.lat]);
// 管道总长度
const pipeLength = obj.getLength();
// 传回来的数据 如果是新管道就是空
const lineData = type == "newLine" ? {} : obj.getExtData().lineData;
// const lineData = obj.getExtData().lineData;
console.log("lineData===================>传入组件的数据", lineData);
this.infoWindowPipelineView({
target: obj,
lineType: type,
lnglatsArr,
pipeLength,
lineData
});
}
});
}
// 隐藏所有管道
lineShow(bool) {
bool
? this.polyLines.forEach(item => item.show())
: this.polyLines.forEach(item => item.hide());
if (this.newLineObj) {
bool ? this.newLineObj.show() : this.newLineObj.hide();
}
}
markerShow(type, bool) {
this.markers.forEach(item => {
const { deviceType } = item.getExtData();
if (deviceType == type) {
bool ? item.show() : item.hide();
}
// console.log("deviceType",deviceType);
});
}
lineDelete(obj) {
const {
lineData: { pipeName }
} = obj.getExtData();
vue
.$confirm(`是否删除名称为"${pipeName}"的管道 ?`, "提示", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
type: "warning"
// center: true
})
.then(() => {
const {
lineData: { pipeId }
} = obj.getExtData();
console.log(pipeId);
delPipe(pipeId).then(res => {
const index = this.polyLines.indexOf(obj);
// 如果是老线,就要线删除原来的,然后重新包装一遍
if (index >= 0) {
this.polyLines.splice(index, 1);
map.remove(obj);
}
vue.$message({
type: "success",
offset: 100,
// center:true,
message: "删除成功!"
});
// 关闭当前线条的infowindow
// this.closeLineInfoWindow();
});
})
.catch(() => {
vue.$message({
type: "info",
// center:true,
offset: 100,
message: "已取消删除"
});
});
}
// 关闭所有已经上传的线的编辑状态
linePolyEditorAllClose() {
this.polyLines.forEach(item => {
item.polyEditor.close();
let opstions = item.getExtData();
opstions.isState = 0;
item.setExtData(opstions);
let attr = item.getOptions();
attr.strokeColor = "#F7FE38";
item.setOptions(attr);
});
}
// 传进组件的会调 点确认的时候调
lineOkCallBack(target, data) {
target.polyEditor.close();
const index = this.polyLines.indexOf(target);
// 如果是老线,就要线删除原来的,然后重新包装一遍
if (index >= 0) {
this.polyLines.splice(index, 1);
}
console.log("data999-=================>传回来的data", data);
this.addPolyline([data]);
map.remove(target);
// console.log('polyLines',this.polyLines)
}
// 上传服务器用的组件
infoWindowPipelineView(options) {
// const {} =options;
const notice = createPop(pipelineView, {
title: "管道",
// 数据
// lineData: options.lineData,
// lnglatsArr:options.lnglatsArr,
// pipeLength:options.pipeLength,
// //线是新线还是老线
// lineType: options.lineType,
// target: options.obj,
...options,
//把当前对象当作that传进去
gaodeMap: this,
lineOkCallBack: this.lineOkCallBack
});
notice.show();
}
/**
* 添加鼠标事件
*/
addMouseTool() {
this.mouseTool = new AMap.MouseTool(map);
//监听draw事件可获取画好的覆盖物
this.overlays = [];
let that = this;
this.markerOverlays = [];
this.mouseTool.on("draw", function(e) {
if (e.obj.getExtData().type != "newLine") {
map.remove(that.markerOverlays);
const device = that.createInfowindow("新增");
device.map = map;
device.obj = e.obj;
device.gaoMap = that;
e.obj.on("click", function(aa) {
let postion = aa.target._position;
//兼容拖拽后单击事件,拖拽后点击事件返回位置为数组
if (postion instanceof Array) {
device.form.longitude = postion[0];
device.form.latitude = postion[1];
} else {
device.form.longitude = postion.lng;
device.form.latitude = postion.lat;
}
device.show();
});
e.obj.on("mouseover",function () {
that.mouseTool.close();
});
e.obj.on("mouseout",function () {
that.draw(that.deviceType);
})
that.markerOverlays.push(e.obj);
}
if (e.obj && e.obj.getExtData().type == "newLine") {
console.log("挂上事件");
that.newLineAddEvent(e.obj);
// 记录这条线
// console.log(e.obj.getPath().length)
// 如果只有一个点,并没有连成线的时候就不close 大于一个点的时候才执行clse
console.log(that.lineType)
if (e.obj.getPath().length > 1) {
that.newLineObj = e.obj;
that.mouseTool.close();
} else {
// that.newLineObj = null;
}
// 关闭
// 创建一条新线,然后在点地图的时候删除原来的旧线
// that.createNewLine();
// 右键菜单
// that.addEditorAndMenu(e.obj)
}
// if(e.obj.getExtData().type=="line"){
// return;
// }
//that.mouseTool.close();
that.overlays.push(e.obj);
});
}
/**
* 创建弹框事件
*/
createInfowindow(val) {
switch (this.deviceType) {
case DEVICE_TYPE.PIPEPLINE: {
break;
}
case DEVICE_TYPE.REGEULATORBOX: {
return createPop(regulatorBox, {
title: val+ "调压箱"
});
}
case DEVICE_TYPE.VALUEWELL: {
return createPop(valveWell, {
title: val+ "阀门井"
});
}
case DEVICE_TYPE.FLOWMETER: {
return createPop(flowMeter, {
title: val+ "流量计"
});
}
case DEVICE_TYPE.PRESSUREGAGE: {
return createPop(pressureGage, {
title: val+ "压力表"
});
}
}
}
/**
* 鼠标画图事件
* @param deviceType 设备类型
*/
draw(deviceType) {
let that = this;
that.deviceType = deviceType;
if (
DEVICE_TYPE.REGEULATORBOX == deviceType ||
DEVICE_TYPE.VALUEWELL == deviceType ||
DEVICE_TYPE.FLOWMETER == deviceType ||
DEVICE_TYPE.PRESSUREGAGE == deviceType
) {
that.mouseTool.marker({
draggable: true
});
}
if (DEVICE_TYPE.PIPEPLINE == deviceType) {
that.mouseTool.polyline({
strokeWeight: 9,
strokeColor: "#80d8ff"
//同Polyline的Option设置
});
}
}
/**
* 添加地图控件
*/
addMapControl() {
AMap.plugin(
[
"AMap.ToolBar",
"AMap.Scale",
"AMap.HawkEye",
"AMap.MapType",
"AMap.Geolocation"
],
function() {
// 在图面添加工具条控件,工具条控件集成了缩放、平移、定位等功能按钮在内的组合控件
//map.addControl(new AMap.ToolBar());
// 在图面添加比例尺控件,展示地图在当前层级和纬度下的比例尺
map.addControl(new AMap.Scale());
// 在图面添加鹰眼控件,在地图右下角显示地图的缩略图
map.addControl(new AMap.HawkEye({ isOpen: true }));
// 在图面添加类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
map.addControl(
new AMap.MapType({ position: { top: "10px", left: "100px" } })
);
// 在图面添加定位控件,用来获取和展示用户主机所在的经纬度位置
// map.addControl(new AMap.Geolocation());
}
);
}
searchTips(inputId) {
let that = this;
AMap.plugin(["AMap.AutoComplete", "AMap.PlaceSearch"], function() {
//输入提示
// var autoOptions = {
// input: inputId
// };
// let auto = new AMap.AutoComplete(autoOptions);
that.placeSearch = new AMap.PlaceSearch({
map: map
});
//构造地点查询类
// auto.on("select", function(e) {
// that.searchSelectAdcode = e.poi.adcode;
// that.searchSelectName = e.poi.name;
// });
});
}
closeAddMarker() {
this.mouseTool.close();
map.remove(this.markerOverlays);
}
}
export default gaodeMap;
...@@ -54,8 +54,11 @@ router.afterEach((to, from) => { ...@@ -54,8 +54,11 @@ router.afterEach((to, from) => {
// console.log('全局后置钩子',to, from) // console.log('全局后置钩子',to, from)
if (to.path == "/enterprise/mapView") { if (to.path == "/enterprise/mapView") {
store.dispatch("app/toggleDevice", "mobile"); store.dispatch("app/toggleDevice", "mobile");
store.dispatch("app/closeSideBar", { withoutAnimation: true });
} else { } else {
store.dispatch("app/toggleDevice", "desktop"); store.dispatch("app/toggleDevice", "desktop");
store.dispatch("app/closeSideBar", { withoutAnimation: false });
} }
NProgress.done(); NProgress.done();
}); });
...@@ -5,10 +5,10 @@ import flowMeter from "../components/PopWindow/flowMeter.vue"; ...@@ -5,10 +5,10 @@ import flowMeter from "../components/PopWindow/flowMeter.vue";
import pressureGage from "../components/PopWindow/pressureGage.vue"; import pressureGage from "../components/PopWindow/pressureGage.vue";
import pipelineView from "../components/PopWindow/pipelineView.vue"; import pipelineView from "../components/PopWindow/pipelineView.vue";
import lineInfoWindow from "../components/PopWindow/lineInfoWindow.vue"; import lineInfoWindow from "../components/PopWindow/lineInfoWindow.vue";
import { delDeviceInfo } from "@/api/device/deviceInfo"; import { delDeviceInfo, updateDeviceInfo } from "@/api/device/deviceInfo";
import markerInfoWindow from "../components/PopWindow/markerInfoWindow.vue"; import markerInfoWindow from "../components/PopWindow/markerInfoWindow.vue";
import { getArray } from "@/utils/gassafety.js"; import { getArray } from "@/utils/gassafety.js";
import { delPipe } from "@/api/device/pipe.js"; import { delPipe, updatePipe } from "@/api/device/pipe.js";
import vue from "../main"; import vue from "../main";
let defaultCenter = "石家庄"; let defaultCenter = "石家庄";
export let map; export let map;
...@@ -76,16 +76,16 @@ class gaodeMap { ...@@ -76,16 +76,16 @@ class gaodeMap {
// console.log("抬起来了"); // console.log("抬起来了");
}); });
// 地图开始平移删除infowindow // 地图开始平移删除infowindow
this.myMap.on("movestart",()=>{ this.myMap.on("movestart", () => {
// console.log("地图平移"); // console.log("地图平移");
this.closeInfoWindow() this.closeInfoWindow();
}) });
// 地图开始缩放删除infowindow // 地图开始缩放删除infowindow
this.myMap.on("zoomstart",()=>{ this.myMap.on("zoomstart", () => {
// console.log("缩放开始") // console.log("缩放开始")
this.closeInfoWindow() this.closeInfoWindow();
}) });
this.districtBoundaries(); this.districtBoundaries();
} }
...@@ -155,12 +155,12 @@ class gaodeMap { ...@@ -155,12 +155,12 @@ class gaodeMap {
offset: new AMap.Pixel(24, -38), offset: new AMap.Pixel(24, -38),
anchor: "left-top" anchor: "left-top"
}); });
infoWindow.on("mouseover",function () { infoWindow.on("mouseover", function() {
let options = map.getStatus(); let options = map.getStatus();
options.scrollWheel = false; options.scrollWheel = false;
map.setStatus(options); map.setStatus(options);
}); });
infoWindow.on("mouseout",function () { infoWindow.on("mouseout", function() {
let options = map.getStatus(); let options = map.getStatus();
options.scrollWheel = true; options.scrollWheel = true;
map.setStatus(options); map.setStatus(options);
...@@ -171,7 +171,10 @@ class gaodeMap { ...@@ -171,7 +171,10 @@ class gaodeMap {
offset: new AMap.Pixel(0, 5) offset: new AMap.Pixel(0, 5)
}); });
this.setMarkerIcon(marker); this.setMarkerIcon(marker);
if (DEVICE_TYPE.WORKORDER != markerType && DEVICE_TYPE.INSPECTOR != markerType) { if (
DEVICE_TYPE.WORKORDER != markerType &&
DEVICE_TYPE.INSPECTOR != markerType
) {
marker.content = this.getMarketContent(data); marker.content = this.getMarketContent(data);
marker.on("mouseover", infoOpen); marker.on("mouseover", infoOpen);
marker.on("mouseout", infoClose); marker.on("mouseout", infoClose);
...@@ -190,14 +193,40 @@ class gaodeMap { ...@@ -190,14 +193,40 @@ class gaodeMap {
editWindow.form = e.target.getExtData(); editWindow.form = e.target.getExtData();
editWindow.show(); editWindow.show();
} else if ("delete" == that.mapOperateType) { } else if ("delete" == that.mapOperateType) {
let diviceType = {"2":"调压箱","3":"阀门井","4":"流量计","7":"压力表",}; let diviceType = {
vue.$confirm('是否删除名称为"'+e.target.getExtData().deviceName+'"的'+diviceType[markerType]+" ?", "提示", { "2": "调压箱",
type: "warning" "3": "阀门井",
// center: true "4": "流量计",
}).then(() => { "7": "压力表"
map.remove(marker); };
that.deleteMarker(markerType, data.deviceId); vue
}).catch(() => { .$confirm(
'是否删除名称为"' +
e.target.getExtData().deviceName +
'"的' +
diviceType[markerType] +
" ?",
"提示",
{
type: "warning"
// center: true
}
)
.then(() => {
// that.deleteMarker(markerType, data.deviceId);
that.deleteMarker(markerType, data).then(res => {
if (res.code == 200) {
map.remove(marker);
// 数组里也删了
const ind = that.markers.indexOf(marker);
if (ind >= 0) {
that.markers.splice(ind, 1);
console.log(that.markers)
}
}
});
})
.catch(() => {
vue.$message({ vue.$message({
type: "info", type: "info",
// center:true, // center:true,
...@@ -220,22 +249,19 @@ class gaodeMap { ...@@ -220,22 +249,19 @@ class gaodeMap {
editWindow.form.longitude = e.lnglat.lng; editWindow.form.longitude = e.lnglat.lng;
editWindow.form.latitude = e.lnglat.lat; editWindow.form.latitude = e.lnglat.lat;
}); });
}else{ } else {
marker.on("mouseover",function(){ marker.on("mouseover", function() {
marker.setLabel({ marker.setLabel({
offset: new AMap.Pixel(0, -10), //设置文本标注偏移量 offset: new AMap.Pixel(0, -10), //设置文本标注偏移量
content: "<div class='info'>"+data.deviceName+"</div>", //设置文本标注内容 content: "<div class='info'>" + data.deviceName + "</div>", //设置文本标注内容
direction: 'top' //设置文本标注方位 direction: "top" //设置文本标注方位
}); });
}); });
marker.on("mouseout",function(){ marker.on("mouseout", function() {
marker.setLabel({ marker.setLabel({
content: null content: null
});
}); });
});
} }
this.markers.push(marker); this.markers.push(marker);
...@@ -256,8 +282,6 @@ class gaodeMap { ...@@ -256,8 +282,6 @@ class gaodeMap {
infoWindow.setContent(e.target.content); infoWindow.setContent(e.target.content);
infoWindow.open(map, e.target.getPosition()); infoWindow.open(map, e.target.getPosition());
that.markerInfoWindow = infoWindow; that.markerInfoWindow = infoWindow;
} }
} }
...@@ -334,14 +358,17 @@ class gaodeMap { ...@@ -334,14 +358,17 @@ class gaodeMap {
* @param delType * @param delType
* @param deviceId * @param deviceId
*/ */
deleteMarker(delType, deviceId) { deleteMarker(delType, deviceData) {
if ( if (
DEVICE_TYPE.REGEULATORBOX == delType || DEVICE_TYPE.REGEULATORBOX == delType ||
DEVICE_TYPE.VALUEWELL == delType || DEVICE_TYPE.VALUEWELL == delType ||
DEVICE_TYPE.FLOWMETER == delType || DEVICE_TYPE.FLOWMETER == delType ||
DEVICE_TYPE.PRESSUREGAGE == delType DEVICE_TYPE.PRESSUREGAGE == delType
) { ) {
delDeviceInfo(deviceId); // delDeviceInfo(deviceId);
const upDataObj = { ...deviceData };
upDataObj.isDel = 1;
return updateDeviceInfo(upDataObj);
} }
} }
...@@ -634,40 +661,76 @@ class gaodeMap { ...@@ -634,40 +661,76 @@ class gaodeMap {
// console.log("deviceType",deviceType); // console.log("deviceType",deviceType);
}); });
} }
// 其实是修改了状态,不是真的删除
lineDelete(obj) { lineDelete(obj) {
const { const {
lineData: { pipeName } lineData: { pipeName, deviceInfoList }
} = obj.getExtData(); } = obj.getExtData();
console.log("deviceInfoList", deviceInfoList);
var devices = " ";
for (var i = 0; i < deviceInfoList.length; i++) {
var item = deviceInfoList[i];
devices = devices + item.deviceName + " ";
}
vue vue
.$confirm(`是否删除名称为"${pipeName}"的管道 ?`, "提示", { .$confirm(
// confirmButtonText: "确定", '请确认是否删除管道名称为"' +
// cancelButtonText: "取消", pipeName +
type: "warning" '"的数据项,该管道下包含的设备(' +
// center: true devices +
}) ")将一并删除",
"提示",
{
// confirmButtonText: "确定",
// cancelButtonText: "取消",
type: "warning"
// center: true
}
)
.then(() => { .then(() => {
const { const { lineData } = obj.getExtData();
lineData: { pipeId } // updatePipe
} = obj.getExtData(); // delPipe(pipeId).then(res => {
console.log(pipeId); let upDataObj = { ...lineData };
delPipe(pipeId).then(res => { upDataObj.isDel = 1;
const index = this.polyLines.indexOf(obj); updatePipe(upDataObj).then(res => {
// 如果是老线,就要线删除原来的,然后重新包装一遍 if (res.code == 200) {
if (index >= 0) { const index = this.polyLines.indexOf(obj);
this.polyLines.splice(index, 1); // 如果是老线,就要线删除原来的,然后重新包装一遍
map.remove(obj); if (index >= 0) {
this.polyLines.splice(index, 1);
// 删除管道的时候,与管道管理额的设备也要删除
for (var i = 0; i < deviceInfoList.length; i++) {
const item = deviceInfoList[i];
for (let j = 0; j < this.markers.length; j++) {
const item2 = this.markers[j];
if (item.deviceId == item2.getExtData().deviceId) {
map.remove(item2);
const ind = this.markers.indexOf(item2);
if (ind >= 0) {
this.markers.splice(ind, 1);
}
break;
}
}
}
map.remove(obj);
}
vue.$message({
type: "success",
offset: 100,
// center:true,
message: "删除成功!"
});
// 关闭当前线条的infowindow
// this.closeLineInfoWindow();
console.log("改变线条");
} }
vue.$message({
type: "success",
offset: 100,
// center:true,
message: "删除成功!"
});
// 关闭当前线条的infowindow
// this.closeLineInfoWindow();
}); });
}) })
.catch(() => { .catch(err => {
console.log(err);
vue.$message({ vue.$message({
type: "info", type: "info",
// center:true, // center:true,
...@@ -752,25 +815,24 @@ class gaodeMap { ...@@ -752,25 +815,24 @@ class gaodeMap {
device.show(); device.show();
}); });
e.obj.on("mouseover",function () { e.obj.on("mouseover", function() {
that.mouseTool.close(); that.mouseTool.close();
}); });
e.obj.on("mouseout",function () { e.obj.on("mouseout", function() {
that.draw(that.deviceType); that.draw(that.deviceType);
}) });
that.markerOverlays.push(e.obj); that.markerOverlays.push(e.obj);
} }
if (e.obj && e.obj.getExtData().type == "newLine") { if (e.obj && e.obj.getExtData().type == "newLine") {
console.log("挂上事件"); console.log("挂上事件");
that.newLineAddEvent(e.obj); that.newLineAddEvent(e.obj);
// 记录这条线 // 记录这条线
// console.log(e.obj.getPath().length) // console.log(e.obj.getPath().length)
// 如果只有一个点,并没有连成线的时候就不close 大于一个点的时候才执行clse // 如果只有一个点,并没有连成线的时候就不close 大于一个点的时候才执行clse
console.log(that.lineType) console.log(that.lineType);
if (e.obj.getPath().length > 1) { if (e.obj.getPath().length > 1) {
that.newLineObj = e.obj; that.newLineObj = e.obj;
that.mouseTool.close(); that.mouseTool.close();
...@@ -803,22 +865,22 @@ class gaodeMap { ...@@ -803,22 +865,22 @@ class gaodeMap {
} }
case DEVICE_TYPE.REGEULATORBOX: { case DEVICE_TYPE.REGEULATORBOX: {
return createPop(regulatorBox, { return createPop(regulatorBox, {
title: val+ "调压箱" title: val + "调压箱"
}); });
} }
case DEVICE_TYPE.VALUEWELL: { case DEVICE_TYPE.VALUEWELL: {
return createPop(valveWell, { return createPop(valveWell, {
title: val+ "阀门井" title: val + "阀门井"
}); });
} }
case DEVICE_TYPE.FLOWMETER: { case DEVICE_TYPE.FLOWMETER: {
return createPop(flowMeter, { return createPop(flowMeter, {
title: val+ "流量计" title: val + "流量计"
}); });
} }
case DEVICE_TYPE.PRESSUREGAGE: { case DEVICE_TYPE.PRESSUREGAGE: {
return createPop(pressureGage, { return createPop(pressureGage, {
title: val+ "压力表" title: val + "压力表"
}); });
} }
} }
...@@ -902,7 +964,6 @@ class gaodeMap { ...@@ -902,7 +964,6 @@ class gaodeMap {
}); });
} }
closeAddMarker() { closeAddMarker() {
this.mouseTool.close(); this.mouseTool.close();
map.remove(this.markerOverlays); map.remove(this.markerOverlays);
......
...@@ -88,16 +88,16 @@ ...@@ -88,16 +88,16 @@
<el-table-column label="设备编号" align="center" prop="deviceCode" /> <el-table-column label="设备编号" align="center" prop="deviceCode" />
<el-table-column label="设备类型" align="center" prop="deviceType"> <el-table-column label="设备类型" align="center" prop="deviceType">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.deviceType == 1">调压</span> <span v-if="scope.row.deviceType == 1">调压</span>
<span v-if="scope.row.deviceType == 2">阀门井</span> <span v-if="scope.row.deviceType == 2">阀门井</span>
<span v-if="scope.row.deviceType == 3">流量计</span> <span v-if="scope.row.deviceType == 3">流量计</span>
<span v-if="scope.row.deviceType == 4">智能燃气</span> <span v-if="scope.row.deviceType == 4">压力</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备型号" align="center" prop="deviceModel" /> <el-table-column label="设备型号" align="center" prop="deviceModel" />
<el-table-column label="所在地址" align="center" prop="deviceAddr" /> <el-table-column label="所在地址" align="center" prop="deviceAddr" />
<el-table-column label="安装时间" align="center" prop="installationTime" width="180" /> <el-table-column label="安装日期" align="center" prop="installationTime" width="180" />
<el-table-column label="最后巡检时间" align="center" prop="inspectionTime" width="180" /> <el-table-column label="最后巡检日期" align="center" prop="inspectionTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
...@@ -133,306 +133,407 @@ ...@@ -133,306 +133,407 @@
/> />
<!-- 添加或修改设备信息对话框 --> <!-- 添加或修改设备信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> <el-dialog :title="title" :visible.sync="open" append-to-body @close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="135px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-form-item label="所属管道" prop="pipeId"> <el-col :span="11">
<el-select v-model="form.pipeId" placeholder="请选择所属管道" clearable size="small" style="width: 600px"> <el-form-item label="所属管道" prop="pipeId">
<el-option <el-select v-model="form.pipeId" placeholder="请选择所属管道" style="width: 100%" >
v-for="item in options" <el-option
:key="item.pipeId" v-for="item in options"
:label="item.pipeName" :key="item.pipeId"
:value="item.pipeId" :label="item.pipeName"
></el-option> :value="item.pipeId"
</el-select> >
</el-form-item> </el-option>
<el-form-item label="设备类型"> </el-select>
<el-select v-model="form.deviceType" placeholder="请选择设备类型" style="width: 600px"> </el-form-item>
<el-option </el-col>
v-for="dict in typeOptions"
:key="dict.dictValue" <el-col :span="12">
:label="dict.dictLabel" <el-form-item label="设备编号" prop="deviceCode">
:value="dict.dictValue" <el-input v-model="form.deviceCode" placeholder="请输入设备编号" />
></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-col :span="11">
<el-input v-model="form.deviceName" placeholder="请输入设备名称" style="width: 600px" /> <el-form-item label="设备类型" prop="deviceType">
</el-form-item> <el-select v-model="form.deviceType" placeholder="请选择设备类型" style="width: 100%" >
<el-form-item label="设备编号" prop="deviceCode"> <el-option
<el-input v-model="form.deviceCode" placeholder="请输入设备编号" style="width: 600px" /> v-for="dict in typeOptions"
</el-form-item> :key="dict.dictValue"
<el-form-item label="设备型号" prop="deviceModel"> :label="dict.dictLabel"
<el-input v-model="form.deviceModel" placeholder="请输入设备型号" style="width: 600px" /> :value="dict.dictValue"
</el-form-item> ></el-option>
<el-form-item label="物联网编号" prop="iotNo"> </el-select>
<el-input v-model="form.iotNo" placeholder="请输入物联网编号" /> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="所在地址" prop="deviceAddr">
<el-input v-model="form.deviceAddr" placeholder="请输入所在地址" style="width: 600px" /> <el-col :span="12">
</el-form-item> <el-form-item label="设备名称" prop="deviceName">
<el-form-item label="经纬度" > <el-input
<el-row> v-model="form.deviceName"
<el-col :span="8"> placeholder="请输入设备名称"
<el-input v-model.number="form.longitude" placeholder="请输入经度" /> />
</el-col> </el-form-item>
<el-col :span="8"> </el-col>
<el-input v-model.number="form.latitude" placeholder="请输入纬度"/>
</el-col> <el-col :span="11">
<el-col :span="5"> <el-form-item label="设备型号" prop="deviceModel">
<el-button type="primary" plain @click="MapdialogFun">选择经纬度</el-button> <el-input
v-model="form.deviceModel"
placeholder="请输入设备型号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物联网编号" prop="iotNo">
<el-input v-model="form.iotNo" placeholder="请输入物联网编号" />
</el-form-item>
</el-col>
<el-col :span="23">
<el-form-item label="所在地址" prop="deviceAddr">
<el-input v-model="form.deviceAddr" placeholder="请输入所在地址" />
</el-form-item>
</el-col>
<el-col :span="23">
<el-form-item label="经纬度坐标" prop="longitude">
<el-row>
<el-col :span="8">
<el-input v-model.number="form.longitude" placeholder="请输入经度" />
</el-col>
<el-col :span="8" style="margin-left: 10px">
<el-input v-model.number="form.latitude" placeholder="请输入纬度"/>
</el-col>
<el-col :span="5" style="margin-left: 10px">
<el-button type="primary" plain @click="MapdialogFun">选择经纬度</el-button>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="联系人" prop="linkman">
<el-input v-model="form.linkman" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input
type="number"
maxlength="12"
v-model="form.phone"
placeholder="请输入联系电话"
/>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="设备图片上传" prop="iconUrl">
<MyFileUpload
listType="picture-card"
@resFun="getFileInfo"
@remove="listRemove"
:fileArr="fileList"
/>
<el-input v-show="false" disabled v-model="form.iconUrl"></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="安装日期" prop="installationTime">
<el-col :span="11">
<el-date-picker clearable size="small"
style="width: 100%"
v-model="form.installationTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择安装日期">
</el-date-picker>
</el-col> </el-col>
</el-row> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="设备图片上传" prop="iconUrl">
<MyFileUpload <el-col :span="23">
listType="picture-card" <el-form-item label="备注信息" prop="remarks">
@resFun="getFileInfo" <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注信息" />
@remove="listRemove" </el-form-item>
:fileArr="fileList" </el-col>
/>
</el-form-item>
<el-form-item label="联系人" prop="linkman">
<el-input v-model="form.linkman" placeholder="请输入联系人" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
<el-form-item label="安装时间" prop="installationTime">
<el-date-picker clearable size="small"
v-model="form.installationTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择安装时间">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- <Mapdialog v-if="loadmap" :dialogTableVisible="dialogTableVisible" @dialogcancelFun="dialogcancelFun" :slat="form.latitude" :slng="form.longitude" @confirm="qrFun" />-->
<Mapdialog
v-if="loadmap"
:dialogTableVisible="dialogTableVisible"
@dialogcancelFun="dialogcancelFun"
:slat="form.latitude"
:slng="form.longitude"
@confirmFun="confirmFun($event)"
></Mapdialog>
</div> </div>
</template> </template>
<script> <script>
import { listDeviceInfo, getDeviceInfo, addDeviceInfo, updateDeviceInfo, exportDeviceInfo } from "@/api/device/deviceInfo"; import { listDeviceInfo, getDeviceInfo, addDeviceInfo, updateDeviceInfo, exportDeviceInfo } from "@/api/device/deviceInfo";
import { pipeAllInfoList } from "@/api/device/pipe"; import { pipeAllInfoList } from "@/api/device/pipe";
import MyFileUpload from '@/components/MyFileUpload'; import MyFileUpload from '@/components/MyFileUpload';
// import Mapdialog from "@/components/maplnglat.vue"; import Mapdialog from "@/components/mapDialog/checkDeviceLoaction.vue";
export default { export default {
name: "DeviceInfo", name: "DeviceInfo",
components: { components: {
MyFileUpload, MyFileUpload,
}, Mapdialog
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 设备信息表格数据
deviceInfoList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 管道列表
options: [],
// 上传文件列表
fileList: [],
// 地图
loadmap: false,
dialogTableVisible: false,
// 设备类型字典
typeOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
enterpriseId: null,
deviceName: null,
deviceCode: null,
deviceAddr: null,
deviceModel: null,
deviceType: null,
longitude: null,
latitude: null,
iotNo: null,
iconUrl: null,
linkman: null,
phone: null,
installationTime: null,
inspectionTime: null,
remarks: null
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
this.getDicts("t_device_type").then(response => {
this.typeOptions = response.data;
});
},
methods: {
/** 查询设备信息列表 */
getList() {
this.loading = true;
listDeviceInfo(this.queryParams).then(response => {
this.deviceInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
}, },
getFileInfo(res){ data() {
this.form.iconUrl = res.url; return {
}, // 遮罩层
listRemove(e) { loading: true,
this.form.url = ""; // 导出遮罩层
this.fileList = []; exportLoading: false,
}, // 选中数组
// qrFun(res) { ids: [],
// //确认选择经纬度 // 非单个禁用
// this.form.longitude = res.lng; single: true,
// this.form.latitude = res.lat; // 非多个禁用
// }, multiple: true,
// MapdialogFun() { // 显示搜索条件
// this.loadmap = true; showSearch: true,
// this.dialogTableVisible = true; // 总条数
// }, total: 0,
// dialogcancelFun() { // 设备信息表格数据
// this.loadmap = false; deviceInfoList: [],
// this.dialogTableVisible = false; // 弹出层标题
// }, title: "",
// 取消按钮 // 是否显示弹出层
cancel() { open: false,
this.open = false; // 管道列表
this.reset(); options: [],
this.fileList = []; // 上传文件列表
}, fileList: [],
// 表单重置 // 地图
reset() { loadmap: false,
this.form = { dialogTableVisible: false,
deviceId: null, // 设备类型字典
enterpriseId: null, typeOptions: [],
pipeId: null, // 查询参数
deviceName: null, queryParams: {
deviceAddr: null, pageNum: 1,
deviceModel: null, pageSize: 10,
deviceType: null, enterpriseId: null,
longitude: null, deviceName: null,
latitude: null, deviceCode: null,
iotNo: null, deviceAddr: null,
iconUrl: null, deviceModel: null,
linkman: null, deviceType: null,
phone: null, longitude: null,
installationTime: null, latitude: null,
inspectionTime: null, iotNo: null,
remarks: null iconUrl: null,
linkman: null,
phone: null,
installationTime: null,
inspectionTime: null,
remarks: null
},
// 表单参数
form: {},
// 表单校验
rules: {
pipeId: [
{ required: true, message: "请选择所属管道", trigger: "blur" },
],
deviceType: [
{ required: true, message: "请选择设备类型", trigger: "blur" },
],
deviceName: [
{ required: true, message: "请输入设备名称", trigger: "blur" },
],
deviceCode: [
{ required: true, message: "请输入设备编号", trigger: "blur" },
],
deviceModel: [
{ required: true, message: "请输入设备型号", trigger: "blur" },
],
deviceAddr: [
{ required: true, message: "请输入所在地址", trigger: "blur" },
],
longitude: [
{ required: true, message: "请输入经纬度", trigger: "blur" },
],
iotNo: [
{ required: true, message: "请输入物联网编号", trigger: "blur" },
],
/*linkman: [
{ required: true, message: "请输入联系人", trigger: "blur" }
],
phone: [
{ required: true, message: "请输入联系电话", trigger: "blur" },
{ min: 11, max: 11, message: "长度11个数字", trigger: "blur" },
],
iconUrl: [
{ required: true, message: "请上传图片", trigger: "change" }
],
installationTime: [
{ required: true, message: "请选择日期", trigger: "change" },
],*/
}
}; };
this.resetForm("form");
}, },
/** 搜索按钮操作 */ created() {
handleQuery() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, this.getDicts("t_device_type").then(response => {
/** 重置按钮操作 */ this.typeOptions = response.data;
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.deviceId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
pipeAllInfoList().then(response => {
this.options = response.data;
this.open = true;
this.title = "添加设备信息";
}); });
}, },
/** 修改按钮操作 */ methods: {
handleUpdate(row) { /** 查询设备信息列表 */
this.reset(); getList() {
pipeAllInfoList().then(response => { this.loading = true;
this.options = response.data; listDeviceInfo(this.queryParams).then(response => {
}); this.deviceInfoList = response.rows;
const deviceId = row.deviceId || this.ids this.total = response.total;
getDeviceInfo(deviceId).then(response => { this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改设备信息";
});
if (this.form.iconUrl) {
this.fileList.push({
url: this.form.iconUrl,
}); });
} },
}, getFileInfo(res){
/** 提交按钮 */ this.form.iconUrl = res.url;
submitForm() { },
this.$refs["form"].validate(valid => { listRemove(e) {
if (valid) { this.form.iconUrl = "";
if (this.form.deviceId != null) { this.fileList = [];
updateDeviceInfo(this.form).then(response => { },
this.msgSuccess("修改成功"); confirmFun(res) {
this.open = false; //确认选择经纬度
this.getList(); this.form.longitude = res.lng;
}); this.form.latitude = res.lat;
} else { },
addDeviceInfo(this.form).then(response => { MapdialogFun() {
this.msgSuccess("新增成功"); this.loadmap = true;
this.open = false; this.dialogTableVisible = true;
this.getList(); },
dialogcancelFun() {
this.loadmap = false;
this.dialogTableVisible = false;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
this.fileList = [];
},
// 表单重置
reset() {
this.form = {
deviceId: null,
enterpriseId: null,
pipeId: null,
deviceName: null,
deviceAddr: null,
deviceModel: null,
deviceType: null,
longitude: null,
latitude: null,
iotNo: null,
iconUrl: null,
linkman: null,
phone: null,
installationTime: null,
inspectionTime: null,
remarks: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.deviceId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
pipeAllInfoList().then(response => {
this.options = response.data;
this.open = true;
this.title = "新增设备信息";
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
pipeAllInfoList().then(response => {
this.options = response.data;
});
const deviceId = row.deviceId || this.ids
getDeviceInfo(deviceId).then(response => {
this.form = response.data;
if (this.form.iconUrl) {
this.fileList.push({
url: this.form.iconUrl,
}); });
} }
} this.open = true;
}); this.title = "修改设备信息";
}, });
/** 删除按钮操作 */ },
handleDelete(row) { /** 提交按钮 */
row.isDel = "1"; submitForm() {
this.$confirm('是否确认删除设备名称为"' + row.deviceName + '"的数据项?', "警告", { this.$refs["form"].validate(valid => {
confirmButtonText: "确定", if (valid) {
cancelButtonText: "取消", if (this.form.deviceId != null) {
type: "warning" updateDeviceInfo(this.form).then(response => {
}).then(function () { this.msgSuccess("修改成功");
return updateDeviceInfo(row); this.open = false;
}).then(() => { this.getList();
this.getList(); });
this.msgSuccess("已删除"); } else {
}).catch(() => { console.log(this.form, "this.form");
}); addDeviceInfo(this.form).then(response => {
}, this.msgSuccess("新增成功");
/** 导出按钮操作 */ this.open = false;
handleExport() { this.getList();
const queryParams = this.queryParams; });
this.$confirm('是否确认导出所有设备信息数据项?', "警告", { }
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
row.isDel = "1";
this.$confirm('是否确认删除设备名称为"' + row.deviceName + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return updateDeviceInfo(row);
}).then(() => {
this.getList();
this.msgSuccess("已删除");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有设备信息数据项?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
...@@ -443,18 +544,29 @@ export default { ...@@ -443,18 +544,29 @@ export default {
this.download(response.msg); this.download(response.msg);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
}, },
/** 详细信息跳转 */ /** 详细信息跳转 */
showDetail(row) { showDetail(row) {
this.$router.push({ this.$router.push({
path: '/device/deviceInfoDetail', path: '/device/deviceInfoDetail',
query: { query: {
deviceId: row.deviceId deviceId: row.deviceId
} }
}) })
}, },
} }
}; };
</script> </script>
<style> <style>
.notice {
background: white;
position: fixed;
top: 102px;
right: 0;
left: 0;
margin: auto;
width: 80%;
height: 80%;
border: solid 1px;
}
</style> </style>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<el-form-item label="设备型号:" prop="deviceModel"> <el-form-item label="设备型号:" prop="deviceModel">
<font>{{form.deviceModel}}</font> <font>{{form.deviceModel}}</font>
</el-form-item> </el-form-item>
<el-form-item label="物联网编号:" prop="iotNo" v-if="form.iotNo != null || form.iotNo != ''"> <el-form-item label="物联网编号:" prop="iotNo">
<font>{{form.iotNo}}</font> <font>{{form.iotNo}}</font>
</el-form-item> </el-form-item>
<el-form-item label="联系人:" prop="linkman"> <el-form-item label="联系人:" prop="linkman">
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</el-form> </el-form>
</div> </div>
<div id="marbox" style="width: 700px;height: 400px;float: left;margin-top: -25px; border: 1px solid rgb(218, 213, 213);"> <div id="marbox" style="width: 700px;height: 390px;float: left;margin-top: -25px; border: 1px solid rgb(218, 213, 213);">
<div style="width: 100%;height: 100%" id="container"></div> <div style="width: 100%;height: 100%" id="container"></div>
</div> </div>
</div> </div>
...@@ -106,12 +106,9 @@ ...@@ -106,12 +106,9 @@
this.gaoMap = gaoMap; this.gaoMap = gaoMap;
}, },
methods: { methods: {
/** 获取巡检计划详情 */
getDetail (){ getDetail (){
getDeviceInfo(this.deviceId).then(response =>{ getDeviceInfo(this.deviceId).then(response =>{
this.form = response.data; this.form = response.data;
console.log("this.form",this.form)
this.gaoMap.resetMapCenter([this.form.longitude, this.form.latitude]); this.gaoMap.resetMapCenter([this.form.longitude, this.form.latitude]);
this.gaoMap.addMarker(DEVICE_TYPE.WORKORDER, this.form) this.gaoMap.addMarker(DEVICE_TYPE.WORKORDER, this.form)
}); });
......
...@@ -101,8 +101,8 @@ ...@@ -101,8 +101,8 @@
</el-table-column> </el-table-column>
<el-table-column label="管道长度" align="center" prop="pipeLength" /> <el-table-column label="管道长度" align="center" prop="pipeLength" />
<el-table-column label="所在地址" align="center" prop="pipeAddr" /> <el-table-column label="所在地址" align="center" prop="pipeAddr" />
<el-table-column label="安装时间" align="center" prop="installationTime" width="180" /> <el-table-column label="安装日期" align="center" prop="installationTime" width="180" />
<el-table-column label="最后巡检时间" align="center" prop="inspectionTime" width="180" /> <el-table-column label="最后巡检日期" align="center" prop="inspectionTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
...@@ -138,268 +138,350 @@ ...@@ -138,268 +138,350 @@
/> />
<!-- 添加或修改管道信息对话框 --> <!-- 添加或修改管道信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> <el-dialog :title="title" :visible.sync="open" append-to-body @close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="135px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-form-item label="管道类型"> <el-col :span="23">
<el-select v-model="form.pipeType" placeholder="请选择管道类型" style="width: 600px"> <el-form-item label="管道名称" prop="pipeName">
<el-option <el-input v-model="form.pipeName" placeholder="请输入管道名称" />
v-for="dict in typeOptions" </el-form-item>
:key="dict.dictValue" </el-col>
:label="dict.dictLabel" <el-col :span="11">
:value="dict.dictValue" <el-form-item label="管道编号" prop="pipeCode">
></el-option> <el-input v-model="form.pipeCode" placeholder="请输入管道编号" />
</el-select> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="管道名称" prop="pipeName"> <el-col :span="12">
<el-input v-model="form.pipeName" placeholder="请输入管道名称" style="width: 600px"/> <el-form-item label="管道长度" prop="pipeLength">
</el-form-item> <el-input type="number" min="0" v-model="form.pipeLength" placeholder="请输入管道长度">
<el-form-item label="管道编号" prop="pipeCode"> <i
<el-input v-model="form.pipeCode" placeholder="请输入管道编号" style="width: 600px" /> slot="suffix"
</el-form-item> style="color: #000; font-style: normal; margin-right: 10px"
<el-form-item label="管道压力"> ></i
<el-select v-model="form.pipePressure" placeholder="请选择管道压力" style="width: 600px"> >
<el-option </el-input>
v-for="dict in pressureOptions" </el-form-item>
:key="dict.dictValue" </el-col>
:label="dict.dictLabel" <el-col :span="23">
:value="dict.dictValue" <el-form-item label="管道所在地址" prop="pipeAddr">
></el-option> <el-input v-model="form.pipeAddr" placeholder="请输入管道所在地址" />
</el-select> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="所在地址" prop="pipeAddr"> <el-col :span="23">
<el-input v-model="form.pipeAddr" placeholder="请输入所在地址" style="width: 600px" /> <el-form-item label="管道坐标" prop="coordinates">
</el-form-item> <el-col :span="18">
<el-form-item label="管道长度" prop="pipeLength"> <el-input type="textarea" v-model="form.coordinates" placeholder="请输入管道坐标" />
<el-input v-model="form.pipeLength"placeholder="请输入管道长度" style="width: 600px" /> </el-col>
</el-form-item> <el-col :span="5" style="margin-left: 10px">
<el-form-item label="管道坐标" prop="coordinates"> <el-button type="primary" plain @click="MapdialogFun">选择管道坐标</el-button>
<el-col :span="18"> </el-col>
<el-input v-model="form.coordinates" type="textarea" placeholder="请输入坐标" /> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col>
<el-button type="primary" plain @click="MapdialogFun">选择坐标</el-button> <el-form-item label="管道类型" prop="pipeType">
</el-col> <el-radio-group v-model="form.pipeType">
</el-form-item> <el-radio label="1">地埋管线</el-radio>
<el-form-item label="设备图片上传" prop="iconUrl"> <el-radio label="2">地表管线</el-radio>
<MyFileUpload </el-radio-group>
listType="picture-card" </el-form-item>
@resFun="getFileInfo" </el-col>
@remove="listRemove" <el-col>
:fileArr="fileList" <el-form-item label="管道压力" prop="pipePressure">
/> <!-- select -->
</el-form-item> <el-radio-group v-model="form.pipePressure">
<el-form-item label="安装时间" prop="installationTime"> <!-- 1低压,2中压,3次高压,4高压 -->
<el-date-picker clearable size="small" <el-radio label="1">低压</el-radio>
v-model="form.installationTime" <el-radio label="2">中压</el-radio>
type="datetime" <el-radio label="3">次高压</el-radio>
value-format="yyyy-MM-dd HH:mm:ss" <el-radio label="4">高压</el-radio>
placeholder="选择安装时间"> </el-radio-group>
</el-date-picker> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="备注" prop="remarks"> <el-col>
<el-input v-model="form.remarks" placeholder="请输入备注" style="width: 600px" /> <el-form-item label="管道图片上传" prop="iconUrl">
</el-form-item> <MyFileUpload
listType="picture-card"
@resFun="getFileInfo"
@remove="listRemove"
:fileArr="fileList"
/>
<el-input v-show="false" disabled v-model="form.iconUrl"></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="安装日期" prop="installationTime">
<el-col :span="11">
<el-date-picker clearable size="small"
style="width: 100%"
v-model="form.installationTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择安装日期">
</el-date-picker>
</el-col>
</el-form-item>
</el-col>
<el-col :span="23">
<el-form-item label="备注信息" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入备注信息" />
</el-form-item>
</el-col>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<Mapdialog
v-if="loadmap"
:dialogTableVisible="dialogTableVisible"
@dialogcancelFun="dialogcancelFun"
@confirmFun="confirmFun($event)"
:str="str"
></Mapdialog>
</div> </div>
</template> </template>
<script> <script>
import { listPipe, getPipe, delPipe, addPipe, updatePipe, exportPipe } from "@/api/device/pipe"; import { listPipe, getPipe, addPipe, updatePipe, exportPipe } from "@/api/device/pipe";
import MyFileUpload from '@/components/MyFileUpload'; import MyFileUpload from '@/components/MyFileUpload';
import Mapdialog from "@/components/mapDialog/checkPipeLineLocation.vue";
export default { export default {
name: "Pipe", name: "Pipe",
components: { components: {
MyFileUpload MyFileUpload,
}, Mapdialog
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 管道信息表格数据
pipeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 上传文件列表
fileList: [],
// 管道类型字典
typeOptions: [],
// 管道压力字典
pressureOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
enterpriseId: null,
pipeName: null,
pipeAddr: null,
coordinates: null,
pipeLength: null,
pipeType: null,
pipePressure: null,
iconUrl: null,
installationTime: null,
inspectionTime: null,
remarks: null
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
this.getDicts("t_pipe_type").then(response => {
this.typeOptions = response.data;
});
this.getDicts("t_pipe_pressure").then(response => {
this.pressureOptions = response.data;
});
},
methods: {
/** 查询管道信息列表 */
getList() {
this.loading = true;
listPipe(this.queryParams).then(response => {
this.pipeList = response.rows;
this.total = response.total;
this.loading = false;
});
},
getFileInfo(res){
this.form.iconUrl = res.url;
}, },
listRemove(e) { data() {
this.form.url = ""; return {
this.fileList = []; // 遮罩层
}, loading: true,
// 取消按钮 // 导出遮罩层
cancel() { exportLoading: false,
this.open = false; // 选中数组
this.reset(); ids: [],
this.fileList = []; // 非单个禁用
}, single: true,
// 表单重置 // 非多个禁用
reset() { multiple: true,
this.form = { // 显示搜索条件
pipeId: null, showSearch: true,
enterpriseId: null, // 总条数
pipeName: null, total: 0,
pipeAddr: null, // 管道信息表格数据
coordinates: null, pipeList: [],
pipeLength: null, // 弹出层标题
pipeType: null, title: "",
pipePressure: null, // 是否显示弹出层
iconUrl: null, open: false,
installationTime: null, // 上传文件列表
inspectionTime: null, fileList: [],
remarks: null // 地图
loadmap: false,
dialogTableVisible: false,
str: "",
// 管道压力数据字典
pressureOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
enterpriseId: null,
pipeName: null,
pipeAddr: null,
coordinates: null,
pipeLength: null,
pipeType: null,
pipePressure: null,
iconUrl: null,
installationTime: null,
inspectionTime: null,
remarks: null
},
// 表单参数
form: {
pipeName: "",
pipeType: "1",
pipePressure: "1",
iconUrl: "",
coordinates: ""
},
// 表单校验
rules: {
pipeName: [
{ required: true, message: "请输入管道名称", trigger: "blur" },
],
pipeCode: [
{ required: true, message: "请输入管道编号", trigger: "blur" },
],
pipeLength: [
{ required: true, message: "请输入管道长度", trigger: "blur" },
],
pipeAddr: [
{ required: true, message: "请输入管道所在地址", trigger: "blur" },
],
pipeType: [
{ required: true, message: "请选择管道类型", trigger: "blur" },
],
pipePressure: [
{ required: true, message: "请选择管道压力", trigger: "blur" },
],
coordinates: [
{ required: true, message: "请选择管道坐标", trigger: "blur" },
],
/*iconUrl: [
{ required: true, message: "请上传图片", trigger: "change" },
],
installationTime: [
{ required: true, message: "请选择日期", trigger: "change" },
],*/
}
}; };
this.fileList = [];
this.resetForm("form");
}, },
/** 搜索按钮操作 */ created() {
handleQuery() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, this.getDicts("t_pipe_type").then(response => {
/** 重置按钮操作 */ this.typeOptions = response.data;
resetQuery() { });
this.resetForm("queryForm"); this.getDicts("t_pipe_pressure").then(response => {
this.handleQuery(); this.pressureOptions = response.data;
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.pipeId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加管道信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const pipeId = row.pipeId || this.ids
getPipe(pipeId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改管道信息";
if (this.form.iconUrl) {
this.fileList.push({
name: this.form.iconUrl,
});
}
}); });
}, },
/** 提交按钮 */ methods: {
submitForm() { /** 查询管道信息列表 */
this.$refs["form"].validate(valid => { getList() {
if (valid) { this.loading = true;
if (this.form.pipeId != null) { listPipe(this.queryParams).then(response => {
updatePipe(this.form).then(response => { this.pipeList = response.rows;
this.msgSuccess("修改成功"); this.total = response.total;
this.open = false; this.loading = false;
this.getList(); });
}); },
} else { getFileInfo(res){
addPipe(this.form).then(response => { this.form.iconUrl = res.url;
this.msgSuccess("新增成功"); },
this.open = false; listRemove(e) {
this.getList(); this.form.iconUrl = "";
this.fileList = [];
},
confirmFun(res) {
//确认选择坐标
this.form.coordinates = res;
},
MapdialogFun() {
this.loadmap = true;
this.dialogTableVisible = true;
},
dialogcancelFun() {
this.loadmap = false;
this.dialogTableVisible = false;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
this.fileList = [];
},
// 表单重置
reset() {
this.form = {
pipeId: null,
enterpriseId: null,
pipeName: null,
pipeAddr: null,
coordinates: null,
pipeLength: null,
pipeType: null,
pipePressure: null,
iconUrl: null,
installationTime: null,
inspectionTime: null,
remarks: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.pipeId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "新增管道信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const pipeId = row.pipeId || this.ids
getPipe(pipeId).then(response => {
this.form = response.data;
if (this.form.iconUrl) {
this.fileList.push({
url: this.form.iconUrl,
}); });
} }
this.open = true;
this.title = "修改管道信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.pipeId != null) {
updatePipe(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPipe(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
row.isDel = "1";
var devices = " ";
for(var i = 0; i < row.deviceInfoList.length; i++){
var obj = row.deviceInfoList[i];
devices = devices + obj.deviceName + " ";
} }
}); this.$confirm('请确认是否删除管道名称为"' + row.pipeName + '"的数据项,该管道下包含的设备(' + devices + ')将一并被删除', "警告", {
}, confirmButtonText: "确定",
/** 删除按钮操作 */ cancelButtonText: "取消",
handleDelete(row) { type: "warning"
row.isDel = "1"; }).then(function () {
var devices = " "; return updatePipe(row);
for(var i = 0; i < row.deviceInfoList.length; i++){ }).then(() => {
var obj = row.deviceInfoList[i]; this.getList();
devices = devices + obj.deviceName + " "; this.msgSuccess("已删除");
} }).catch(() => {
this.$confirm('请确认是否删除管道名称为"' + row.pipeName + '"的数据项,该管道下包含的设备(' + devices + ')将一并被删除', "警告", { });
confirmButtonText: "确定", },
cancelButtonText: "取消", /** 导出按钮操作 */
type: "warning" handleExport() {
}).then(function () { const queryParams = this.queryParams;
return updatePipe(row); this.$confirm('是否确认导出所有管道信息数据项?', "警告", {
}).then(() => {
this.getList();
this.msgSuccess("已删除");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有管道信息数据项?', "警告", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
...@@ -410,16 +492,30 @@ export default { ...@@ -410,16 +492,30 @@ export default {
this.download(response.msg); this.download(response.msg);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
}, },
/** 详细信息跳转 */ /** 详细信息跳转 */
showDetail(row) { showDetail(row) {
this.$router.push({ this.$router.push({
path: '/device/pipeDetail', path: '/device/pipeDetail',
query: { query: {
pipeId: row.pipeId pipeId: row.pipeId
} }
}) })
}, },
} }
}; };
</script> </script>
<style>
.notice {
background: white;
position: fixed;
top: 102px;
right: 0;
left: 0;
margin: auto;
width: 80%;
height: 80%;
border: solid 1px;
}
</style>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</el-form> </el-form>
</div> </div>
<div id="marbox" style="width: 700px;height: 400px;float: left;margin-top: -25px; border: 1px solid rgb(218, 213, 213);"> <div id="marbox" style="width: 700px;height: 390px;float: left;margin-top: -25px; border: 1px solid rgb(218, 213, 213);">
<div style="width: 100%;height: 100%" id="container"></div> <div style="width: 100%;height: 100%" id="container"></div>
</div> </div>
</div> </div>
...@@ -92,12 +92,9 @@ ...@@ -92,12 +92,9 @@
this.gaoMap = gaoMap; this.gaoMap = gaoMap;
}, },
methods: { methods: {
/** 获取巡检计划详情 */
getDetail (){ getDetail (){
getPipe(this.pipeId).then(response =>{ getPipe(this.pipeId).then(response =>{
this.form = response.data; this.form = response.data;
console.log("this.form",this.form)
this.gaoMap.resetMapCenter([this.form.longitude, this.form.latitude]); this.gaoMap.resetMapCenter([this.form.longitude, this.form.latitude]);
this.gaoMap.addMarker(DEVICE_TYPE.WORKORDER, this.form) this.gaoMap.addMarker(DEVICE_TYPE.WORKORDER, this.form)
}); });
......
...@@ -342,6 +342,7 @@ export default { ...@@ -342,6 +342,7 @@ export default {
created() { created() {
// 让左边的框隐藏 // 让左边的框隐藏
this.$store.dispatch("app/toggleDevice", "mobile"); this.$store.dispatch("app/toggleDevice", "mobile");
console.log("sasdasdas")
}, },
mounted() { mounted() {
...@@ -396,7 +397,6 @@ export default { ...@@ -396,7 +397,6 @@ export default {
} }
}); });
}, },
getDeviceInfo(queryParams) { getDeviceInfo(queryParams) {
this.loading = true; this.loading = true;
return getAllDeviceInfo(queryParams).then((response) => { return getAllDeviceInfo(queryParams).then((response) => {
......
...@@ -81,7 +81,7 @@ export default { ...@@ -81,7 +81,7 @@ export default {
code: [{ required: true, trigger: "change", message: "验证码不能为空" }] code: [{ required: true, trigger: "change", message: "验证码不能为空" }]
}, },
loading: false, loading: false,
redirect: "/index" redirect: ""
}; };
}, },
watch: { watch: {
...@@ -134,7 +134,9 @@ export default { ...@@ -134,7 +134,9 @@ export default {
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
this.$store.dispatch("Login", this.loginForm).then(() => { this.$store.dispatch("Login", this.loginForm).then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); // this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
// console.log(this.redirect)
this.$router.push({ path: "/enterprise/mapView" || "/" }).catch(()=>{});
}).catch(() => { }).catch(() => {
this.loading = false; this.loading = false;
this.getCode(); this.getCode();
......
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