Commit e354d35c by 李乾广

抓拍聚类增加机位号筛选和机位号、持续时间显示

1 parent 526d1e8c
...@@ -82,6 +82,15 @@ ...@@ -82,6 +82,15 @@
style="width: 240px"> style="width: 240px">
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="机位号:" style="padding: 5px 0">
<a-select v-model:value="queryForm.positionId"
mode="multiple"
:options="positionList"
optionFilterProp="label"
:maxTagCount="1"
style="width: 240px">
</a-select>
</a-form-item>
<a-form-item label="人员类型:" style="padding: 5px 0"> <a-form-item label="人员类型:" style="padding: 5px 0">
<a-select v-model:value="queryForm.personType" <a-select v-model:value="queryForm.personType"
mode="multiple" mode="multiple"
...@@ -121,13 +130,13 @@ ...@@ -121,13 +130,13 @@
<a-date-picker v-model:value="queryForm.date" :format="'YYYY-MM-DD'" :allowClear="false" style="width: 240px"/> <a-date-picker v-model:value="queryForm.date" :format="'YYYY-MM-DD'" :allowClear="false" style="width: 240px"/>
</a-form-item> </a-form-item>
<a-form-item label="选择时间:" style="padding: 5px 0"> <a-form-item label="选择时间:" style="padding: 5px 0">
<a-time-picker format="HH:mm:ss" valueFormat="HH:mm:ss" v-model:value="queryForm.startTime" style="width: 140px"/> <a-time-picker format="HH:mm:ss" valueFormat="HH:mm:ss" v-model:value="queryForm.startTime" style="width: 130px"/>
<a-time-picker format="HH:mm:ss" valueFormat="HH:mm:ss" v-model:value="queryForm.endTime" style="width: 140px"/> <a-time-picker format="HH:mm:ss" valueFormat="HH:mm:ss" v-model:value="queryForm.endTime" style="width: 130px"/>
</a-form-item> </a-form-item>
<a-form-item label="图片数量:" style="padding: 5px 0"> <a-form-item label="图片数量:" style="padding: 5px 0">
<a-input v-model:value="queryForm.minPic" style="width: 129px"/> <a-input v-model:value="queryForm.minPic" style="width: 70px"/>
<a-input v-model:value="queryForm.maxPic" style="width: 129px"/> <a-input v-model:value="queryForm.maxPic" style="width: 70px"/>
</a-form-item> </a-form-item>
<a-form-item style="padding: 5px 0"> <a-form-item style="padding: 5px 0">
<a-button type="primary" @click="clickSearch" :loading="isLoading">查询</a-button> <a-button type="primary" @click="clickSearch" :loading="isLoading">查询</a-button>
...@@ -226,6 +235,8 @@ ...@@ -226,6 +235,8 @@
<div>地点:{{ item.gate_name }}</div> <div>地点:{{ item.gate_name }}</div>
<div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">商品类型:{{ formatProduct(item.productId)}}</div> <div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">商品类型:{{ formatProduct(item.productId)}}</div>
<div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">机位号:{{ formatPosition(item.channelProductId)}}</div>
<div>持续时间:{{ item.duration!==null&&item.duration!==undefined&&item.duration>=0?item.duration+'秒':'--' }}</div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -303,6 +314,7 @@ export default { ...@@ -303,6 +314,7 @@ export default {
const personTypeList = ref([]) const personTypeList = ref([])
const productList = ref([]) const productList = ref([])
const zoneList = ref([]) const zoneList = ref([])
const positionList = ref([])
const gateList = ref([]) const gateList = ref([])
// const imgModelRef = ref(); // const imgModelRef = ref();
const pagedTableDataList = computed( const pagedTableDataList = computed(
...@@ -323,6 +335,7 @@ export default { ...@@ -323,6 +335,7 @@ export default {
gate_id: [], gate_id: [],
type: 0, type: 0,
direction: [1, -1, 0], direction: [1, -1, 0],
positionId:[],
picType: 2, picType: 2,
personType: [], personType: [],
date: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'), date: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'),
...@@ -344,6 +357,7 @@ export default { ...@@ -344,6 +357,7 @@ export default {
queryForm.zone_id = searchCondition.value.zone_id; queryForm.zone_id = searchCondition.value.zone_id;
queryForm.gate_id = searchCondition.value.gate_id; queryForm.gate_id = searchCondition.value.gate_id;
queryForm.productId = searchCondition.value.productId; queryForm.productId = searchCondition.value.productId;
queryForm.positionId = searchCondition.value.positionId;
queryForm.direction = searchCondition.value.direction; queryForm.direction = searchCondition.value.direction;
queryForm.childAdult = searchCondition.value.childAdult; queryForm.childAdult = searchCondition.value.childAdult;
queryForm.picType = searchCondition.value.picType; queryForm.picType = searchCondition.value.picType;
...@@ -368,14 +382,13 @@ export default { ...@@ -368,14 +382,13 @@ export default {
const onAccountChange = function() { const onAccountChange = function() {
getProductList(1) getProductList(1)
getPlazaList(1) getPlazaList(1)
// getZoneList()
// getGateList()
} }
const onPlazaChange = function() { const onPlazaChange = function() {
reqPersonType() reqPersonType()
getZoneList() getZoneList()
getGateList() getGateList()
getPositionList()
} }
const onZoneChange = function() { const onZoneChange = function() {
...@@ -434,6 +447,7 @@ export default { ...@@ -434,6 +447,7 @@ export default {
reqPersonType(1) reqPersonType(1)
getZoneList(1) getZoneList(1)
getGateList(1) getGateList(1)
getPositionList(1)
} }
} }
} }
...@@ -509,6 +523,30 @@ export default { ...@@ -509,6 +523,30 @@ export default {
} }
) )
} }
const getPositionList = function(val) {
positionList.value = []
clusterResultApi.getPositionList({plaza_id: queryForm.plaza_id}).then((res) => {
if (res.msg_code==200){
let list = res.data
for (const item of list){
positionList.value.push({
value: item.id,
label: item.name+'('+item.positionNo+')',
})
}
if(positionList.value.length){
if(val&&searchCondition.value.positionId && searchCondition.value.positionId.length>0){
queryForm.positionId = searchCondition.value.positionId
}else{
queryForm.positionId = []
}
}else{
queryForm.positionId = []
}
console.log(positionList.value)
}
})
}
...@@ -566,6 +604,7 @@ export default { ...@@ -566,6 +604,7 @@ export default {
plaza_id: rawData.plaza_id, plaza_id: rawData.plaza_id,
productId: rawData.productId?rawData.productId.toString():'', productId: rawData.productId?rawData.productId.toString():'',
zone_id: rawData.zone_id?rawData.zone_id.toString():'', zone_id: rawData.zone_id?rawData.zone_id.toString():'',
positionId: rawData.positionId?rawData.positionId.toString():'',
gate_id: rawData.gate_id?rawData.gate_id.toString():'', gate_id: rawData.gate_id?rawData.gate_id.toString():'',
direction: rawData.direction?rawData.direction.toString():'', direction: rawData.direction?rawData.direction.toString():'',
picType: rawData.picType, picType: rawData.picType,
...@@ -589,6 +628,7 @@ export default { ...@@ -589,6 +628,7 @@ export default {
plaza_id: [rawData.plaza_id], plaza_id: [rawData.plaza_id],
productId: rawData.productId, productId: rawData.productId,
zone_id: rawData.zone_id, zone_id: rawData.zone_id,
positionId: rawData.positionId,
gate_id: rawData.gate_id, gate_id: rawData.gate_id,
direction: rawData.direction, direction: rawData.direction,
picType: rawData.picType, picType: rawData.picType,
...@@ -694,6 +734,9 @@ export default { ...@@ -694,6 +734,9 @@ export default {
const formatProduct = function(val) { const formatProduct = function(val) {
return (productList.value.filter(v => v.value == val)[0] || {label:'--'}).label return (productList.value.filter(v => v.value == val)[0] || {label:'--'}).label
} }
const formatPosition = function(val) {
return (positionList.value.filter(v => v.value == val)[0] || {label:'--'}).label
}
const sortDataList = function(list) { const sortDataList = function(list) {
if(queryForm.sortType==1) { if(queryForm.sortType==1) {
list.sort( list.sort(
...@@ -1159,6 +1202,7 @@ export default { ...@@ -1159,6 +1202,7 @@ export default {
personTypeList, personTypeList,
productList, productList,
zoneList, zoneList,
positionList,
gateList, gateList,
pagedTableDataList, pagedTableDataList,
dataList, dataList,
...@@ -1174,6 +1218,7 @@ export default { ...@@ -1174,6 +1218,7 @@ export default {
confirmSearch, confirmSearch,
formatDirection, formatDirection,
formatProduct, formatProduct,
formatPosition,
downloadFile, downloadFile,
getPagedList, getPagedList,
handleClick, handleClick,
...@@ -1237,7 +1282,7 @@ export default { ...@@ -1237,7 +1282,7 @@ export default {
.classBox{ .classBox{
margin: 10px 0; margin: 10px 0;
border: solid 1px black; border: solid 1px black;
height: 507px; height: 570px;
overflow-y: hidden; overflow-y: hidden;
} }
.expand{ .expand{
......
...@@ -63,6 +63,19 @@ class ClusterResultApi { ...@@ -63,6 +63,19 @@ class ClusterResultApi {
} }
) )
} }
getPositionList(data) {
return axiosInstance.request(
{
method: 'GET',
url: `/channelProduct/list`,
params: filterEmptyValueInObject(
{
mallId: data.plaza_id,
},
)
}
)
}
// 查询系统级人员类型 // 查询系统级人员类型
getPersonType(data) { getPersonType(data) {
return axiosInstance.request( return axiosInstance.request(
......
...@@ -77,7 +77,16 @@ ...@@ -77,7 +77,16 @@
:options="productList" :options="productList"
optionFilterProp="label" optionFilterProp="label"
:maxTagCount="1" :maxTagCount="1"
style="width: 240px"> style="width: 280px">
</a-select>
</a-form-item>
<a-form-item label="机位号:" style="padding: 5px 0">
<a-select v-model:value="queryForm.positionId"
mode="multiple"
:options="positionList"
optionFilterProp="label"
:maxTagCount="1"
style="width: 280px">
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="人员类型:" style="padding: 5px 0"> <a-form-item label="人员类型:" style="padding: 5px 0">
...@@ -86,7 +95,7 @@ ...@@ -86,7 +95,7 @@
:options="personTypeList" :options="personTypeList"
optionFilterProp="label" optionFilterProp="label"
:maxTagCount="1" :maxTagCount="1"
style="width: 240px"> style="width: 280px">
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="年龄类型:" style="padding: 5px 0"> <a-form-item label="年龄类型:" style="padding: 5px 0">
...@@ -193,6 +202,8 @@ ...@@ -193,6 +202,8 @@
<div class="direction" :class="'direction'+item.direction">方向:{{ formatDirection(item.direction) }}</div> <div class="direction" :class="'direction'+item.direction">方向:{{ formatDirection(item.direction) }}</div>
<div>地点:{{ item.gate_name }}</div> <div>地点:{{ item.gate_name }}</div>
<div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">商品类型:{{ formatProduct(item.productId)}}</div> <div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">商品类型:{{ formatProduct(item.productId)}}</div>
<div style="width:100%;overflow:hidden;text-overflow:ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;">机位号:{{ formatPosition(item.channelProductId)}}</div>
<div>持续时间:{{ item.duration!==null&&item.duration!==undefined&&item.duration>=0?item.duration+'秒':'--' }}</div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -247,6 +258,7 @@ export default { ...@@ -247,6 +258,7 @@ export default {
const plazaList = ref([]) const plazaList = ref([])
const personTypeList = ref([]) const personTypeList = ref([])
const zoneList = ref([]) const zoneList = ref([])
const positionList = ref([])
const gateList = ref([]) const gateList = ref([])
const imgModelRef = ref(); const imgModelRef = ref();
const currentItemId = ref() const currentItemId = ref()
...@@ -269,6 +281,7 @@ export default { ...@@ -269,6 +281,7 @@ export default {
gate_id: [], gate_id: [],
type: 0, type: 0,
direction: [1, -1, 0], direction: [1, -1, 0],
positionId:[],
picType: 2, picType: 2,
personType: [], personType: [],
date: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'), date: moment(moment().format('YYYY-MM-DD'), 'YYYY-MM-DD'),
...@@ -285,6 +298,7 @@ export default { ...@@ -285,6 +298,7 @@ export default {
queryForm.zone_id = searchCondition.value.zone_id; queryForm.zone_id = searchCondition.value.zone_id;
queryForm.gate_id = searchCondition.value.gate_id; queryForm.gate_id = searchCondition.value.gate_id;
queryForm.productId = searchCondition.value.productId; queryForm.productId = searchCondition.value.productId;
queryForm.positionId = searchCondition.value.positionId;
queryForm.direction = searchCondition.value.direction; queryForm.direction = searchCondition.value.direction;
queryForm.childAdult = searchCondition.value.childAdult; queryForm.childAdult = searchCondition.value.childAdult;
queryForm.picType = searchCondition.value.picType; queryForm.picType = searchCondition.value.picType;
...@@ -307,14 +321,13 @@ export default { ...@@ -307,14 +321,13 @@ export default {
const onAccountChange = function() { const onAccountChange = function() {
getPlazaList(1) getPlazaList(1)
getProductList(1) getProductList(1)
// getZoneList()
// getGateList()
} }
const onPlazaChange = function() { const onPlazaChange = function() {
reqPersonType() reqPersonType()
getZoneList() getZoneList()
getGateList() getGateList()
getPositionList()
} }
const onZoneChange = function() { const onZoneChange = function() {
...@@ -348,6 +361,7 @@ export default { ...@@ -348,6 +361,7 @@ export default {
reqPersonType(1) reqPersonType(1)
getZoneList(1) getZoneList(1)
getGateList(1) getGateList(1)
getPositionList(1)
} }
} }
} }
...@@ -448,6 +462,30 @@ export default { ...@@ -448,6 +462,30 @@ export default {
} }
) )
} }
const getPositionList = function(val) {
positionList.value = []
snapshotRecordApi.getPositionList({plaza_id: queryForm.plaza_id}).then((res) => {
if (res.msg_code==200){
let list = res.data
for (const item of list){
positionList.value.push({
value: item.id,
label: item.name+'('+item.positionNo+')',
})
}
if(positionList.value.length){
if(val&&searchCondition.value.positionId && searchCondition.value.positionId.length>0){
queryForm.positionId = searchCondition.value.positionId
}else{
queryForm.positionId = []
}
}else{
queryForm.positionId = []
}
console.log(positionList.value)
}
})
}
const getAccountList = function() { const getAccountList = function() {
queryForm.account_id = '' queryForm.account_id = ''
...@@ -512,6 +550,7 @@ export default { ...@@ -512,6 +550,7 @@ export default {
plaza_id: rawData.plaza_id, plaza_id: rawData.plaza_id,
productId: rawData.productId?rawData.productId.toString():'', productId: rawData.productId?rawData.productId.toString():'',
zone_id: rawData.zone_id?rawData.zone_id.toString():'', zone_id: rawData.zone_id?rawData.zone_id.toString():'',
positionId: rawData.positionId?rawData.positionId.toString():'',
gate_id: rawData.gate_id?rawData.gate_id.toString():'', gate_id: rawData.gate_id?rawData.gate_id.toString():'',
direction: rawData.direction?rawData.direction.toString():'', direction: rawData.direction?rawData.direction.toString():'',
picType: rawData.picType, picType: rawData.picType,
...@@ -530,6 +569,7 @@ export default { ...@@ -530,6 +569,7 @@ export default {
plaza_id: [rawData.plaza_id], plaza_id: [rawData.plaza_id],
productId: rawData.productId, productId: rawData.productId,
zone_id: rawData.zone_id, zone_id: rawData.zone_id,
positionId: rawData.positionId,
gate_id: rawData.gate_id, gate_id: rawData.gate_id,
direction: rawData.direction, direction: rawData.direction,
picType: rawData.picType, picType: rawData.picType,
...@@ -577,6 +617,9 @@ export default { ...@@ -577,6 +617,9 @@ export default {
const formatProduct = function(val) { const formatProduct = function(val) {
return (productList.value.filter(v => v.value == val)[0] || {label:'--'}).label return (productList.value.filter(v => v.value == val)[0] || {label:'--'}).label
} }
const formatPosition = function(val) {
return (positionList.value.filter(v => v.value == val)[0] || {label:'--'}).label
}
const formatGender = function(number){ const formatGender = function(number){
switch (number) switch (number)
{ {
...@@ -1350,7 +1393,7 @@ export default { ...@@ -1350,7 +1393,7 @@ export default {
const imgHeight = ref(0) const imgHeight = ref(0)
const __main = function() { const __main = function() {
getAccountList() getAccountList()
contentHeight.value = window.innerHeight - 280 contentHeight.value = window.innerHeight - 320
imgHeight.value = (((window.innerWidth - 240)/8)-10)*1.21 imgHeight.value = (((window.innerWidth - 240)/8)-10)*1.21
} }
...@@ -1369,6 +1412,7 @@ export default { ...@@ -1369,6 +1412,7 @@ export default {
productList, productList,
personTypeList, personTypeList,
zoneList, zoneList,
positionList,
gateList, gateList,
pagedTableDataList, pagedTableDataList,
currentItemId, currentItemId,
...@@ -1401,6 +1445,7 @@ export default { ...@@ -1401,6 +1445,7 @@ export default {
singleComparativeFun, singleComparativeFun,
singleImgComparisonRef, singleImgComparisonRef,
formatProduct, formatProduct,
formatPosition,
personUnidClick, personUnidClick,
hairStyleStr, hairStyleStr,
hatStr, hatStr,
......
...@@ -87,7 +87,19 @@ class SnapshotRecordApi { ...@@ -87,7 +87,19 @@ class SnapshotRecordApi {
} }
) )
} }
getPositionList(data) {
return axiosInstance.request(
{
method: 'GET',
url: `/channelProduct/list`,
params: filterEmptyValueInObject(
{
mallId: data.plaza_id,
},
)
}
)
}
getGateList(data) { getGateList(data) {
return axiosInstance.request( return axiosInstance.request(
{ {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!