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 c710516d
authored
May 26, 2022
by
李君
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
优化
1 parent
f7b0c2dc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
236 additions
and
171 deletions
src/Request/PublicAxiosInstance.js
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
src/Request/PublicAxiosInstance.js
View file @
c710516
...
@@ -15,7 +15,7 @@ const axiosInstance = axios.create(
...
@@ -15,7 +15,7 @@ const axiosInstance = axios.create(
axiosInstance
.
interceptors
.
request
.
use
(
axiosInstance
.
interceptors
.
request
.
use
(
config
=>
{
config
=>
{
// Cookies.set('atoken','
90eeca8f-7d7e-4dfa-8d7b-468e033dd048
')
// Cookies.set('atoken','
3f719c88-cfe6-42f6-b2c7-a6b355c46c10
')
if
(
!
Cookies
.
get
(
'atoken'
)){
if
(
!
Cookies
.
get
(
'atoken'
)){
ElMessage
({
ElMessage
({
message
:
`登录过期,请重新登录`
,
message
:
`登录过期,请重新登录`
,
...
...
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
View file @
c710516
<
template
>
<
template
>
<a-form
:model=
"queryForm"
layout=
"inline"
:label-col=
"
{ style: { width: '70px' } }">
<div
class=
"containter"
>
<a-form-item
label=
"集团:"
style=
"padding: 5px 0"
>
<a-form
:model=
"queryForm"
layout=
"inline"
:label-col=
"
{ style: { width: '70px' } }">
<a-select
v-model:value=
"queryForm.account_id"
<a-form-item
label=
"集团:"
style=
"padding: 5px 0"
>
style=
"width: 280px"
<a-select
v-model:value=
"queryForm.account_id"
mode=
"multiple"
style=
"width: 280px"
:maxTagCount=
"1"
mode=
"multiple"
@
change=
"onAccountChange"
:maxTagCount=
"1"
:options=
"accountList"
@
change=
"onAccountChange"
optionFilterProp=
"label"
:options=
"accountList"
show-search
optionFilterProp=
"label"
>
show-search
</a-select>
>
</a-form-item>
</a-select>
<a-form-item
label=
"广场:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.plaza_id"
<a-form-item
label=
"广场:"
style=
"padding: 5px 0"
>
style=
"width: 280px"
<a-select
v-model:value=
"queryForm.plaza_id"
mode=
"multiple"
style=
"width: 280px"
:maxTagCount=
"1"
mode=
"multiple"
@
change=
"onPlazaChange"
:maxTagCount=
"1"
:options=
"plazaList"
@
change=
"onPlazaChange"
optionFilterProp=
"label"
:options=
"plazaList"
show-search
optionFilterProp=
"label"
>
show-search
</a-select>
>
</a-form-item>
</a-select>
<a-form-item
label=
"出入类型:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.type"
style=
"width: 280px"
>
<a-form-item
label=
"出入类型:"
style=
"padding: 5px 0"
>
<a-select-option
:value=
"0"
>
全场
</a-select-option>
<a-select
v-model:value=
"queryForm.type"
style=
"width: 280px"
>
<a-select-option
:value=
"1"
>
广场出入口
</a-select-option>
<a-select-option
:value=
"0"
>
全场
</a-select-option>
<a-select-option
:value=
"2"
>
楼层出入口
</a-select-option>
<a-select-option
:value=
"1"
>
广场出入口
</a-select-option>
<a-select-option
:value=
"3"
>
店铺出入口
</a-select-option>
<a-select-option
:value=
"2"
>
楼层出入口
</a-select-option>
<a-select-option
:value=
"4"
>
其他
</a-select-option>
<a-select-option
:value=
"3"
>
店铺出入口
</a-select-option>
</a-select>
<a-select-option
:value=
"4"
>
其他
</a-select-option>
</a-form-item>
</a-select>
<a-form-item
label=
"区域信息:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.zone_id"
<a-form-item
label=
"区域信息:"
style=
"padding: 5px 0"
>
style=
"width: 280px"
<a-select
v-model:value=
"queryForm.zone_id"
mode=
"multiple"
style=
"width: 280px"
:maxTagCount=
"1"
mode=
"multiple"
@
change=
"onZoneChange"
:maxTagCount=
"1"
:options=
"zoneList"
@
change=
"onZoneChange"
optionFilterProp=
"label"
:options=
"zoneList"
show-search
optionFilterProp=
"label"
>
show-search
</a-select>
>
</a-form-item>
</a-select>
<a-form-item
label=
"监控点:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.gate_id"
<a-form-item
label=
"监控点:"
style=
"padding: 5px 0"
>
style=
"width: 280px"
<a-select
v-model:value=
"queryForm.gate_id"
mode=
"multiple"
style=
"width: 280px"
:maxTagCount=
"1"
mode=
"multiple"
:options=
"gateList"
:maxTagCount=
"1"
optionFilterProp=
"label"
:options=
"gateList"
show-search
optionFilterProp=
"label"
>
show-search
>
</a-select>
</a-form-item>
</a-select>
<a-form-item
label=
"方向:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.direction"
<a-form-item
label=
"方向:"
style=
"padding: 5px 0"
>
mode=
"multiple"
<a-select
v-model:value=
"queryForm.direction"
:maxTagCount=
"1"
mode=
"multiple"
style=
"width: 280px"
>
:maxTagCount=
"1"
<a-select-option
:value=
"1"
>
进
</a-select-option>
style=
"width: 280px"
>
<a-select-option
:value=
"-1"
>
出
</a-select-option>
<a-select-option
:value=
"1"
>
进
</a-select-option>
<a-select-option
:value=
"0"
>
横穿
</a-select-option>
<a-select-option
:value=
"-1"
>
出
</a-select-option>
</a-select>
<a-select-option
:value=
"0"
>
横穿
</a-select-option>
</a-form-item>
</a-select>
<a-form-item
label=
"抓拍类型:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.picType"
style=
"width: 280px"
>
<a-form-item
label=
"抓拍类型:"
style=
"padding: 5px 0"
>
<a-select-option
:value=
"1"
>
半身照
</a-select-option>
<a-select
v-model:value=
"queryForm.picType"
style=
"width: 280px"
>
<a-select-option
:value=
"2"
>
全身照
</a-select-option>
<a-select-option
:value=
"1"
>
半身照
</a-select-option>
</a-select>
<a-select-option
:value=
"2"
>
全身照
</a-select-option>
</a-form-item>
</a-select>
<a-form-item
label=
"人员类型:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-select
v-model:value=
"queryForm.personType"
<a-form-item
label=
"人员类型:"
style=
"padding: 5px 0"
>
mode=
"multiple"
<a-select
v-model:value=
"queryForm.personType"
:maxTagCount=
"1"
mode=
"multiple"
style=
"width: 280px"
>
:maxTagCount=
"1"
<a-select-option
:value=
"1"
>
店员
</a-select-option>
style=
"width: 280px"
>
<a-select-option
:value=
"0"
>
顾客
</a-select-option>
<a-select-option
:value=
"1"
>
店员
</a-select-option>
</a-select>
<a-select-option
:value=
"0"
>
顾客
</a-select-option>
</a-form-item>
</a-select>
<a-form-item
label=
"选择日期:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-date-picker
v-model:value=
"queryForm.date"
:format=
"'YYYY-MM-DD'"
style=
"width: 280px"
/>
<a-form-item
label=
"选择日期:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-date-picker
v-model:value=
"queryForm.date"
:format=
"'YYYY-MM-DD'"
style=
"width: 280px"
/>
<a-form-item
label=
"选择时间:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-time-picker
v-model:value=
"queryForm.startTime"
style=
"width: 140px"
/>
<a-form-item
label=
"选择时间:"
style=
"padding: 5px 0"
>
<a-time-picker
v-model:value=
"queryForm.endTime"
style=
"width: 140px"
/>
<a-time-picker
v-model:value=
"queryForm.startTime"
style=
"width: 140px"
/>
</a-form-item>
<a-time-picker
v-model:value=
"queryForm.endTime"
style=
"width: 140px"
/>
<a-form-item
label=
"图片数量:"
style=
"padding: 5px 0"
>
</a-form-item>
<a-input
v-model:value=
"queryForm.minPic"
style=
"width: 129px"
/>
<a-form-item
label=
"图片数量:"
style=
"padding: 5px 0"
>
至
<a-input
v-model:value=
"queryForm.minPic"
style=
"width: 129px"
/>
<a-input
v-model:value=
"queryForm.maxPic"
style=
"width: 129px"
/>
至
</a-form-item>
<a-input
v-model:value=
"queryForm.maxPic"
style=
"width: 129px"
/>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"confirmSearch"
:loading=
"isLoading"
>
查询
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"confirmSearch"
:loading=
"isLoading"
>
查询
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"comparativeFun"
>
特征对比
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"comparativeFun"
>
特征对比
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"singleComparativeFun"
>
单张特征对比
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"singleComparativeFun"
>
单张特征对比
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"clerkComparativeFun"
>
店员特征对比
</a-button>
<a-form-item
style=
"padding: 5px 0"
>
</a-form-item>
<a-button
type=
"primary"
@
click=
"clerkComparativeFun"
>
店员特征对比
</a-button>
</a-form>
</a-form-item>
</a-form>
<div
v-loading=
"isLoading"
>
<template
v-for=
"person in dataList"
>
<div
v-loading=
"isLoading"
>
<div
style=
"margin: 10px 0;border: solid 1px black"
:class=
"person.checked?'checked':''"
>
<div
class=
"resultContent"
:style=
"
{'height':contentHeight+'px'}">
<el-checkbox
class=
"checkBox"
v-model=
"person.checked"
@
change=
'checkChange(person)'
></el-checkbox>
<template
v-for=
"person in dataList"
>
人id:
{{
' '
+
person
.
person_unid
}}
<div
style=
"margin: 10px 0;border: solid 1px black"
:class=
"person.checked?'checked':''"
>
图片数量:
{{
person
.
perrsonList
.
length
}}
<el-checkbox
class=
"checkBox"
v-model=
"person.checked"
@
change=
'checkChange(person)'
></el-checkbox>
<el-row
v-for=
"row in getPagedList(person.perrsonList, 8)"
>
人id:
{{
' '
+
person
.
person_unid
}}
<el-col
:span=
"3"
v-for=
"item in row"
>
图片数量:
{{
person
.
perrsonList
.
length
}}
<div
style=
"margin: 0 5px"
@
click=
"handleClick(item)"
:class=
"currentItemId==item.id?'actived':''"
>
<el-row
v-for=
"row in getPagedList(person.perrsonList, 8)"
>
<div
style=
"display:flex; justify-content: flex-end "
>
<el-col
:span=
"3"
v-for=
"item in row"
>
<span
@
click=
"downloadFile(item.features_url)"
<div
style=
"margin: 0 5px"
@
click=
"handleClick(item)"
:class=
"currentItemId==item.id?'actived':''"
>
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
<div
style=
"display:flex; justify-content: flex-end "
>
下载特征值文件
<span
@
click=
"downloadFile(item.features_url)"
</span>
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
</div>
下载特征值文件
<el-image
:src=
"item.picture_url"
</span>
:fit=
"'fill'"
</div>
class=
"single-image"
>
<el-image
:src=
"item.picture_url"
</el-image>
:fit=
"'fill'"
<div>
时间:
{{
item
.
counttime
}}
</div>
class=
"single-image"
>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:
'顾客'
}}
</div>
</el-image>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:
'顾客'
}}
</div>
</div>
<div>
性别:
{{
formatGender
(
item
.
gender
)
}}
</div>
</el-col>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
</el-row>
<div>
地点:
{{
item
.
gate_name
}}
</div>
</div>
</el-col>
</el-row>
</div>
</
template
>
</div>
</div>
</
template
>
<a-pagination
<a-pagination
v-model:current=
"pageNum"
v-model:current=
"pageNum
"
v-model:pageSize=
"pageSize
"
v-model:pageSize=
"pageSize
"
:total=
"total
"
:total=
"total
"
:show-total=
"total => `共 ${total} 条`
"
:show-total=
"total => `共 ${total} 条`
"
:pageSizeOptions=
"['10', '20', '40', '80']
"
:pageSizeOptions=
"['10', '20', '40', '80']
"
@
change=
"onPageNumChange
"
@
change=
"onPageNum
Change"
@
showSizeChange=
"onPageSize
Change"
@
showSizeChange=
"onPageSizeChange"
show-size-changer
show-size-chang
er
show-quick-jump
er
show-quick-jumper
style=
"text-align:center"
style=
"text-align:center"
/>
/
>
</div
>
</div>
</div>
<!-- <imgDialog ref='imgModelRef'></imgDialog> -->
<!-- <imgDialog ref='imgModelRef'></imgDialog> -->
<DetailDialog
ref=
"DetailDialogRef"
/>
<DetailDialog
ref=
"DetailDialogRef"
/>
...
@@ -392,7 +397,28 @@ export default {
...
@@ -392,7 +397,28 @@ export default {
}
}
)
)
}
}
const
formatGender
=
function
(
number
){
switch
(
number
)
{
case
1
:
{
return
'男'
}
case
-
1
:
{
return
'未知'
}
case
0
:
{
return
'女'
}
default
:
{
break
}
}
}
const
formatDirection
=
function
(
number
)
{
const
formatDirection
=
function
(
number
)
{
switch
(
number
)
switch
(
number
)
{
{
...
@@ -545,8 +571,10 @@ export default {
...
@@ -545,8 +571,10 @@ export default {
}
}
DetailDialogRef
.
value
.
initDialog
(
currobj
.
value
,
parmas
);
DetailDialogRef
.
value
.
initDialog
(
currobj
.
value
,
parmas
);
}
}
const
contentHeight
=
ref
(
0
)
const
__main
=
function
()
{
const
__main
=
function
()
{
getAccountList
()
getAccountList
()
contentHeight
.
value
=
window
.
innerHeight
-
310
}
}
__main
()
__main
()
...
@@ -566,6 +594,7 @@ export default {
...
@@ -566,6 +594,7 @@ export default {
gateList
,
gateList
,
pagedTableDataList
,
pagedTableDataList
,
dataList
,
dataList
,
contentHeight
,
// mapping
// mapping
queryForm
,
queryForm
,
// function
// function
...
@@ -583,6 +612,7 @@ export default {
...
@@ -583,6 +612,7 @@ export default {
checkChange
,
checkChange
,
clerkComparativeFun
,
clerkComparativeFun
,
singleComparativeFun
,
singleComparativeFun
,
formatGender
,
// ref
// ref
// imgModelRef,
// imgModelRef,
DetailDialogRef
,
DetailDialogRef
,
...
@@ -604,5 +634,9 @@ export default {
...
@@ -604,5 +634,9 @@ export default {
.checked
{
.checked
{
background-color
:
#bbb
;
background-color
:
#bbb
;
}
}
.resultContent
{
overflow
:
auto
;
min-height
:
500px
;
}
</
style
>
</
style
>
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
View file @
c710516
...
@@ -97,27 +97,29 @@
...
@@ -97,27 +97,29 @@
</a-form>
</a-form>
<div
v-loading=
"isLoading"
>
<div
v-loading=
"isLoading"
>
<el-row
v-for=
"row in pagedTableDataList"
>
<div
class=
"resultContent"
:style=
"
{'height':contentHeight+'px'}">
<el-col
:span=
"3"
v-for=
"item in row"
>
<el-row
v-for=
"row in pagedTableDataList"
>
<div
style=
"margin: 0 5px;cursor: pointer;"
@
click=
"handleClick(item)"
:class=
"currentItemId==item.id?'actived':''"
>
<el-col
:span=
"3"
v-for=
"item in row"
>
<div
style=
"display:flex; justify-content: flex-end "
>
<div
style=
"margin: 0 5px;cursor: pointer;"
@
click=
"handleClick(item)"
:class=
"currentItemId==item.id?'actived':''"
>
<span
@
click=
"downloadFile(item.features_url)"
<div
style=
"display:flex; justify-content: flex-end "
>
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
<span
@
click=
"downloadFile(item.features_url)"
下载特征值文件
style=
"color: #409EFF;font-size: 15px;cursor: pointer;"
>
</span>
下载特征值文件
</span>
</div>
<el-image
:src=
"item.picture_url"
:fit=
"'fill'"
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:
'顾客'
}}
</div>
<div>
性别:
{{
formatGender
(
item
.
gender
)
}}
</div>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
</div>
</div>
<el-image
:src=
"item.picture_url"
</el-col>
:fit=
"'fill'"
</el-row>
class=
"single-image"
>
</div>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:
'顾客'
}}
</div>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
</div>
</el-col>
</el-row>
<a-pagination
<a-pagination
v-model:current=
"pageNum"
v-model:current=
"pageNum"
v-model:pageSize=
"pageSize"
v-model:pageSize=
"pageSize"
...
@@ -361,7 +363,28 @@ export default {
...
@@ -361,7 +363,28 @@ export default {
}
}
)
)
}
}
const
formatGender
=
function
(
number
){
switch
(
number
)
{
case
1
:
{
return
'男'
}
case
-
1
:
{
return
'未知'
}
case
0
:
{
return
'女'
}
default
:
{
break
}
}
}
const
formatDirection
=
function
(
number
)
{
const
formatDirection
=
function
(
number
)
{
switch
(
number
)
switch
(
number
)
{
{
...
@@ -416,8 +439,10 @@ export default {
...
@@ -416,8 +439,10 @@ export default {
}
}
DetailDialogRef
.
value
.
initDialog
(
currobj
.
value
,
parmas
);
DetailDialogRef
.
value
.
initDialog
(
currobj
.
value
,
parmas
);
}
}
const
contentHeight
=
ref
(
0
)
const
__main
=
function
()
{
const
__main
=
function
()
{
getAccountList
()
getAccountList
()
contentHeight
.
value
=
window
.
innerHeight
-
310
}
}
__main
()
__main
()
...
@@ -436,6 +461,7 @@ export default {
...
@@ -436,6 +461,7 @@ export default {
gateList
,
gateList
,
pagedTableDataList
,
pagedTableDataList
,
currentItemId
,
currentItemId
,
contentHeight
,
// mapping
// mapping
queryForm
,
queryForm
,
// function
// function
...
@@ -449,6 +475,7 @@ export default {
...
@@ -449,6 +475,7 @@ export default {
downloadFile
,
downloadFile
,
handleClick
,
handleClick
,
comparativeFun
,
comparativeFun
,
formatGender
,
// ref
// ref
DetailDialogRef
,
DetailDialogRef
,
imgModelRef
imgModelRef
...
@@ -462,5 +489,9 @@ export default {
...
@@ -462,5 +489,9 @@ export default {
.actived
{
.actived
{
border
:
3px
solid
#1890ff
;
border
:
3px
solid
#1890ff
;
}
}
.resultContent
{
overflow
:
auto
;
min-height
:
500px
;
}
</
style
>
</
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