Compare commits

..

No commits in common. "4b8d27d91223689928868392c8c2dc207a5a7ac9" and "fbc48066f62a72a2bba136505b762584c57b7c2c" have entirely different histories.

7 changed files with 220 additions and 286 deletions

View File

@ -44,7 +44,7 @@ page {
margin-left: 200rpx; margin-left: 200rpx;
} }
.activeFilter { .activeFilter{
color: #FF370B; color: #FF370B;
} }
@ -205,86 +205,71 @@ page {
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
border-bottom: 1rpx solid #f5f5f5; border-bottom: 1rpx solid #f5f5f5;
} }
.filter-title { .filter-title {
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-weight: bold; font-weight: bold;
} }
.filter-options { .filter-options {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 15rpx; gap: 15rpx;
} }
.filter-option { .filter-option {
border-radius: 10rpx; background: #f5f5f5;
border: 1rpx solid #cccccc; border-radius: 50rpx;
padding: 12rpx 30rpx; padding: 12rpx 30rpx;
font-size: 24rpx; font-size: 24rpx;
color: #666; color: #666;
white-space: nowrap; white-space: nowrap;
} }
.filter-option.active { .filter-option.active {
background: #ff370b; background: #ff370b;
color: white; color: white;
} }
.price-range { .price-range {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 20rpx; gap: 20rpx;
margin-top: 10rpx; margin-top: 10rpx;
} }
.price-input { .price-input {
flex: 1; flex: 1;
height: 60rpx; height: 60rpx;
border: 1rpx solid #cccccc; background: #f5f5f5;
border-radius: 10rpx; border-radius: 10rpx;
padding: 0 20rpx; padding: 0 20rpx;
font-size: 24rpx; font-size: 24rpx;
border: none;
} }
.price-separator { .price-separator {
font-size: 28rpx; font-size: 28rpx;
color: #999; color: #999;
} }
.filter-buttons { .filter-buttons {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
margin-top: 10rpx; margin-top: 10rpx;
} }
.reset-button { .reset-button {
width: 200rpx; width: 200rpx;
height: 70rpx; height: 70rpx;
border: 1rpx solid #cccccc; border: 1rpx solid #7abbff;
border-radius: 50rpx; border-radius: 50rpx;
background: #d9d9d9; background: #f0f7ff;
color: black; color: #409eff;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx; font-size: 28rpx;
} }
.confirm-button { .confirm-button {
width: 200rpx; width: 200rpx;
height: 70rpx; height: 70rpx;
background: #ff370b; background: #409eff;
border-radius: 50rpx; border-radius: 50rpx;
color: white; color: white;
font-size: 28rpx; font-size: 28rpx;
display: flex; border: none;
align-items: center;
justify-content: center;
font-size: 28rpx;
} }
.MasterItem_Info_right_1 { .MasterItem_Info_right_1 {
@ -416,7 +401,6 @@ page {
.local span { .local span {
font-weight: 700; font-weight: 700;
margin: 0 10rpx;
} }
.filterMore1 { .filterMore1 {
@ -425,32 +409,27 @@ page {
overflow: hidden; overflow: hidden;
overflow-x: auto; overflow-x: auto;
white-space: nowrap; white-space: nowrap;
margin: 40rpx 0 20rpx 0; margin-top: 20rpx;
} }
.filterMoreItem { .filterMoreItem {
font-size: 26rpx; font-size: 28rpx;
color: #222222; color: #222222;
display: flex; display: flex;
align-items: center; align-items: center;
background-color: #f6f6fa;
padding: 0 20rpx; padding: 0 20rpx;
margin-right: 10rpx; margin-right: 10rpx;
margin-right: 20rpx; margin-right: 20rpx;
border-radius: 10rpx; border-radius: 20rpx;
border: 1rpx solid #cccccc;
padding: 10rpx 20rpx; padding: 10rpx 20rpx;
} }
.filterMoreItem-active {
color: #ff702c !important;
border: 1rpx solid #ff702c;
}
.filterMore2_item { .filterMore2_item {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
margin: 0 10rpx 45rpx 10rpx; margin-bottom: 20rpx;
color: #999; color: #999;
} }

View File

@ -1,15 +1,16 @@
<template> <template>
<view class="container2"> <view class="container2">
<view class="header"> <div class="header">
<view class="Filter"> <div class="Filter">
<view class="Filter_left"> <div class="Filter_left">
<view <div
v-for="filter in filters" v-for="filter in filters"
:key="filter.id" :key="filter.id"
class="FilterItem" class="FilterItem"
:class="{ active: selectedFilter === filter.id }" :class="{ active: selectedFilter === filter.id }"
@click=" @click="
showDialog(filter.id); showDialog(filter.id);
selectedFilter = filter.id;
" "
> >
{{ filter.label }} {{ filter.label }}
@ -21,158 +22,158 @@
" "
:class="{ iconStyle: selectedFilter === filter.id }" :class="{ iconStyle: selectedFilter === filter.id }"
></image> ></image>
</view> </div>
</view> </div>
<view class="Filter_right" @click="showDialog(6)"> <div class="Filter_right" @click="showDialog(6)">
<text :class="{ activeFilter: show6 }">筛选</text> <text :class="{ activeFilter: show6 }">筛选</text>
<image <image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/homeServer_filter.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/homeServer_filter.png"
></image> ></image>
</view> </div>
</view> </div>
<!-- 位置筛选 --> <!-- 位置筛选 -->
<view class="FilterMore" v-if="show1"> <div class="FilterMore" v-if="show1">
<view class="local">距离 <span>上海公馆</span> ></view> <div class="local">距离 <span>上海公馆</span></div>
<view class="filterMore1"> <div class="filterMore1">
<view class="filterMoreItem filterMoreItem-active">附近</view> <div class="filterMoreItem">附近</div>
<view class="filterMoreItem">500m</view> <div class="filterMoreItem">500m</div>
<view class="filterMoreItem">1km</view> <div class="filterMoreItem">1km</div>
<view class="filterMoreItem">3km</view> <div class="filterMoreItem">3km</div>
<view class="filterMoreItem">5km</view> <div class="filterMoreItem">5km</div>
<view class="filterMoreItem">10km</view> <div class="filterMoreItem">10km</div>
</view> </div>
</view> </div>
<!-- 综合筛选 --> <!-- 综合筛选 -->
<view class="FilterMore" v-if="show2"> <div class="FilterMore" v-if="show2">
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left">综合</view> <div class="filterMore2_item_left">综合</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left active3">从高到低</view> <div class="filterMore2_item_left active3">从高到低</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left">从低到高</view> <div class="filterMore2_item_left">从低到高</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
</view> </div>
<!-- 排序筛选 --> <!-- 排序筛选 -->
<view class="FilterMore" v-if="show3"> <div class="FilterMore" v-if="show3">
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left2">智能排序</view> <div class="filterMore2_item_left2">智能排序</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left2 active3">距离优先</view> <div class="filterMore2_item_left2 active3">距离优先</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left2">好评优先</view> <div class="filterMore2_item_left2">好评优先</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
<view class="filterMore2_item"> <div class="filterMore2_item">
<view class="filterMore2_item_left2">销量优先</view> <div class="filterMore2_item_left2">销量优先</div>
<view class="filterMore2_item_right"> <div class="filterMore2_item_right">
<u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon> <u-icon name="checkmark-circle-fill" color="#ff702c"></u-icon>
</view> </div>
</view> </div>
</view> </div>
<!-- 高级筛选面板 --> <!-- 高级筛选面板 -->
<view class="FilterMore" v-if="show6"> <div class="FilterMore" v-if="show6">
<view class="filter-section"> <div class="filter-section">
<view class="filter-title">满意度</view> <div class="filter-title">满意度</div>
<view class="filter-options"> <div class="filter-options">
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('5+') }" :class="{ active: selectedSatisfaction.includes('5+') }"
@click="toggleSatisfaction('5+')" @click="toggleSatisfaction('5+')"
> >
5分及以上 5分及以上
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('4.9+') }" :class="{ active: selectedSatisfaction.includes('4.9+') }"
@click="toggleSatisfaction('4.9+')" @click="toggleSatisfaction('4.9+')"
> >
4.9分及以上 4.9分及以上
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('4.8+') }" :class="{ active: selectedSatisfaction.includes('4.8+') }"
@click="toggleSatisfaction('4.8+')" @click="toggleSatisfaction('4.8+')"
> >
4.8分及以上 4.8分及以上
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('4.7+') }" :class="{ active: selectedSatisfaction.includes('4.7+') }"
@click="toggleSatisfaction('4.7+')" @click="toggleSatisfaction('4.7+')"
> >
4.7分及以上 4.7分及以上
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('4.6+') }" :class="{ active: selectedSatisfaction.includes('4.6+') }"
@click="toggleSatisfaction('4.6+')" @click="toggleSatisfaction('4.6+')"
> >
4.6分及以上 4.6分及以上
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedSatisfaction.includes('4.5+') }" :class="{ active: selectedSatisfaction.includes('4.5+') }"
@click="toggleSatisfaction('4.5+')" @click="toggleSatisfaction('4.5+')"
> >
4.5分及以上 4.5分及以上
</view> </div>
</view> </div>
</view> </div>
<view class="filter-section"> <div class="filter-section">
<view class="filter-title">评论数量</view> <div class="filter-title">评论数量</div>
<view class="filter-options"> <div class="filter-options">
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedReviewCount === '1-100' }" :class="{ active: selectedReviewCount === '1-100' }"
@click="selectedReviewCount = '1-100'" @click="selectedReviewCount = '1-100'"
> >
1-100 1-100
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedReviewCount === '100-500' }" :class="{ active: selectedReviewCount === '100-500' }"
@click="selectedReviewCount = '100-500'" @click="selectedReviewCount = '100-500'"
> >
100-500 100-500
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedReviewCount === '500+' }" :class="{ active: selectedReviewCount === '500+' }"
@click="selectedReviewCount = '500+'" @click="selectedReviewCount = '500+'"
> >
500以上 500以上
</view> </div>
</view> </div>
</view> </div>
<view class="filter-section"> <div class="filter-section">
<view class="filter-title">价格范围</view> <div class="filter-title">价格范围</div>
<view class="price-range"> <div class="price-range">
<input <input
type="number" type="number"
v-model="minPrice" v-model="minPrice"
@ -188,55 +189,55 @@
class="price-input" class="price-input"
@input="validatePriceRange" @input="validatePriceRange"
/> />
</view> </div>
</view> </div>
<view class="filter-section"> <div class="filter-section">
<view class="filter-title">类别</view> <div class="filter-title">类别</div>
<view class="filter-options"> <div class="filter-options">
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedCategory === 'airConditioner' }" :class="{ active: selectedCategory === 'airConditioner' }"
@click="selectedCategory = 'airConditioner'" @click="selectedCategory = 'airConditioner'"
> >
空调维修 空调维修
</view> </div>
<view <div
class="filter-option" class="filter-option"
:class="{ active: selectedCategory === 'refrigerator' }" :class="{ active: selectedCategory === 'refrigerator' }"
@click="selectedCategory = 'refrigerator'" @click="selectedCategory = 'refrigerator'"
> >
冰箱维修 冰箱维修
</view> </div>
</view> </div>
</view> </div>
<view class="filter-buttons"> <div class="filter-buttons">
<button class="reset-button" @click="resetFilters">重置</button> <button class="reset-button" @click="resetFilters">重置</button>
<button class="confirm-button" @click="applyFilters">确定</button> <button class="confirm-button" @click="applyFilters">确定</button>
</view> </div>
</view> </div>
</view> </div>
<view class="main"> <div class="main">
<!-- 遮罩 --> <!-- 遮罩 -->
<view class="dialogBox" v-if="isShowDia" @click="closeAllFilters"></view> <div class="dialogBox" v-if="isShowDia"></div>
<view class="MasterList"> <div class="MasterList">
<view class="MasterItem" v-for="(item, index) in 5" :key="index"> <div class="MasterItem" v-for="(item, index) in 5" :key="index">
<view class="MasterItem_right"> <div class="MasterItem_right">
<view class="MasterItem_info"> <div class="MasterItem_info">
<view class="MasterItem_Info_left"> <div class="MasterItem_Info_left">
<image <image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/home_icon12.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/home_icon12.png"
></image> ></image>
<view class="state state1">待服务</view> <div class="state state1">待服务</div>
<view class="state state2" v-if="false">休息中</view> <div class="state state2" v-if="false">休息中</div>
<view class="state state3" v-if="false">服务中</view> <div class="state state3" v-if="false">服务中</div>
</view> </div>
<view class="MasterItem_Info_right"> <div class="MasterItem_Info_right">
<view class="MasterItem_Info_right_1"> <div class="MasterItem_Info_right_1">
<view class="master_info_right_left"> <div class="master_info_right_left">
林师傅 林师傅
<image <image
class="Medal" class="Medal"
@ -254,29 +255,29 @@
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png"
></image> ></image>
<span>4.8</span> <span>4.8</span>
</view> </div>
<view class="master_info_right_right" @click="masterInfo"> <div class="master_info_right_right" @click="masterInfo">
查看资料 查看资料
</view> </div>
</view> </div>
<view class="MasterItem_Info_right_2"> <div class="MasterItem_Info_right_2">
52 广东梅州人 5-10 52 广东梅州人 5-10
</view> </div>
<view class="MasterItem_Info_right_3"> <div class="MasterItem_Info_right_3">
<span>500+</span>预定 <span>100+</span>评价 <span>500+</span>预定 <span>100+</span>评价
</view> </div>
<view class="MasterItem_Info_right_4"> <div class="MasterItem_Info_right_4">
<view class="tagItem tag1">积极主动</view> <div class="tagItem tag1">积极主动</div>
<view class="tagItem tag2">技术精湛</view> <div class="tagItem tag2">技术精湛</div>
<view class="tagItem tag3">技术精湛</view> <div class="tagItem tag3">技术精湛</div>
</view> </div>
<view class="MasterItem_Info_right_5"> <div class="MasterItem_Info_right_5">
价格范围 <span>500-800</span> 价格范围 <span>500-800</span>
</view> </div>
<view class="MasterItem_Info_right_6"> <div class="MasterItem_Info_right_6">
<image <image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_MsgImg1.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_MsgImg1.png"
></image> ></image>
@ -286,13 +287,13 @@
<image <image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_MsgImg1.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_MsgImg1.png"
></image> ></image>
</view> </div>
</view> </div>
</view> </div>
</view> </div>
</view> </div>
</view> </div>
</view> </div>
</view> </view>
</template> </template>
@ -338,8 +339,18 @@ export default {
}; };
}, },
watch: { watch: {
// watch show1(val) {
// if (!val) this.selectedFilter = null;
},
show2(val) {
if (!val) this.selectedFilter = null;
},
show3(val) {
if (!val) this.selectedFilter = null;
},
show6(val) {
if (!val) this.selectedFilter = null;
},
}, },
methods: { methods: {
masterInfo() { masterInfo() {
@ -390,9 +401,6 @@ export default {
this.isShowDia = false; this.isShowDia = false;
}, },
showDialog(index) { showDialog(index) {
// ID
this.selectedFilter = index;
//
this[`show${index}`] = !this[`show${index}`]; this[`show${index}`] = !this[`show${index}`];
this.logOtherButtons(index); this.logOtherButtons(index);
this.isShowDia = this[`show${index}`]; this.isShowDia = this[`show${index}`];
@ -404,14 +412,6 @@ export default {
} }
} }
}, },
closeAllFilters() {
//
for (let i = 1; i <= 6; i++) {
this[`show${i}`] = false;
}
this.isShowDia = false;
this.selectedFilter = null;
},
}, },
onReady() {}, onReady() {},

View File

@ -120,19 +120,6 @@ page {
margin-right: 20rpx; margin-right: 20rpx;
} }
.btn_disabled {
width: 230rpx;
height: 70rpx;
line-height: 70rpx;
text-align: center;
font-weight: 500;
font-size: 36rpx;
color: #FFFFFF;
background: #a4a3a1;
border-radius: 100rpx 100rpx 100rpx 100rpx;
margin-right: 20rpx;
}
.startList { .startList {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -12,11 +12,11 @@
<view class="title">{{ info.merchant_name }}</view> <view class="title">{{ info.merchant_name }}</view>
<!-- <u-icon name="star-fill" color="#FFB84D" /> --> <!-- <u-icon name="star-fill" color="#FFB84D" /> -->
<view class="startList"> <div class="startList">
<image v-for="index in 5" :key="index" <image v-for="index in 5" :key="index"
:src="index < item.rating ? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png' : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'" :src="index < item.rating ? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png' : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'"
mode="aspectFill"></image> mode="aspectFill"></image>
</view> </div>
<u-line margin="46rpx 0 30rpx 0" /> <u-line margin="46rpx 0 30rpx 0" />
<view class="table"> <view class="table">
@ -45,40 +45,39 @@
</view> </view>
</view> </view>
<view class="white_container detail" v-for="(item, index) in commentList" :key="index"> <view class="white_container detail" v-for="(item, index) in commentList" :key="index">
<view class="Msg"> <div class="Msg">
<view class="Msg_Tit"> <div class="Msg_Tit">
<view class="Msg_Tit_left"> <div class="Msg_Tit_left">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/user_ava.png" <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/user_ava.png"
v-if="!item.user.avatar" mode="aspectFill"></image> v-if="!item.user.avatar" mode="aspectFill"></image>
<image :src="picUrl + item.user.avatar" v-if="item.user.avatar" mode="aspectFill"></image> <image :src="picUrl + item.user.avatar" v-if="item.user.avatar" mode="aspectFill"></image>
{{ item.user.nick_name }} {{ item.user.nick_name }}
</view> </div>
<view class="Msg_Tit_right"> <div class="Msg_Tit_right">
<image v-for="indez in 5" :key="indez" <image v-for="indez in 5" :key="indez"
:src="indez < item.satisfaction ? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png' : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'" :src="indez < item.satisfaction ? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png' : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'"
mode="aspectFill"></image> mode="aspectFill"></image>
</view> </div>
</view> </div>
<view class="Msg_con"> <div class="Msg_con">
{{ item.comment }} {{ item.comment }}
<view class="Msg_con_img" v-if="item.image_url"> <div class="Msg_con_img" v-if="item.image_url">
<image v-for="(img, index) in item.image_url.split(',')" :key="index" :src="picUrl + img" mode="aspectFill" <image v-for="(img, index) in item.image_url.split(',')" :key="index" :src="picUrl + img" mode="aspectFill">
@click="previewImage(item.image_url.split(','), index)">
</image> </image>
<video class="Msg_con_video" v-if="item.video_url" :src="picUrl + item.video_url" controls></video> <video class="Msg_con_video" v-if="item.video_url" :src="picUrl + item.video_url" controls></video>
</view> </div>
</view> </div>
<view class="Msg_iconList"> <div class="Msg_iconList">
<view class="Msg_iconList_left"> <div class="Msg_iconList_left">
<view class="Msg_iconList_leftIcon"> <div class="Msg_iconList_leftIcon">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_review.png" <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_review.png"
mode="widthFix"></image> mode="widthFix"></image>
{{ item.merchant_evaluation_reply_list ? item.merchant_evaluation_reply_list.length : 0 }} {{ item.merchant_evaluation_reply_list ? item.merchant_evaluation_reply_list.length : 0 }}
</view> </div>
<view class="Msg_iconList_leftIcon"> <div class="Msg_iconList_leftIcon">
<image v-if="item.is_like == 2" <image v-if="item.is_like == 2"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_likeIcon.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_likeIcon.png"
mode="widthFix" @click="like(item)"></image> mode="widthFix" @click="like(item)"></image>
@ -86,13 +85,13 @@
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_likeIcon2.png" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_likeIcon2.png"
mode="widthFix" @click="unlike(item)"></image> mode="widthFix" @click="unlike(item)"></image>
{{ item.merchant_evaluation_like_list ? item.merchant_evaluation_like_list.length : 0 }} {{ item.merchant_evaluation_like_list ? item.merchant_evaluation_like_list.length : 0 }}
</view> </div>
</view> </div>
<view class="Msg_iconList_right" @click="commentDesc(item)"> <div class="Msg_iconList_right" @click="commentDesc(item)">
详情 <view><u-icon name="arrow-right" colof="#999999"></u-icon></view> 详情 <div><u-icon name="arrow-right" colof="#999999"></u-icon></div>
</view> </div>
</view> </div>
</view> </div>
</view> </view>
<view class="bottom"> <view class="bottom">
<view class="left"> <view class="left">
@ -116,8 +115,7 @@
<view>客服</view> <view>客服</view>
</view> </view>
</view> </view>
<button v-if="isShow && !isDisabled" class="btn" @click="handleQuickPayClick">快捷买单</button> <text v-if="isShow" class="btn" @click="handleQuickPayClick">快捷买单</text>
<button v-if="isShow && isDisabled" class="btn_disabled" @click="handleQuickPayClick">快捷买单</button>
</view> </view>
</view> </view>
</template> </template>
@ -141,7 +139,6 @@ export default {
commentList: [], commentList: [],
flag: false, flag: false,
isShow: false, isShow: false,
isDisabled: false,
}; };
}, },
onLoad(options) { onLoad(options) {
@ -173,16 +170,7 @@ export default {
methods: { methods: {
handleQuickPayClick() { handleQuickPayClick() {
if (this.isDisabled) { NavgateTo('../pay/index');
uni.showToast({
title: '支付未开通,升级 VIP 或联系工作人员开通',
icon: 'none',
duration: 2000
});
} else {
NavgateTo('../pay/index');
}
}, },
// //
getCommentList() { getCommentList() {
@ -220,7 +208,6 @@ export default {
id: uni.getStorageSync("merchantInfo").id, id: uni.getStorageSync("merchantInfo").id,
}).then(res => { }).then(res => {
this.isShow = res.quick_purchase_enabled == 1 this.isShow = res.quick_purchase_enabled == 1
this.isDisabled = res.level == 1
}) })
}, },
@ -296,23 +283,6 @@ export default {
commentDesc(e) { commentDesc(e) {
NavgateTo(`../UserComment/index?id=${e.id}`) NavgateTo(`../UserComment/index?id=${e.id}`)
}, },
//
previewImage(imageList, currentIndex) {
// URL
const urls = imageList.map(img => this.picUrl + img);
uni.previewImage({
urls: urls,
current: urls[currentIndex],
success: function (res) {
console.log('预览成功', res);
},
fail: function (err) {
console.log('预览失败', err);
}
});
},
}, },
}; };
</script> </script>

View File

@ -42,7 +42,7 @@
<!-- 商品列表 --> <!-- 商品列表 -->
<view class="goods-list" @click="toDetails(item)"> <view class="goods-list" @click="toDetails(item)">
<view v-for="(goods, goodsIndex) in item.commodity_order_item_list" :key="goodsIndex" class="goods-item"> <view v-for="(goods, goodsIndex) in item.commodity_order_item_list" :key="goodsIndex" class="goods-item">
<image :src="goods.commodity_pic ? goods.commodity_pic : '暂无图片'" class="goods-img"></image> <image :src="goods.commodity_pic" class="goods-img"></image>
</view> </view>
</view> </view>
@ -327,7 +327,8 @@ export default {
update_time: item.update_time, update_time: item.update_time,
user_id: item.user_id user_id: item.user_id
})); }));
NavgateTo(`/packages/shop/goodsSubmit/index?shopCarList=${JSON.stringify(transformedItems)}`)
NavgateTo(`/packages/shop/groupPurchaseSubmit/index?shopCarList=${JSON.stringify(transformedItems)}`)
}, },
toDetails(item) { toDetails(item) {
NavgateTo( NavgateTo(

View File

@ -17,18 +17,15 @@
<view class="walletBox"> <view class="walletBox">
<view class="walletBox_top">钱包</view> <view class="walletBox_top">钱包</view>
<view class="walletBox_content"> <view class="walletBox_content">
<view class="walletBox_item" <view class="walletBox_item" @click="goWallet(1, walletInfo.receivable ? walletInfo.receivable.toFixed(2) : '0.00')">
@click="goWallet(1, walletInfo.receivable ? walletInfo.receivable.toFixed(2) : '0.00')">
<view>{{ walletInfo.receivable ? walletInfo.receivable.toFixed(2) : "0.00" }}</view> <view>{{ walletInfo.receivable ? walletInfo.receivable.toFixed(2) : "0.00" }}</view>
<view class="walletBox_item_text">应收</view> <view class="walletBox_item_text">应收</view>
</view> </view>
<view class="walletBox_item" <view class="walletBox_item" @click="goWallet(2, walletInfo.received ? walletInfo.received.toFixed(2) : '0.00')">
@click="goWallet(2, walletInfo.received ? walletInfo.received.toFixed(2) : '0.00')">
<view>{{ walletInfo.received ? walletInfo.received.toFixed(2) : "0.00" }}</view> <view>{{ walletInfo.received ? walletInfo.received.toFixed(2) : "0.00" }}</view>
<view class="walletBox_item_text">已收</view> <view class="walletBox_item_text">已收</view>
</view> </view>
<view class="walletBox_item" <view class="walletBox_item" @click="goWallet(3, walletInfo.pending ? walletInfo.pending.toFixed(2) : '0.00')">
@click="goWallet(3, walletInfo.pending ? walletInfo.pending.toFixed(2) : '0.00')">
<view>{{ walletInfo.pending ? walletInfo.pending.toFixed(2) : "0.00" }}</view> <view>{{ walletInfo.pending ? walletInfo.pending.toFixed(2) : "0.00" }}</view>
<view class="walletBox_item_text">待收物业费</view> <view class="walletBox_item_text">待收物业费</view>
</view> </view>
@ -79,18 +76,6 @@ export default {
} }
}, },
async onLoad() { async onLoad() {
},
async onShow() {
const changeCommData = uni.getStorageSync('changeWorkOrderData');
this.communityVal = changeCommData ? changeCommData.name : "切换小区";
if (changeCommData) {
const params = {
community_id: changeCommData.id,
}
const res = await request(apiArr.communityInfo, "POST", params);
uni.setStorageSync('allow_grab_order', res.allow_grab_order == 1 ? true : false);
}
const workOrderPermission = uni.getStorageSync('work_order_permission'); const workOrderPermission = uni.getStorageSync('work_order_permission');
const orderDispatchPermission = uni.getStorageSync('order_dispatch_permission'); const orderDispatchPermission = uni.getStorageSync('order_dispatch_permission');
this.showWorkOrderSection = !(workOrderPermission === false && orderDispatchPermission === false); this.showWorkOrderSection = !(workOrderPermission === false && orderDispatchPermission === false);
@ -126,6 +111,18 @@ export default {
this.getWalletInfo(); this.getWalletInfo();
}); });
}, },
async onShow() {
const changeCommData = uni.getStorageSync('changeWorkOrderData');
this.communityVal = changeCommData ? changeCommData.name : "切换小区";
if (changeCommData) {
const params = {
community_id: changeCommData.id,
}
const res = await request(apiArr.communityInfo, "POST", params);
uni.setStorageSync('allow_grab_order', res.allow_grab_order == 1 ? true : false);
}
},
methods: { methods: {
// //
getWalletInfo() { getWalletInfo() {
@ -152,8 +149,8 @@ export default {
// if (type == 2) { // if (type == 2) {
// return // return
// } // }
NavgateTo('/packages/workOrderDashboard/wallet/index?type=' + type + '&community_id=' + changeCommData.id + '&amount=' + amount); NavgateTo('/packages/workOrderDashboard/wallet/index?type=' + type + '&community_id=' + changeCommData.id + '&amount=' + amount);
}, },
addCommunity() { addCommunity() {
NavgateTo("/packages/workOrderDashboard/myCommunity/index"); NavgateTo("/packages/workOrderDashboard/myCommunity/index");
}, },

View File

@ -60,7 +60,7 @@ export default {
user_id: uni.getStorageSync('userId'), user_id: uni.getStorageSync('userId'),
}).then(res => { }).then(res => {
res.rows.forEach(item => { res.rows.forEach(item => {
item.pic = item.pic ? (item.pic.startsWith('http') ? item.pic : picUrl + item.pic) : '' item.pic = item.pic.startsWith('http') ? item.pic : picUrl + item.pic
}); });
this.communityList = res.rows this.communityList = res.rows
}) })