Commit d13af288 by 潘建波

提交预置位设置

1 parent 2d6459fb
No preview for this file type
......@@ -33,11 +33,15 @@ let service = axios.create({
// 添加请求拦截器
service.interceptors.request.use(
config => {
// startLoading();
let atoken = localStorage.getItem("atoken");
// startLoading();
let atoken = localStorage.getItem("atoken");
if (atoken) {
// 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.authorization = atoken;
if (config.url.indexOf("codes") > -1) {
//
} else {
config.headers.authorization = atoken;
}
} else {
router.push("/login");
// endLoading();
......
......@@ -3,14 +3,14 @@ import axios from "axios";
console.log(process.env.NODE_ENV);
switch (process.env.NODE_ENV) {
case "development":
baseUrl = "/api"; // 测试环境url
baseUrl = "http://192.168.9.133:20080"; // 测试环境url
// baseUrl = "http://192.168.9.61:8086";
break;
case "pre":
baseUrl = "https://pre-server.feleti.cn"; // 预上线环境url
break;
case "production":
baseUrl = "http://vion-panda.51vip.biz:52510"; // 生产环境url
baseUrl = "http://192.168.9.133:20080"; // 生产环境url
break;
}
......
......@@ -242,4 +242,28 @@ body{
}
.el-menu-item.is-active .submenuicon{
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
......@@ -17,15 +17,15 @@
<div class="item-box">
<div class="icon el-icon-bell"></div>
<div class="item-info-box">
<div>运行异常资源</div>
<div><span>6</span></div>
<div>运行异常</div>
<div><span>6</span> </div>
</div>
</div>
<div class="item-box">
<div class="icon el-icon-s-order"></div>
<div class="item-info-box">
<div>信息存储量</div>
<div> <span>1.2</span> T</div>
<div><span>1.2</span> T</div>
</div>
</div>
</div>
......
......@@ -341,83 +341,87 @@ export default {
typeFlag: 1, //选择属性弹窗状态
lineNum: 1, //车道线/车道序号
curLayerstate: false, //行人检测区域属性设置
testLayerstate:false,//测试检测区域属性设置
testLayerstate: false, //测试检测区域属性设置
polygon_id: "", //行人检测区域id
polygon_name: "", //行人检测区域name
markLineType: "0",
lanuse:'0',//车道属性类型
guidingtype:'',//车道导向类型
markLineDirect: "",
childUrl: "", //红绿灯区域截图
scale: {}, //红绿灯区域截图放大倍数
lightInfo: {
type: "1",
distribute: "1",
shap: "1",
delay:3
},
roiBody: {},
XMLStr: "",
eventData:[]
};
},
props: ["bgUrl"],
components: {
LightCanvas
},
methods: {
stageInit: function(params) {
console.log("init1");
this.drawState = -1;
this.stage = new Kinetic.Stage({
container: "traficCanvas", //<div>的id
width: 800, //创建的舞台宽度
height: 500 //创建的舞台高度
});
this.shadowLayer = new Kinetic.Layer({
id: "shadowLayer"
});
this.testLayer = new Kinetic.Layer({
id: "testLayer",
name: "layer"
});
this.lineLayer = new Kinetic.Layer({
id: "lineLayer",
name: "layer"
});
this.roadLayer = new Kinetic.Layer({
id: "roadLayer",
name: "layer"
});
this.lightLayer = new Kinetic.Layer({
id: "lightLayer",
name: "layer"
});
this.subtendLayer = new Kinetic.Layer({
id: "subtendLayer",
name: "layer"
});
this.noStopLayer = new Kinetic.Layer({
id: "noStopLayer",
name: "layer"
});
this.bicyLayer = new Kinetic.Layer({ //行人检测区域
id: "bicyLayer",
name: "layer"
});
this.densityLayer = new Kinetic.Layer({//密度
id:'densityLayer',
name:"layer"
});
this.foreignLayer = new Kinetic.Layer({//异物
id:'foreignLayer',
name:"layer"
});
this.testRegionLayer = new Kinetic.Layer({//测试检测区域
id:'testRegionLayer',
name:"layer"
});
lanuse: "0", //车道属性类型
guidingtype: "", //车道导向类型
markLineDirect: "",
childUrl: "", //红绿灯区域截图
scale: {}, //红绿灯区域截图放大倍数
lightInfo: {
type: "1",
distribute: "1",
shap: "1",
delay: 3
},
roiBody: {},
XMLStr: "",
eventData: []
};
},
props: ["bgUrl"],
components: {
LightCanvas
},
methods: {
stageInit: function(params) {
console.log("init1");
this.drawState = -1;
this.stage = new Kinetic.Stage({
container: "traficCanvas", //<div>的id
width: 800, //创建的舞台宽度
height: 500 //创建的舞台高度
});
this.shadowLayer = new Kinetic.Layer({
id: "shadowLayer"
});
this.testLayer = new Kinetic.Layer({
id: "testLayer",
name: "layer"
});
this.lineLayer = new Kinetic.Layer({
id: "lineLayer",
name: "layer"
});
this.roadLayer = new Kinetic.Layer({
id: "roadLayer",
name: "layer"
});
this.lightLayer = new Kinetic.Layer({
id: "lightLayer",
name: "layer"
});
this.subtendLayer = new Kinetic.Layer({
id: "subtendLayer",
name: "layer"
});
this.noStopLayer = new Kinetic.Layer({
id: "noStopLayer",
name: "layer"
});
this.bicyLayer = new Kinetic.Layer({
//行人检测区域
id: "bicyLayer",
name: "layer"
});
this.densityLayer = new Kinetic.Layer({
//密度
id: "densityLayer",
name: "layer"
});
this.foreignLayer = new Kinetic.Layer({
//异物
id: "foreignLayer",
name: "layer"
});
this.testRegionLayer = new Kinetic.Layer({
//测试检测区域
id: "testRegionLayer",
name: "layer"
});
let shadow = new Kinetic.Rect({
x: 0, //矩形左上角x坐标
y: 0, //矩形左上角y坐标
......@@ -455,7 +459,7 @@ export default {
this.stage.add(this.noStopLayer);
this.stage.add(this.densityLayer);
this.stage.add(this.foreignLayer);
this.stage.add(this.testRegionLayer)
this.stage.add(this.testRegionLayer);
this.layers = [
this.testLayer,
this.lineLayer,
......@@ -600,15 +604,15 @@ export default {
let arrs = this.roadLayer.get(".arr");
let arr = arrs[arrs.length - 1];
line.index = ele.lane_no;
let lane_guid_type = 0;
let lane_use = 0;
if(obj.lanes.lane_count == 1){
lane_guid_type = obj.lanes.lane.lane_guiding_type
lane_use = obj.lanes.lane.lane_use_type
} else {
lane_guid_type = obj.lanes.lane[index].lane_guiding_type;
lane_use = obj.lanes.lane[index].lane_use_type
}
let lane_guid_type = 0;
let lane_use = 0;
if (obj.lanes.lane_count == 1) {
lane_guid_type = obj.lanes.lane.lane_guiding_type;
lane_use = obj.lanes.lane.lane_use_type;
} else {
lane_guid_type = obj.lanes.lane[index].lane_guiding_type;
lane_use = obj.lanes.lane[index].lane_use_type;
}
this.roads[parseInt(ele.lane_seq - 1)] = {
type: ele.lane_type,
index: ele.lane_no,
......@@ -648,7 +652,8 @@ export default {
(rect.light_type = ele.light_type),
(rect.light_distribute = ele.light_distribute),
(rect.light_shape = ele.light_shape),
(rect.light_delay = ele.light_yellow_delay||ele.light_yellow_interval),
(rect.light_delay =
ele.light_yellow_delay || ele.light_yellow_interval),
(rect.light_regions = {
light_region_count: 1,
light_region: linghtRoi
......@@ -746,28 +751,28 @@ export default {
} catch (error) {
console.log(error);
}
//测试检测区域
try {
let testarr = obj.test_result_region.polygon;
if (!testarr.length) {
testarr = [testarr];
}
testarr.forEach(ele => {
let points = ele.point;
let bicRect = [];
for (let i = 0; i < points.length; i++) {
const point = points[i];
bicRect.push(point.x * 800);
bicRect.push(point.y * 500);
}
let rect = this.drawRect("morePoints", bicRect, this.color[9]);
rect.polygon_name = ele.polygon_name;
rect.polygon_id = ele.polygon_id;
this.testRegionLayer.add(rect);
});
} catch (error) {
console.log(error);
//测试检测区域
try {
let testarr = obj.test_result_region.polygon;
if (!testarr.length) {
testarr = [testarr];
}
testarr.forEach(ele => {
let points = ele.point;
let bicRect = [];
for (let i = 0; i < points.length; i++) {
const point = points[i];
bicRect.push(point.x * 800);
bicRect.push(point.y * 500);
}
let rect = this.drawRect("morePoints", bicRect, this.color[9]);
rect.polygon_name = ele.polygon_name;
rect.polygon_id = ele.polygon_id;
this.testRegionLayer.add(rect);
});
} catch (error) {
console.log(error);
}
this.selectedShape = null;
this.drawRoad();
......@@ -964,14 +969,14 @@ export default {
this.startChangeShape(pos, layer, this.color[this.drawState]);
}
break;
case 9:
if (this.needRect) {
this.endChangeShape(evt);
} else {
this.needRect = true;
this.startChangeShape(pos, layer, this.color[this.drawState]);
}
break;
case 9:
if (this.needRect) {
this.endChangeShape(evt);
} else {
this.needRect = true;
this.startChangeShape(pos, layer, this.color[this.drawState]);
}
break;
default:
break;
}
......@@ -987,7 +992,7 @@ export default {
this.markLineType = this.roads[shape.roadIndex].type;
this.markLineDirect = this.roads[shape.roadIndex].direct;
this.guidingtype = this.roads[shape.roadIndex].lane_guiding_type;
this.lanuse = this.roads[shape.roadIndex].lane_use_type || '0';
this.lanuse = this.roads[shape.roadIndex].lane_use_type || "0";
shape.setFill("rgba(" + this.color[1] + ",0.3)");
let gLine = this.greenLines[shape.roadIndex];
if (gLine.getParent().attrs.name == "arr") {
......@@ -1031,7 +1036,7 @@ export default {
type: shape.light_type,
shap: shape.light_shape,
distribute: shape.light_distribute,
delay:shape.light_delay
delay: shape.light_delay
};
} else if (
this.drawState == 6 ||
......@@ -1062,7 +1067,7 @@ export default {
) {
this.blueLines.splice(this.lineNum - 1, 0, this.selectedShape);
this.lineNum++;
this.roadFlag = false;
this.roadFlag = false;
}
this.selectedShape.line_type = this.markLineType;
} else if (this.drawState == 2) {
......@@ -1106,7 +1111,7 @@ export default {
this.selectedShape.light_type = this.lightInfo.type;
this.selectedShape.light_shape = this.lightInfo.shap;
this.selectedShape.light_distribute = this.lightInfo.distribute;
this.selectedShape.light_delay = this.lightInfo.delay;
this.selectedShape.light_delay = this.lightInfo.delay;
}
this.selectedShape = null;
......@@ -1114,23 +1119,23 @@ export default {
this.lightInfo = {
type: "1",
distribute: "1",
shap: "1",
delay:3
};
this.layers[this.drawState].draw();
},
//开始绘制图形(第一次点击)
startChangeShape: function(pos, layer, col) {
let ary = layer.get(".circle");
if (
this.drawState == 0 ||
this.drawState == 3 ||
this.drawState == 4 ||
this.drawState == 5 ||
this.drawState == 6 ||
this.drawState == 7 ||
this.drawState == 8 ||
this.drawState == 9
shap: "1",
delay: 3
};
this.layers[this.drawState].draw();
},
//开始绘制图形(第一次点击)
startChangeShape: function(pos, layer, col) {
let ary = layer.get(".circle");
if (
this.drawState == 0 ||
this.drawState == 3 ||
this.drawState == 4 ||
this.drawState == 5 ||
this.drawState == 6 ||
this.drawState == 7 ||
this.drawState == 8 ||
this.drawState == 9
) {
let rect = this.drawRect(pos, pos, col);
rect.moveToBottom();
......@@ -1246,14 +1251,12 @@ export default {
}, 0);
layer.draw();
}
if (this.drawState == 6 ||
this.drawState == 7 ||
this.drawState == 8) {
this.curLayerstate = true;
}
if(this.drawState == 9){
this.testLayerstate = true;
}
if (this.drawState == 6 || this.drawState == 7 || this.drawState == 8) {
this.curLayerstate = true;
}
if (this.drawState == 9) {
this.testLayerstate = true;
}
},
lineChange: function name() {
let color = "blue";
......@@ -1304,7 +1307,7 @@ export default {
layer.draw();
}
},
//行人检测信息/异物检测信息/测试检测区域
//行人检测信息/异物检测信息/测试检测区域
bicyEnter() {
let curLayers = this.layers[this.drawState].get(".rect");
let curlay = curLayers[curLayers.length - 1];
......@@ -1312,11 +1315,10 @@ export default {
curlay.polygon_name = this.polygon_name;
this.curLayerstate = false;
//测试区域弹窗
this.testLayerstate = false;
this.testLayerstate = false;
//清空输入框
this.polygon_id = "";
this.polygon_name = "";
},
curlayCancel() {
let curLayers = this.layers[this.drawState].get(".rect");
......@@ -1563,7 +1565,7 @@ export default {
(rect.light_type = this.lightInfo.type),
(rect.light_distribute = this.lightInfo.distribute),
(rect.light_shape = this.lightInfo.shap),
(rect.light_delay = this.lightInfo.delay),
(rect.light_delay = this.lightInfo.delay),
(rect.light_regions = {
light_region_count: 1,
light_region: linghtRoi
......@@ -1575,7 +1577,7 @@ export default {
type: "1",
distribute: "1",
shap: "1",
delay:3
delay: 3
};
this.selectedShape = null;
},
......@@ -1652,91 +1654,92 @@ export default {
}
this.roadLayer.draw();
try {
// console.log('蓝色车道线')
// console.log(this.blueLines)
this.blueLines.forEach((ele, index) => {
if(ele.attrs.points[1] - ele.attrs.points[3] > 0) {
var copypoint = Array.from(ele.attrs.points);
ele.attrs.points[0] = copypoint[2]
ele.attrs.points[1] = copypoint[3]
ele.attrs.points[2] = copypoint[0]
ele.attrs.points[3] = copypoint[1]
// console.log('*******蓝色车道线*******')
// console.log(ele)
}
})
//车道线根据坐标排序
function sortBlueLine(arr){
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j].attrs.points[0] > arr[j+1].attrs.points[0]) { //相邻元素两两对比
var temp = arr[j+1]; //元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
try {
// console.log('蓝色车道线')
// console.log(this.blueLines)
this.blueLines.forEach((ele, index) => {
if (ele.attrs.points[1] - ele.attrs.points[3] > 0) {
var copypoint = Array.from(ele.attrs.points);
ele.attrs.points[0] = copypoint[2];
ele.attrs.points[1] = copypoint[3];
ele.attrs.points[2] = copypoint[0];
ele.attrs.points[3] = copypoint[1];
// console.log('*******蓝色车道线*******')
// console.log(ele)
}
console.log('排序后的蓝色车道线')
console.log(sortBlueLine(this.blueLines))
this.blueLines.forEach((ele, index) => {
let points =this.sortLinePoints(ele.attrs.points);
if (index > 0) {
//绘制车道
let lastPoints = this.sortLinePoints(this.blueLines[index - 1].attrs.points);
let num1 =
Math.pow(points[0] - lastPoints[0], 2) +
Math.pow(points[1] - lastPoints[1], 2) +
Math.pow(points[2] - lastPoints[2], 2) +
Math.pow(points[3] - lastPoints[3], 2);
let num2 =
Math.pow(points[0] - lastPoints[2], 2) +
Math.pow(points[1] - lastPoints[3], 2) +
Math.pow(points[2] - lastPoints[0], 2) +
Math.pow(points[3] - lastPoints[1], 2);
let mPoints;
if (num1 < num2) {
mPoints = points.concat([
lastPoints[2],
lastPoints[3],
lastPoints[0],
lastPoints[1]
]);
} else {
mPoints = points.concat([
lastPoints[0],
lastPoints[1],
lastPoints[2],
lastPoints[3]
]);
}
let rect = this.drawRect(
"morePoints",
mPoints,
this.color[1],
false
);
rect.roadIndex = index - 1;
this.roadLayer.add(rect);
//绘制车道中线
if (!this.roads[index - 1]) {
this.roads[index - 1] = {};
});
//车道线根据坐标排序
function sortBlueLine(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j].attrs.points[0] > arr[j + 1].attrs.points[0]) {
//相邻元素两两对比
var temp = arr[j + 1]; //元素交换
arr[j + 1] = arr[j];
arr[j] = temp;
}
let road = this.roads[index - 1];
let cPoints = [
(mPoints[0] + mPoints[6]) / 2,
(mPoints[1] + mPoints[7]) / 2,
(mPoints[2] + mPoints[4]) / 2,
(mPoints[3] + mPoints[5]) / 2,
];
road.cPoints = cPoints;
let cLine = this.drawLine("morePoints", cPoints, this.color[2]);
this.greenLines[index - 1] = cLine;
}
}
return arr;
}
console.log("排序后的蓝色车道线");
console.log(sortBlueLine(this.blueLines));
this.blueLines.forEach((ele, index) => {
let points = this.sortLinePoints(ele.attrs.points);
if (index > 0) {
//绘制车道
let lastPoints = this.sortLinePoints(
this.blueLines[index - 1].attrs.points
);
let num1 =
Math.pow(points[0] - lastPoints[0], 2) +
Math.pow(points[1] - lastPoints[1], 2) +
Math.pow(points[2] - lastPoints[2], 2) +
Math.pow(points[3] - lastPoints[3], 2);
let num2 =
Math.pow(points[0] - lastPoints[2], 2) +
Math.pow(points[1] - lastPoints[3], 2) +
Math.pow(points[2] - lastPoints[0], 2) +
Math.pow(points[3] - lastPoints[1], 2);
let mPoints;
if (num1 < num2) {
mPoints = points.concat([
lastPoints[2],
lastPoints[3],
lastPoints[0],
lastPoints[1]
]);
} else {
mPoints = points.concat([
lastPoints[0],
lastPoints[1],
lastPoints[2],
lastPoints[3]
]);
}
let rect = this.drawRect(
"morePoints",
mPoints,
this.color[1],
false
);
rect.roadIndex = index - 1;
this.roadLayer.add(rect);
//绘制车道中线
if (!this.roads[index - 1]) {
this.roads[index - 1] = {};
}
let road = this.roads[index - 1];
let cPoints = [
(mPoints[0] + mPoints[6]) / 2,
(mPoints[1] + mPoints[7]) / 2,
(mPoints[2] + mPoints[4]) / 2,
(mPoints[3] + mPoints[5]) / 2
];
road.cPoints = cPoints;
let cLine = this.drawLine("morePoints", cPoints, this.color[2]);
this.greenLines[index - 1] = cLine;
if (road.direct == undefined) {
this.roadLayer.add(cLine);
......@@ -2000,10 +2003,10 @@ export default {
linetype = 10;
break;
case "4":
linetype = "";
linetype = 13;
break;
case "5":
linetype = "";
linetype = 14;
break;
default:
break;
......@@ -2044,13 +2047,7 @@ export default {
} catch (error) {
console.log(error);
}
console.log("#######################");
console.log(lanaAry);
console.log("#######################");
this.roiBody.lanes = {
lane_count: lanaAry.length ? lanaAry.length : 0,
lane: lanaAry ? lanaAry : []
}
//对向车道
try {
this.subtendLayer.get(".rect").forEach((el, index) => {
......@@ -2084,26 +2081,33 @@ export default {
}
});
});
} catch (error) {}
} catch (error) {
console.log(error);
}
console.log("lanaAry", lanaAry);
this.roiBody.lanes = {
lane_count: lanaAry.length ? lanaAry.length : 0,
lane: lanaAry ? lanaAry : []
};
// 红绿灯区域
let lightAry = [];
try {
this.lightLayer.get(".rect").forEach((ele, index) => {
lightAry.push({
light_seq: index + 1,
light_type: ele.light_type,
light_id:ele.light_type,
light_distribute: ele.light_distribute,
light_number_type:ele.light_distribute,
light_yellow_delay: Number(ele.light_delay),
light_yellow_interval:Number(ele.light_delay),
light_shape:ele.light_shape,
light_shape_type:ele.light_shape,
light_regions: ele.light_regions,
});
});
} catch (error) {}
try {
this.lightLayer.get(".rect").forEach((ele, index) => {
lightAry.push({
light_seq: index + 1,
light_type: ele.light_type,
light_id: ele.light_type,
light_distribute: ele.light_distribute,
light_number_type: ele.light_distribute,
light_yellow_delay: Number(ele.light_delay),
light_yellow_interval: Number(ele.light_delay),
light_shape: ele.light_shape,
light_shape_type: ele.light_shape,
light_regions: ele.light_regions
});
});
} catch (error) {}
this.roiBody.lights = {
light_count: lightAry.length,
light: lightAry
......@@ -2174,7 +2178,7 @@ export default {
this.roiBody.median_lines = {
lane_count: roadAry.length ? roadAry.length : 0,
lane: roadAry ? roadAry : []
};
};
//行人密度检测区域
let densityAry = [];
......@@ -2230,86 +2234,86 @@ export default {
polygon: foreignAry
};
//测试检测区域
let testRegion = [];
try {
this.testRegionLayer.get(".rect").forEach((el, index) => {
let foAry = [];
let points = el.attrs.points;
for (let i = 0; i < points.length; i += 2) {
foAry.push({
point_seq: i / 2 + 1,
x: (points[i] / 800).toFixed(6),
y: (points[i + 1] / 500).toFixed(6)
});
}
testRegion.push({
polygon_id:el.polygon_id,
polygon_name:el.polygon_name,
polygon_point_count: foAry.length,
point: foAry
//测试检测区域
let testRegion = [];
try {
this.testRegionLayer.get(".rect").forEach((el, index) => {
let foAry = [];
let points = el.attrs.points;
for (let i = 0; i < points.length; i += 2) {
foAry.push({
point_seq: i / 2 + 1,
x: (points[i] / 800).toFixed(6),
y: (points[i + 1] / 500).toFixed(6)
});
}
testRegion.push({
polygon_id: el.polygon_id,
polygon_name: el.polygon_name,
polygon_point_count: foAry.length,
point: foAry
});
} catch (error) {}
});
} catch (error) {}
this.roiBody.test_result_region = {
region_count: foreignAry.length,
polygon: testRegion
};
this.roiBody.test_result_region = {
region_count: foreignAry.length,
polygon: testRegion
};
console.log(this.roiBody);
return this.oParse.writeXML({ roi: this.roiBody });
},
clear: function() {
(this.blueLines = []),
(this.roads = []),
(this.drawState = -1),
(this.smallWindow = false),
(this.roadFlag = ""),
(this.needRect = false),
(this.needLine = false),
(this.canvasState = 0),
(this.polygon_name = ''),
(this.polygon_id = ''),
(this.polyline = 0);
$(".modal-lt button").removeClass("active");
},
sortLinePoints(pointarr){
try{
let newpoint = [];
if((pointarr[1] - pointarr[3]) > 0){
newpoint[0] = pointarr[2]
newpoint[1] = pointarr[3]
newpoint[2] = pointarr[0]
newpoint[3] = pointarr[1]
} else {
newpoint = pointarr
}
return newpoint
}catch(err){
console.log(err)
console.log(this.roiBody);
return this.oParse.writeXML({ roi: this.roiBody });
},
clear: function() {
(this.blueLines = []),
(this.roads = []),
(this.drawState = -1),
(this.smallWindow = false),
(this.roadFlag = ""),
(this.needRect = false),
(this.needLine = false),
(this.canvasState = 0),
(this.polygon_name = ""),
(this.polygon_id = ""),
(this.polyline = 0);
$(".modal-lt button").removeClass("active");
},
sortLinePoints(pointarr) {
try {
let newpoint = [];
if (pointarr[1] - pointarr[3] > 0) {
newpoint[0] = pointarr[2];
newpoint[1] = pointarr[3];
newpoint[2] = pointarr[0];
newpoint[3] = pointarr[1];
} else {
newpoint = pointarr;
}
},
changetestid(){
this.eventData.forEach(ele => {
if(ele.value == this.polygon_id){
this.polygon_name = ele.name
}
})
return newpoint;
} catch (err) {
console.log(err);
}
},
mounted() {
this.eventData = eventJson
// this.stageInit()
key('alt+1',()=>{
if(this.istest) {
this.istest = false
} else {
this.istest = true
}
})
changetestid() {
this.eventData.forEach(ele => {
if (ele.value == this.polygon_id) {
this.polygon_name = ele.name;
}
});
}
};
},
mounted() {
this.eventData = eventJson;
// this.stageInit()
key("alt+1", () => {
if (this.istest) {
this.istest = false;
} else {
this.istest = true;
}
});
}
};
</script>
<style scoped>
......
......@@ -5,13 +5,15 @@
:data="taskInfo.mtasks[0].scenes"
border
stripe
highlight-current-row
style="width: 80%;float:left"
height="25vh"
@current-change="handleCurrentChange"
>
<el-table-column label="序号" type="index" width="50" align="center">
</el-table-column>
<el-table-column
prop="name"
prop="position_num"
align="center"
label="预置位编号"
width="180"
......@@ -60,7 +62,7 @@
<handleparam ref="handleparam"></handleparam>
</div>
<div class="yt-box">
<ytconfig ref="yt"></ytconfig>
<ytconfig ref="yt" @subpostion="submitPosion"></ytconfig>
</div>
<div>
<parameter ref="parameter"></parameter>
......@@ -108,6 +110,17 @@
<el-input v-model="timer" style="padding-right:23px"></el-input>
</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">
<el-button @click="handleTimerClose">取 消</el-button>
<el-button type="primary" @click="submitTimer">确 定</el-button>
......@@ -126,11 +139,13 @@ export default {
data() {
return {
timer: 0,
polling_state: false,
timersel: 0,
timerDialog: false,
curindex: 0,
timeroptions: [30, 40, 50, 60, 100],
timerscenes: null,
currentRow: null,
taskInfo: {
mtasks: [
{
......@@ -166,7 +181,7 @@ export default {
this.$refs.handleparam.show(type);
},
setsounces() {
this.$refs.yt.openyt();
this.$refs.yt.openyt(this.currentRow);
},
getTaskParams() {
this.$api.task.getTaskParams(this.taskid, this.subtaskid).then(data => {
......@@ -175,6 +190,7 @@ export default {
},
setTimer(data) {
this.timerscenes = data;
this.polling_state = data.pollingState;
this.$store.commit("setocxstate", 0);
this.timerDialog = true;
},
......@@ -182,11 +198,30 @@ export default {
this.timerDialog = false;
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) {
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 = {
subtask_id: this.subtaskid,
mtasks: this.taskInfo.mtasks
mtasks: mdata
};
this.$api.task.editRoi(this.taskid, this.subtaskid, data).then(res => {
if (res.ecode == 200) {
......@@ -201,14 +236,14 @@ export default {
},
showview() {
let routeData = this.$router.resolve({
name: "show",
query: {
name: "show",
query: {
taskid: this.taskid,
subtaskid: this.subtaskid,
playurl: this.playurl
}
});
window.open(routeData.href, '_blank');
});
window.open(routeData.href, "_blank");
},
submit: function(xml, type) {
let postObj = {
......
......@@ -72,7 +72,7 @@
</div>
<div class="right-bottom-box">
<div class="setyzw item-box">
<el-input placeholder="预置位编号"></el-input>
<el-input placeholder="预置位编号" v-model="presetindex"></el-input>
</div>
<div class="subbtn item-box">
<el-button @click="subset">确定</el-button>
......@@ -104,11 +104,22 @@ export default {
value2: 0,
value3: 0,
value4: 0,
presetindex: "",
curtask:{},
};
},
methods: {
openyt() {
this.showyt = true;
openyt(curtask) {
if (curtask) {
this.curtask = curtask;
this.showyt = true;
this.presetindex = curtask.position_num;
} else {
this.$message({
message: "请选择要操作的预置位",
type: "warning"
});
}
},
closeyt() {
this.showyt = false;
......@@ -121,23 +132,7 @@ export default {
VionVideo.VionPTZonrol(null, nType, nParam);
},
subset() {
let mtasks = this.allMask.mtasks;
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();
}
});
this.$emit("subpostion", this.presetindex);
}
}
};
......
......@@ -110,7 +110,7 @@
label="操作">
<template slot-scope="scope">
<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>
<span class="tableSpanBorder"></span>
<el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false>
......
......@@ -145,7 +145,7 @@
label="操作">
<template slot-scope="scope">
<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>
<span class="tableSpanBorder"></span>
<el-tooltip content="详情" placement="bottom" effect="light" :visible-arrow=false>
......
......@@ -37,8 +37,8 @@
</el-form-item>
<el-form-item label="时间计划">
<el-select v-model="formData.period">
<el-option value="true" label="全天"></el-option>
<el-option value="false" label="时间"></el-option>
<el-option :value="1" label="全天"></el-option>
<el-option :value="0" label="时间"></el-option>
</el-select>
</el-form-item>
<el-form-item label="时间" v-show="formData.plate_time != 'day'">
......
<template>
<div class="contentBox">
<div class="topCon">
<div class="left">
<!-- <div class="left">
<img src="../../assets/img/taskmanage/weather.png" alt="" />
<span class="textCon">
<div class="topText">21°/31°</div>
<div class="bottomText">西北风1级 空气优</div>
</span>
</div>
</div> -->
<div class="right">
<div class="rightBox">
<img src="../../assets/img/taskmanage/pic1.png" alt="" />
......@@ -336,9 +336,14 @@ export default {
// /
},
dateFormatter(row, column, cellValue, index) {
let startDate = cellValue ? cellValue.split(" ")[0] : "";
let endDate = row.end_dt ? row.end_dt.split(" ")[0] : "";
return startDate + " ~ " + endDate;
if (row.period) {
return "全天"
} 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) {
if (cellValue == 0) {
......
......@@ -2,8 +2,13 @@
<el-row :gutter="10" style="padding: 10px 0 10px 10px;width: 100%;overflow:hidden">
<el-col :span="17">
<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>
<div class="eventlist-box">
<div class="eventlist-box card-hover">
<!-- <eventList></eventList> -->
<devInfo></devInfo>
</div>
......@@ -20,7 +25,7 @@
</el-col>
<el-col :span="7">
<el-row>
<div class="collect-box">
<div class="collect-box card-hover">
<div class="header-title">今日抓拍量</div>
<div class="collect-content">
<el-col :span="6" class="content-item">
......@@ -44,11 +49,11 @@
</el-row>
<el-row :gutter="12" class="event-type-box" style="margin-top:1vh">
<el-col :span="16">
<div class="right-item-box">
<div class="right-item-box card-hover">
<eventTypedis></eventTypedis>
</div>
</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="title">重点车辆分布</div>
<div class="car-dis-info">
......@@ -88,12 +93,12 @@
</el-col>
</el-row>
<el-row style="margin-top:1vh;background:#fff">
<div class>
<div class="card-hover">
<illegaltrend></illegaltrend>
</div>
</el-row>
<el-row class="clearpright" style="margin-top:1vh">
<div class="right-item-box">
<div class="right-item-box card-hover">
<div class="title">实时数据</div>
<alarmEvent @event="alarmevent"></alarmEvent>
</div>
......@@ -126,7 +131,8 @@ export default {
ocxstatus:true,
archiveUnid: 0,
snap_num: 0,
playurl: {},
playurl: {},
vchanname:'',
playurl2:"",
audit_num: 0,
snapData: {
......@@ -168,6 +174,9 @@ export default {
//移动地图
this.$refs.map.movemap(data);
},
searchvchan(){
this.$refs.map.searchvchan(this.vchanname)
},
closeocx(){
this.ocxstatus=false;
},
......@@ -437,4 +446,12 @@ export default {
width:200px;
height:200px;
}
.search-vchan{
width 270px;
position: absolute;
top: 12px;
z-index 900;
right 10px;
border-radius 3px;
}
</style>
......@@ -19,7 +19,7 @@
<div class="infoChild">
<img src="../../assets/img/map/warn.png" alt="">
<span class="textCon">
<div>运行异常资源</div>
<div>运行异常</div>
<div class="colorText"><span>7</span></div>
</span>
</div>
......
<template>
<div>
<div id="map" class="maps"></div>
<div id="popup" class="ol-popup">
<div id="popup" class="ol-popup">
<a
href="#"
id="popup-closer"
class="ol-popup-closer"
@click="closepopup"
></a>
<div class="" id="t-popup-content">
</div>
<div class="" id="t-popup-content"></div>
</div>
<div id="videopopup" class="ol-popup">
<a
......@@ -22,6 +21,21 @@
<videoPlay ref="mapvideo" :playurl="playurl"></videoPlay>
</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>
</template>
......@@ -34,7 +48,7 @@ import Feature from "ol/Feature"; //元素
import Overlay from "ol/Overlay"; //弹出框
import { toStringHDMS } from "ol/coordinate";
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 {
Tile as TileLayer,
Vector as VectorLayer,
......@@ -68,49 +82,53 @@ var map = "";
var Views = "";
var container = "";
var videocontainer = "";
var taskInfocontaniner = "";
var content = "";
var voideocontent = "";
var closer = "";
var taskcloser = "";
var overlay = "";
var RotateNorthControl = (function (Control) {
function RotateNorthControl(opt_options) {
var options = opt_options || {};
var infooverlay = "";
var RotateNorthControl = (function(Control) {
function RotateNorthControl(opt_options) {
var options = opt_options || {};
var button = document.createElement('button');
button.className = 'el-icon-aim';
var button = document.createElement("button");
button.className = "el-icon-aim";
var element = document.createElement('div');
element.className = 'rotate-north ol-unselectable ol-control';
element.appendChild(button);
var element = document.createElement("div");
element.className = "rotate-north ol-unselectable ol-control";
element.appendChild(button);
Control.call(this, {
element: element,
target: options.target
});
Control.call(this, {
element: element,
target: options.target
});
button.addEventListener('click', this.handleRotateNorth.bind(this), false);
}
button.addEventListener("click", this.handleRotateNorth.bind(this), false);
}
if ( Control ) RotateNorthControl.__proto__ = Control;
RotateNorthControl.prototype = Object.create( Control && Control.prototype );
RotateNorthControl.prototype.constructor = RotateNorthControl;
if (Control) RotateNorthControl.__proto__ = Control;
RotateNorthControl.prototype = Object.create(Control && Control.prototype);
RotateNorthControl.prototype.constructor = RotateNorthControl;
RotateNorthControl.prototype.handleRotateNorth = function handleRotateNorth () {
let pos = [120.324447, 36.074594];
Views.animate({
center: pos,
duration: 400,
zoom: 14
});
};
RotateNorthControl.prototype.handleRotateNorth = function handleRotateNorth() {
let pos = [120.324447, 36.074594];
Views.animate({
center: pos,
duration: 400,
zoom: 14
});
};
return RotateNorthControl;
}(Control));
return RotateNorthControl;
})(Control);
export default {
data() {
return {
devList: [],
playurl:{}
playurl: {},
infoData: {}
};
},
components: {
......@@ -177,9 +195,7 @@ export default {
center: [120.324447, 36.064594]
});
map = new Map({
controls: defaultControls().extend([
new RotateNorthControl()
]),
controls: defaultControls().extend([new RotateNorthControl()]),
// 设置地图图层
layers: [
// 创建一个使用Open Street Map地图源的瓦片图层
......@@ -215,7 +231,6 @@ export default {
let that = this;
map.on("click", e => {
console.log('经纬度',e.coordinate);
var pixel = map.getEventPixel(e.originalEvent);
//点击相机标注点
map.forEachFeatureAtPixel(pixel, function(feature) {
......@@ -226,18 +241,30 @@ export default {
//播放视频操作
let data = feature.getProperties().cameraInfo;
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) {
let pos = [120.324447, 36.074594];
movemap(data, point, type) {
let pos = point ? point : [120.324447, 36.074594];
Views.animate({
center: pos,
duration: 400,
zoom: 14
});
this.addLayer(data, pos);
if (type && type == 2) {
this.addLayer(data, pos);
}
},
closepopup() {
overlay.setPosition(undefined);
......@@ -245,6 +272,7 @@ export default {
return false;
},
closevideopopup() {
this.closetaskpopup();
let video_ocx = document.getElementById("VionVideo");
let stopRes = video_ocx.StopPlaySip(0);
let stopRtspRes = video_ocx.StopPlay(0);
......@@ -252,6 +280,11 @@ export default {
closer.blur();
return false;
},
closetaskpopup() {
infooverlay.setPosition(undefined);
taskcloser.blur();
return false;
},
addLayer(pdata, pos) {
document.getElementById("popup").style.display = "block";
......@@ -323,7 +356,19 @@ export default {
vectorSource.addFeature(icon);
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) {
let pos = [data.longitude, data.latitude];
document.getElementById("videopopup").style.display = "block";
......@@ -385,6 +430,14 @@ export default {
this.InitMap();
}, 200);
});
},
searchvchan(vchanname) {
this.devList.forEach(ele => {
if (ele.vchan_name == vchanname) {
let point = [ele.longitude, ele.latitude];
this.movemap(point);
}
});
}
},
mounted() {
......@@ -393,9 +446,11 @@ export default {
}, 1000);
container = document.getElementById("popup");
videocontainer = document.getElementById("videopopup");
taskInfocontaniner = document.getElementById("taskinfopopup");
content = document.getElementById("t-popup-content");
voideocontent = document.getElementById("video-popup-content");
closer = document.getElementById("popup-closer");
taskcloser = document.getElementById("task-popup-closer");
}
};
</script>
......@@ -472,6 +527,10 @@ export default {
width: 100%;
}
}
.info-popup {
width 10vw;
height 100px;
}
.pop-info{
float: left;
padding-left: 20px;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!