Commit d13af288 by 潘建波

提交预置位设置

1 parent 2d6459fb
No preview for this file type
...@@ -33,11 +33,15 @@ let service = axios.create({ ...@@ -33,11 +33,15 @@ let service = axios.create({
// 添加请求拦截器 // 添加请求拦截器
service.interceptors.request.use( service.interceptors.request.use(
config => { config => {
// startLoading(); // startLoading();
let atoken = localStorage.getItem("atoken"); let atoken = localStorage.getItem("atoken");
if (atoken) { if (atoken) {
// 判断是否存在token,如果存在的话,则每个http header都加上token // 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.authorization = atoken; if (config.url.indexOf("codes") > -1) {
//
} else {
config.headers.authorization = atoken;
}
} else { } else {
router.push("/login"); router.push("/login");
// endLoading(); // endLoading();
......
...@@ -3,14 +3,14 @@ import axios from "axios"; ...@@ -3,14 +3,14 @@ import axios from "axios";
console.log(process.env.NODE_ENV); console.log(process.env.NODE_ENV);
switch (process.env.NODE_ENV) { switch (process.env.NODE_ENV) {
case "development": case "development":
baseUrl = "/api"; // 测试环境url baseUrl = "http://192.168.9.133:20080"; // 测试环境url
// baseUrl = "http://192.168.9.61:8086"; // baseUrl = "http://192.168.9.61:8086";
break; break;
case "pre": case "pre":
baseUrl = "https://pre-server.feleti.cn"; // 预上线环境url baseUrl = "https://pre-server.feleti.cn"; // 预上线环境url
break; break;
case "production": case "production":
baseUrl = "http://vion-panda.51vip.biz:52510"; // 生产环境url baseUrl = "http://192.168.9.133:20080"; // 生产环境url
break; break;
} }
......
...@@ -242,4 +242,28 @@ body{ ...@@ -242,4 +242,28 @@ body{
} }
.el-menu-item.is-active .submenuicon{ .el-menu-item.is-active .submenuicon{
background:rgba(0,105,255,1)!important; background:rgba(0,105,255,1)!important;
}
.el-input-group__append{
background:rgba(0,105,255,1)!important;
color: #ffffff;
}
.search-vchan .el-input-group {
box-shadow:-1.2px 2px 1px 0px rgba(78, 8, 8, 0.1);
}
.card-hover:hover {
webkit-transform: translateY(-4px) scale(1);
-moz-transform: translateY(-4px) scale(1.01);
-ms-transform: translateY(-4px) scale(1.01);
-o-transform: translateY(-4px) scale(1.01);
transform: translateY(-4px) scale(1.01);
-webkit-box-shadow: 0 14px 24px rgba(62,57,107,.1);
box-shadow: 0 14px 24px rgba(62,57,107,.1);
}
.card-hover {
-webkit-transition: all .25s ease;
-o-transition: all .25s ease;
-moz-transition: all .25s ease;
transition: all .25s ease;
} }
\ No newline at end of file \ No newline at end of file
...@@ -17,15 +17,15 @@ ...@@ -17,15 +17,15 @@
<div class="item-box"> <div class="item-box">
<div class="icon el-icon-bell"></div> <div class="icon el-icon-bell"></div>
<div class="item-info-box"> <div class="item-info-box">
<div>运行异常资源</div> <div>运行异常</div>
<div><span>6</span></div> <div><span>6</span> </div>
</div> </div>
</div> </div>
<div class="item-box"> <div class="item-box">
<div class="icon el-icon-s-order"></div> <div class="icon el-icon-s-order"></div>
<div class="item-info-box"> <div class="item-info-box">
<div>信息存储量</div> <div>信息存储量</div>
<div> <span>1.2</span> T</div> <div><span>1.2</span> T</div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -5,13 +5,15 @@ ...@@ -5,13 +5,15 @@
:data="taskInfo.mtasks[0].scenes" :data="taskInfo.mtasks[0].scenes"
border border
stripe stripe
highlight-current-row
style="width: 80%;float:left" style="width: 80%;float:left"
height="25vh" height="25vh"
@current-change="handleCurrentChange"
> >
<el-table-column label="序号" type="index" width="50" align="center"> <el-table-column label="序号" type="index" width="50" align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="position_num"
align="center" align="center"
label="预置位编号" label="预置位编号"
width="180" width="180"
...@@ -60,7 +62,7 @@ ...@@ -60,7 +62,7 @@
<handleparam ref="handleparam"></handleparam> <handleparam ref="handleparam"></handleparam>
</div> </div>
<div class="yt-box"> <div class="yt-box">
<ytconfig ref="yt"></ytconfig> <ytconfig ref="yt" @subpostion="submitPosion"></ytconfig>
</div> </div>
<div> <div>
<parameter ref="parameter"></parameter> <parameter ref="parameter"></parameter>
...@@ -108,6 +110,17 @@ ...@@ -108,6 +110,17 @@
<el-input v-model="timer" style="padding-right:23px"></el-input> <el-input v-model="timer" style="padding-right:23px"></el-input>
</div> </div>
</div> </div>
<div class="sel-box">
<span class="title">开启轮休:</span>
<div class="timer-sel">
<el-switch
width="30"
v-model="polling_state"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</div>
</div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleTimerClose">取 消</el-button> <el-button @click="handleTimerClose">取 消</el-button>
<el-button type="primary" @click="submitTimer">确 定</el-button> <el-button type="primary" @click="submitTimer">确 定</el-button>
...@@ -126,11 +139,13 @@ export default { ...@@ -126,11 +139,13 @@ export default {
data() { data() {
return { return {
timer: 0, timer: 0,
polling_state: false,
timersel: 0, timersel: 0,
timerDialog: false, timerDialog: false,
curindex: 0, curindex: 0,
timeroptions: [30, 40, 50, 60, 100], timeroptions: [30, 40, 50, 60, 100],
timerscenes: null, timerscenes: null,
currentRow: null,
taskInfo: { taskInfo: {
mtasks: [ mtasks: [
{ {
...@@ -166,7 +181,7 @@ export default { ...@@ -166,7 +181,7 @@ export default {
this.$refs.handleparam.show(type); this.$refs.handleparam.show(type);
}, },
setsounces() { setsounces() {
this.$refs.yt.openyt(); this.$refs.yt.openyt(this.currentRow);
}, },
getTaskParams() { getTaskParams() {
this.$api.task.getTaskParams(this.taskid, this.subtaskid).then(data => { this.$api.task.getTaskParams(this.taskid, this.subtaskid).then(data => {
...@@ -175,6 +190,7 @@ export default { ...@@ -175,6 +190,7 @@ export default {
}, },
setTimer(data) { setTimer(data) {
this.timerscenes = data; this.timerscenes = data;
this.polling_state = data.pollingState;
this.$store.commit("setocxstate", 0); this.$store.commit("setocxstate", 0);
this.timerDialog = true; this.timerDialog = true;
}, },
...@@ -182,11 +198,30 @@ export default { ...@@ -182,11 +198,30 @@ export default {
this.timerDialog = false; this.timerDialog = false;
this.$store.commit("setocxstate", 1); this.$store.commit("setocxstate", 1);
}, },
handleCurrentChange(val) {
this.currentRow = val;
},
submitPosion(positionnum) {
this.taskInfo.mtasks[0].scenes.map(ele => {
if (ele.scene_unid == this.currentRow.scene_unid) {
ele.position_num = positionnum;
}
});
this.subRoi(this.taskInfo.mtasks);
},
submitTimer(item) { submitTimer(item) {
this.taskInfo.mtasks[0].time_interval = this.timer; this.taskInfo.mtasks[0].scenes.map(ele => {
if (ele.scene_unid == this.currentRow.scene_unid) {
ele.runtime = this.timer;
ele.pollingState = this.polling_state;
}
});
this.subRoi(this.taskInfo.mtasks);
},
subRoi(mdata) {
let data = { let data = {
subtask_id: this.subtaskid, subtask_id: this.subtaskid,
mtasks: this.taskInfo.mtasks mtasks: mdata
}; };
this.$api.task.editRoi(this.taskid, this.subtaskid, data).then(res => { this.$api.task.editRoi(this.taskid, this.subtaskid, data).then(res => {
if (res.ecode == 200) { if (res.ecode == 200) {
...@@ -201,14 +236,14 @@ export default { ...@@ -201,14 +236,14 @@ export default {
}, },
showview() { showview() {
let routeData = this.$router.resolve({ let routeData = this.$router.resolve({
name: "show", name: "show",
query: { query: {
taskid: this.taskid, taskid: this.taskid,
subtaskid: this.subtaskid, subtaskid: this.subtaskid,
playurl: this.playurl playurl: this.playurl
} }
}); });
window.open(routeData.href, '_blank'); window.open(routeData.href, "_blank");
}, },
submit: function(xml, type) { submit: function(xml, type) {
let postObj = { let postObj = {
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
</div> </div>
<div class="right-bottom-box"> <div class="right-bottom-box">
<div class="setyzw item-box"> <div class="setyzw item-box">
<el-input placeholder="预置位编号"></el-input> <el-input placeholder="预置位编号" v-model="presetindex"></el-input>
</div> </div>
<div class="subbtn item-box"> <div class="subbtn item-box">
<el-button @click="subset">确定</el-button> <el-button @click="subset">确定</el-button>
...@@ -104,11 +104,22 @@ export default { ...@@ -104,11 +104,22 @@ export default {
value2: 0, value2: 0,
value3: 0, value3: 0,
value4: 0, value4: 0,
presetindex: "",
curtask:{},
}; };
}, },
methods: { methods: {
openyt() { openyt(curtask) {
this.showyt = true; if (curtask) {
this.curtask = curtask;
this.showyt = true;
this.presetindex = curtask.position_num;
} else {
this.$message({
message: "请选择要操作的预置位",
type: "warning"
});
}
}, },
closeyt() { closeyt() {
this.showyt = false; this.showyt = false;
...@@ -121,23 +132,7 @@ export default { ...@@ -121,23 +132,7 @@ export default {
VionVideo.VionPTZonrol(null, nType, nParam); VionVideo.VionPTZonrol(null, nType, nParam);
}, },
subset() { subset() {
let mtasks = this.allMask.mtasks; this.$emit("subpostion", this.presetindex);
this.allMask.mtasks.forEach(ele => {
ele.scenes[this.curindex].algo_type = this.algo_type;
ele.scenes[this.curindex].position_name = this.position_name;
ele.scenes[this.curindex].position_num = this.position_num;
});
let reqObj = {
subtask_id: this.curentSubTaskId,
mtasks: this.allMask.mtasks
};
this.$api.task
.editRoi(this.curentTaskId, this.curentSubTaskId, reqObj)
.then(res => {
if (data.ecode == "200") {
this.closeyt();
}
});
} }
} }
}; };
......
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="播放" placement="bottom" effect="light" :visible-arrow=false> <el-tooltip content="播放" placement="bottom" effect="light" :visible-arrow=false>
<span :class="{'iconfont icon-bofang playIcon':true,'no-btn':scope.row.video&&scope.row.video[0].src_url!=''?false:true}" @click="playFun(scope.$index, scope.row)"></span> <span :class="{'iconfont icon-fanxing-qidong playIcon':true,'no-btn':scope.row.video&&scope.row.video[0].src_url!=''?false:true}" @click="playFun(scope.$index, scope.row)"></span>
</el-tooltip> </el-tooltip>
<span class="tableSpanBorder"></span> <span class="tableSpanBorder"></span>
<el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false> <el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false>
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="播放" placement="bottom" effect="light" :visible-arrow=false> <el-tooltip content="播放" placement="bottom" effect="light" :visible-arrow=false>
<span :class="{'iconfont icon-bofang playIcon':true,'no-btn':scope.row.video&&scope.row.video[0].src_url!=''?false:true}" @click="playFun(scope.$index, scope.row)"></span> <span :class="{'iconfont icon-fanxing-qidong playIcon':true,'no-btn':scope.row.video&&scope.row.video[0].src_url!=''?false:true}" @click="playFun(scope.$index, scope.row)"></span>
</el-tooltip> </el-tooltip>
<span class="tableSpanBorder"></span> <span class="tableSpanBorder"></span>
<el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false> <el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false>
......
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
</el-form-item> </el-form-item>
<el-form-item label="时间计划"> <el-form-item label="时间计划">
<el-select v-model="formData.period"> <el-select v-model="formData.period">
<el-option value="true" label="全天"></el-option> <el-option :value="1" label="全天"></el-option>
<el-option value="false" label="时间"></el-option> <el-option :value="0" label="时间"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="时间" v-show="formData.plate_time != 'day'"> <el-form-item label="时间" v-show="formData.plate_time != 'day'">
......
<template> <template>
<div class="contentBox"> <div class="contentBox">
<div class="topCon"> <div class="topCon">
<div class="left"> <!-- <div class="left">
<img src="../../assets/img/taskmanage/weather.png" alt="" /> <img src="../../assets/img/taskmanage/weather.png" alt="" />
<span class="textCon"> <span class="textCon">
<div class="topText">21°/31°</div> <div class="topText">21°/31°</div>
<div class="bottomText">西北风1级 空气优</div> <div class="bottomText">西北风1级 空气优</div>
</span> </span>
</div> </div> -->
<div class="right"> <div class="right">
<div class="rightBox"> <div class="rightBox">
<img src="../../assets/img/taskmanage/pic1.png" alt="" /> <img src="../../assets/img/taskmanage/pic1.png" alt="" />
...@@ -336,9 +336,14 @@ export default { ...@@ -336,9 +336,14 @@ export default {
// / // /
}, },
dateFormatter(row, column, cellValue, index) { dateFormatter(row, column, cellValue, index) {
let startDate = cellValue ? cellValue.split(" ")[0] : ""; if (row.period) {
let endDate = row.end_dt ? row.end_dt.split(" ")[0] : ""; return "全天"
return startDate + " ~ " + endDate; } else {
let startDate = cellValue ? cellValue.split(" ")[0] : "";
let endDate = row.end_dt ? row.end_dt.split(" ")[0] : "";
return startDate + " ~ " + endDate;
}
}, },
typeFormatter(row, column, cellValue, index) { typeFormatter(row, column, cellValue, index) {
if (cellValue == 0) { if (cellValue == 0) {
......
...@@ -2,8 +2,13 @@ ...@@ -2,8 +2,13 @@
<el-row :gutter="10" style="padding: 10px 0 10px 10px;width: 100%;overflow:hidden"> <el-row :gutter="10" style="padding: 10px 0 10px 10px;width: 100%;overflow:hidden">
<el-col :span="17"> <el-col :span="17">
<div id="map" class="maps"> <div id="map" class="maps">
<div class="search-vchan">
<el-input placeholder="请输入内容" v-model="vchanname" class="input-with-select">
<el-button slot="append" type="primary" icon="el-icon-search" @click="searchvchan"></el-button>
</el-input>
</div>
<showmap ref="map"></showmap> <showmap ref="map"></showmap>
<div class="eventlist-box"> <div class="eventlist-box card-hover">
<!-- <eventList></eventList> --> <!-- <eventList></eventList> -->
<devInfo></devInfo> <devInfo></devInfo>
</div> </div>
...@@ -20,7 +25,7 @@ ...@@ -20,7 +25,7 @@
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-row> <el-row>
<div class="collect-box"> <div class="collect-box card-hover">
<div class="header-title">今日抓拍量</div> <div class="header-title">今日抓拍量</div>
<div class="collect-content"> <div class="collect-content">
<el-col :span="6" class="content-item"> <el-col :span="6" class="content-item">
...@@ -44,11 +49,11 @@ ...@@ -44,11 +49,11 @@
</el-row> </el-row>
<el-row :gutter="12" class="event-type-box" style="margin-top:1vh"> <el-row :gutter="12" class="event-type-box" style="margin-top:1vh">
<el-col :span="16"> <el-col :span="16">
<div class="right-item-box"> <div class="right-item-box card-hover">
<eventTypedis></eventTypedis> <eventTypedis></eventTypedis>
</div> </div>
</el-col> </el-col>
<el-col :span="8" style="padding-right:0"> <el-col :span="8" style="padding-right:0" class="card-hover">
<div class="right-item-box"> <div class="right-item-box">
<div class="title">重点车辆分布</div> <div class="title">重点车辆分布</div>
<div class="car-dis-info"> <div class="car-dis-info">
...@@ -88,12 +93,12 @@ ...@@ -88,12 +93,12 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-top:1vh;background:#fff"> <el-row style="margin-top:1vh;background:#fff">
<div class> <div class="card-hover">
<illegaltrend></illegaltrend> <illegaltrend></illegaltrend>
</div> </div>
</el-row> </el-row>
<el-row class="clearpright" style="margin-top:1vh"> <el-row class="clearpright" style="margin-top:1vh">
<div class="right-item-box"> <div class="right-item-box card-hover">
<div class="title">实时数据</div> <div class="title">实时数据</div>
<alarmEvent @event="alarmevent"></alarmEvent> <alarmEvent @event="alarmevent"></alarmEvent>
</div> </div>
...@@ -126,7 +131,8 @@ export default { ...@@ -126,7 +131,8 @@ export default {
ocxstatus:true, ocxstatus:true,
archiveUnid: 0, archiveUnid: 0,
snap_num: 0, snap_num: 0,
playurl: {}, playurl: {},
vchanname:'',
playurl2:"", playurl2:"",
audit_num: 0, audit_num: 0,
snapData: { snapData: {
...@@ -168,6 +174,9 @@ export default { ...@@ -168,6 +174,9 @@ export default {
//移动地图 //移动地图
this.$refs.map.movemap(data); this.$refs.map.movemap(data);
}, },
searchvchan(){
this.$refs.map.searchvchan(this.vchanname)
},
closeocx(){ closeocx(){
this.ocxstatus=false; this.ocxstatus=false;
}, },
...@@ -437,4 +446,12 @@ export default { ...@@ -437,4 +446,12 @@ export default {
width:200px; width:200px;
height:200px; height:200px;
} }
.search-vchan{
width 270px;
position: absolute;
top: 12px;
z-index 900;
right 10px;
border-radius 3px;
}
</style> </style>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div class="infoChild"> <div class="infoChild">
<img src="../../assets/img/map/warn.png" alt=""> <img src="../../assets/img/map/warn.png" alt="">
<span class="textCon"> <span class="textCon">
<div>运行异常资源</div> <div>运行异常</div>
<div class="colorText"><span>7</span></div> <div class="colorText"><span>7</span></div>
</span> </span>
</div> </div>
......
<template> <template>
<div> <div>
<div id="map" class="maps"></div> <div id="map" class="maps"></div>
<div id="popup" class="ol-popup"> <div id="popup" class="ol-popup">
<a <a
href="#" href="#"
id="popup-closer" id="popup-closer"
class="ol-popup-closer" class="ol-popup-closer"
@click="closepopup" @click="closepopup"
></a> ></a>
<div class="" id="t-popup-content"> <div class="" id="t-popup-content"></div>
</div>
</div> </div>
<div id="videopopup" class="ol-popup"> <div id="videopopup" class="ol-popup">
<a <a
...@@ -22,6 +21,21 @@ ...@@ -22,6 +21,21 @@
<videoPlay ref="mapvideo" :playurl="playurl"></videoPlay> <videoPlay ref="mapvideo" :playurl="playurl"></videoPlay>
</div> </div>
</div> </div>
<div id="taskinfopopup" class="ol-popup info-popup">
<a
href="#"
id="task-popup-closer"
class="ol-popup-closer"
@click="closetaskpopup"
></a>
<div>
<span>{{ infoData.vchan_name }}</span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div> </div>
</template> </template>
...@@ -34,7 +48,7 @@ import Feature from "ol/Feature"; //元素 ...@@ -34,7 +48,7 @@ import Feature from "ol/Feature"; //元素
import Overlay from "ol/Overlay"; //弹出框 import Overlay from "ol/Overlay"; //弹出框
import { toStringHDMS } from "ol/coordinate"; import { toStringHDMS } from "ol/coordinate";
import { fromLonLat, toLonLat } from "ol/proj"; import { fromLonLat, toLonLat } from "ol/proj";
import {defaults as defaultControls, Control} from 'ol/control.js'; import { defaults as defaultControls, Control } from "ol/control.js";
import { import {
Tile as TileLayer, Tile as TileLayer,
Vector as VectorLayer, Vector as VectorLayer,
...@@ -68,49 +82,53 @@ var map = ""; ...@@ -68,49 +82,53 @@ var map = "";
var Views = ""; var Views = "";
var container = ""; var container = "";
var videocontainer = ""; var videocontainer = "";
var taskInfocontaniner = "";
var content = ""; var content = "";
var voideocontent = ""; var voideocontent = "";
var closer = ""; var closer = "";
var taskcloser = "";
var overlay = ""; var overlay = "";
var RotateNorthControl = (function (Control) { var infooverlay = "";
function RotateNorthControl(opt_options) { var RotateNorthControl = (function(Control) {
var options = opt_options || {}; function RotateNorthControl(opt_options) {
var options = opt_options || {};
var button = document.createElement('button'); var button = document.createElement("button");
button.className = 'el-icon-aim'; button.className = "el-icon-aim";
var element = document.createElement('div'); var element = document.createElement("div");
element.className = 'rotate-north ol-unselectable ol-control'; element.className = "rotate-north ol-unselectable ol-control";
element.appendChild(button); element.appendChild(button);
Control.call(this, { Control.call(this, {
element: element, element: element,
target: options.target target: options.target
}); });
button.addEventListener('click', this.handleRotateNorth.bind(this), false); button.addEventListener("click", this.handleRotateNorth.bind(this), false);
} }
if ( Control ) RotateNorthControl.__proto__ = Control; if (Control) RotateNorthControl.__proto__ = Control;
RotateNorthControl.prototype = Object.create( Control && Control.prototype ); RotateNorthControl.prototype = Object.create(Control && Control.prototype);
RotateNorthControl.prototype.constructor = RotateNorthControl; RotateNorthControl.prototype.constructor = RotateNorthControl;
RotateNorthControl.prototype.handleRotateNorth = function handleRotateNorth () { RotateNorthControl.prototype.handleRotateNorth = function handleRotateNorth() {
let pos = [120.324447, 36.074594]; let pos = [120.324447, 36.074594];
Views.animate({ Views.animate({
center: pos, center: pos,
duration: 400, duration: 400,
zoom: 14 zoom: 14
}); });
}; };
return RotateNorthControl; return RotateNorthControl;
}(Control)); })(Control);
export default { export default {
data() { data() {
return { return {
devList: [], devList: [],
playurl:{} playurl: {},
infoData: {}
}; };
}, },
components: { components: {
...@@ -177,9 +195,7 @@ export default { ...@@ -177,9 +195,7 @@ export default {
center: [120.324447, 36.064594] center: [120.324447, 36.064594]
}); });
map = new Map({ map = new Map({
controls: defaultControls().extend([ controls: defaultControls().extend([new RotateNorthControl()]),
new RotateNorthControl()
]),
// 设置地图图层 // 设置地图图层
layers: [ layers: [
// 创建一个使用Open Street Map地图源的瓦片图层 // 创建一个使用Open Street Map地图源的瓦片图层
...@@ -215,7 +231,6 @@ export default { ...@@ -215,7 +231,6 @@ export default {
let that = this; let that = this;
map.on("click", e => { map.on("click", e => {
console.log('经纬度',e.coordinate);
var pixel = map.getEventPixel(e.originalEvent); var pixel = map.getEventPixel(e.originalEvent);
//点击相机标注点 //点击相机标注点
map.forEachFeatureAtPixel(pixel, function(feature) { map.forEachFeatureAtPixel(pixel, function(feature) {
...@@ -226,18 +241,30 @@ export default { ...@@ -226,18 +241,30 @@ export default {
//播放视频操作 //播放视频操作
let data = feature.getProperties().cameraInfo; let data = feature.getProperties().cameraInfo;
that.playvideo(data); that.playvideo(data);
console.log("视频播放地址" + data); console.log("视频播放地址", data);
});
});
//鼠标移入标注点
map.on("pointermove", e => {
var pixel = map.getEventPixel(e.originalEvent);
map.forEachFeatureAtPixel(pixel, function(feature) {
let data = feature.getProperties().cameraInfo;
that.infoData = data;
that.showTaskInfo(data);
}); });
}); });
}, },
movemap(data) { movemap(data, point, type) {
let pos = [120.324447, 36.074594]; let pos = point ? point : [120.324447, 36.074594];
Views.animate({ Views.animate({
center: pos, center: pos,
duration: 400, duration: 400,
zoom: 14 zoom: 14
}); });
this.addLayer(data, pos); if (type && type == 2) {
this.addLayer(data, pos);
}
}, },
closepopup() { closepopup() {
overlay.setPosition(undefined); overlay.setPosition(undefined);
...@@ -245,6 +272,7 @@ export default { ...@@ -245,6 +272,7 @@ export default {
return false; return false;
}, },
closevideopopup() { closevideopopup() {
this.closetaskpopup();
let video_ocx = document.getElementById("VionVideo"); let video_ocx = document.getElementById("VionVideo");
let stopRes = video_ocx.StopPlaySip(0); let stopRes = video_ocx.StopPlaySip(0);
let stopRtspRes = video_ocx.StopPlay(0); let stopRtspRes = video_ocx.StopPlay(0);
...@@ -252,6 +280,11 @@ export default { ...@@ -252,6 +280,11 @@ export default {
closer.blur(); closer.blur();
return false; return false;
}, },
closetaskpopup() {
infooverlay.setPosition(undefined);
taskcloser.blur();
return false;
},
addLayer(pdata, pos) { addLayer(pdata, pos) {
document.getElementById("popup").style.display = "block"; document.getElementById("popup").style.display = "block";
...@@ -323,7 +356,19 @@ export default { ...@@ -323,7 +356,19 @@ export default {
vectorSource.addFeature(icon); vectorSource.addFeature(icon);
return vectorSource; return vectorSource;
}, },
showTaskInfo(data) {
let pos = [data.longitude, data.latitude];
document.getElementById("taskinfopopup").style.display = "block";
infooverlay = new Overlay({
element: taskInfocontaniner,
autoPan: true,
position: pos,
autoPanAnimation: {
duration: 50
}
});
map.addOverlay(infooverlay);
},
playvideo(data) { playvideo(data) {
let pos = [data.longitude, data.latitude]; let pos = [data.longitude, data.latitude];
document.getElementById("videopopup").style.display = "block"; document.getElementById("videopopup").style.display = "block";
...@@ -385,6 +430,14 @@ export default { ...@@ -385,6 +430,14 @@ export default {
this.InitMap(); this.InitMap();
}, 200); }, 200);
}); });
},
searchvchan(vchanname) {
this.devList.forEach(ele => {
if (ele.vchan_name == vchanname) {
let point = [ele.longitude, ele.latitude];
this.movemap(point);
}
});
} }
}, },
mounted() { mounted() {
...@@ -393,9 +446,11 @@ export default { ...@@ -393,9 +446,11 @@ export default {
}, 1000); }, 1000);
container = document.getElementById("popup"); container = document.getElementById("popup");
videocontainer = document.getElementById("videopopup"); videocontainer = document.getElementById("videopopup");
taskInfocontaniner = document.getElementById("taskinfopopup");
content = document.getElementById("t-popup-content"); content = document.getElementById("t-popup-content");
voideocontent = document.getElementById("video-popup-content"); voideocontent = document.getElementById("video-popup-content");
closer = document.getElementById("popup-closer"); closer = document.getElementById("popup-closer");
taskcloser = document.getElementById("task-popup-closer");
} }
}; };
</script> </script>
...@@ -472,6 +527,10 @@ export default { ...@@ -472,6 +527,10 @@ export default {
width: 100%; width: 100%;
} }
} }
.info-popup {
width 10vw;
height 100px;
}
.pop-info{ .pop-info{
float: left; float: left;
padding-left: 20px; padding-left: 20px;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!