Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
卡
卡车调度系统
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
caicaicai
卡车调度系统
Commits
2fca3f05
Commit
2fca3f05
authored
Nov 02, 2022
by
xxx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
5337e20f
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
296 additions
and
48 deletions
+296
-48
common.js
src/assets/js/common.js
+8
-1
carsEZUIKitJs.vue
src/components/ezuikit/carsEZUIKitJs.vue
+89
-47
index.vue
src/views/monitoringManagement/videoAlarmList/index.vue
+199
-0
No files found.
src/assets/js/common.js
View file @
2fca3f05
...
@@ -2472,7 +2472,14 @@ var HttpReq = function(){
...
@@ -2472,7 +2472,14 @@ var HttpReq = function(){
params
:
param
,
params
:
param
,
})
})
},
},
//摄像头报警历史记录
apiCameraUrllistQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CameraUrl/list
'
,
method
:
'
get
'
,
params
:
param
,
})
},
...
...
src/components/ezuikit/carsEZUIKitJs.vue
View file @
2fca3f05
...
@@ -23,34 +23,38 @@
...
@@ -23,34 +23,38 @@
<iframe
:src=
"iframeSrc"
class=
"iframeSingle"
></iframe>
<iframe
:src=
"iframeSrc"
class=
"iframeSingle"
></iframe>
</div>
</div>
<div
class=
"aiAnalysisViews"
>
<div
class=
"aiAnalysisRightViews"
>
<div
class=
"aiAnalysisViews_Title"
>
智能AI分析
</div>
<div
class=
"aiAnalysisRightViews_1"
>
<div
style=
"margin:1vh 0px 0px 0vw;"
>
<!-- 智能AI分析 -->
<el-radio-group
v-model=
"aiTabPosition"
@
change=
"aiTabPositionFn"
>
<div
class=
"aiAnalysisRightViews_1_title"
>
智能AI分析
</div>
<el-radio-button
label=
"今天"
>
今天
</el-radio-button>
<div
class=
"aiAnalysisRightViews_1_content"
>
<el-radio-button
label=
"近7天"
>
近7天
</el-radio-button>
<div
class=
"aiAnalysisRightViews_1_content_top"
>
<el-radio-button
label=
"近30天"
>
近30天
</el-radio-button>
<div
:class=
"aiTabPosition == '今天' ? 'aiAnalysisRightViews_1_content_topH' : 'aiAnalysisRightViews_1_content_topL'"
>
今天
</div>
</el-radio-group>
<div
:class=
"aiTabPosition == '近7天' ? 'aiAnalysisRightViews_1_content_topH' : 'aiAnalysisRightViews_1_content_topL'"
>
近7天
</div>
<div
:class=
"aiTabPosition == '近30天' ? 'aiAnalysisRightViews_1_content_topH' : 'aiAnalysisRightViews_1_content_topL'"
>
近30天
</div>
</div>
</div>
<div
class=
"aiAnalysisViews_1"
>
<!--
<div
class=
"driverInforViewsStyle"
>
<span>
AI报警总数:
{{
alarmData
.
total
}}
</span><span
style=
"margin-left:30px;"
>
处理数:
{{
alarmData
.
handle
}}
</span>
<div
class=
"driverTotalnumberStyle"
>
<div>
<div
style=
"text-align: center;font-size:15px;"
>
司机总人数
</div>
<div
style=
"text-align: center;font-size:18px;"
>
100
</div>
</div>
</div>
<div
class=
"presentDrivernumberStyle"
>
<div
style=
"color:#3DFBEB;"
>
<div
style=
"text-align: center;font-size:15px;"
>
当前工作人数
</div>
<div
style=
"text-align: center;font-size:18px;"
>
100
</div>
</div>
<div
style=
"color:#F7E518;"
>
<div
style=
"text-align: center;font-size:15px;"
>
当前休息人数
</div>
<div
style=
"text-align: center;font-size:18px;"
>
100
</div>
</div>
</div>
</div>
<div
class=
"driverInforListStyle"
>
</div>
-->
</div>
</div>
<div
class=
"aiAnalysisViews_1"
>
处理率:
{{
alarmData
.
handle
==
0
?
0
:
parseFloat
(
alarmData
.
handle
/
alarmData
.
total
*
100
).
toFixed
(
2
)
}}
%
</div>
<div
id=
"echarts1"
class=
"echarts1"
></div>
<div
class=
"aiAnalysisViews_1"
>
报警车辆排行榜
</div>
<div
id=
"echarts2"
class=
"echarts2"
style=
"margin-top:1vh"
></div>
<div
class=
"aiAnalysisViews_1"
>
报警车辆信息
</div>
<div
@
mouseout=
'mouseoutTable'
@
mouseover=
'mouseoverTable'
>
<el-table
:data=
"aiAnalysisTableData"
border
style=
"width: 98%"
height=
"24.5vh"
>
<el-table-column
prop=
"vehiIdno"
label=
"车牌号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTypeText"
label=
"报警类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"fileTimeStr"
label=
"报警时间"
align=
"center"
></el-table-column>
<el-table-column
label=
"查看"
align=
"center"
>
<template
slot-scope=
"scope"
>
<el-image
style=
"width: 70px; height: 50px"
:src=
"scope.row.downloadUrl"
:preview-src-list=
"[scope.row.downloadUrl]"
></el-image>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
...
@@ -125,7 +129,7 @@ export default {
...
@@ -125,7 +129,7 @@ export default {
that
.
aiTabPositionFn
();
that
.
aiTabPositionFn
();
})
})
})
})
this
.
mouseoutTable
();
//
this.mouseoutTable();
},
},
methods
:
{
methods
:
{
getCode
()
{
getCode
()
{
...
@@ -1137,6 +1141,7 @@ export default {
...
@@ -1137,6 +1141,7 @@ export default {
};
};
</
script
>
</
script
>
<
style
>
<
style
>
.el-header
,
.el-header
,
.el-footer
{
.el-footer
{
...
@@ -1206,24 +1211,6 @@ export default {
...
@@ -1206,24 +1211,6 @@ export default {
width
:
68vw
;
width
:
68vw
;
height
:
94.5vh
;
height
:
94.5vh
;
}
}
.aiAnalysisViews
{
width
:
20vw
;
height
:
94.5vh
;
background-color
:
white
;
padding
:
1vh
0px
0px
1vh
;
box-sizing
:
border-box
;
border-left
:
1px
solid
gainsboro
;
z-index
:
3
;
}
.aiAnalysisViews_Title
{
font-size
:
24px
;
font-weight
:
600
;
}
.aiAnalysisViews_1
{
margin-top
:
1vh
;
font-size
:
18px
;
font-weight
:
600
;
}
.echarts1
{
.echarts1
{
width
:
99%
;
width
:
99%
;
height
:
20vh
;
height
:
20vh
;
...
@@ -1234,4 +1221,59 @@ export default {
...
@@ -1234,4 +1221,59 @@ export default {
height
:
27vh
;
height
:
27vh
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.video111
.aiAnalysisRightViews
{
width
:
20vw
;
height
:
94.5vh
;
overflow
:
hidden
;
z-index
:
3
;
}
.video111
.aiAnalysisRightViews_1
{
width
:
20vw
;
height
:
35vh
;
background-color
:
rgba
(
32
,
42
,
67
,
0.95
);
padding
:
5px
7px
;
box-sizing
:
border-box
;
overflow
:
hidden
;
}
.video111
.aiAnalysisRightViews_1_title
{
margin-bottom
:
5px
;
width
:
100%
;
height
:
3.5vh
;
background
:
no-repeat
center
center
url('~@/assets/images/cutGraph/biaoti1.png')
;
background-size
:
100%
100%
;
padding-left
:
10px
;
box-sizing
:
border-box
;
font-size
:
18px
;
line-height
:
3.5vh
;
color
:
#FAFAFB
;
letter-spacing
:
1px
;
text-shadow
:
1px
1px
1px
#92CBFF
;
}
.video111
.aiAnalysisRightViews_1_content
{
width
:
100%
;
height
:
31.5vh
;
}
.video111
.aiAnalysisRightViews_1_content_top
{
display
:
flex
;
justify-content
:
space-evenly
;
}
.video111
.aiAnalysisRightViews_1_content_topL
{
width
:
30%
;
height
:
3vh
;
color
:
#A9C3FF
;
font-size
:
15px
;
text-align
:
center
;
border
:
1px
solid
#01A6FC
;
opacity
:
0.5
;
}
.video111
.aiAnalysisRightViews_1_content_topH
{
width
:
30%
;
height
:
3vh
;
color
:
#A9C3FF
;
font-size
:
15px
;
text-align
:
center
;
border
:
1px
solid
#01A6FC
;
opacity
:
1
;
}
</
style
>
</
style
>
src/views/monitoringManagement/videoAlarmList/index.vue
0 → 100644
View file @
2fca3f05
<
template
>
<div
class=
"common-page device-manage"
>
<div
class=
"option page-row"
>
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
车牌号
</label>
<el-input
v-model=
"query.vehiIdno"
clearable
size=
"small"
placeholder=
"请输入车牌号"
style=
"width:180px;"
/>
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
报警类型
</label>
<el-select
v-model=
"query.name"
placeholder=
"请选择报警类型"
style=
"width:180px;"
>
<el-option
label=
"接打电话"
value=
"620,621"
></el-option>
<el-option
label=
"分神驾驶"
value=
"624,625"
></el-option>
<el-option
label=
"前向碰撞"
value=
"600,601"
></el-option>
<el-option
label=
"疲劳驾驶"
value=
"172,190"
></el-option>
<el-option
label=
"接近报警"
value=
"430,431,432,433"
></el-option>
</el-select>
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
时间范围
</label>
<el-date-picker
v-model=
"query.startTime"
type=
"datetime"
placeholder=
"选择开始时间"
></el-date-picker>
<el-date-picker
v-model=
"query.endTime"
type=
"datetime"
placeholder=
"选择结束时间"
></el-date-picker>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-refresh"
@
click=
"clearLimit"
>
重置
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
视频AI报警历史
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
height=
"66vh"
>
<el-table-column
prop=
"vehiIdno"
label=
"车牌号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"road"
label=
"所属车队"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"报警类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"cardescribe"
label=
"报警时间"
align=
"center"
></el-table-column>
<el-table-column
label=
"查看"
align=
"center"
>
<template
slot-scope=
"scope"
>
<el-image
style=
"width: 70px; height: 50px"
:src=
"scope.row.downloadUrl"
:preview-src-list=
"[scope.row.downloadUrl]"
></el-image>
</
template
>
</el-table-column>
<el-table-column
prop=
"gongsi"
label=
"解除报警时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"weixiu"
label=
"处理人"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"relieveAlarm(scope.row)"
>
解除报警
</el-button>
</
template
>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"total"
:current-page=
"page"
style=
"margin-top: 8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange"
@
current-change=
"pageChange"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<
script
>
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
export
default
{
name
:
'
VideoAlarmList
'
,
data
()
{
return
{
loading
:
false
,
page
:
1
,
size
:
10
,
total
:
0
,
query
:{},
tableData
:
[],
carInformationData
:[],
}
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
loadData
();
})
},
methods
:
{
loadData
()
{
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
if
(
this
.
query
.
startTime
){
param
.
startTime
=
Date
.
parse
(
this
.
query
.
startTime
);
}
if
(
this
.
query
.
endTime
){
param
.
endTime
=
Date
.
parse
(
this
.
query
.
endTime
);
}
this
.
$nextTick
(()
=>
{
//获取车辆信息(主要用来匹配车队)
HttpReq
.
truckDispatching
.
carInformationQuery
({
size
:
9999
}).
then
((
res1
)
=>
{
if
(
res1
.
code
==
200
){
this
.
carInformationData
=
res1
.
data
.
content
;
//获取报警历史数据
HttpReq
.
truckDispatching
.
apiCameraUrllistQuery
(
param
).
then
((
res2
)
=>
{
if
(
res2
.
code
==
200
){
let
lastData1
=
[];
res2
.
data
.
forEach
((
item2
,
index
)
=>
{
res1
.
data
.
content
.
forEach
((
item1
,
index1
)
=>
{
// if(item2.vehiIdno == item1.){
// }
})
})
}
})
//获取报警历史数据总数
HttpReq
.
truckDispatching
.
apiCameraUrllistQuery
({
size
:
99999
,
page
:
0
}).
then
((
res3
)
=>
{
if
(
res3
.
code
==
200
){
this
.
total
=
res3
.
data
.
length
;
}
})
}
})
})
},
tableRowClassName
({
row
,
rowIndex
})
{
if
(
rowIndex
===
1
)
{
return
'
warning-row
'
;
}
else
if
(
rowIndex
===
3
)
{
return
'
success-row
'
;
}
return
''
;
},
//点击搜索
toSearch
()
{
this
.
page
=
1
;
this
.
loadData
();
},
//重置搜索
clearLimit
(){
this
.
query
=
{};
this
.
loadData
();
},
pageChange
(
e
)
{
this
.
page
=
e
this
.
loadData
()
},
sizeChange
(
e
)
{
this
.
page
=
1
this
.
size
=
e
this
.
loadData
()
},
//解除报警
relieveAlarm
(
item
){
console
.
log
(
item
);
}
},
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scope
>
.el-table
.warning-row
{
background
:
oldlace
;
}
.el-table
.success-row
{
background
:
#f0f9eb
;
}
.device-manage
{
.panel-bottom
{
.el-button
{
margin
:
2px
0
;
padding
:
6px
15px
;
font-size
:
14px
;}
.btn-groub2
{
display
:inline-block
;
.el-button
{
margin
:
2px
0
;
padding
:
6px
15px
;
font-size
:
15px
;}
.el-button--warning
{
background-color
:
#e6a23c
;
border-color
:
#e6a23c
;
}
.el-button--warning
:focus
,
.el-button--warning
:hover
{
background
:
#ebb563
;
border-color
:
#ebb563
;}
}
}
}
.ecahrt1-dialog
{
display
:flex
;
align-items
:center
;
.el-dialog
{
margin-top
:inherit
!
important
;
display
:table
!
important
;
width
:fit-content
;
.el-form-item
{
margin-right
:
0
;}
}
.el-dialog__header
{
height
:
0
;
padding
:
0
;
display
:block
;}
.form-body
{
border
:
1px
solid
#999
;
width
:
800px
;
height
:
500px
;
position
:relative
;
>
div
{
position
:absolute
;
top
:
0
;
left
:
0
;
height
:
100%
;
width
:
100%
;}
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment