Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
罗鑫霖
/
vion-tools
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 b6694db2
authored
Jan 18, 2022
by
李金轩
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
ljx
1 parent
1f6327c1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
100 additions
and
78 deletions
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
src/views/SnapshotCluster/ClusterResult/ClusterResultApi.js
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
View file @
b6694db
<
template
>
<a-form
:model=
"query
AlarmEven
tForm"
layout=
"inline"
>
<a-form
:model=
"query
ClusterResul
tForm"
layout=
"inline"
>
<a-form-item
label=
"集团:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.account_id"
<a-select
v-model:value=
"query
ClusterResul
tForm.account_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"广场:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.plaza_id"
<a-select
v-model:value=
"query
ClusterResul
tForm.plaza_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -30,7 +30,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"出入类型:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.type"
style=
"width: 200px"
>
<a-select
v-model:value=
"query
ClusterResul
tForm.type"
style=
"width: 200px"
>
<a-select-option
:value=
"0"
>
全场
</a-select-option>
<a-select-option
:value=
"1"
>
广场出入口
</a-select-option>
<a-select-option
:value=
"2"
>
楼层出入口
</a-select-option>
...
...
@@ -39,7 +39,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"区域信息:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.zone_id"
<a-select
v-model:value=
"query
ClusterResul
tForm.zone_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -53,7 +53,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"监控点:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.gate_id"
<a-select
v-model:value=
"query
ClusterResul
tForm.gate_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
>
...
...
@@ -66,7 +66,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"方向:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.direction"
<a-select
v-model:value=
"query
ClusterResul
tForm.direction"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 200px"
>
...
...
@@ -76,13 +76,13 @@
</a-select>
</a-form-item>
<a-form-item
label=
"抓怕类型:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.picType"
style=
"width: 200px"
>
<a-select
v-model:value=
"query
ClusterResul
tForm.picType"
style=
"width: 200px"
>
<a-select-option
:value=
"1"
>
半身照
</a-select-option>
<a-select-option
:value=
"2"
>
全身照
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label=
"人员类型:"
>
<a-select
v-model:value=
"query
AlarmEven
tForm.personType"
<a-select
v-model:value=
"query
ClusterResul
tForm.personType"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 200px"
>
...
...
@@ -91,44 +91,52 @@
</a-select>
</a-form-item>
<a-form-item
label=
"选择日期:"
>
<a-date-picker
v-model:value=
"query
AlarmEven
tForm.date"
:format=
"'YYYY-MM-DD'"
/>
<a-date-picker
v-model:value=
"query
ClusterResul
tForm.date"
:format=
"'YYYY-MM-DD'"
/>
</a-form-item>
<a-form-item
label=
"选择时间:"
>
<a-time-picker
v-model:value=
"queryAlarmEventForm.startTime"
/>
<a-time-picker
v-model:value=
"queryAlarmEventForm.endTime"
/>
<a-time-picker
v-model:value=
"queryClusterResultForm.startTime"
/>
<a-time-picker
v-model:value=
"queryClusterResultForm.endTime"
/>
</a-form-item>
<a-form-item
label=
"图片数量:"
>
<a-input
v-model:value=
"queryClusterResultForm.minPic"
style=
"width: 100px"
/>
至
<a-input
v-model:value=
"queryClusterResultForm.maxPic"
style=
"width: 100px"
/>
</a-form-item>
<a-form-item>
<a-button
type=
"primary"
@
click=
"confirmSearch"
>
查询
</a-button>
<a-button
type=
"primary"
@
click=
"confirmSearch"
:loading=
"isLoading"
>
查询
</a-button>
</a-form-item>
</a-form>
<div
v-loading=
"isLoading"
>
<el-row
v-for=
"row in pagedTableDataList"
>
<el-col
:span=
"3"
v-for=
"item in row"
>
<div
style=
"margin: 0 5px"
>
<div
style=
"display:flex; justify-content: flex-end "
>
<span
@
click=
"downloadFile(item.features_url)"
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
下载特征值文件
</span>
<div
v-for=
"person in dataList"
style=
"margin: 10px 0;border: solid 1px black"
>
人id:
{{
' '
+
person
.
person_unid
}}
图片数量:
{{
person
.
perrsonList
.
length
}}
<el-row
v-for=
"row in getPagedList(person.perrsonList, 8)"
>
<el-col
:span=
"3"
v-for=
"item in row"
>
<div
style=
"margin: 0 5px"
>
<div
style=
"display:flex; justify-content: flex-end "
>
<span
@
click=
"downloadFile(item.features_url)"
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
下载特征值文件
</span>
</div>
<el-image
:src=
"item.picture_url"
:fit=
"'fill'"
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
</div>
<el-image
:src=
"item.picture_url"
:fit=
"'contain'"
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</div>
<a-pagination
v-model:current=
"pageNum"
v-model:pageSize=
"pageSize"
:total=
"total"
:show-total=
"total => `共 $
{total} 条`"
:pageSizeOptions="['
24', '48', '96', '192
']"
:pageSizeOptions="['
10', '20', '40', '80
']"
@change="onPageNumChange"
@showSizeChange="onPageSizeChange"
show-size-changer
...
...
@@ -149,7 +157,7 @@ export default {
setup
()
{
// scalar
const
pageNum
=
ref
(
1
)
const
pageSize
=
ref
(
24
)
const
pageSize
=
ref
(
10
)
const
total
=
ref
()
const
isLoading
=
ref
(
false
)
// sequence
...
...
@@ -165,7 +173,7 @@ export default {
}
)
const
query
AlarmEven
tForm
=
reactive
(
const
query
ClusterResul
tForm
=
reactive
(
{
account_id
:
[],
plaza_id
:
[],
...
...
@@ -178,6 +186,8 @@ export default {
date
:
moment
(
moment
().
format
(
'YYYY-MM-DD'
),
'YYYY-MM-DD'
),
startTime
:
moment
(
'00:00:00'
,
'HH:mm:ss'
),
endTime
:
moment
(
'23:59:59'
,
'HH:mm:ss'
),
minPic
:
0
,
maxPic
:
100
,
}
)
// function
...
...
@@ -212,11 +222,11 @@ export default {
}
const
getPlazaList
=
function
()
{
query
AlarmEven
tForm
.
plaza_id
=
[]
query
ClusterResul
tForm
.
plaza_id
=
[]
plazaList
.
value
=
[]
clusterResultApi
.
getPlazaList
(
{
account_id
:
query
AlarmEven
tForm
.
account_id
.
toString
()
account_id
:
query
ClusterResul
tForm
.
account_id
.
toString
()
}
).
then
(
(
r
)
=>
{
...
...
@@ -229,12 +239,12 @@ export default {
}
const
getZoneList
=
function
()
{
query
AlarmEven
tForm
.
zone_id
=
[]
query
ClusterResul
tForm
.
zone_id
=
[]
zoneList
.
value
=
[]
clusterResultApi
.
getZoneList
(
{
account_id
:
query
AlarmEven
tForm
.
account_id
.
toString
(),
plaza_id
:
query
AlarmEven
tForm
.
plaza_id
.
toString
(),
account_id
:
query
ClusterResul
tForm
.
account_id
.
toString
(),
plaza_id
:
query
ClusterResul
tForm
.
plaza_id
.
toString
(),
}
).
then
(
(
r
)
=>
{
...
...
@@ -247,14 +257,14 @@ export default {
}
const
getGateList
=
function
()
{
query
AlarmEven
tForm
.
gate_id
=
[]
query
ClusterResul
tForm
.
gate_id
=
[]
gateList
.
value
=
[]
clusterResultApi
.
getGateList
(
{
account_id
:
query
AlarmEven
tForm
.
account_id
.
toString
(),
plaza_id
:
query
AlarmEven
tForm
.
plaza_id
.
toString
(),
zone_id
:
query
AlarmEven
tForm
.
zone_id
.
toString
(),
type
:
query
AlarmEven
tForm
.
type
,
account_id
:
query
ClusterResul
tForm
.
account_id
.
toString
(),
plaza_id
:
query
ClusterResul
tForm
.
plaza_id
.
toString
(),
zone_id
:
query
ClusterResul
tForm
.
zone_id
.
toString
(),
type
:
query
ClusterResul
tForm
.
type
,
}
).
then
(
(
r
)
=>
{
...
...
@@ -267,7 +277,7 @@ export default {
}
const
getAccountList
=
function
()
{
query
AlarmEven
tForm
.
account_id
=
[]
query
ClusterResul
tForm
.
account_id
=
[]
accountList
.
value
=
[]
clusterResultApi
.
getAccountList
().
then
(
(
r
)
=>
{
...
...
@@ -281,7 +291,7 @@ export default {
const
confirmSearch
=
function
()
{
isLoading
.
value
=
true
const
rawData
=
toRaw
(
query
AlarmEven
tForm
)
const
rawData
=
toRaw
(
query
ClusterResul
tForm
)
const
data
=
filterEmptyValueInObject
(
{
account_id
:
rawData
.
account_id
.
toString
(),
...
...
@@ -292,9 +302,10 @@ export default {
direction
:
rawData
.
direction
.
toString
(),
picType
:
rawData
.
picType
,
personType
:
rawData
.
personType
.
toString
(),
startTime
:
formatDate
(
rawData
.
date
)
+
' '
+
formatTime
(
rawData
.
startTime
),
endTime
:
formatDate
(
rawData
.
date
)
+
' '
+
formatTime
(
rawData
.
endTime
),
minPic
:
rawData
.
minPic
,
maxPic
:
rawData
.
maxPic
,
page
:
pageNum
.
value
-
1
,
pageSize
:
pageSize
.
value
,
}
...
...
@@ -303,6 +314,7 @@ export default {
clusterResultApi
.
getClusterResultList
(
data
).
then
(
(
r
)
=>
{
isLoading
.
value
=
false
sortDataList
(
r
.
data
.
persons
)
dataList
.
value
=
r
.
data
.
persons
total
.
value
=
r
.
data
.
pageNum
}
...
...
@@ -331,6 +343,14 @@ export default {
}
}
}
const
sortDataList
=
function
(
list
)
{
list
.
sort
(
(
a
,
b
)
=>
{
return
(
b
.
perrsonList
.
length
-
a
.
perrsonList
.
length
)
}
)
}
const
downloadFile
=
function
(
url
)
{
window
.
open
(
url
)
}
...
...
@@ -353,8 +373,9 @@ export default {
zoneList
,
gateList
,
pagedTableDataList
,
dataList
,
// mapping
query
AlarmEven
tForm
,
query
ClusterResul
tForm
,
// function
onPageNumChange
,
onPageSizeChange
,
...
...
@@ -365,6 +386,7 @@ export default {
confirmSearch
,
formatDirection
,
downloadFile
,
getPagedList
,
}
}
}
...
...
src/views/SnapshotCluster/ClusterResult/ClusterResultApi.js
View file @
b6694db
...
...
@@ -6,7 +6,7 @@ class ClusterResultApi {
return
axiosInstance
.
request
(
{
method
:
'GET'
,
url
:
`/faceRecognitions/faceRecord`
,
url
:
`/faceRecognitions/faceRecord
Group
`
,
params
:
filterEmptyValueInObject
(
data
)
...
...
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
View file @
b6694db
<
template
>
<a-form
:model=
"query
AlarmEvent
Form"
layout=
"inline"
>
<a-form
:model=
"query
SnapshotRecord
Form"
layout=
"inline"
>
<a-form-item
label=
"集团:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.account_id"
<a-select
v-model:value=
"query
SnapshotRecord
Form.account_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -16,7 +16,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"广场:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.plaza_id"
<a-select
v-model:value=
"query
SnapshotRecord
Form.plaza_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -30,7 +30,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"出入类型:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.type"
style=
"width: 200px"
>
<a-select
v-model:value=
"query
SnapshotRecord
Form.type"
style=
"width: 200px"
>
<a-select-option
:value=
"0"
>
全场
</a-select-option>
<a-select-option
:value=
"1"
>
广场出入口
</a-select-option>
<a-select-option
:value=
"2"
>
楼层出入口
</a-select-option>
...
...
@@ -39,7 +39,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"区域信息:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.zone_id"
<a-select
v-model:value=
"query
SnapshotRecord
Form.zone_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
...
...
@@ -53,7 +53,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"监控点:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.gate_id"
<a-select
v-model:value=
"query
SnapshotRecord
Form.gate_id"
style=
"width: 200px"
mode=
"multiple"
:maxTagCount=
"1"
>
...
...
@@ -66,7 +66,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"方向:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.direction"
<a-select
v-model:value=
"query
SnapshotRecord
Form.direction"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 200px"
>
...
...
@@ -76,13 +76,13 @@
</a-select>
</a-form-item>
<a-form-item
label=
"抓怕类型:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.picType"
style=
"width: 200px"
>
<a-select
v-model:value=
"query
SnapshotRecord
Form.picType"
style=
"width: 200px"
>
<a-select-option
:value=
"1"
>
半身照
</a-select-option>
<a-select-option
:value=
"2"
>
全身照
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label=
"人员类型:"
>
<a-select
v-model:value=
"query
AlarmEvent
Form.personType"
<a-select
v-model:value=
"query
SnapshotRecord
Form.personType"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 200px"
>
...
...
@@ -91,14 +91,14 @@
</a-select>
</a-form-item>
<a-form-item
label=
"选择日期:"
>
<a-date-picker
v-model:value=
"query
AlarmEvent
Form.date"
:format=
"'YYYY-MM-DD'"
/>
<a-date-picker
v-model:value=
"query
SnapshotRecord
Form.date"
:format=
"'YYYY-MM-DD'"
/>
</a-form-item>
<a-form-item
label=
"选择时间:"
>
<a-time-picker
v-model:value=
"query
AlarmEvent
Form.startTime"
/>
<a-time-picker
v-model:value=
"query
AlarmEvent
Form.endTime"
/>
<a-time-picker
v-model:value=
"query
SnapshotRecord
Form.startTime"
/>
<a-time-picker
v-model:value=
"query
SnapshotRecord
Form.endTime"
/>
</a-form-item>
<a-form-item>
<a-button
type=
"primary"
@
click=
"confirmSearch"
>
查询
</a-button>
<a-button
type=
"primary"
@
click=
"confirmSearch"
:loading=
"isLoading"
>
查询
</a-button>
</a-form-item>
</a-form>
...
...
@@ -113,7 +113,7 @@
</span>
</div>
<el-image
:src=
"item.picture_url"
:fit=
"'
contain
'"
:fit=
"'
fill
'"
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
...
...
@@ -165,7 +165,7 @@ export default {
}
)
const
query
AlarmEvent
Form
=
reactive
(
const
query
SnapshotRecord
Form
=
reactive
(
{
account_id
:
[],
plaza_id
:
[],
...
...
@@ -212,11 +212,11 @@ export default {
}
const
getPlazaList
=
function
()
{
query
AlarmEvent
Form
.
plaza_id
=
[]
query
SnapshotRecord
Form
.
plaza_id
=
[]
plazaList
.
value
=
[]
snapshotRecordApi
.
getPlazaList
(
{
account_id
:
query
AlarmEvent
Form
.
account_id
.
toString
()
account_id
:
query
SnapshotRecord
Form
.
account_id
.
toString
()
}
).
then
(
(
r
)
=>
{
...
...
@@ -229,12 +229,12 @@ export default {
}
const
getZoneList
=
function
()
{
query
AlarmEvent
Form
.
zone_id
=
[]
query
SnapshotRecord
Form
.
zone_id
=
[]
zoneList
.
value
=
[]
snapshotRecordApi
.
getZoneList
(
{
account_id
:
query
AlarmEvent
Form
.
account_id
.
toString
(),
plaza_id
:
query
AlarmEvent
Form
.
plaza_id
.
toString
(),
account_id
:
query
SnapshotRecord
Form
.
account_id
.
toString
(),
plaza_id
:
query
SnapshotRecord
Form
.
plaza_id
.
toString
(),
}
).
then
(
(
r
)
=>
{
...
...
@@ -247,14 +247,14 @@ export default {
}
const
getGateList
=
function
()
{
query
AlarmEvent
Form
.
gate_id
=
[]
query
SnapshotRecord
Form
.
gate_id
=
[]
gateList
.
value
=
[]
snapshotRecordApi
.
getGateList
(
{
account_id
:
query
AlarmEvent
Form
.
account_id
.
toString
(),
plaza_id
:
query
AlarmEvent
Form
.
plaza_id
.
toString
(),
zone_id
:
query
AlarmEvent
Form
.
zone_id
.
toString
(),
type
:
query
AlarmEvent
Form
.
type
,
account_id
:
query
SnapshotRecord
Form
.
account_id
.
toString
(),
plaza_id
:
query
SnapshotRecord
Form
.
plaza_id
.
toString
(),
zone_id
:
query
SnapshotRecord
Form
.
zone_id
.
toString
(),
type
:
query
SnapshotRecord
Form
.
type
,
}
).
then
(
(
r
)
=>
{
...
...
@@ -267,7 +267,7 @@ export default {
}
const
getAccountList
=
function
()
{
query
AlarmEvent
Form
.
account_id
=
[]
query
SnapshotRecord
Form
.
account_id
=
[]
accountList
.
value
=
[]
snapshotRecordApi
.
getAccountList
().
then
(
(
r
)
=>
{
...
...
@@ -281,7 +281,7 @@ export default {
const
confirmSearch
=
function
()
{
isLoading
.
value
=
true
const
rawData
=
toRaw
(
query
AlarmEvent
Form
)
const
rawData
=
toRaw
(
query
SnapshotRecord
Form
)
const
data
=
filterEmptyValueInObject
(
{
account_id
:
rawData
.
account_id
.
toString
(),
...
...
@@ -354,7 +354,7 @@ export default {
gateList
,
pagedTableDataList
,
// mapping
query
AlarmEvent
Form
,
query
SnapshotRecord
Form
,
// function
onPageNumChange
,
onPageSizeChange
,
...
...
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