Browse Source

refactor: 优化伴宠师列表页面及筛选功能

- 更新manifest.json中的appid
- 修改getUrl.js中的环境变量为develop
- 修复position.js中距离计算的初始化问题
- 调整addressMap.vue中的缩放比例逻辑
- 更新FilterPopup.vue中的性别和宠物类型筛选逻辑
- 优化companionPetList.vue的搜索功能及排序逻辑
master
前端-胡立永 2 months ago
parent
commit
ae3e471214
6 changed files with 57 additions and 25 deletions
  1. +6
    -6
      components/FilterPopup/FilterPopup.vue
  2. +8
    -4
      components/addressMap.vue
  3. +1
    -1
      manifest.json
  4. +4
    -1
      mixins/position.js
  5. +36
    -11
      pages/companionPetList/companionPetList.vue
  6. +2
    -2
      utils/getUrl.js

+ 6
- 6
components/FilterPopup/FilterPopup.vue View File

@ -13,10 +13,10 @@
<view :class="['tag-item', gender === '' ? 'active' : '']" @click="selectGender('')">
<text>不限</text>
</view>
<view :class="['tag-item', gender === '女生' ? 'active' : '']" @click="selectGender('女生')">
<view :class="['tag-item', gender === '1' ? 'active' : '']" @click="selectGender('1')">
<text>女生</text>
</view>
<view :class="['tag-item', gender === '男生' ? 'active' : '']" @click="selectGender('男生')">
<view :class="['tag-item', gender === '0' ? 'active' : '']" @click="selectGender('0')">
<text>男生</text>
</view>
</view>
@ -26,13 +26,13 @@
<view class="filter-section">
<view class="section-title">伴宠师服务宠物类型</view>
<view class="tag-group">
<view :class="['tag-item', petTypes.includes('1') ? 'active' : '']" @click="togglePetType('1')">
<view :class="['tag-item', petTypes.includes('3') ? 'active' : '']" @click="togglePetType('3')">
<text>猫咪</text>
</view>
<view :class="['tag-item', petTypes.includes('2') ? 'active' : '']" @click="togglePetType('2')">
<view :class="['tag-item', petTypes.includes('4') ? 'active' : '']" @click="togglePetType('4')">
<text>狗狗</text>
</view>
<view :class="['tag-item', petTypes.includes('3') ? 'active' : '']" @click="togglePetType('3')">
<view :class="['tag-item', petTypes.includes('5') ? 'active' : '']" @click="togglePetType('5')">
<text>异宠</text>
</view>
</view>
@ -42,7 +42,7 @@
<view class="filter-section">
<view class="section-title">伴宠师等级</view>
<view class="tag-group">
<view :class="['tag-item', level === '1' ? 'active' : '']" @click="selectLevel('1')">
<view :class="['tag-item', level === '3' ? 'active' : '']" @click="selectLevel('1')">
<text>初级伴宠师</text>
</view>
<view :class="['tag-item', level === '2' ? 'active' : '']" @click="selectLevel('2')">


+ 8
- 4
components/addressMap.vue View File

@ -72,12 +72,16 @@
}
//
//
if (maxDistance > 10) { // 10
this.scale = 12
if (maxDistance > 100) { //
this.scale = 2
}else if (maxDistance > 50) { //
this.scale = 5
}else if (maxDistance > 10) { // 10
this.scale = 10
} else if (maxDistance > 5) { // 5-10
this.scale = 13
this.scale = 11
} else if (maxDistance > 2) { // 2-5
this.scale = 14
this.scale = 13
} else { // 2
this.scale = 15
}


+ 1
- 1
manifest.json View File

@ -1,6 +1,6 @@
{
"name" : "CMDF",
"appid" : "__UNI__6B015BD",
"appid" : "__UNI__197A38F",
"description" : "猫妈狗爸",
"versionName" : "1.1.0",
"versionCode" : "100",


+ 4
- 1
mixins/position.js View File

@ -23,13 +23,16 @@ export default {
let minDistance = 0
teacherAddress.forEach(item => {
teacherAddress.forEach((item, index) => {
let distance = calculateDistance(
this.position.latitude,
this.position.longitude,
item.latitude,
item.longitude,
)
if(index == 0){
minDistance = distance
}
minDistance = Math.min(minDistance, distance)
})


+ 36
- 11
pages/companionPetList/companionPetList.vue View File

@ -72,8 +72,21 @@
<filter-popup ref="filterPopup" @confirm="handleFilterConfirm"></filter-popup>
<uni-easyinput style="border-radius: 84rpx; width: 224rpx; height: 96rpx;" borderColor="#FFB13F"
prefixIcon="search" v-model="value" placeholder="输入名称" @iconClick="iconClick"></uni-easyinput>
<!-- <uni-easyinput style="border-radius: 84rpx; width: 224rpx; height: 96rpx;"
borderColor="#FFB13F"
prefixIcon="search" v-model="value"
placeholder="输入名称"
@confirm="getCompanionList"
@iconClick="iconClick"></uni-easyinput> -->
<u-search placeholder="输入名称"
:showAction="false"
@search="getCompanionList"
@clear="getCompanionList"
@custom="getCompanionList"
height="96rpx"
v-model="value"></u-search>
<!-- <view style="width: 50%;" class="card">
<uni-data-checkbox multiple selectedColor="#FFB13F" v-model="selectedPet" :localdata="catOrdog"
@change="changeSelectedPet"></uni-data-checkbox>
@ -120,8 +133,9 @@
style="width: 20px;height: 20px;" />
</view>
</view>
<view class="personal-star" @click="checkIsLike">
<text style="color: #FFB13F;">客户点赞数{{ item.appletUsersTeacher.thumbsUp || 0 }}</text>
<view class="personal-star" @click.stop="checkIsLike">
<!-- 客户 -->
<text style="color: #FFB13F;">点赞数{{ item.appletUsersTeacher.thumbsUp || 0 }}</text>
<uni-icons v-if="isLike" type="hand-up-filled" size="20"
color="#FFB13F"></uni-icons>
<uni-icons v-else type="hand-up" size="20" color="#FFB13F"></uni-icons>
@ -132,7 +146,7 @@
距离{{ item.distanceText }}km
</view>
<view class="ellipsis" v-else>
暂无距离估测
{{ '<' }}1km
</view>
</view>
<view class="personal-info-4" style="width: 100%;">
@ -292,20 +306,25 @@
// }
let data = {
// address: "150",
latitude: 29.56471,
longitude: 106.55073,
latitude: this.position.latitude,
longitude: this.position.longitude,
// latitude: 29.56471,
// longitude: 106.55073,
// petTypes: ["1", "2"],
userName: this.value,
staffName: this.value,//
}
if(this.filterOptions.gender){
data.sex = this.filterOptions.gender == '男' ? 0 : 1
data.sex = this.filterOptions.gender
}
if(this.filterOptions.petTypes.length){
data.petTypes = this.filterOptions.petTypes.join(',')
}
if(this.filterOptions.level){
data.level = this.filterOptions.level
data.teacherLevels = this.filterOptions.level
}
if(this.selectedDate.length > 0){
data.selectedDate = this.selectedDate.map(n => n.date).join(',')
}
console.log('data', data);
@ -328,6 +347,8 @@
this.companionList.forEach(item => {
item.distanceText = this.calculateDistanceAddress(item.appletAddresseList)
})
this.companionList.sort((a,b) => a.distanceText - b.distanceText)
},
iconClick() {},
changeSelectedPet(type) {
@ -404,6 +425,8 @@
} else {
this.isCheckTime = false
}
console.log(this.selectedDate);
this.getCompanionList()
},
getCalendarDate() {
let tomorrow = new Date()
@ -546,7 +569,7 @@
.personal-info-2 {
display: flex;
flex-wrap: wrap;
// flex-wrap: wrap;
.personal-info-title {
display: flex;
@ -572,6 +595,8 @@
font-size: 24rpx;
font-weight: 400;
line-height: 32rpx;
flex-shrink: 0;
margin-left: auto;
}
}


+ 2
- 2
utils/getUrl.js View File

@ -1,7 +1,7 @@
let current ="release";
let current ="develop";
const accountInfo = wx.getAccountInfoSync();
current = accountInfo.miniProgram.envVersion;
// current = accountInfo.miniProgram.envVersion;
const api={


Loading…
Cancel
Save