You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

229 lines
8.8 KiB

<template>
<view class="container">
<block v-if="isload">
<view class="content">
<view class="top flex">
<view class="headimg"><image :src="data.headimg"> </view>
<view class="f1">
<view class="t1">{{data.realname}}</view>
<view class="t2">{{data.jineng}}</view>
<view class="t3">
<text class="t11"><text class="bold">{{data.totalnum}}</text> 次服务</text>
<text class="t11"><text class="bold">{{data.comment_score}}</text> 评价</text>
</view>
</view>
</view>
<view class="desc" v-if="data.desc">
{{data.desc}}
</view>
<view class="list">
<view class="tab">
<view :class="'item ' + (curTopIndex == 0 ? 'on' : '') " @tap="switchTopTab" :data-index="0">服务 {{data.count}}<view class="after" :style="{background:t('color1')}"></view></view>
<view :class="'item ' + (curTopIndex == 1 ? 'on' : '') " @tap="switchTopTab" :data-index="1">评价 {{data.comment_score}}<view class="after" :style="{background:t('color1')}"></view></view>
</view>
<view v-if="curTopIndex==0" v-for="(item, index) in datalist" :key="index" class="content2 flex" :data-id="item.id">
<view class="f1" @click="goto" :data-url="'product?id='+item.id" >
<view class="headimg"><image :src="item.pic" /></view>
<view class="text1">
<text class="t1">{{item.name}} </text>
<view class="text2">服务时长:{{item.fwlong}}分钟</view>
<view class="text3">
<text class="t4">¥<text class="price"> {{item.sell_price}}</text> </text> <text class="t5">已售 <text>{{item.sales}}</text></text>
</view>
</view>
</view>
<view>
<view class="yuyue" @click="goto" :data-url="'product?id='+item.id">预约</view>
</view>
</view>
<view class="comment" v-if="curTopIndex==1">
<view v-for="(item, index) in datalist" :key="index" class="item">
<view class="f1">
<image class="t1" :src="item.headimg"/>
<view class="t2">{{item.nickname}}</view>
<view class="flex1"></view>
<view class="t3"><image class="img" v-for="(item2,index2) in [0,1,2,3,4]" :src="event_rul +'/static/img/static/img/star' + (item.score>item2?'2':'') + '.png'"/></view>
</view>
<view style="color:#777;font-size:22rpx;">{{item.createtime}}</view>
<view class="f2">
<text class="t1">{{item.content}}</text>
<view class="t2">
<block v-if="item.content_pic!=''">
<block v-for="(itemp, index) in item.content_pic" :key="index">
<view @tap="previewImage" :data-url="itemp" :data-urls="item.content_pic">
<image :src="itemp" mode="widthFix"/>
</view>
</block>
</block>
</view>
</view>
<view class="f3" v-if="item.reply_content">
<view class="arrow"></view>
<view class="t1">商家回复{{item.reply_content}}</view>
</view>
</view>
</view>
</view>
</view>
<nodata v-if="nodata"></nodata>
<view style="height:140rpx"></view>
</block>
<loading v-if="loading"></loading>
<dp-tabbar :opt="opt" @getmenuindex="getmenuindex"></dp-tabbar>
<popmsg ref="popmsg"></popmsg>
</view>
</template>
<script>
var app = getApp();
export default {
data() {
return {
opt:{},
loading:false,
isload: false,
menuindex:-1,
data:[],
datalist: [],
type: "",
keyword:'',
nodata:false,
curTopIndex:0,
event_rul: app.globalData.event_url,
}
},
onLoad: function (opt) {
this.opt = app.getopts(opt);
this.type = this.opt.type || '';
this.getdata();
},
onPullDownRefresh: function () {
this.getdata();
},
methods: {
getdata:function(){
var that = this;
that.loading = true;
that.nodata = false;
var that = this;
var id = this.opt.id || 0;
app.get('ApiYuyue/peodetail', {id:id}, function (res) {
that.loading = false;
var data = res.data;
that.data = data
that.loaded();
that.getdatalist();
});
},
switchTopTab: function (e) {
var that = this;
var index = parseInt(e.currentTarget.dataset.index);
this.curTopIndex = index;
this.datalist = [];
this.getdatalist(true);
},
getdatalist: function (loadmore) {
if(!loadmore){
this.pagenum = 1;
this.datalist = [];
}
var that = this;
var pagenum = that.pagenum;
var id = that.opt.id ? that.opt.id : '';
var order = that.order;
var field = that.field;
that.loading = true;
that.nodata = false;
that.nomore = false;
app.post('ApiYuyue/getdlist', {curTopIndex:that.curTopIndex,pagenum: pagenum,field: field,order: order,id:id}, function (res) {
that.loading = false;
uni.stopPullDownRefresh();
var data = res.data;
console.log(data.length);
if (data.length == 0) {
console.log(pagenum);
if(pagenum == 1){
that.nodata = true;
console.log(222);
}else{
that.nomore = true;
}
}
var datalist = that.datalist;
var newdata = datalist.concat(data);
that.datalist = newdata;
});
},
scrolltolower: function () {
if (!this.nomore) {
this.pagenum = this.pagenum + 1;
this.getdatalist(true);
}
},
}
};
</script>
<style>
.container{ background: #fff; padding: 40rpx;}
.headimg{ width: 160rpx; height: 160rpx;margin-right: 20rpx;}
.headimg image{ width: 160rpx; height: 160rpx; border-radius: 50%; }
.f1 .t1{ color:#323232; font-size: 32rpx; font-weight: bold;}
.f1 .t2{ color:#999; font-size: 24rpx; }
.f1 .t3{ margin-top: 30rpx;color:#999;font-size: 0.24rpx;}
.f1 .t3 .bold{ font-size: 36rpx; color: #323232; font-weight: bold;margin-left: 4rpx;}
.f1 .t11{ margin-right: 30rpx; font-size: 24rpx;}
.desc{ color: #6d6e74; font-size: 26rpx; margin-top: 60rpx;}
.tab{ margin-top: 80rpx; display: flex; }
.tab .item{ padding-right:20rpx; color: #323232;font-size: 28rpx; margin-right: 40rpx; line-height: 60rpx; overflow: hidden;position:relative; }
.tab .after{display:none;position:absolute;left:45%;margin-left:-20rpx;bottom:0rpx;height:6rpx;border-radius:1.5px;width:40rpx}
.tab .on .after{display:block}
.content2{width:100%;background:#fff;border-radius:5px; justify-content: space-between; margin-top: 40rpx; border-bottom: 1px solid #EEEEEE;}
.content2 .f1{display:flex;align-items:center}
.content2 .f1 image{ width: 140rpx; height: 140rpx; border-radius: 10rpx;}
.content2 .f1 .t1{color:#2B2B2B;font-weight:bold;font-size:32rpx;margin-left:10rpx;}
.content2 .f1 .t2{color:#999999;font-size:28rpx; background: #E8E8F7;color:#7A83EC; margin-left: 10rpx; padding:3rpx 20rpx; font-size: 20rpx; border-radius: 18rpx;}
.content2 .f1 .t3{ margin-left:10rpx;display: block; height: 40rpx;line-height: 40rpx;}
.content2 .f2{color:#2b2b2b;font-size:26rpx;line-height:42rpx;padding-bottom:20rpx;}
.content2 .f3{height:96rpx;display:flex;align-items:center}
.content2 .radio{flex-shrink:0;width: 36rpx;height: 36rpx;background: #FFFFFF;border: 3rpx solid #BFBFBF;border-radius: 50%;}
.content2 .radio .radio-img{width:100%;height:100%}
.content2 .mrtxt{color:#2B2B2B;font-size:26rpx;margin-left:10rpx}
.text2{ margin-left: 10rpx; color:#999999; font-size: 20rpx;margin-top: 10rpx;}
.text3{ margin-left: 10rpx; color:#999999; font-size: 20rpx;margin-top: 10rpx;}
.text3 .t5{ margin-left: 20rpx;}
.text3 .t5 text{ color:#7A83EC}
.text3 .t4 text{ color:#FF5347}
.text3 .t4 { color:#FF5347}
.text3 .t4 .price{ font-weight: bold;font-size: 30rpx;}
.yuyue{ background: #7A83EC; width:136rpx;height: 60rpx; line-height: 60rpx; padding: 0 10rpx; color:#fff; border-radius:28rpx; ; font-size: 20rpx; text-align: center; margin-top: 20rpx;}
.comment{display:flex;flex-direction:column;padding:10rpx 0;}
.comment .item{background-color:#fff;padding:10rpx 20rpx;display:flex;flex-direction:column;}
.comment .item .f1{display:flex;width:100%;align-items:center;padding:10rpx 0;}
.comment .item .f1 .t1{width:70rpx;height:70rpx;border-radius:50%;}
.comment .item .f1 .t2{padding-left:10rpx;color:#333;font-weight:bold;font-size:30rpx;}
.comment .item .f1 .t3{text-align:right;}
.comment .item .f1 .t3 .img{width:24rpx;height:24rpx;margin-left:10rpx}
.comment .item .score{ font-size: 24rpx;color:#f99716;}
.comment .item .score image{ width: 140rpx; height: 50rpx; vertical-align: middle; margin-bottom:6rpx; margin-right: 6rpx;}
.comment .item .f2{display:flex;flex-direction:column;width:100%;padding:10rpx 0;}
.comment .item .f2 .t1{color:#333;font-size:28rpx;}
.comment .item .f2 .t2{display:flex;width:100%}
.comment .item .f2 .t2 image{width:100rpx;height:100rpx;margin:10rpx;}
.comment .item .f2 .t3{color:#aaa;font-size:24rpx;}
.comment .item .f2 .t3{color:#aaa;font-size:24rpx;}
.comment .item .f3{width:100%;padding:10rpx 0;position:relative}
.comment .item .f3 .arrow{width: 16rpx;height: 16rpx;background:#eee;transform: rotate(45deg);position:absolute;top:0rpx;left:36rpx}
.comment .item .f3 .t1{width:100%;border-radius:10rpx;padding:10rpx;font-size:22rpx;color:#888;background:#eee}
</style>