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 7faee8e8
authored
Apr 14, 2020
by
潘建波
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
修改标定设置未生效问题
1 parent
27813738
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
735 additions
and
465 deletions
dist.zip
src/api/apiList.js
src/api/baseUrl.js
src/api/show/index.js
src/assets/css/public.css
src/assets/js/buildcodes.js
src/store/modules/menus.js
src/store/mutaition.js
src/store/state.js
src/views/Layout/index.vue
src/views/ops/equipment_manage.vue
src/views/resource/videoEquipment.vue
src/views/sceneManage/eventData/allEvent.vue
src/views/sceneManage/eventDetail.vue
src/views/sceneManage/eventTab.vue
src/views/sceneManage/index.vue
src/views/sceneManage/setting/areaconfig/TraficCanvas.vue
src/views/sceneManage/setting/demarcate.vue
src/views/sceneManage/setting/index.vue
src/views/sceneManage/setting/setTimer.vue
src/views/sceneManage/videoplay.vue
src/views/taskManage/back.vue
src/views/taskManage/editSet.vue
src/views/taskManage/editVideo.vue
src/views/taskManage/index.vue
src/views/taskManage/subtask.vue
src/views/trafficShow/alarmEvent.vue
src/views/trafficShow/eventTypedis.vue
src/views/trafficShow/illegaltrend.vue
src/views/trafficShow/index.vue
dist.zip
View file @
7faee8e
No preview for this file type
src/api/apiList.js
View file @
7faee8e
...
...
@@ -10,14 +10,14 @@ import ops from "./ops"
let
wsIP
=
"vion-panda.51vip.biz:52510"
;
switch
(
process
.
env
.
NODE_ENV
)
{
case
"development"
:
wsIP
=
"
vion-panda.51vip.biz:5251
0"
;
// 测试环境url
wsIP
=
"
192.168.9.233:2008
0"
;
// 测试环境url
// baseUrl = "http://192.168.9.61:8086";
break
;
case
"pre"
:
wsIP
=
""
;
// 预上线环境url
break
;
case
"production"
:
wsIP
=
"192.168.9.133:20080"
;
// 生产环境url
wsIP
=
location
.
host
;
// 生产环境url
break
;
}
export
default
{
...
...
src/api/baseUrl.js
View file @
7faee8e
...
...
@@ -3,15 +3,15 @@ import axios from "axios";
console
.
log
(
process
.
env
.
NODE_ENV
);
switch
(
process
.
env
.
NODE_ENV
)
{
case
"development"
:
// baseUrl = "http://192.168.9.1
33:20080"; // 测试环境url
baseUrl
=
"http://192.168.9.2
33:20080"
;
// 测试环境url
// baseUrl = "http://192.168.9.61:8086";
baseUrl
=
'http://vion-panda.51vip.biz:52510'
;
//
baseUrl = 'http://vion-panda.51vip.biz:52510';
break
;
case
"pre"
:
baseUrl
=
"https://pre-server.feleti.cn"
;
// 预上线环境url
break
;
case
"production"
:
baseUrl
=
"http://192.168.9.133:20080"
;
// 生产环境url
baseUrl
=
`http://
${
location
.
host
}
`
;
// 生产环境url
break
;
}
...
...
src/api/show/index.js
View file @
7faee8e
...
...
@@ -36,9 +36,9 @@ export default {
//今日事件趋势
return
api
.
get
(
`
${
baseUrl
}
/api/v1/datahandle/statistics/behavior/hour`
,
params
);
},
getDevList
(
devid
)
{
getDevList
(
devid
,
vtype
)
{
// 获取设备信息
return
api
.
get
(
`
${
baseUrl
}
/api/v1/devconf_fx/devs/9cb6e39adc5176b81879f6c22f1d962/vchan_struct?
typea=1&
s=1578967233185&limit=1000000`
);
return
api
.
get
(
`
${
baseUrl
}
/api/v1/devconf_fx/devs/9cb6e39adc5176b81879f6c22f1d962/vchan_struct?s=1578967233185&limit=1000000`
);
},
addShowUrl
(
params
)
{
//添加展示
...
...
src/assets/css/public.css
View file @
7faee8e
...
...
@@ -73,7 +73,7 @@ body{
}
/* 抓拍展示 */
.pic-box
{
width
:
100
%
;
width
:
98
%
;
margin-bottom
:
10px
;
background
:
#F1F1F1
;
border-radius
:
2px
;
...
...
@@ -96,7 +96,7 @@ body{
}
.pic-info
li
{
overflow
:
hidden
;
margin-bottom
:
8
px
;
margin-bottom
:
3
px
;
}
.pic-info
li
span
{
display
:
inline-block
;
...
...
@@ -252,7 +252,7 @@ body{
box-shadow
:
-1.2px
2px
1px
0px
rgba
(
78
,
8
,
8
,
0.1
);
}
.card-hover
:hover
{
.card-hover
:hover
,
.pic-hover
:hover
{
webkit-transform
:
translateY
(
-4px
)
scale
(
2
);
-moz-transform
:
translateY
(
-4px
)
scale
(
1.01
);
-ms-transform
:
translateY
(
-4px
)
scale
(
1.01
);
...
...
@@ -261,8 +261,11 @@ body{
-webkit-box-shadow
:
0
14px
24px
rgba
(
62
,
57
,
107
,
.1
);
box-shadow
:
0
14px
24px
rgba
(
62
,
57
,
107
,
.1
);
}
.pic-hover
:hover
{
box-shadow
:
2px
3px
4px
rgba
(
2
,
2
,
2
,
0.2
);
}
.card-hover
{
.card-hover
,
.pic-hover
{
-webkit-transition
:
all
.25s
ease
;
-o-transition
:
all
.25s
ease
;
-moz-transition
:
all
.25s
ease
;
...
...
src/assets/js/buildcodes.js
View file @
7faee8e
...
...
@@ -9,7 +9,6 @@ class Codes {
* 返回得到的结果
*/
getCodeList
(
name
)
{
console
.
log
(
JSON
.
parse
(
window
.
localStorage
.
getItem
(
name
)));
return
JSON
.
parse
(
window
.
localStorage
.
getItem
(
name
));
}
init
(
allData
)
{
...
...
@@ -19,7 +18,7 @@ class Codes {
this
.
result
=
{};
this
.
result
=
allData
;
this
.
classify
();
console
.
log
(
this
.
result
);
//
console.log(this.result);
return
this
.
result
;
}
// 分类
...
...
@@ -206,28 +205,28 @@ class Codes {
ary
.
push
(
"年检标志"
);
}
}
catch
(
e
)
{
console
.
log
(
"年检标志无"
);
//
console.log("年检标志无");
}
try
{
if
(
this
.
allData
.
event_data
.
RefinedFeature
.
rDecoration
)
{
ary
.
push
(
"摆件"
);
}
}
catch
(
e
)
{
console
.
log
(
"摆件无"
);
//
console.log("摆件无");
}
try
{
if
(
this
.
allData
.
event_data
.
RefinedFeature
.
rPendant
)
{
ary
.
push
(
"吊坠"
);
}
}
catch
(
e
)
{
console
.
log
(
"吊坠无"
);
//
console.log("吊坠无");
}
try
{
if
(
this
.
allData
.
event_data
.
RefinedFeature
.
rSunshading
)
{
ary
.
push
(
"遮阳板"
);
}
}
catch
(
e
)
{
console
.
log
(
"遮阳板无"
);
//
console.log("遮阳板无");
}
if
(
ary
.
length
)
{
this
.
result
.
RefinedFeature_text
=
ary
.
join
(
""
);
...
...
@@ -349,29 +348,29 @@ class Codes {
this
.
result
.
xcycle_plate_text
=
"未识别"
;
}
// 骑车类型
console
.
log
(
this
.
allData
.
event_data
.
xcycle_type
)
if
(
!
this
.
allData
.
event_data
.
xcycle_type
)
{
this
.
result
.
xcycle_type_text
=
"行人"
;
}
else
{
try
{
switch
(
this
.
allData
.
event_data
.
xcycle_type
)
{
case
"motorcycle"
:
this
.
result
.
xcycle_type_text
=
"摩托车"
;
break
;
case
"bicycle"
:
this
.
result
.
xcycle_type_text
=
"自行车"
;
break
;
case
"tricycle"
:
this
.
result
.
xcycle_type_text
=
"三轮车"
;
break
;
default
:
break
;
}
}
catch
(
err
)
{
this
.
result
.
xcycle_type_text
=
"未识别"
;
}
}
//
console.log(this.allData.event_data.xcycle_type)
if
(
!
this
.
allData
.
event_data
.
xcycle_type
)
{
this
.
result
.
xcycle_type_text
=
"行人"
;
}
else
{
try
{
switch
(
this
.
allData
.
event_data
.
xcycle_type
)
{
case
"motorcycle"
:
this
.
result
.
xcycle_type_text
=
"摩托车"
;
break
;
case
"bicycle"
:
this
.
result
.
xcycle_type_text
=
"自行车"
;
break
;
case
"tricycle"
:
this
.
result
.
xcycle_type_text
=
"三轮车"
;
break
;
default
:
break
;
}
}
catch
(
err
)
{
this
.
result
.
xcycle_type_text
=
"未识别"
;
}
}
try
{
if
(
this
.
result
.
xcycle_type_text
===
"自行车"
)
{
this
.
result
.
company
=
this
.
allData
.
event_data
.
xcycle
.
company
.
name
;
...
...
src/store/modules/menus.js
View file @
7faee8e
...
...
@@ -72,7 +72,6 @@ const menu = {
commit
(
"SET_ROUTERS"
,
[]);
return
;
}
else
{
console
.
log
(
'aaa'
,
data
)
let
accessedRouters
=
filterAsyncRouter
(
asyncRouterMap
,
data
);
commit
(
"SET_ROUTERS"
,
accessedRouters
);
}
...
...
src/store/mutaition.js
View file @
7faee8e
...
...
@@ -22,5 +22,8 @@ export default {
},
setmapopen
(
state
,
data
)
{
state
.
mapopen
=
data
;
},
setDevList
(
state
,
data
)
{
state
.
devList
=
data
;
}
};
src/store/state.js
View file @
7faee8e
export
default
{
ocxstate
:
0
,
mapopen
:
false
,
addRouter
:[]
mapopen
:
false
,
addRouter
:
[],
devList
:
[]
}
src/views/Layout/index.vue
View file @
7faee8e
...
...
@@ -89,11 +89,11 @@ export default {
getDate
()
{
let
date
=
new
Date
();
let
Y
=
date
.
getFullYear
();
let
M
=
date
.
getMonth
()
>
10
?
date
.
getMonth
()
:
`0
${
date
.
getMonth
()
+
1
}
`
;
let
D
=
date
.
getDate
()
>
10
?
date
.
getDate
()
:
`0
${
date
.
getDate
()}
`
;
let
h
=
date
.
getHours
()
>
10
?
date
.
getHours
()
:
`0
${
date
.
getHours
()}
`
;
let
M
=
date
.
getMonth
()
>
9
?
date
.
getMonth
()
:
`0
${
date
.
getMonth
()
+
1
}
`
;
let
D
=
date
.
getDate
()
>
9
?
date
.
getDate
()
:
`0
${
date
.
getDate
()}
`
;
let
h
=
date
.
getHours
()
>
9
?
date
.
getHours
()
:
`0
${
date
.
getHours
()}
`
;
let
m
=
date
.
getMinutes
()
>
10
?
date
.
getMinutes
()
:
`0
${
date
.
getMinutes
()}
`
;
date
.
getMinutes
()
>
9
?
date
.
getMinutes
()
:
`0
${
date
.
getMinutes
()}
`
;
let
s
=
date
.
getSeconds
();
let
w
=
date
.
getDay
();
let
wtext
=
""
;
...
...
src/views/ops/equipment_manage.vue
View file @
7faee8e
...
...
@@ -19,7 +19,7 @@
<div
:class=
"
{ 'submast-item': true, 'top-line': true }"
v-for="(subitem, index) in subDevData"
:key="
subitem.device_id
"
:key="
index
"
ref="subitem"
@click.stop="getleval($event, index, subitem)"
:style="
...
...
@@ -39,9 +39,9 @@
<!-- 叶子节点 -->
<div
v-if=
"istop && slaveData.length > 0"
:style=
"`top:$
{topheihgt
}px;left:${loopitem * 14 + 12
}vw`"
:style=
"`top:$
{topheihgt
+1}px;left:${loopitem * 14 + 11.01
}vw`"
v-for="(loopitem, loopindex) in Math.ceil(slaveData.length / 6)"
:key="loopi
tem
"
:key="loopi
ndex
"
class="leval-box"
>
<span
...
...
@@ -55,7 +55,7 @@
'bottom-line': !istop
}"
v-for="(item, cindex) in setslaveData(slaveData, loopindex)"
:key="
item
"
:key="
cindex
"
:style="
`background:${curlevalcolor};borderColor:${curlevalbordercolor}`
"
...
...
@@ -68,12 +68,13 @@
class=
"vertical-line"
:style=
"`background:$
{curlevalbordercolor}`"
>
</span>
<span>
{{
item
}}
</span>
<div>
{{
item
.
device_name
}}
</div>
<div>
{{
item
.
in_ip
}}
</div>
</div>
</div>
<div
v-if=
"!istop && slaveData.length > 0"
:style=
"`bottom:$
{bottomHeight
}px;left:${loopitem * 14 + 12
}vw`"
:style=
"`bottom:$
{bottomHeight
+5}px;left:${loopitem * 14 + 11
}vw`"
v-for="(loopitem, loopindex) in Math.ceil(slaveData.length / 6)"
:key="loopitem"
class="leval-bottom-box"
...
...
@@ -89,8 +90,8 @@
'top-line': istop,
'bottom-line': !istop
}"
v-for="
item in setslaveData(slaveData,
loopindex)"
:key="
item
"
v-for="
(item, xindex) in setslaveData(slaveData,
loopindex)"
:key="
xindex
"
:style="
`background:${curlevalcolor};borderColor:${curlevalbordercolor}`
"
...
...
@@ -103,7 +104,8 @@
class=
"vertical-line"
:style=
"`background:$
{curlevalbordercolor}`"
>
</span>
<span>
{{
"1.9.99"
}}
</span>
<div>
{{
item
.
device_name
}}
</div>
<div>
{{
item
.
in_ip
}}
</div>
</div>
</div>
</div>
...
...
@@ -390,6 +392,7 @@ export default {
border-radius
:
5px
;
margin-top
:
1vh
;
border
:
1px
solid
#333
;
cursor
:
pointer
;
}
.submast-item
::before
{
content
:
""
;
...
...
src/views/resource/videoEquipment.vue
View file @
7faee8e
...
...
@@ -269,12 +269,10 @@
})
}
}
else
if
(
this
.
tableType
==
"video"
){
console
.
log
(
data
)
if
(
data
.
org_type
==
'video'
){
this
.
formattterData
=
data
.
childs
;
}
else
{
this
.
formattterData
=
data
;
console
.
log
(
'aaaaaa'
,
this
.
formattterData
)
}
}
...
...
src/views/sceneManage/eventData/allEvent.vue
View file @
7faee8e
...
...
@@ -3,7 +3,7 @@
<el-row
v-if=
"allAlarmData.length > 0"
>
<!-- 交通事件类 -->
<!-- 机动车事件 -->
<el-col
:span=
"24"
ref=
"picbox"
:class=
"
{'pic-box':true,'illclass':item.illegalTypeCode == 1?true:false}" v-for="(item, index) in allAlarmData" :key="index" v-if="item.event_cate !== 'flow'">
<el-col
:span=
"24"
ref=
"picbox"
:class=
"
{'pic-box':true,'
pic-hover':true,'
illclass':item.illegalTypeCode == 1?true:false}" v-for="(item, index) in allAlarmData" :key="index" v-if="item.event_cate !== 'flow'">
<el-col
:lg=
"12"
:md=
"10"
:sm=
"11"
v-if=
'item.task_algo_type!="1"'
>
<el-card
:body-style=
"
{ padding: 0 }">
<div
class=
"img-wrap"
@
click=
"showInfo(index)"
>
...
...
src/views/sceneManage/eventDetail.vue
View file @
7faee8e
<
template
>
<div
class=
"pic-detail"
>
<el-dialog
title=
"详情"
:visible
.
sync=
"isShow"
:before-close=
'beforeHideModal'
>
<el-row>
<el-col
:span=
"16"
>
<div
@
mousemove=
'picMove'
class=
"pic-wrap"
>
<img
v-if=
"curPicData.picsEmpty"
:src=
"carImg"
alt=
"暂无图片"
title=
"暂无图片"
slot=
"reference"
class=
'pictures small'
/>
<!--
<img
v-if=
"curPicData.pics"
:src=
"carImg"
alt=
"暂无图片"
slot=
"reference"
class=
'pictures small'
/>
-->
<el-popover
placement=
"left-end"
width=
"305"
trigger=
"hover"
v-if=
"!curPicData.picsEmpty"
>
<div
:style=
"
{backgroundImage: 'url('+curPicData.pic+')',backgroundRepeat:'no-repeat'}" alt="" id="big" class='big'>
</div>
<img
:src=
"curPicData.pic"
alt=
""
slot=
"reference"
class=
'pictures small'
/>
</el-popover>
</div>
</el-col>
<!-- 交通 -->
<el-col
:span=
"8"
v-if=
"curPicData.event_type === 'vehicle' || curPicData.event_type === 'xcycle'|| curPicData.event_type === 'pedestrian'"
>
<ul
class=
"pic-info"
>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_type_text"
>
<span>
车辆类型:
</span>
<span>
{{
curPicData
.
vehicle_body_type_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_plate_text"
>
<span>
车牌号码:
</span>
<span>
{{
curPicData
.
vehicle_plate_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.plate_type_text"
>
<span>
车牌类型:
</span>
<span>
{{
curPicData
.
plate_type_text
}}
</span>
</li>
<li
:title=
"curPicData.shoot_date"
>
<span>
经过日期:
</span>
<span>
{{
curPicData
.
shoot_date
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
>
<span>
经过时间:
</span>
<span>
{{
curPicData
.
shoot_time
}}
</span>
</li>
<li
:title=
"curPicData.location_name"
>
<span>
经过地点:
</span>
<span>
{{
curPicData
.
location_name
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_logo_text"
>
<span>
车辆品牌:
</span>
<span>
{{
curPicData
.
vehicle_body_logo_text
}}
</span>
</li>
<!--
<li
:title=
"curPicData.vehicle_body_type_text"
>
<div
class=
"pic-detail"
>
<el-dialog
title=
"详情"
:visible
.
sync=
"isShow"
:before-close=
"beforeHideModal"
>
<el-row>
<el-col
:span=
"24"
>
<div
@
mousemove=
"picMove"
class=
"pic-wrap"
>
<img
v-if=
"curPicData.picsEmpty"
:src=
"carImg"
alt=
"暂无图片"
title=
"暂无图片"
slot=
"reference"
class=
"pictures small"
/>
<!--
<img
v-if=
"curPicData.pics"
:src=
"carImg"
alt=
"暂无图片"
slot=
"reference"
class=
'pictures small'
/>
-->
<el-popover
placement=
"left-end"
width=
"305"
trigger=
"hover"
v-if=
"!curPicData.picsEmpty"
>
<div
:style=
"
{
backgroundImage: 'url(' + curPicData.bigpic + ')',
backgroundRepeat: 'no-repeat'
}"
alt=""
id="big"
class="big"
>
</div>
<img
:src=
"curPicData.bigpic"
alt=
""
slot=
"reference"
class=
"pictures small"
/>
</el-popover>
</div>
</el-col>
<!-- 交通 -->
<el-col
:span=
"24"
v-if=
"
curPicData.event_type === 'vehicle' ||
curPicData.event_type === 'xcycle' ||
curPicData.event_type === 'pedestrian'
"
>
<ul
class=
"pic-info"
>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_type_text"
>
<span>
车辆类型:
</span>
<span>
{{
curPicData
.
vehicle_body_type_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_plate_text"
>
<span>
车牌号码:
</span>
<span>
{{
curPicData
.
vehicle_plate_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.plate_type_text"
>
<span>
车牌类型:
</span>
<span>
{{
curPicData
.
plate_type_text
}}
</span>
</li>
<li
:title=
"curPicData.shoot_date"
>
<span>
经过日期:
</span>
<span>
{{
curPicData
.
shoot_date
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
>
<span>
经过时间:
</span>
<span>
{{
curPicData
.
shoot_time
}}
</span>
</li>
<li
:title=
"curPicData.location_name"
>
<span>
经过地点:
</span>
<span>
{{
curPicData
.
location_name
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_logo_text"
>
<span>
车辆品牌:
</span>
<span>
{{
curPicData
.
vehicle_body_logo_text
}}
</span>
</li>
<!--
<li
:title=
"curPicData.vehicle_body_type_text"
>
<span>
车辆类型:
</span>
<span>
{{
curPicData
.
vehicle_body_type_text
}}
</span>
</li>
-->
<!-- 机动车 -->
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.plate_color_text"
>
<span>
车牌颜色:
</span>
<span>
{{
curPicData
.
plate_color_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_color_text"
>
<span>
车身颜色:
</span>
<span>
{{
curPicData
.
vehicle_body_color_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.RefinedFeature_text"
>
<span>
标志物:
</span>
<span>
{{
curPicData
.
RefinedFeature_text
}}
</span>
</li>
<!-- 非机动车 -->
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.xcycle_type_text"
>
<span>
骑车类型:
</span>
<span>
{{
curPicData
.
xcycle_type_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.xcycle_color_type"
>
<span>
车辆颜色:
</span>
<span>
{{
curPicData
.
xcycle_color_type
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_sex"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
性别:
</span>
<span>
{{
curPicData
.
driver_face_sex
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.company"
>
<span>
运营公司:
</span>
<span>
{{
curPicData
.
company
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.driver_face_upbody_text"
>
<span>
上身颜色:
</span>
<span>
{{
curPicData
.
driver_face_upbody_text
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
速度:
</span>
<span>
{{
curPicData
.
location_speed
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
戴帽子:
</span>
<span>
{{
curPicData
.
driver_face_with_hats
}}
</span>
</li>
<!-- 行人 -->
<li
:title=
"curPicData.driver_face_sex"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
性别:
</span>
<span>
{{
curPicData
.
driver_face_sex
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_upbody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
上身颜色:
</span>
<span>
{{
curPicData
.
driver_face_upbody_text
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
下身颜色:
</span>
<span>
{{
curPicData
.
driver_face_lobody_text
}}
</span>
</li>
<li
:title=
"curPicData.pedestrian_height"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
身高:
</span>
<span>
{{
curPicData
.
pedestrian_height
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
速度:
</span>
<span>
{{
curPicData
.
location_speed
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
戴帽子:
</span>
<span>
{{
curPicData
.
driver_face_with_hats
}}
</span>
</li>
<li
v-if=
"curPicData.illegalType"
:title=
"curPicData.illegalType"
>
<span>
违法类型:
</span>
<span>
{{
curPicData
.
illegalType
}}
</span>
</li>
</ul>
</el-col>
<el-col
:span=
"8"
v-if=
"curPicData.event_cate === 'behavior'"
>
<ul
class=
"pic-info"
>
<li
:title=
"curPicData.shoot_date"
>
<span>
抓拍日期:
</span>
<span>
{{
curPicData
.
shoot_date
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
>
<span>
抓拍时间:
</span>
<span>
{{
curPicData
.
shoot_time
}}
</span>
</li>
<li
:title=
"getCode('安防事件',curPicData.event_type)"
>
<span>
事件类型:
</span>
<span>
{{
getCode
(
'安防事件'
,
String
(
curPicData
.
event_type
))
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
v-if=
"curPicData.event_type == '21'"
>
<span>
区域人数:
</span>
<span>
{{
curPicData
.
event_data
.
density
.
persons
}}
人
</span>
</li>
</ul>
</el-col>
</el-row>
<span
slot=
"footer"
>
<button
class=
"closebtn"
@
click=
"beforeHideModal"
style=
'width: 10%;'
>
关闭
</button>
</span>
</el-dialog>
</div>
<!-- 机动车 -->
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.plate_color_text"
>
<span>
车牌颜色:
</span>
<span>
{{
curPicData
.
plate_color_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.vehicle_body_color_text"
>
<span>
车身颜色:
</span>
<span>
{{
curPicData
.
vehicle_body_color_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'vehicle'"
:title=
"curPicData.RefinedFeature_text"
>
<span>
标志物:
</span>
<span>
{{
curPicData
.
RefinedFeature_text
}}
</span>
</li>
<!-- 非机动车 -->
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.xcycle_type_text"
>
<span>
骑车类型:
</span>
<span>
{{
curPicData
.
xcycle_type_text
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.xcycle_color_type"
>
<span>
车辆颜色:
</span>
<span>
{{
curPicData
.
xcycle_color_type
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_sex"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
性别:
</span>
<span>
{{
curPicData
.
driver_face_sex
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.company"
>
<span>
运营公司:
</span>
<span>
{{
curPicData
.
company
}}
</span>
</li>
<li
v-if=
"curPicData.event_type === 'xcycle'"
:title=
"curPicData.driver_face_upbody_text"
>
<span>
上身颜色:
</span>
<span>
{{
curPicData
.
driver_face_upbody_text
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
速度:
</span>
<span>
{{
curPicData
.
location_speed
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'xcycle'"
>
<span>
戴帽子:
</span>
<span>
{{
curPicData
.
driver_face_with_hats
}}
</span>
</li>
<!-- 行人 -->
<li
:title=
"curPicData.driver_face_sex"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
性别:
</span>
<span>
{{
curPicData
.
driver_face_sex
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_upbody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
上身颜色:
</span>
<span>
{{
curPicData
.
driver_face_upbody_text
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
下身颜色:
</span>
<span>
{{
curPicData
.
driver_face_lobody_text
}}
</span>
</li>
<li
:title=
"curPicData.pedestrian_height"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
身高:
</span>
<span>
{{
curPicData
.
pedestrian_height
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
速度:
</span>
<span>
{{
curPicData
.
location_speed
}}
</span>
</li>
<li
:title=
"curPicData.driver_face_lobody_text"
v-if=
"curPicData.event_type === 'pedestrian'"
>
<span>
戴帽子:
</span>
<span>
{{
curPicData
.
driver_face_with_hats
}}
</span>
</li>
<li
v-if=
"curPicData.illegalType"
:title=
"curPicData.illegalType"
>
<span>
违法类型:
</span>
<span>
{{
curPicData
.
illegalType
}}
</span>
</li>
</ul>
</el-col>
<el-col
:span=
"24"
v-if=
"curPicData.event_cate === 'behavior'"
>
<ul
class=
"pic-info"
>
<li
:title=
"curPicData.shoot_date"
>
<span>
抓拍日期:
</span>
<span>
{{
curPicData
.
shoot_date
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
>
<span>
抓拍时间:
</span>
<span>
{{
curPicData
.
shoot_time
}}
</span>
</li>
<li
:title=
"getCode('安防事件', curPicData.event_type)"
>
<span>
事件类型:
</span>
<span>
{{
getCode
(
"安防事件"
,
String
(
curPicData
.
event_type
))
}}
</span>
</li>
<li
:title=
"curPicData.shoot_time"
v-if=
"curPicData.event_type == '21'"
>
<span>
区域人数:
</span>
<span>
{{
curPicData
.
event_data
.
density
.
persons
}}
人
</span>
</li>
</ul>
</el-col>
</el-row>
<span
slot=
"footer"
>
<button
class=
"el-button el-button--default el-button--small"
@
click=
"beforeHideModal"
>
关闭
</button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
carImg
:
''
,
isShow
:
false
,
curPicData
:{}
}
data
()
{
return
{
carImg
:
""
,
isShow
:
false
,
curPicData
:
{}
};
},
methods
:
{
detailInfo
:
function
(
data
)
{
this
.
curPicData
=
{};
this
.
curPicData
=
data
;
console
.
log
(
"detail"
,
data
)
this
.
isShow
=
true
;
this
.
$store
.
commit
(
"setocxstate"
,
0
);
},
beforeHideModal
:
function
()
{
this
.
isShow
=
false
;
this
.
$emit
(
"closeDetailModal"
);
},
methods
:
{
detailInfo
:
function
(
data
)
{
this
.
curPicData
=
{};
this
.
curPicData
=
data
;
this
.
isShow
=
true
;
this
.
$store
.
commit
(
'setocxstate'
,
0
)
},
beforeHideModal
:
function
()
{
this
.
isShow
=
false
;
this
.
$emit
(
'closeDetailModal'
)
},
picMove
:
function
(
e
)
{
var
e
=
e
||
window
.
event
;
if
(
e
.
target
.
getAttribute
(
'class'
).
indexOf
(
'small'
)
>
-
1
)
{
let
imgWidth
=
e
.
target
.
width
;
let
imgHeight
=
e
.
target
.
height
;
let
x
=
150
-
e
.
offsetX
/
imgWidth
*
1800
;
let
y
=
100
-
e
.
offsetY
/
imgHeight
*
1200
;
let
bigimg
=
document
.
getElementById
(
'big'
);
bigimg
.
style
.
backgroundPosition
=
x
+
'px '
+
y
+
'px'
}
else
{
return
}
}
picMove
:
function
(
e
)
{
var
e
=
e
||
window
.
event
;
if
(
e
.
target
.
getAttribute
(
"class"
).
indexOf
(
"small"
)
>
-
1
)
{
let
imgWidth
=
e
.
target
.
width
;
let
imgHeight
=
e
.
target
.
height
;
let
x
=
150
-
(
e
.
offsetX
/
imgWidth
)
*
1800
;
let
y
=
100
-
(
e
.
offsetY
/
imgHeight
)
*
1200
;
let
bigimg
=
document
.
getElementById
(
"big"
);
bigimg
.
style
.
backgroundPosition
=
x
+
"px "
+
y
+
"px"
;
}
else
{
return
;
}
}
}
}
}
;
</
script
>
<
style
scoped
>
.pictures
{
width
:
100%
;
max-height
:
528px
;
cursor
:
zoom-in
;
height
:
500px
;
}
.pic-info
{
margin-bottom
:
0
;
}
.pictures
{
width
:
100%
;
max-height
:
528px
;
cursor
:
zoom-in
;
}
.pic-info
li
{
text-align
:
left
;
font-size
:
18px
;
height
:
48px
;
line-height
:
48px
;
width
:
100%
;
overflow
:
hidden
;
min-width
:
235px
;
}
.pic-info
{
margin-bottom
:
0
;
}
.pic-info
li
span
{
float
:
left
;
}
.pic-info
li
{
height
:
30px
;
line-height
:
30px
;
width
:
33%
;
float
:
left
;
}
.pic-info
li
span
:first-child
{
padding-left
:
3%
;
margin-right
:
10px
;
width
:
91px
;
}
.pic-info
li
span
:last-child
{
width
:
100px
;
/*40%*/
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.big
{
width
:
300px
;
height
:
200px
;
background-size
:
1800px
1200px
;
}
.closebtn
{
height
:
30px
;
line-height
:
30px
;
}
.pic-info
li
span
{
float
:
left
;
font-size
:
14px
;
color
:
#606266
;
}
.pic-info
li
span
:first-child
{
padding-left
:
3%
;
margin-right
:
10px
;
width
:
91px
;
}
.pic-info
li
span
:last-child
{
width
:
100px
;
/*40%*/
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.big
{
width
:
300px
;
height
:
200px
;
background-size
:
1800px
1200px
;
}
.closebtn
{
height
:
30px
;
line-height
:
30px
;
}
</
style
>
src/views/sceneManage/eventTab.vue
View file @
7faee8e
...
...
@@ -56,6 +56,10 @@ export default {
console
.
log
(
tab
,
event
);
},
dataInit
(
cid
,
type
)
{
this
.
$refs
.
allalarm
.
allAlarmData
=
[];
this
.
$refs
.
caralarm
.
carAlarmData
=
[];
this
.
$refs
.
illegalalarm
.
illAlarmData
=
[];
this
.
$refs
.
eventalarm
.
eventAlarmData
=
[];
this
.
resultData
=
""
;
this
.
curType
=
type
;
this
.
carItems
=
[];
...
...
@@ -100,7 +104,6 @@ export default {
this
.
cws
.
onmessage
=
evt
=>
{
let
data
=
JSON
.
parse
(
evt
.
data
);
if
(
data
.
command
)
{
console
.
log
(
'a'
)
}
else
if
(
data
.
type
==
"response"
)
{
console
.
log
(
"请求任务推送成功"
);
}
else
if
(
data
.
event_cate
)
{
...
...
src/views/sceneManage/index.vue
View file @
7faee8e
...
...
@@ -184,6 +184,7 @@ export default {
setTimeout
(()
=>
{
this
.
$refs
.
videoplay
.
videoPlay
();
},
2000
);
console
.
log
(
"视频播放地址:"
,
this
.
playurl
.
rtsp_url
);
}
else
{
this
.
$message
({
message
:
"获取rtsp播放地址失败!请重试!"
,
...
...
src/views/sceneManage/setting/areaconfig/TraficCanvas.vue
View file @
7faee8e
...
...
@@ -617,8 +617,8 @@ export default {
type
:
ele
.
lane_type
,
index
:
ele
.
lane_no
,
direct
:
direct
,
lane_guiding_type
:
obj
.
lanes
.
lane
[
index
].
lane_guiding
_type
,
lane_use_type
:
obj
.
lanes
.
lane
[
index
].
lane_use_typ
e
lane_guiding_type
:
lane_guid
_type
,
lane_use_type
:
lane_us
e
};
}
});
...
...
@@ -983,6 +983,7 @@ export default {
},
//改变选中图形样式
makeSelectedGroup
:
function
(
shape
)
{
debugger
console
.
log
(
shape
);
let
points
=
shape
.
attrs
.
points
;
let
lineType
=
shape
.
line_type
;
...
...
src/views/sceneManage/setting/demarcate.vue
View file @
7faee8e
...
...
@@ -137,7 +137,7 @@ export default {
showModal
:
function
(
data
,
mtaskdata
)
{
var
_this
=
this
;
this
.
$store
.
commit
(
"setocxstate"
,
0
);
this
.
taskData
=
mtask
data
;
this
.
taskData
=
data
;
this
.
dialogVisible
=
true
;
this
.
type
=
data
.
algo_type
;
// this.type = 2;
...
...
src/views/sceneManage/setting/index.vue
View file @
7faee8e
...
...
@@ -8,7 +8,7 @@
highlight-current-row
style=
"width: 80%;float:left"
height=
"25vh"
@
c
urrent-change
=
"handleCurrentChange"
@
c
ell-click
=
"handleCurrentChange"
v-loading=
"loading"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
align=
"center"
>
...
...
@@ -149,6 +149,7 @@ export default {
setDemarcate
(
scenesdata
,
index
)
{
if
(
this
.
checkpollstate
())
{
this
.
curindex
=
index
;
console
.
log
(
"scenesdata"
,
scenesdata
)
this
.
$refs
.
demarcate
.
showModal
(
scenesdata
,
this
.
taskInfo
);
}
},
...
...
@@ -178,7 +179,7 @@ export default {
},
resetRoi
()
{
this
.
$store
.
commit
(
"setocxstate"
,
0
);
this
.
$confirm
(
"删除
预置位信息, 是否继续
?"
,
"提示"
,
{
this
.
$confirm
(
"删除
参数设置,区域设置,标定设置信息
?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
...
...
@@ -240,6 +241,7 @@ export default {
return
state
;
},
submitPosion
(
positionnum
)
{
debugger
this
.
taskInfo
.
mtasks
[
0
].
scenes
.
map
(
ele
=>
{
if
(
ele
.
scene_unid
==
this
.
currentRow
.
scene_unid
)
{
ele
.
position_num
=
positionnum
;
...
...
src/views/sceneManage/setting/setTimer.vue
View file @
7faee8e
...
...
@@ -17,28 +17,43 @@ export default {
data
()
{
return
{
settimer
:
0
,
timeroptions
:
[{
name
:
5
,
value
:
5
},{
name
:
10
,
value
:
10
},{
name
:
15
,
value
:
15
},{
name
:
30
,
value
:
30
},{
name
:
"不限时"
,
value
:
-
1
}]
timeroptions
:
[
{
name
:
5
,
value
:
5
},
{
name
:
10
,
value
:
10
},
{
name
:
15
,
value
:
15
},
{
name
:
30
,
value
:
30
},
{
name
:
"不限时"
,
value
:
-
1
}
]
};
},
methods
:
{
changet
(
val
)
{
this
.
$emit
(
"timerchange"
,
val
);
}
,
}
},
props
:
[
"runtime"
,
"runindex"
],
updated
(
v
){
this
.
$nextTick
(
function
(){
props
:
[
"runtime"
,
"runindex"
],
updated
(
v
)
{
this
.
$nextTick
(
function
()
{
// alert(v)
this
.
settimer
=
this
.
runtime
;
this
.
settimer
=
this
.
runtime
;
});
},
mounted
()
{
this
.
settimer
=
this
.
runtime
;
if
(
this
.
runindex
==
0
&&
(
this
.
runtime
==
0
||
this
.
runtime
==
-
1
))
{
if
(
this
.
runindex
==
0
&&
(
this
.
runtime
==
0
||
this
.
runtime
==
-
1
))
{
this
.
settimer
=
-
1
;
}
if
(
this
.
runindex
>
0
)
{
this
.
timeroptions
=
[
{
name
:
"0"
,
value
:
0
},
{
name
:
5
,
value
:
5
},
{
name
:
10
,
value
:
10
},
{
name
:
15
,
value
:
15
},
{
name
:
30
,
value
:
30
}
];
}
},
watch
:{
watch
:
{
runtime
(
val
)
{
this
.
settimer
=
val
;
}
...
...
src/views/sceneManage/videoplay.vue
View file @
7faee8e
<
template
>
<div
class=
"ocx-box"
id=
"ocx-box"
v-show=
"isShow"
>
<object
id=
"VionVideo"
classid=
"clsid:93F960BB-5AF9-402B-A3DF-06112F14DC02"
codebase=
"VionPlatformVideo.ocx"
width=
"100%"
height=
"100%"
>
<object
id=
"VionVideo"
classid=
"clsid:93F960BB-5AF9-402B-A3DF-06112F14DC02"
codebase=
"VionPlatformVideo.ocx"
width=
"100%"
height=
"100%"
>
<!--
<param
name=
"_Version"
value=
"65536"
>
<param
name=
"_ExtentX"
value=
"2646"
>
<param
name=
"_ExtentY"
value=
"1323"
>
...
...
@@ -10,115 +15,131 @@
</div>
</
template
>
<
script
>
import
{
mapState
}
from
'vuex'
export
default
{
data
()
{
return
{
urlFlag
:
false
,
isShow
:
true
};
},
props
:
[
'playulr'
,
'type'
],
methods
:
{
videoPlay
:
function
()
{
this
.
urlFlag
=
false
if
(
!
this
.
playulr
.
sip_serv_ip
)
{
let
url
=
this
.
playulr
.
rtsp_url
let
ocxPlayRes
=
VionVideo
.
PlayRealVideo
(
url
,
"0"
,
"xxx"
,
''
,
undefined
);
console
.
log
(
'video Ocx播放rtsp流返回值:'
,
ocxPlayRes
);
if
(
ocxPlayRes
!=
0
)
{
alert
(
'播放失败!'
);
}
}
else
{
let
OcxResponse
=
document
.
getElementById
(
'VionVideo'
).
StartPlaySip
(
this
.
playulr
.
sip_serv_id
,
this
.
playulr
.
sip_serv_ip
,
this
.
playulr
.
sip_serv_port
,
this
.
playulr
.
sip_unid
,
this
.
playulr
.
sip_password
,
this
.
playulr
.
devId
,
0
)
console
.
log
(
'video Ocx播放sip流返回值:'
,
OcxResponse
);
if
(
OcxResponse
!=
0
&&
OcxResponse
!=
200
)
{
alert
(
'播放失败!'
);
}
import
{
mapState
}
from
"vuex"
;
export
default
{
data
()
{
return
{
urlFlag
:
false
,
isShow
:
true
};
},
props
:
[
"playulr"
,
"type"
],
methods
:
{
videoPlay
:
function
()
{
this
.
urlFlag
=
false
;
if
(
!
this
.
playulr
.
sip_serv_ip
)
{
let
url
=
this
.
playulr
.
rtsp_url
;
let
ocxPlayRes
=
VionVideo
.
PlayRealVideo
(
url
,
"0"
,
"xxx"
,
""
,
undefined
);
console
.
log
(
"video Ocx播放rtsp流返回值:"
,
ocxPlayRes
);
if
(
ocxPlayRes
!=
0
)
{
alert
(
"播放失败!"
);
}
},
downOcx
:
function
()
{
if
(
this
.
fileUrl
!==
''
&&
!
this
.
installOcx
)
{
location
.
href
=
this
.
fileUrl
;
}
else
{
let
OcxResponse
=
document
.
getElementById
(
"VionVideo"
)
.
StartPlaySip
(
this
.
playulr
.
sip_serv_id
,
this
.
playulr
.
sip_serv_ip
,
this
.
playulr
.
sip_serv_port
,
this
.
playulr
.
sip_unid
,
this
.
playulr
.
sip_password
,
this
.
playulr
.
devId
,
0
);
console
.
log
(
"video Ocx播放sip流返回值:"
,
OcxResponse
);
if
(
OcxResponse
!=
0
&&
OcxResponse
!=
200
)
{
alert
(
"播放失败!"
);
}
},
installOcxInfo
:
function
()
{
this
.
$confirm
(
'为了正常使用,是否安装OCX控件?'
,
'友情提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
}
},
downOcx
:
function
()
{
if
(
this
.
fileUrl
!==
""
&&
!
this
.
installOcx
)
{
location
.
href
=
this
.
fileUrl
;
}
},
installOcxInfo
:
function
()
{
this
.
$confirm
(
"为了正常使用,是否安装OCX控件?"
,
"友情提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
this
.
installOcx
=
false
;
this
.
downOcx
();
}).
catch
(()
=>
{
})
.
catch
(()
=>
{
this
.
installOcxInfo
();
});
},
initocx
()
{
VionVideo
.
Init
(
0
,
'Null'
,
1
);
},
downloadOCx
()
{
// if (navigator.userAgent.indexOf('Trident') > -1) {
// this.axios.get(IP + "/api/v1/device/dlfile", {
// params: {
// file_type: "video_ocx"
// }
// })
// .then(response => {
// location.href = response.data.file_url;
// });
// } else {
// this.$message.error("视频控件加载失败请用IE10及以上版本打开!");
// }
},
checkIE
()
{
var
agent
=
navigator
.
userAgent
.
toLowerCase
();
if
(
/
(
msie
\s
|trident.*rv:
)([\w
.
]
+
)
/
.
test
(
agent
)
&&
document
.
documentMode
<
10
)
{
this
.
$message
.
error
(
"IE 版本过低请升级到IE10级以上版本!"
);
}
}
},
created
()
{
// this.checkIE();
},
computed
:
{
...
mapState
([
'ocxstate'
])
// this.initocx();
initocx
()
{
VionVideo
.
Init
(
0
,
"Null"
,
1
);
},
mounted
()
{
this
.
initocx
();
// try {
// if (document.getElementById("VionVideo").GetVersion()) {
// }
// } catch (error) {
// this.downloadOCx();
downloadOCx
()
{
// if (navigator.userAgent.indexOf('Trident') > -1) {
// this.axios.get(IP + "/api/v1/device/dlfile", {
// params: {
// file_type: "video_ocx"
// }
// })
// .then(response => {
// location.href = response.data.file_url;
// });
// } else {
// this.$message.error("视频控件加载失败请用IE10及以上版本打开!");
// }
},
watch
:
{
ocxstate
(
val
)
{
try
{
if
(
val
==
0
){
this
.
isShow
=
false
}
else
{
this
.
isShow
=
true
document
.
getElementById
(
"VionVideo"
).
StartPlay
(
0
);
}
}
catch
(
error
)
{
console
.
log
(
error
)
checkIE
()
{
var
agent
=
navigator
.
userAgent
.
toLowerCase
();
if
(
/
(
msie
\s
|trident.*rv:
)([\w
.
]
+
)
/
.
test
(
agent
)
&&
document
.
documentMode
<
10
)
{
this
.
$message
.
error
(
"IE 版本过低请升级到IE10级以上版本!"
);
}
}
},
created
()
{
// this.checkIE();
},
computed
:
{
...
mapState
([
"ocxstate"
])
// this.initocx();
},
mounted
()
{
this
.
initocx
();
// try {
// if (document.getElementById("VionVideo").GetVersion()) {
// }
// } catch (error) {
// this.downloadOCx();
// }
},
watch
:
{
ocxstate
(
val
)
{
try
{
if
(
val
==
0
)
{
this
.
isShow
=
false
;
}
else
{
this
.
isShow
=
true
;
document
.
getElementById
(
"VionVideo"
).
StartPlay
(
0
);
}
},
},
beforeDestroy
:
function
()
{
// if (this.videoplayer.techName_ == "Flash" && this.videoplayer.pause) {
// this.videoplayer.pause();
// }
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
};
},
beforeDestroy
:
function
()
{
// if (this.videoplayer.techName_ == "Flash" && this.videoplayer.pause) {
// this.videoplayer.pause();
// }
}
};
</
script
>
<
style
lang=
"stylus"
scoped
>
...
...
src/views/taskManage/back.vue
View file @
7faee8e
<
template
>
<div
class=
"expande-table-row"
>
<span
class=
"label"
>
{{
subindex
+
1
}}
</span>
<span
class=
"label"
>
视频源文件
</span>
<span
class=
"subtask-info"
>
{{
subTaskData
.
vchan_name
}}
</span>
<span
class=
"label"
>
设备地址
</span>
...
...
@@ -16,7 +17,7 @@
:key=
"index"
:value=
"item.device_id"
>
{{
item
.
in_ip
}}
{{
item
.
device_id
}}
</el-option>
</el-select>
</span>
...
...
@@ -31,7 +32,7 @@ export default {
assign_id
:
""
};
},
props
:
[
"subTaskData"
,
"freeList"
,
"taskData"
],
props
:
[
"subTaskData"
,
"freeList"
,
"taskData"
,
"subindex"
],
methods
:
{
subMove
()
{
let
taskID
=
this
.
taskData
.
task_id
;
...
...
@@ -65,9 +66,7 @@ export default {
},
created
()
{},
watch
:
{
subTaskData
(
val
)
{
console
.
log
(
val
);
}
},
mounted
()
{
this
.
assign_id
=
this
.
subTaskData
.
assign_id
...
...
@@ -79,6 +78,7 @@ export default {
<
style
lang=
"scss"
scoped
>
.expande-table-row
{
overflow
:
hidden
;
span
{
float
:
left
;
border-bottom
:
1px
solid
#ccc
;
...
...
@@ -99,20 +99,20 @@ export default {
height
:
40px
;
line-height
:
40px
;
}
.subtask-info
:nth-child
(
2
)
{
.subtask-info
:nth-child
(
3
)
{
width
:
9vw
;
overflow
:
hidden
;
}
.subtask-info
:nth-child
(
4
)
{
.subtask-info
:nth-child
(
5
)
{
width
:
6vw
;
}
.subtask-info
:nth-child
(
6
)
{
.subtask-info
:nth-child
(
7
)
{
width
:
4.5vw
;
}
.subtask-info
:nth-child
(
8
)
{
.subtask-info
:nth-child
(
9
)
{
width
:
4vw
;
}
.subtask-info
:nth-child
(
1
0
)
{
.subtask-info
:nth-child
(
1
1
)
{
width
:
12vw
;
}
.sub-btn
{
...
...
src/views/taskManage/editSet.vue
View file @
7faee8e
...
...
@@ -7,14 +7,19 @@
:before-close=
"handleClose"
>
<div>
<el-form
label-position=
"left"
label-width=
"80px"
:model=
"formData"
>
<el-form-item
label=
"任务名称"
>
<el-form
label-position=
"left"
label-width=
"80px"
:model=
"formData"
:rules=
"rules"
>
<el-form-item
label=
"任务名称"
prop=
"taskname"
class=
"form-item"
>
<el-input
v-model=
"formData.task_name"
placeholder=
"请输入任务名称"
></el-input>
</el-form-item>
<el-form-item
label=
"算法类型"
>
<el-form-item
label=
"算法类型"
prop=
"algotype"
class=
"form-item"
>
<el-select
v-model=
"formData.task_algo_type"
placeholder=
"请选择"
...
...
@@ -28,7 +33,7 @@
<el-option
value=
"5"
label=
"交通行人"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"场景占用"
>
<el-form-item
label=
"场景占用"
class=
"form-item"
>
<el-input
v-model=
"formData.resource_use"
placeholder=
"请选择"
...
...
@@ -36,13 +41,13 @@
>
</el-input>
</el-form-item>
<el-form-item
label=
"时间计划"
>
<el-form-item
label=
"时间计划"
class=
"form-item"
>
<el-select
v-model=
"formData.period"
>
<el-option
:value=
"true"
label=
"全天"
></el-option>
<el-option
:value=
"false"
label=
"时间"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"时间"
v-show=
"formData.plate_time != 'day'"
>
<el-form-item
label=
"时间"
v-show=
"formData.plate_time != 'day'"
prop=
"timer"
class=
"form-item"
>
<el-date-picker
style=
"width:100%"
v-model=
"formData.timer"
...
...
@@ -53,7 +58,7 @@
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"存储配置"
>
<el-form-item
label=
"存储配置"
class=
"form-item"
>
<el-select
v-model=
"formData.store_conf.unid"
placeholder=
"请选择"
...
...
@@ -67,7 +72,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"设备类型"
>
<el-form-item
label=
"设备类型"
class=
"form-item"
>
<el-select
v-model=
"formData.plate_type"
>
<el-option
v-for=
"(item, index) in freeList"
...
...
@@ -111,11 +116,21 @@ export default {
store_conf
:
{
unid
:
""
},
priority
:
""
priority
:
""
,
period
:
true
},
vchanAry
:
[],
sessionData
:
{},
store_confs
:
[]
store_confs
:
[],
rules
:
{
taskname
:
[{
required
:
true
,
message
:
"请输入任务名称"
,
trigger
:
"blur"
}],
algotype
:
[
{
required
:
true
,
message
:
"请选择算法类型"
,
trigger
:
"blur"
}
],
timer
:
[
{
required
:
true
,
message
:
"时间设置不能为空"
,
trigger
:
"blur"
}
]
}
};
},
props
:
{
...
...
@@ -146,7 +161,8 @@ export default {
},
priority
:
""
,
plate_type
:
""
,
plate_time
:
""
plate_time
:
""
,
period
:
true
};
}
if
(
type
==
"edit"
)
{
...
...
@@ -193,8 +209,12 @@ export default {
source_type
:
"pull_video_stream"
,
dev_unid
:
this
.
dev_unid
,
node_count
:
0
,
start_dt
:
this
.
formData
.
period
?
"2020-03-27 00:00:00"
:
this
.
setUtcTime
(
this
.
formData
.
timer
[
0
]),
end_dt
:
this
.
formData
.
period
?
"3020-03-27 00:00:00"
:
this
.
setUtcTime
(
this
.
formData
.
timer
[
1
]),
start_dt
:
this
.
formData
.
period
?
"2020-03-27 00:00:00"
:
this
.
setUtcTime
(
this
.
formData
.
timer
[
0
]),
end_dt
:
this
.
formData
.
period
?
"3020-03-27 00:00:00"
:
this
.
setUtcTime
(
this
.
formData
.
timer
[
1
]),
priority
:
this
.
formData
.
priority
,
store_conf_unid
:
this
.
formData
.
store_conf
.
unid
,
period
:
this
.
formData
.
period
,
...
...
@@ -246,4 +266,9 @@ export default {
};
</
script
>
<
style
></
style
>
<
style
lang=
"stylus"
scoped
>
.form-item
{
margin-bottom
13px
}
</
style
>
src/views/taskManage/editVideo.vue
View file @
7faee8e
...
...
@@ -35,6 +35,7 @@
:data=
"tableData"
stripe
border
@
current-change=
"rowclick"
style=
"width: 100%"
>
<el-table-column
...
...
@@ -43,9 +44,9 @@
label=
"视频源名称"
></el-table-column>
<el-table-column
align=
"center"
label=
"视频状态"
>
<template
slot-scope=
"scope"
>
<div
v-html=
"statusFormatter(scope.row)"
></div>
</
template
>
<template
slot-scope=
"scope"
>
<div
v-html=
"statusFormatter(scope.row)"
></div>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
...
...
@@ -102,8 +103,8 @@ export default {
user_unid
:
""
,
formData
:
{},
editData
:
{},
taskData
:{},
moveTaskData
:[],
taskData
:
{},
moveTaskData
:
[],
setvisible
:
false
,
props
:
{
id
:
"vchan_refid"
,
...
...
@@ -156,13 +157,15 @@ export default {
data
[
i
].
vchan
.
refid
=
data
[
i
].
vchan
.
vchan_refid
;
data
[
i
].
vchan
.
name
=
data
[
i
].
vchan
.
vchan_name
;
data
[
i
].
vchan
.
running_status
=
data
[
i
].
running_status
;
data
[
i
].
vchan
.
play_url
=
data
[
i
].
rtsp_url
;
}
else
{
data
.
vchan
=
{
subtask_id
:
data
[
i
].
subtask_id
,
refid
:
""
,
vchan_name
:
data
[
i
].
subtask_name
,
name
:
data
[
i
].
subtask_name
,
running_status
:
data
[
i
].
running_status
running_status
:
data
[
i
].
running_status
,
play_url
:
data
[
i
].
rtsp_url
};
}
ary
.
push
(
data
[
i
].
vchan
);
...
...
@@ -192,8 +195,7 @@ export default {
if
(
this
.
tableData
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
)
{
if
(
this
.
tableData
[
i
].
vchan_id
==
data
.
vchan_id
)
{
this
.
delFun
(
i
,
this
.
tableData
[
i
],
'tree'
)
this
.
delFun
(
i
,
this
.
tableData
[
i
],
"tree"
);
staus
=
true
;
break
;
}
...
...
@@ -211,6 +213,7 @@ export default {
});
},
editsubTask
(
vchan
)
{
let
status
=
true
;
let
data
=
{
is_dome
:
false
,
subtask_name
:
vchan
.
name
,
...
...
@@ -221,26 +224,53 @@ export default {
vchan_name
:
vchan
.
name
}
};
this
.
$api
.
task
.
editSubTask
(
this
.
editData
.
task_id
,
data
).
then
(
res
=>
{
this
.
tableData
.
push
(
vchan
);
if
(
res
.
ecode
==
200
)
{
this
.
$message
({
message
:
"添加成功"
,
type
:
"success"
});
this
.
tableData
.
push
(
vchan
);
}
else
{
this
.
$message
.
error
(
res
.
enote
);
}
});
},
playVideo
(
data
)
{
console
.
log
(
"b"
,
data
);
},
delFun
(
index
,
data
,
action
=
"tree"
)
{
this
.
$api
.
task
.
deleteSubTask
(
this
.
editData
.
task_id
,
data
.
subtask_id
)
.
then
(
res
=>
{
this
.
tableData
.
splice
(
index
,
1
);
this
.
checkvckan
();
delFun
(
index
,
data
,
action
=
"tree"
)
{
this
.
$store
.
commit
(
"setocxstate"
,
0
);
this
.
$confirm
(
"删除视频源, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
this
.
$api
.
task
.
deleteSubTask
(
this
.
editData
.
task_id
,
data
.
subtask_id
)
.
then
(
res
=>
{
this
.
$message
({
type
:
"success"
,
message
:
"删除成功!"
});
this
.
tableData
.
splice
(
index
,
1
);
this
.
checkvckan
();
this
.
$store
.
commit
(
"setocxstate"
,
1
);
});
if
(
action
!=
"tree"
)
{
setTimeout
(()
=>
{
this
.
checkvckan
();
},
0
);
}
})
.
catch
(()
=>
{
this
.
$message
({
type
:
"info"
,
message
:
"已取消删除"
});
this
.
$store
.
commit
(
"setocxstate"
,
1
);
});
if
(
action
!=
"tree"
)
{
setTimeout
(()
=>
{
this
.
checkvckan
();
},
0
);
}
},
append
(
data
)
{
const
newChild
=
{
id
:
id
++
,
label
:
"testtest"
,
children
:
[]
};
...
...
@@ -258,6 +288,15 @@ export default {
});
this
.
$refs
.
tree
.
setCheckedKeys
(
arr
);
},
rowclick
(
row
)
{
console
.
log
(
"row"
,
row
);
this
.
play_url
=
{
rtsp_url
:
row
.
play_url
};
setTimeout
(()
=>
{
this
.
$refs
.
video
.
videoPlay
();
},
100
);
},
loadNode
(
node
,
resolve
)
{
if
(
node
.
level
===
0
)
{
return
resolve
([
...
...
src/views/taskManage/index.vue
View file @
7faee8e
...
...
@@ -76,7 +76,7 @@
@
expand-change=
"expandchange"
>
<el-table-column
type=
"expand"
>
<template
slot-scope=
"props"
>
<template
slot-scope=
"props"
>
<subTaskInfo
v-for=
"(item, index) in props.row.subTaskData"
:key=
"index"
...
...
src/views/taskManage/subtask.vue
View file @
7faee8e
...
...
@@ -3,6 +3,8 @@
<span
class=
"label"
>
{{
subindex
+
1
}}
</span>
<span
class=
"label"
>
视频源文件
</span>
<span
class=
"subtask-info"
>
{{
subTaskData
.
vchan_name
}}
</span>
<span
class=
"label"
>
任务ID
</span>
<span
class=
"subtask-info"
>
{{
subTaskData
.
subtask_id
}}
</span>
<span
class=
"label"
>
设备地址
</span>
<span
class=
"subtask-info"
>
192.178.99.99
</span>
<span
class=
"label"
>
已用资源
</span>
...
...
@@ -69,6 +71,7 @@ export default {
},
mounted
()
{
console
.
log
(
"tasdata"
,
this
.
subTaskData
)
this
.
assign_id
=
this
.
subTaskData
.
assign_id
?
this
.
subTaskData
.
assign_id
:
""
;
...
...
@@ -78,6 +81,7 @@ export default {
<
style
lang=
"scss"
scoped
>
.expande-table-row
{
width
:
79vw
;
overflow
:
hidden
;
span
{
float
:
left
;
...
...
@@ -85,7 +89,7 @@ export default {
overflow
:
hidden
;
}
.label
{
width
:
6
vw
;
width
:
5
vw
;
text-align
:
center
;
border-left
:
1px
solid
$
border-color
;
background
:
#f0f0f0
;
...
...
@@ -100,20 +104,23 @@ export default {
line-height
:
40px
;
}
.subtask-info
:nth-child
(
3
)
{
width
:
9
vw
;
width
:
7
vw
;
overflow
:
hidden
;
}
.subtask-info
:nth-child
(
5
)
{
width
:
6
vw
;
width
:
8
vw
;
}
.subtask-info
:nth-child
(
7
)
{
width
:
4.5
vw
;
width
:
6
vw
;
}
.subtask-info
:nth-child
(
9
)
{
width
:
4vw
;
}
.subtask-info
:nth-child
(
11
)
{
width
:
12vw
;
width
:
4vw
;
}
.subtask-info
:nth-child
(
13
)
{
width
:
9vw
;
}
.sub-btn
{
cursor
:
pointer
;
...
...
src/views/trafficShow/alarmEvent.vue
View file @
7faee8e
...
...
@@ -71,7 +71,6 @@ export default {
try
{
let
that
=
this
;
this
.
connect_id
=
new
Date
().
getTime
();
// this.cws = new WebSocket('ws://'+ this.API.IP +'/websocket/v1/integrated/connects/' + this.connect_id)
this
.
cws
=
new
WebSocket
(
`ws://
${
this
.
$api
.
wsIP
}
/websocket/api/v1/datahandle/connects/
${
this
.
connect_id
}
`
);
...
...
@@ -110,15 +109,16 @@ export default {
_this
.
getCode
(
"违法类型"
,
data
.
event_data
.
illegal
.
code
)
||
""
;
let
camername
=
data
.
event_data
.
location
.
name
;
let
dt
=
this
.
showLocalTime
(
data
.
event_dt
).
split
(
" "
)[
1
];
console
.
log
(
data
.
pics
[
0
].
src_url
);
let
pics
=
data
.
pics
[
0
].
src_url
;
let
pos
=
data
.
event_data
.
location
.
pos
;
let
vrefid
=
data
.
vchan_refid
;
let
obj
=
{
illname
:
illname
,
illdt
:
dt
,
camername
:
camername
,
pics
:
pics
,
pos
:
pos
pos
:
pos
,
vchan_refid
:
vrefid
};
if
(
that
.
tableData
.
length
>
6
)
{
that
.
tableData
.
pop
(
obj
);
...
...
@@ -128,9 +128,7 @@ export default {
that
.
tableData
.
unshift
(
obj
);
this
.
$forceUpdate
();
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
catch
(
error
)
{}
if
(
data
.
command
)
{
console
.
log
(
"推送服务连接正常"
);
...
...
@@ -153,8 +151,13 @@ export default {
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
beforeDestroy
()
{
this
.
cws
=
""
;
clearInterval
(
this
.
keepAlive
);
this
.
keepAlive
=
null
;
}
};
</
script
>
<
style
></
style
>
>
<
style
></
style
>
src/views/trafficShow/eventTypedis.vue
View file @
7faee8e
<
template
>
<div>
<div
class=
"chart-header-box"
>
<div
class=
"header-title"
>
事件类型分布
</div>
<el-col
:span=
"12"
class=
"header-title"
>
事件类型分布
</el-col>
<el-col
class=
"ev-box"
>
<el-select
v-model=
"evtype"
@
change=
"getType"
>
<el-option
label=
"违法"
value=
"1"
></el-option>
<el-option
label=
"事件"
value=
"2"
></el-option>
</el-select>
</el-col>
</div>
<div
id=
"eventchart"
class=
"eventchart"
></div>
</div>
...
...
@@ -11,7 +17,8 @@
export
default
{
data
()
{
return
{
illtype
:
""
illtype
:
""
,
evtype
:
"1"
};
},
methods
:
{
...
...
@@ -119,10 +126,23 @@ export default {
};
maychart
.
setOption
(
option
);
},
getType
(
val
){
if
(
val
==
"1"
)
{
this
.
getTrafficType
();
}
if
(
val
==
"2"
)
{
this
.
getBehaviorType
();
}
},
getTrafficType
()
{
this
.
$api
.
show
.
getTrafficType
().
then
(
res
=>
{
this
.
initchart
(
res
.
list_data
);
});
},
getBehaviorType
()
{
this
.
$api
.
show
.
getBehaviorType
().
then
(
res
=>
{
this
.
initchart
(
res
.
list_data
);
});
}
},
mounted
()
{
...
...
@@ -132,6 +152,10 @@ export default {
</
script
>
<
style
lang=
"stylus"
scoped
>
.ev-box
{
width
100px
float
right
}
.chart-header-box
{
height
:
3vh
;
padding
5px;
...
...
src/views/trafficShow/illegaltrend.vue
View file @
7faee8e
...
...
@@ -6,6 +6,7 @@
<span
class=
"header-label"
>
违法
</span>
<div
class=
"header-select"
>
<el-select
v-model=
"illtype"
@
change=
"getTrafficHour"
>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
v-for=
"item in illageList"
:key=
"item.value"
...
...
@@ -17,6 +18,7 @@
<span
class=
"header-label"
>
事件
</span>
<div
class=
"header-select"
>
<el-select
v-model=
"eventtype"
@
change=
"getTrafficHour"
>
<el-option
label=
"全部"
value=
""
></el-option>
<el-option
v-for=
"item in eventList"
:key=
"item.value"
...
...
@@ -291,20 +293,20 @@ export default {
getTrafficHour
()
{
let
date
=
new
Date
();
let
Y
=
date
.
getFullYear
();
let
M
=
date
.
getMonth
()
>
10
?
date
.
getMonth
()
:
`0
${
date
.
getMonth
()
+
1
}
`
;
let
D
=
date
.
getDate
()
>
10
?
date
.
getDate
()
:
`0
${
date
.
getDate
()}
`
;
let
h
=
date
.
getHours
()
>
10
?
date
.
getHours
()
:
`0
${
date
.
getHours
()}
`
;
let
M
=
date
.
getMonth
()
>
9
?
date
.
getMonth
()
:
`0
${
date
.
getMonth
()
+
1
}
`
;
let
D
=
date
.
getDate
()
>
9
?
date
.
getDate
()
:
`0
${
date
.
getDate
()}
`
;
let
h
=
date
.
getHours
()
>
9
?
date
.
getHours
()
:
`0
${
date
.
getHours
()}
`
;
let
m
=
date
.
getMinutes
()
>
10
?
date
.
getMinutes
()
:
`0
${
date
.
getMinutes
()}
`
;
date
.
getMinutes
()
>
9
?
date
.
getMinutes
()
:
`0
${
date
.
getMinutes
()}
`
;
let
s
=
date
.
getSeconds
();
let
startDate
=
`
${
Y
}
-
${
M
}
-
${
D
}
00:00:00`
;
let
curDate
=
`
${
Y
}
-
${
M
}
-
${
D
}
${
h
}
:
${
m
}
:
${
s
}
`
;
let
startDate
=
`
${
Y
}
/
${
M
}
/
${
D
}
00:00:00`
;
let
curDate
=
`
${
Y
}
/
${
M
}
/
${
D
}
${
h
}
:
${
m
}
:
${
s
}
`
;
let
data
=
{
illegal_type
:
this
.
illtype
,
event_type
:
this
.
eventtype
,
key_vehicle_type
:
this
.
special_type
,
start_dt
:
startDate
,
end_dt
:
curDate
,
start_dt
:
this
.
setUtcTime
(
startDate
)
,
end_dt
:
this
.
setUtcTime
(
curDate
)
,
};
this
.
$api
.
show
.
getTrafficHour
(
data
).
then
(
res
=>
{
console
.
log
(
'违法事件趋势'
,
res
);
...
...
src/views/trafficShow/index.vue
View file @
7faee8e
...
...
@@ -63,7 +63,9 @@
</div>
<div>
<div
class=
"zd-title"
>
特殊车辆总量
</div>
<div
class=
"zd-num"
>
{{
snapData
.
key_vehicle_total_snap_num
}}
</div>
<div
class=
"zd-num"
>
{{
snapData
.
key_vehicle_total_snap_num
}}
</div>
</div>
</el-col>
</div>
...
...
@@ -90,7 +92,10 @@
<span
class=
"icon-fanxing-zhatuchezhuapai1"
></span>
</div>
<div
class=
"right-content"
>
<div><span
class=
"car-num"
>
10
</span>
辆
</div>
<div>
<span
class=
"car-num"
>
{{
keyVehicleData
[
0
]
||
0
}}
</span
>
辆
</div>
<div>
渣土车抓拍
</div>
</div>
</div>
...
...
@@ -102,7 +107,10 @@
></span>
</div>
<div
class=
"right-content"
>
<div><span
class=
"car-num"
>
10
</span>
辆
</div>
<div>
<span
class=
"car-num"
>
{{
keyVehicleData
[
1
]
||
0
}}
</span
>
辆
</div>
<div>
危险品车
</div>
</div>
</div>
...
...
@@ -114,7 +122,10 @@
></span>
</div>
<div
class=
"right-content"
>
<div
class
><span
class=
"car-num"
>
29
</span>
辆
</div>
<div
class
>
<span
class=
"car-num"
>
{{
keyVehicleData
[
2
]
||
0
}}
</span
>
辆
</div>
<div>
重型罐式车
</div>
</div>
</div>
...
...
@@ -195,9 +206,20 @@ export default {
},
methods
:
{
alarmevent
(
data
)
{
console
.
log
(
'alarmdata'
,
data
);
let
position
=
null
;
if
(
data
.
vchan_refid
)
{
let
vdata
=
this
.
$store
.
state
.
devList
;
vdata
.
map
(
ele
=>
{
if
(
ele
.
refid
==
data
.
vchan_refid
||
ele
.
vchan_refid
==
data
.
vchan_refid
)
{
position
=
[
ele
.
longitude
,
ele
.
latitude
];
}
});
}
//移动地图
this
.
$refs
.
map
.
movemap
(
data
,
null
,
2
);
this
.
$refs
.
map
.
movemap
(
data
,
position
,
2
);
},
searchvchan
()
{
this
.
$refs
.
map
.
searchvchan
(
this
.
vchanname
);
...
...
@@ -489,5 +511,4 @@ export default {
left
10
z-index
100
}
</
style
>
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