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 789321b3
authored
Jun 30, 2023
by
tianlonglong
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'master' of
http://git.keliuyun.com:55676/luoxinlin/vion-tools
2 parents
2c850ddd
e68b0a64
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
64 additions
and
26 deletions
package-lock.json
package.json
public/config.js
src/Request/PublicAxiosInstance.js
src/main.js
src/views/FeatureReExtract/FeatureReExtract.vue
src/views/FeatureReExtract/FeatureReExtractApi.js
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
package-lock.json
View file @
789321b
This diff could not be displayed because it is too large.
package.json
View file @
789321b
...
...
@@ -20,7 +20,6 @@
"lodash"
:
"^4.17.21"
,
"moment"
:
"^2.29.1"
,
"vue"
:
"^3.2.27"
,
"vue-photo-zoom-pro"
:
"^3.0.1"
,
"vue-router"
:
"^4.0.8"
,
"vuex"
:
"^4.0.0"
},
...
...
public/config.js
View file @
789321b
window
.
_serverHost
=
[
'localhost'
,
'192.168.1.
125'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/
'
:
window
.
location
.
host
window
.
_baseUrl
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/btool/'
:
`https://
${
window
.
_serverHost
}
/btool/`
window
.
_baseImgUrl
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/images/'
:
`
${
window
.
location
.
origin
}
/images/`
window
.
_socketUrl
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
`wss://
${
window
.
_serverHost
}
/`
:
`wss://
${
window
.
_serverHost
}
/`
window
.
_serverHost
=
[
'localhost'
,
'192.168.1.
28'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com
'
:
window
.
location
.
host
window
.
_baseUrl
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/btool/'
:
`https://
${
window
.
_serverHost
}
/btool/`
window
.
_baseImgUrl
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/images/'
:
`
${
window
.
location
.
origin
}
/images/`
window
.
_socketUrl
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
`wss://
${
window
.
_serverHost
}
/`
:
`wss://
${
window
.
_serverHost
}
/`
const
log
=
console
.
log
.
bind
(
console
)
src/Request/PublicAxiosInstance.js
View file @
789321b
...
...
@@ -4,7 +4,7 @@ import Cookies from "js-cookie"
import
{
getTimestampString
}
from
"@/PublicUtil/PublicUtil"
import
{
ElMessage
}
from
'element-plus'
// 创建 axios 的一个实例
let
baseURL
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
''
:
window
.
_baseUrl
let
baseURL
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
''
:
window
.
_baseUrl
const
axiosInstance
=
axios
.
create
(
{
baseURL
:
baseURL
,
...
...
@@ -14,14 +14,14 @@ const axiosInstance = axios.create(
// 请求拦截器
axiosInstance
.
interceptors
.
request
.
use
(
config
=>
{
// Cookies.set('atoken','
090afed9-d637-4710-b556-4910eb7f6e1
5')
// Cookies.set('atoken','
e433d448-d61e-4aba-9a3e-06c2fcb4a7e
5')
if
(
!
Cookies
.
get
(
'atoken'
)){
ElMessage
({
message
:
`登录过期,请重新登录`
,
type
:
'warning'
})
setTimeout
(()
=>
{
let
url
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/'
:
window
.
location
.
origin
let
url
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/'
:
window
.
location
.
origin
// if(url.includes('36.112.68.214')){
// url = 'http://36.112.68.214:33333/'
// }
...
...
@@ -45,7 +45,7 @@ axiosInstance.interceptors.response.use(
type
:
'warning'
})
setTimeout
(()
=>
{
let
url
=
[
'localhost'
,
'192.168.1.
125
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/'
:
window
.
location
.
origin
let
url
=
[
'localhost'
,
'192.168.1.
28
'
].
includes
(
window
.
location
.
hostname
)
?
'https://store.keliuyun.com/'
:
window
.
location
.
origin
// if(url.includes('36.112.68.214')){
// url = 'http://36.112.68.214:33333/'
// }
...
...
src/main.js
View file @
789321b
...
...
@@ -2,7 +2,6 @@ import {createApp} from 'vue'
import
App
from
'./App.vue'
import
Antd
from
'ant-design-vue'
import
'ant-design-vue/dist/antd.css'
import
VuePhotoZoomPro
from
'vue-photo-zoom-pro'
import
router
from
'./router'
import
store
from
'./store'
import
installElementPlus
from
'./plugins/element'
...
...
@@ -10,7 +9,6 @@ import installElementPlus from './plugins/element'
const
app
=
createApp
(
App
)
installElementPlus
(
app
)
app
.
use
(
store
)
app
.
use
(
VuePhotoZoomPro
)
app
.
use
(
router
)
app
.
use
(
Antd
)
app
.
mount
(
'#app'
)
src/views/FeatureReExtract/FeatureReExtract.vue
View file @
789321b
...
...
@@ -28,10 +28,11 @@
<a-select-option
:value=
"0"
>
人脸+全身照特征
</a-select-option>
<a-select-option
:value=
"1"
>
人脸特征
</a-select-option>
<a-select-option
:value=
"2"
>
全身照特征
</a-select-option>
<a-select-option
:value=
"3"
>
店员特征
</a-select-option>
<a-select-option
:value=
"3"
>
店员特征(人脸+人体)
</a-select-option>
<a-select-option
:value=
"4"
>
人员特征(人脸+人体)
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label=
"选择日期:"
v-if=
"queryForm.featureRevisitType
!==
3"
style=
"padding: 5px 0"
>
<a-form-item
label=
"选择日期:"
v-if=
"queryForm.featureRevisitType
<
3
"
style=
"padding: 5px 0"
>
<a-date-picker
v-model:value=
"queryForm.date"
style=
"width: 280px"
/>
</a-form-item>
<a-form-item
style=
"padding: 5px 0"
>
...
...
@@ -218,14 +219,20 @@ export default {
}
featureReExtractApi
.
getFeatureResult
(
data
)
}
else
{
else
if
(
rawData
.
featureRevisitType
==
3
){
const
data
=
{
mallIds
:
rawData
.
plaza_id
,
featureType
:
rawData
.
featureRevisitType
,
scheduleType
:
`revisitFeature
${
rawData
.
featureRevisitType
}
`
,
}
featureReExtractApi
.
getStaffFeatureResult
(
data
)
}
else
{
const
data
=
{
mallIds
:
rawData
.
plaza_id
,
featureType
:
rawData
.
featureRevisitType
,
scheduleType
:
`revisitFeature
${
rawData
.
featureRevisitType
}
`
,
}
featureReExtractApi
.
getPersonFeatureResult
(
data
)
}
}
...
...
src/views/FeatureReExtract/FeatureReExtractApi.js
View file @
789321b
...
...
@@ -21,6 +21,16 @@ class FeatureReExtractApi {
}
)
}
getPersonFeatureResult
(
data
){
return
axiosInstance
.
request
(
{
method
:
'POST'
,
url
:
`/person/reFeature`
,
data
:
data
}
)
}
}
...
...
src/views/SnapshotCluster/ClusterResult/ClusterResult.vue
View file @
789321b
...
...
@@ -3,7 +3,7 @@
<a-form
:model=
"queryForm"
layout=
"inline"
:label-col=
"
{ style: { width: '70px' } }">
<a-form-item
label=
"集团:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.account_id"
style=
"width: 2
8
0px"
style=
"width: 2
4
0px"
mode=
"multiple"
:maxTagCount=
"1"
@
change=
"onAccountChange"
...
...
@@ -15,7 +15,7 @@
</a-form-item>
<a-form-item
label=
"广场:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.plaza_id"
style=
"width: 2
8
0px"
style=
"width: 2
4
0px"
mode=
"multiple"
:maxTagCount=
"1"
@
change=
"onPlazaChange"
...
...
@@ -26,7 +26,7 @@
</a-select>
</a-form-item>
<a-form-item
label=
"出入类型:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.type"
style=
"width: 2
8
0px"
>
<a-select
v-model:value=
"queryForm.type"
style=
"width: 2
4
0px"
>
<a-select-option
:value=
"0"
>
全场
</a-select-option>
<a-select-option
:value=
"1"
>
广场出入口
</a-select-option>
<a-select-option
:value=
"2"
>
楼层出入口
</a-select-option>
...
...
@@ -36,7 +36,7 @@
</a-form-item>
<a-form-item
label=
"区域信息:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.zone_id"
style=
"width: 2
8
0px"
style=
"width: 2
4
0px"
mode=
"multiple"
:maxTagCount=
"1"
@
change=
"onZoneChange"
...
...
@@ -48,7 +48,7 @@
</a-form-item>
<a-form-item
label=
"监控点:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.gate_id"
style=
"width: 2
8
0px"
style=
"width: 2
4
0px"
mode=
"multiple"
:maxTagCount=
"1"
:options=
"gateList"
...
...
@@ -62,14 +62,14 @@
<a-select
v-model:value=
"queryForm.direction"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 2
8
0px"
>
style=
"width: 2
4
0px"
>
<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>
</a-form-item>
<a-form-item
label=
"抓拍类型:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.picType"
style=
"width: 2
8
0px"
>
<a-select
v-model:value=
"queryForm.picType"
style=
"width: 2
4
0px"
>
<a-select-option
:value=
"1"
>
半身照
</a-select-option>
<a-select-option
:value=
"2"
>
全身照
</a-select-option>
</a-select>
...
...
@@ -78,14 +78,24 @@
<a-select
v-model:value=
"queryForm.personType"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 2
8
0px"
>
style=
"width: 2
4
0px"
>
<a-select-option
:value=
"1"
>
店员
</a-select-option>
<a-select-option
:value=
"0"
>
顾客
</a-select-option>
<a-select-option
:value=
"-99"
>
未知
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label=
"年龄类型:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.childAdult"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 240px"
>
<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-form-item>
<a-form-item
label=
"选择日期:"
style=
"padding: 5px 0"
>
<a-date-picker
v-model:value=
"queryForm.date"
:format=
"'YYYY-MM-DD'"
style=
"width: 2
8
0px"
/>
<a-date-picker
v-model:value=
"queryForm.date"
:format=
"'YYYY-MM-DD'"
style=
"width: 2
4
0px"
/>
</a-form-item>
<a-form-item
label=
"选择时间:"
style=
"padding: 5px 0"
>
<a-time-picker
v-model:value=
"queryForm.startTime"
style=
"width: 140px"
/>
...
...
@@ -141,7 +151,7 @@
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:(
item
.
person_type
==
0
?
'顾客'
:
'未知'
)
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:(
item
.
person_type
==
0
?
'顾客'
:
'未知'
)
}}
(
{{
item
.
childAdult
==
1
?
'成人'
:(
item
.
childAdult
==
0
?
'儿童'
:
'未知'
)
}}
)
</div>
<div>
性别:
{{
formatGender
(
item
.
gender
)
}}
(
{{
item
.
age
}}
)
</div>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
...
...
@@ -228,6 +238,7 @@ export default {
endTime
:
moment
(
'23:59:59'
,
'HH:mm:ss'
),
minPic
:
0
,
maxPic
:
100
,
childAdult
:[],
}
)
const
searchCondition
=
ref
({})
...
...
@@ -427,6 +438,7 @@ export default {
maxPic
:
rawData
.
maxPic
,
page
:
pageNum
.
value
-
1
,
pageSize
:
pageSize
.
value
,
childAdult
:
rawData
.
childAdult
.
toString
(),
}
)
const
storageData
=
filterEmptyValueInObject
(
...
...
src/views/SnapshotCluster/SnapshotRecord/SnapshotRecord.vue
View file @
789321b
...
...
@@ -82,6 +82,16 @@
<a-select-option
:value=
"-99"
>
未知
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label=
"年龄类型:"
style=
"padding: 5px 0"
>
<a-select
v-model:value=
"queryForm.childAdult"
mode=
"multiple"
:maxTagCount=
"1"
style=
"width: 280px"
>
<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-form-item>
<a-form-item
label=
"选择日期:"
style=
"padding: 5px 0"
>
<a-date-picker
v-model:value=
"queryForm.date"
:format=
"'YYYY-MM-DD'"
style=
"width: 280px"
/>
</a-form-item>
...
...
@@ -117,7 +127,7 @@
class=
"single-image"
>
</el-image>
<div>
时间:
{{
item
.
counttime
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:(
item
.
person_type
==
0
?
'顾客'
:
'未知'
)
}}
</div>
<div>
人员类型:
{{
item
.
person_type
==
1
?
'店员'
:(
item
.
person_type
==
0
?
'顾客'
:
'未知'
)
}}
(
{{
item
.
childAdult
==
1
?
'成人'
:(
item
.
childAdult
==
0
?
'儿童'
:
'未知'
)
}}
)
</div>
<div>
性别:
{{
formatGender
(
item
.
gender
)
}}
(
{{
item
.
age
}}
)
</div>
<div
class=
"direction"
:class=
"'direction'+item.direction"
>
方向:
{{
formatDirection
(
item
.
direction
)
}}
</div>
<div>
地点:
{{
item
.
gate_name
}}
</div>
...
...
@@ -192,6 +202,7 @@ 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'
),
childAdult
:[],
}
)
const
searchCondition
=
ref
({})
...
...
@@ -383,6 +394,7 @@ export default {
endTime
:
formatDate
(
rawData
.
date
)
+
' '
+
formatTime
(
rawData
.
endTime
),
page
:
pageNum
.
value
-
1
,
pageSize
:
pageSize
.
value
,
childAdult
:
rawData
.
childAdult
.
toString
(),
}
)
const
storageData
=
filterEmptyValueInObject
(
...
...
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