Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
platform
/
fanxing_new
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit d13af288
authored
Mar 20, 2020
by
潘建波
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
提交预置位设置
1 parent
2d6459fb
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
568 additions
and
425 deletions
dist.zip
src/api/axios.js
src/api/baseUrl.js
src/assets/css/public.css
src/views/behaviorShow/devInfo.vue
src/views/sceneManage/setting/areaconfig/trafficback.vue
src/views/sceneManage/setting/index.vue
src/views/sceneManage/setting/ytconfig.vue
src/views/search/event.vue
src/views/search/illegal.vue
src/views/taskManage/editSet.vue
src/views/taskManage/index.vue
src/views/trafficShow/index.vue
src/views/trafficShow/indexback.vue
src/views/trafficShow/map.vue
dist.zip
View file @
d13af28
No preview for this file type
src/api/axios.js
View file @
d13af28
...
...
@@ -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();
...
...
src/api/baseUrl.js
View file @
d13af28
...
...
@@ -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:5251
0"
;
// 生产环境url
baseUrl
=
"http://
192.168.9.133:2008
0"
;
// 生产环境url
break
;
}
...
...
src/assets/css/public.css
View file @
d13af28
...
...
@@ -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
src/views/behaviorShow/devInfo.vue
View file @
d13af28
...
...
@@ -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>
...
...
src/views/sceneManage/setting/areaconfig/trafficback.vue
View file @
d13af28
...
...
@@ -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
>
...
...
src/views/sceneManage/setting/index.vue
View file @
d13af28
...
...
@@ -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
=
{
...
...
src/views/sceneManage/setting/ytconfig.vue
View file @
d13af28
...
...
@@ -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
);
}
}
};
...
...
src/views/search/event.vue
View file @
d13af28
...
...
@@ -110,7 +110,7 @@
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-tooltip
content=
"播放"
placement=
"bottom"
effect=
"light"
:visible-arrow=
false
>
<span
:class=
"
{'iconfont icon-
bofa
ng 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-qido
ng 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
>
...
...
src/views/search/illegal.vue
View file @
d13af28
...
...
@@ -145,7 +145,7 @@
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-tooltip
content=
"播放"
placement=
"bottom"
effect=
"light"
:visible-arrow=
false
>
<span
:class=
"
{'iconfont icon-
bofa
ng 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-qido
ng 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
>
...
...
src/views/taskManage/editSet.vue
View file @
d13af28
...
...
@@ -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'"
>
...
...
src/views/taskManage/index.vue
View file @
d13af28
<
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
)
{
...
...
src/views/trafficShow/index.vue
View file @
d13af28
...
...
@@ -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
>
src/views/trafficShow/indexback.vue
View file @
d13af28
...
...
@@ -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>
...
...
src/views/trafficShow/map.vue
View file @
d13af28
<
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
;
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment