This commit is contained in:
Mr.jiang 2024-07-03 09:57:08 +08:00
parent 1a110ddfa7
commit 37a1929817
13 changed files with 58 additions and 1125 deletions

View File

@ -1,10 +1,10 @@
const ROOTPATH = "http://120.46.52.165/sqx_fast";
const ROOTPATH1 = "http://120.46.52.165/sqx_fast";
const ROOTPATH3 = "wss://120.46.52.165/wss/websocket/";
// const ROOTPATH = "http://120.46.52.165/sqx_fast";
// const ROOTPATH1 = "http://120.46.52.165/sqx_fast";
// const ROOTPATH3 = "wss://120.46.52.165/wss/websocket/";
// const ROOTPATH3 = "wss://192.168.2.222:8187/wss/websocket/";
// const ROOTPATH = "http://192.168.2.222:8187/sqx_fast";
// const ROOTPATH1 = "http://192.168.2.222:8187/sqx_fast";
const ROOTPATH3 = "wss://192.168.2.222:8187/wss/websocket/";
const ROOTPATH = "http://192.168.2.222:8187/sqx_fast";
const ROOTPATH1 = "http://192.168.2.222:8187/sqx_fast";
// const ROOTPATH3 = "wss://1.92.152.160/wss/websocket/";
// const ROOTPATH = "http://1.92.152.160/sqx_fast";

View File

@ -52,7 +52,8 @@
<view class="header-bottom-money" style="margin: 7px 0px; justify-content: space-between ">
<view class="header-bottom-money-zhen">
<span></span>
<span>{{item.packagePrice}}/</span>
<span>{{item.packagePrice}}</span>
<span>{{item.oldPrice}}</span>
</view>
<view style="color: #019c88;">服务时长:{{item.duration}}分钟</view>
</view>

View File

@ -51,20 +51,20 @@
<view class="item-view-title">
{{item.title}}
</view>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ | 好评{{item.esteemRate}}%</span>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/{{item.serviceCount}}</span>
<span></span>
<span>{{item.oldPrice}}/{{item.serviceCount}}</span>
</view>
<view class="item-view-jianjie">
{{item.content}}
</view>
<view class="item-view-bottom">
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/{{item.serviceCount}}</span>
<span></span>
<span>{{item.oldPrice}}</span>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ <!-- | 好评{{item.esteemRate}}% --></span>
</view>
<view class="item-view-bottom-btn">
查看
@ -169,7 +169,9 @@
</script>
<style scoped>
.item-view-bottom-qian{
margin-top: 5px;
}
.item-view-bottom-btn{
text-align: center;
width: 131rpx;

View File

@ -38,17 +38,13 @@
<view class="header-bottom-money">
<view class="header-bottom-money-zhen">
<span></span>
<span>{{getList.price}}/</span>
<span>{{getList.price}}</span>
</view>
<view class="header-bottom-money-jia">
{{getList.oldPrice}}/
{{getList.oldPrice}}
</view>
</view>
</view>
<view class="header-bottom-title-bottom" v-if="dataList.titleNmae=='服务疗程'">
<image src="../../static/my-cika.png" mode=""></image>
<span>30天一疗程每隔三天一次</span>
</view>
</view>
<view class="header-bottom-foot">
<view class="header-bottom-foot-cont">

View File

@ -25,7 +25,7 @@
<view class="header-bottom-money-zhen">
<span></span>
<span>{{getList.price}}</span>
<span>/</span>
<!-- <span>/</span> -->
</view>
<view class="header-bottom-money-jia">
{{getList.oldPrice}}

View File

@ -39,8 +39,8 @@
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/元套</span>
<span>{{item.oldPrice}}</span>
<span>/{{item.type=='104'?'套':item.type=='105'||item.type=='106'?'次':'元'}}</span>
<span>{{item.oldPrice}}/{{item.type=='104'?'套':item.type=='105'||item.type=='106'?'次':'元'}}</span>
</view>
<view class="item-view-bottom-btn">
查看

View File

@ -51,19 +51,20 @@
<view class="item-view-title">
{{item.title}}
</view>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ | 好评{{item.esteemRate}}%</span>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/{{item.serviceCount}}</span>
<span style="text-decoration: line-through;">{{item.oldPrice}}/{{item.serviceCount}}</span>
</view>
<view class="item-view-jianjie">
{{item.content}}
</view>
<view class="item-view-bottom">
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/{{item.serviceCount}}</span>
<span style="text-decoration: line-through;">{{item.oldPrice}}</span>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ <!-- | 好评{{item.esteemRate}}% --></span>
</view>
<view class="item-view-bottom-btn">
查看
@ -168,7 +169,9 @@
</script>
<style scoped>
.item-view-bottom-qian{
margin-top: 5px;
}
.item-view-bottom-btn{
text-align: center;
width: 131rpx;

View File

@ -42,7 +42,7 @@
{{item.jianjie}}
</view>
<view class="item-view-bottom">
<span>已售{{item.sales}}w+ | 好评{{item.esteemRate}}%</span>
<span>已售{{item.sales}}w+ <!-- | 好评{{item.esteemRate}}% --></span>
<view class="item-view-bottom-btn">
查看
</view>

View File

@ -25,20 +25,20 @@
<view class="item-view-title">
{{item.title}}
</view>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ | 好评{{item.esteemRate}}%</span>
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/ <text v-if="item.type!='104'">{{item.serviceCount}}</text> {{typeData=='104'?'':typeData=='105'?'':''}}</span>
<span></span>
<span>{{item.oldPrice}}<text v-if="item.type!='104'">/{{item.serviceCount}}</text>{{typeData=='104'?'':typeData=='105'?'':''}}</span>
</view>
<view class="item-view-jianjie">
{{item.jianjie}}
{{item.content}}
</view>
<view class="item-view-bottom">
<view class="item-view-bottom-qian">
<span></span>
<span>{{item.price}}</span>
<span>/ <text v-if="item.type!='104'">{{item.serviceCount}}</text> {{typeData=='104'?'':typeData=='105'?'':''}}</span>
<span></span>
<span>{{item.oldPrice}}<text v-if="item.type!='104'">/{{item.serviceCount}}</text></span>
<view class="item-view-xiangmu">
<span class="xiaoer item-view-biao">{{item.classifyName}}</span>
<span>已售{{item.sales}}w+ <!-- | 好评{{item.esteemRate}}% --></span>
</view>
<view class="item-view-bottom-btn">
查看
@ -156,6 +156,9 @@
</script>
<style scoped>
.item-view-bottom-qian{
margin-top: 5px;
}
/deep/.refresh-body .content{
background-color: #f7f7f7;
}
@ -256,7 +259,6 @@
flex-direction: row;
font-weight: 400;
font-size: 25rpx;
margin-top: 5px;
}
.item-view-title{
font-weight: bold;

View File

@ -68,16 +68,16 @@
<view class="detail-view">
<image class="detail-view-img" :src="item.massageImg" mode=""></image>
<view class="detail-view-mina">
<view class="header-bottom-money" style="margin: 7px 0px; justify-content: space-between ">
<view class="header-bottom-money" style="margin: 7px 0px;">
<view class="header-bottom-money-zhen">
<span></span>
<span>{{item.price}}/</span>
<span>{{item.price}}</span>
</view>
<view class="header-bottom-money-jia" style="margin-left: 20px; ">
{{item.oldPrice}}/
<view class="header-bottom-money-jia" style="margin-left: 5px; ">
{{item.oldPrice}}
</view>
<view style="color: #019c88;">服务时长:{{item.duration}}分钟</view>
</view>
<view style="color: #019c88;">服务时长:{{item.duration}}分钟</view>
<view class="tese">
<span>项目特色: </span>
<span>{{item.jianjie}}</span>

View File

@ -1,552 +0,0 @@
<template>
<view>
<view class="bg">
<view class="swiperBac">
<swiper style="height: 745.83rpx;" autoplay="1500" :indicator-dots="false" :circular='true'
indicator-active-color="#ffffff" indicator-color="#cccccc">
<swiper-item class="" :style="{backgroundImage:item,}" v-for="(item,index) in order.lifePhoto"
:key='index' @click="saveImgs(order.lifePhoto,index)">
<image class="swiper-image" :src="item" mode="aspectFit" style="height: 100%;">
</image>
</swiper-item>
</swiper>
</view>
<view class="view-head">
<view class="jian-view">
<view class="jian-view-left">
<span>{{order.artificerName}}</span>
<image class="jian-view-left-img" src="../../static/orderDetail/jiankang.png" mode=""></image>
</view>
<view class="jian-view-right">
<view class="" v-if="myId != order.userId">
<view class="text-center" @click="follow">
<image src="../../static/images/aixin.png"
style="width: 28rpx;height: 28rpx;position: relative;top: 4upx;" v-if="!isFollow">
</image>
<image src="../../static/images/index/shoucang.png"
style="width: 28rpx;height: 28rpx;position: relative;top: 4upx;" v-else></image>
<text style="color: #999999;margin-left: 10upx;" v-if="!isFollow">收藏</text>
<text style="margin-left: 10upx;color: #096f4b;" v-else>已收藏</text>
</view>
</view>
<view class="jian-view-right-weizhi">
<image class="jian-view-right-img" src="../../static/orderDetail/dingwei.png"></image>
<span>{{order.distance}}</span>
</view>
</view>
</view>
<view class="jieshao">
{{order.content}}
</view>
<!-- <view class="padding-bottom flex justify-between">
<view class="flex align-center">
<view class="margin-right-sm flex align-center"
style="color: #999999;">
<image src="../../static/images/index/start.png" style="width: 24upx;height: 22upx;">
</image>
<text class="margin-left-xs" style="color: #fe831e;">1{{order.ordersScore}}.0</text>
<text class="" style="margin-left: 20rpx;font-size: 20rpx;"> | </text>
<text style="color: #999999;margin-left: 20rpx;font-size: 24rpx;">
已服务{{order.ordersCount}}</text>
<text class="" style="margin: 0 20rpx;font-size: 20rpx;"> | </text>
</view>
</view>
</view> -->
</view>
<view class="flex align-center padding-tb-sm padding-lr justify-around"
style="background: #f7fdfb;border-radius: 16rpx;">
<view class="flex align-center" style="margin-right: 30upx;">
<image src="../../static/images/index/renzheng03.png" style="width: 30rpx;height: 32rpx;"></image>
<text class="margin-left-xs" style="color: #75a794;">实名认证</text>
</view>
<view class="flex align-center" style="margin-right: 30upx;">
<image src="../../static/images/index/renzheng01.png" style="width:25upx;height: 30upx;"></image>
<text class="margin-left-xs" style="color: #75a794;">资质认证</text>
</view>
<view class="flex align-center">
<image src="../../static/images/index/renzheng02.png" style="width: 32rpx;height: 30rpx;"></image>
<text class="margin-left-xs" style="color: #75a794;">平台担保</text>
</view>
</view>
</view>
<view class="" style="padding: 0 0 90px 0;background-color: #ffffff;">
<u-tabs :list="tabs" :is-scroll="true" :current="tabIndex" @change="tabChange" active-color="#096f4b"
gutter="60">
</u-tabs>
<view style="border: 1rpx solid #f7f7f7;position: relative;top: -8upx;"></view>
<view v-if="fwIndex == 0&&XCXIsSelect !='否'" class="tab ">
<view class="flex padding-tb padding-lr justify-between" v-for="(item,index) in artificerlist"
:key="index" @click="goNav(item.massageTypeId,classifyId)">
<image :src="item.massageImg" style="width: 170upx;height: 170upx;border-radius:10rpx"></image>
<view class="margin-left-sm" style="flex: 170upx 1;">
<view class="text-bold text-lg">{{item.title}}</view>
<view class="flex align-center justify-between text-df margin-tb-sm" style="color: #999999;">
<view style="font-size: 26rpx;">时长{{item.duration}}分钟</view>
<view style="font-size: 26rpx;">已售{{item.sales}}</view>
</view>
<view class="flex align-center justify-between">
<view class="text-green text-df" style="color: #FF1200;">
<text class="text-green text-xl text-bold"
style="color: #FF1200;">{{item.price}}</text>
<text v-if="hyCheck != '否'">/</text><text v-if="hyCheck != ''"
class="text-sm">会员价:{{item.memberPrice}}</text>
</view>
<view class="btn" style="background: linear-gradient(to right, #223845, #00a85b)">下单</view>
</view>
</view>
</view>
</view>
<view class=" padding u-skeleton-fillet" v-if="fwIndex == 1">
<view v-if="commentList.length<=0" class="margin-top-sm"> 暂无评价</view>
<view class="margin-bottom-sm padding-tb-sm" style="border-bottom: 1upx solid #f0f0f0;"
v-for="(item, index) in commentList" :key='index' v-else>
<view class="flex align-center">
<u-avatar src="/static/logo.png" size="48"></u-avatar>
<view class="flex margin-left-sm" style="line-height: 46upx;">匿名</view>
<view class="flex" style="margin-left: 20rpx;">
<u-icon v-for="ite in item.score" :key='ite' color="#FFAA01" name="star-fill"></u-icon>
</view>
</view>
<view class="margin-top-sm" style="margin-top: 30rpx;margin-bottom: 10rpx;font-size: 26rpx;">
{{item.content}}
</view>
</view>
</view>
<view v-if="fwIndex == 2">
<view class="flex justify-around flex-wrap" style="width: 100%;">
<view class="flex flex-wrap" style="width: 100%;">
<view style="width: 220rpx;height: 160rpx;margin-right: 10rpx;margin-top: 10rpx;"
v-for="(item,index) in order.certificate" :key="index">
<image :src="item" mode="aspectFit" style="width: 100%;height: 100%;"
@click="saveImg(order.certificate,index)">
</image>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="margin-top-sm bg radius u-skeleton-fillet" style="margin-bottom: 130rpx;">
<view class="text-center padding text-bold" style="font-size: 35rpx;letter-spacing: 3rpx;">服务详情</view>
<view v-for="(item,index) in order.lifePhoto" :key="index" style="width: 100%;"
@click="saveImg(order.lifePhoto,index)">
<image :src="item" style="width: 750upx;height: 963upx;" mode="widthFix"></image>
</view>
</view> -->
<!-- <u-picker v-model="show" mode="time" :params="params" @confirm="statusChange"></u-picker> -->
<u-skeleton :loading="loading" :animation="true" bgColor="#FFF"></u-skeleton>
</view>
</template>
<script>
export default {
data() {
return {
tripWay: 1,
classifyId:'',
game: [],
loading: true, //
customStyle: {
width: '400upx',
color: '#FFFFFF',
background: "#005DFF",
border: 0
},
artificerId: '',
orderDet: {},
page: 1,
limit: 10,
order: {},
commentList: [],
isFollow: false,
myId: '',
isVip: false,
AUDIO: uni.createInnerAudioContext(),
isPlay: false,
show: false,
params: {
year: false,
month: true,
day: true,
hour: true,
minute: true,
second: true,
timestamp: true
},
startTime: '',
mobile: '',
name: '',
cityaddress: '',
detailaddress: '',
latitude: '',
longitude: '',
province: '',
city: '',
district: '',
age: '',
tabs: [{
name: '项目',
status: 0
}, {
name: '评价',
status: 1
}, {
name: '资质证书',
status: 2
}],
tabIndex: 0, // tab
fwIndex: 0,
artificerlist: [],
latitude: '',
longitude: '',
imgArr: [],
status: "",
XCXIsSelect: '否',
hyCheck: '否',
imageHeight: '358'
}
},
onLoad(option) {
this.hyCheck = this.$queue.getData('hyCheck');
uni.showLoading({
title: '加载中...',
});
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
this.artificerId = option.artificerId
this.myId = uni.getStorageSync('userId')
this.isVip = uni.getStorageSync('isVIP')
this.latitude = uni.getStorageSync('latitude')
this.longitude = uni.getStorageSync('longitude')
this.getDet()
this.getordertherapist()
this.getOrderComment()
this.classifyId = option.classifyId;
},
onShow() {
this.imageHeight = this.$queue.getData('imageHeight');
},
onReady() {
this.AUDIO.onEnded(function(res) {
this.isPlay = false;
});
},
methods: {
//
tabChange(index) {
this.tabIndex = index
this.fwIndex = index
},
//
getAge(e) {
console.log('出生日期:' + e)
this.birthDate = e
//
var today = new Date();
//
this.birthDate = new Date(this.birthDate);
//
this.age = today.getFullYear() - this.birthDate.getFullYear();
// console.log(this.age+'')
},
//
getDet() {
// uni.showLoading({
// title: '...',
// icon: 'none'
// });
this.$Request.get("/app/artificer/selectArtificerById", {
artificerId: this.artificerId,
latitude: this.latitude,
longitude: this.longitude,
userId: this.myId
}).then(res => {
uni.hideLoading();
this.loading = false;
if (res.code == 0) {
this.order = res.data
this.status = res.data.status
this.tripWay = res.data.tripWay
if (this.order.lifePhoto) {
this.order.lifePhoto = this.order.lifePhoto.split(',')
}
this.order.certificate = this.order.certificate.split(',')
if (this.order.distance > 1000) {
this.order.distance = (this.order.distance / 1000).toFixed(1) + 'km'
} else {
this.order.distance = (this.order.distance).toFixed(1) + 'm'
}
if (res.data.collectCount == 1) {
this.isFollow = true
} else {
this.isFollow = false
}
} else {
this.loading = false;
uni.hideLoading();
}
uni.hideLoading();
});
},
//
getordertherapist() {
this.$Request.get("/app/artificer/selectArtificerMassageList", {
artificerId: this.artificerId
}).then(res => {
if (res.code == 0) {
this.artificerlist = res.data
// this.commentList = [...this.commentList, ...res.data.list]
}
});
},
//
getOrderComment() {
this.$Request.get("/app/takingComment/selectOrderTakingComment", {
artificerId: this.artificerId,
page: this.page,
limit: this.limit
}).then(res => {
if (res.code == 0) {
this.commentList = [...this.commentList, ...res.data.list]
}
});
},
playVoice() {
console.log(this.isPlay)
this.AUDIO.src = this.order.voiceIntroduce;
if (this.isPlay) {
this.AUDIO.stop();
} else {
this.AUDIO.play();
}
this.isPlay = !this.isPlay;
},
goNav(massageTypeId,classifyId) {
if (this.status == 2) {
uni.showToast({
title: '技师已下线',
icon: 'none'
})
} else {
uni.navigateTo({
url: "/pages/index/order/orderDet?massageTypeId=" + massageTypeId + '&artificerId=' + this
.artificerId + '&tripWay=' + this.tripWay + '&classifyId=' + this.classifyId
})
}
},
goMsg() {
let data = {
userId: this.myId,
focusedUserId: this.order.userId
}
this.$Request.postJson('/app/chat/insertChatConversation ', data).then(res => {
if (res.code == 0) {
let id = this.order.userId == res.data.userId ? res.data.focusedUserId : this.order.userId
uni.navigateTo({
url: '/pages/msg/im?chatConversationId=' + res.data.chatConversationId +
'&byUserId=' + id
})
}
})
},
//
follow() {
let oldIsFollow = this.isFollow;
let that = this
let data = {
artificerId: that.artificerId,
userId: that.myId,
classify: '1'
}
that.$Request.postJson("/app/artificer/insertCollect", data).then(res => {
if (res.code == 0) {
if (oldIsFollow) {
uni.showToast({
title: '取消成功',
icon: 'none'
})
} else {
uni.showToast({
title: '收藏成功',
icon: 'none'
})
}
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
setTimeout(function() {
that.getDet()
}, 500)
});
},
saveImg(imgs, index) {
// console.log(imgs)
let that = this;
let imgArr = imgs
// imgArr.push(imgs);
// //
uni.previewImage({
urls: imgArr,
current: imgArr[index]
});
},
saveImgs(imgs, index) {
console.log(imgs, index)
// let that = this
let imgArr = imgs
// this.imgArr.push(imgs);
// console.log(this.imgArr)
// //
uni.previewImage({
urls: imgArr,
current: imgArr[index]
});
},
}
}
</script>
<style scoped>
.jian-view-right-weizhi{
display: flex;
flex-direction: row;
align-items: center;
margin-left: 10px;
}
.jieshao{
margin-top: 15px;
font-weight: 400;
font-size: 22rpx;
color: #8D9194;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.view-head{
padding-bottom: 15px;
margin: 10px 15px 0px 15px;
}
.jian-view-right span{
font-weight: bold;
font-size: 25rpx;
color: #848485;
}
.jian-view-right-img{
width: 18.75rpx;
height: 21.53rpx;
}
.jian-view-right{
display: flex;
flex-direction: row;
align-items: center;
}
.jian-view-left span{
font-weight: bold;
font-size: 35rpx;
color: #13141A;
margin-right: 5px;
}
.jian-view-left-img{
width: 168.75rpx;
height: 40.97rpx;
}
.jian-view-left{
display: flex;
flex-direction: row;
align-items: center;
}
.jian-view{
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
page {
background-color: #F7F7F7;
}
.bgs {
background-color: #FFFFFF;
}
.bg {
background-color: #FFFFFF;
}
.swiper-image {
width: 100%;
}
.wrap {
padding: 20upx 23upx;
}
.line_s {
display: inline-flex;
width: 14rpx;
height: 14rpx;
background: #1AD566;
border-radius: 50%;
margin-right: 10rpx;
}
.line_x {
display: inline-flex;
width: 14rpx;
height: 14rpx;
background: #000000;
border-radius: 50%;
margin-right: 10rpx;
}
.tab>view {
border-bottom: 2upx solid #F5F5F2;
}
.tab>view:last-of-type {
border: none;
}
.rir {
font-size: 30upx;
font-family: DFZongYi-Bd-80-Win-GB;
font-weight: 800;
color: #30B47A;
margin-right: 30rpx;
}
.btn {
width: 129rpx;
height: 52rpx;
background: #096f4b;
border-radius: 26rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
}
.swiper {
height: 662rpx;
}
</style>

View File

@ -1,519 +0,0 @@
<template>
<view>
<view class="bg">
<view class="swiperBac">
<swiper style="height: 745.83rpx;" autoplay="1500" :indicator-dots="false" :circular='true'
indicator-active-color="#ffffff" indicator-color="#cccccc">
<swiper-item class="" :style="{backgroundImage:item,}" v-for="(item,index) in order.lifePhoto"
:key='index' @click="saveImgs(order.lifePhoto,index)">
<image class="swiper-image" :src="item" mode="aspectFit" style="height: 100%;">
</image>
</swiper-item>
</swiper>
</view>
<view class="wrap">
<u-swiper :list="order.lifePhoto" height="500" border-radius="30"></u-swiper>
</view>
<view class="flex align-center padding-tb-sm padding-lr justify-around"
style="background: #f7fdfb;border-radius: 16rpx;">
<!-- <view class="rir">
<image
src="https://admin.sjajk.com/file/uploadPath/2023/01/18/ddb89075e091f26aa0c84bede245fd6d.png"
style="width: 87rpx;height:29rpx;"></image>
</view> -->
<view class="flex align-center" style="margin-right: 30upx;">
<image src="../../static/images/index/renzheng03.png" style="width: 30rpx;height: 32rpx;"></image>
<text class="margin-left-xs" style="color: #75a794;">实名认证</text>
</view>
<view class="flex align-center" style="margin-right: 30upx;">
<image src="../../static/images/index/renzheng01.png" style="width:25upx;height: 30upx;"></image>
<text class="margin-left-xs" style="color: #75a794;">资质认证</text>
</view>
<view class="flex align-center">
<image src="../../static/images/index/renzheng02.png" style="width: 32rpx;height: 30rpx;"></image>
<text class="margin-left-xs" style="color: #75a794;">平台担保</text>
</view>
</view>
<view class="margin-lr margin-tb-sm padding-bottom">
<view class="flex align-center justify-between" style="padding: 14rpx 0;">
<view class="text-bold" style="font-size: 36rpx;">
{{order.artificerName}}
</view>
<view class="" v-if="myId != order.userId">
<view class="text-center" @click="follow">
<image src="../../static/images/aixin.png"
style="width: 28rpx;height: 28rpx;position: relative;top: 4upx;" v-if="!isFollow">
</image>
<image src="../../static/images/index/shoucang.png"
style="width: 28rpx;height: 28rpx;position: relative;top: 4upx;" v-else></image>
<text style="color: #999999;margin-left: 10upx;" v-if="!isFollow">收藏</text>
<text style="margin-left: 10upx;color: #096f4b;" v-else>已收藏</text>
</view>
</view>
</view>
<view class="padding-bottom flex justify-between">
<view class="margin-right-xs text-sm"
style="color: #fff4a9;background-color: #333;border-radius: 6rpx;padding: 4rpx 10rpx;">
健康技师
</view>
</view>
<view class="padding-bottom flex justify-between">
<view class="flex align-center">
<view v-if="order.ordersScore" class="margin-right-sm flex align-center"
style="color: #999999;">
<image src="../../static/images/index/start.png" style="width: 24upx;height: 22upx;">
</image>
<text class="margin-left-xs" style="color: #fe831e;">{{order.ordersScore}}.0</text>
<text class="" style="margin-left: 20rpx;font-size: 20rpx;"> | </text>
<text style="color: #999999;margin-left: 20rpx;font-size: 24rpx;">
已服务{{order.ordersCount}}</text>
<text class="" style="margin: 0 20rpx;font-size: 20rpx;"> | </text>
<view class="flex align-center">
<image src="../../static/images/index/place.png" style="width: 24rpx;height: 23rpx;">
</image>
<view style="color: #999999;margin-left: 5rpx;font-size: 24rpx">距离{{order.distance}}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="bg padding-lr padding-tb-sm margin-bottom-sm">
<view class=" text-bold padding-bottom" style="font-size: 30rpx;">
自我介绍
</view>
<view class=""
style="width: 118rpx;height: 16rpx;background-color: #096f4b;opacity: 0.2;margin-top: -46rpx;"></view>
<view class="margin-top" style="color: #666666;font-size: 28rpx;margin-top: 30rpx;">
{{order.content}}
</view>
</view>
<view class="" style="padding: 0 0 90px 0;background-color: #ffffff;">
<u-tabs :list="tabs" :is-scroll="true" :current="tabIndex" @change="tabChange" active-color="#096f4b"
gutter="60">
</u-tabs>
<view style="border: 1rpx solid #f7f7f7;position: relative;top: -8upx;"></view>
<view v-if="fwIndex == 0&&XCXIsSelect !='否'" class="tab ">
<view class="flex padding-tb padding-lr justify-between" v-for="(item,index) in artificerlist"
:key="index" @click="goNav(item.massageTypeId,classifyId)">
<image :src="item.massageImg" style="width: 170upx;height: 170upx;border-radius:10rpx"></image>
<view class="margin-left-sm" style="flex: 170upx 1;">
<view class="text-bold text-lg">{{item.title}}</view>
<view class="flex align-center justify-between text-df margin-tb-sm" style="color: #999999;">
<view style="font-size: 26rpx;">时长{{item.duration}}分钟</view>
<view style="font-size: 26rpx;">已售{{item.sales}}</view>
</view>
<view class="flex align-center justify-between">
<view class="text-green text-df" style="color: #FF1200;">
<text class="text-green text-xl text-bold"
style="color: #FF1200;">{{item.price}}</text>
<text v-if="hyCheck != '否'">/</text><text v-if="hyCheck != ''"
class="text-sm">会员价:{{item.memberPrice}}</text>
</view>
<view class="btn" style="background: linear-gradient(to right, #223845, #00a85b)">下单</view>
</view>
</view>
</view>
</view>
<view class=" padding u-skeleton-fillet" v-if="fwIndex == 1">
<view v-if="commentList.length<=0" class="margin-top-sm"> 暂无评价</view>
<view class="margin-bottom-sm padding-tb-sm" style="border-bottom: 1upx solid #f0f0f0;"
v-for="(item, index) in commentList" :key='index' v-else>
<view class="flex align-center">
<u-avatar src="/static/logo.png" size="48"></u-avatar>
<view class="flex margin-left-sm" style="line-height: 46upx;">匿名</view>
<view class="flex" style="margin-left: 20rpx;">
<u-icon v-for="ite in item.score" :key='ite' color="#FFAA01" name="star-fill"></u-icon>
</view>
</view>
<view class="margin-top-sm" style="margin-top: 30rpx;margin-bottom: 10rpx;font-size: 26rpx;">
{{item.content}}
</view>
</view>
</view>
<view v-if="fwIndex == 2">
<view class="flex justify-around flex-wrap" style="width: 100%;">
<view class="flex flex-wrap" style="width: 100%;">
<view style="width: 220rpx;height: 160rpx;margin-right: 10rpx;margin-top: 10rpx;"
v-for="(item,index) in order.certificate" :key="index">
<image :src="item" mode="aspectFit" style="width: 100%;height: 100%;"
@click="saveImg(order.certificate,index)">
</image>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="margin-top-sm bg radius u-skeleton-fillet" style="margin-bottom: 130rpx;">
<view class="text-center padding text-bold" style="font-size: 35rpx;letter-spacing: 3rpx;">服务详情</view>
<view v-for="(item,index) in order.lifePhoto" :key="index" style="width: 100%;"
@click="saveImg(order.lifePhoto,index)">
<image :src="item" style="width: 750upx;height: 963upx;" mode="widthFix"></image>
</view>
</view> -->
<!-- <u-picker v-model="show" mode="time" :params="params" @confirm="statusChange"></u-picker> -->
<u-skeleton :loading="loading" :animation="true" bgColor="#FFF"></u-skeleton>
</view>
</template>
<script>
export default {
data() {
return {
tripWay: 1,
classifyId:'',
game: [],
loading: true, //
customStyle: {
width: '400upx',
color: '#FFFFFF',
background: "#005DFF",
border: 0
},
artificerId: '',
orderDet: {},
page: 1,
limit: 10,
order: {},
commentList: [],
isFollow: false,
myId: '',
isVip: false,
AUDIO: uni.createInnerAudioContext(),
isPlay: false,
show: false,
params: {
year: false,
month: true,
day: true,
hour: true,
minute: true,
second: true,
timestamp: true
},
startTime: '',
mobile: '',
name: '',
cityaddress: '',
detailaddress: '',
latitude: '',
longitude: '',
province: '',
city: '',
district: '',
age: '',
tabs: [{
name: '项目',
status: 0
}, {
name: '评价',
status: 1
}, {
name: '资质证书',
status: 2
}],
tabIndex: 0, // tab
fwIndex: 0,
artificerlist: [],
latitude: '',
longitude: '',
imgArr: [],
status: "",
XCXIsSelect: '否',
hyCheck: '否',
imageHeight: '358'
}
},
onLoad(option) {
this.hyCheck = this.$queue.getData('hyCheck');
uni.showLoading({
title: '加载中...',
});
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
this.artificerId = option.artificerId
this.myId = uni.getStorageSync('userId')
this.isVip = uni.getStorageSync('isVIP')
this.latitude = uni.getStorageSync('latitude')
this.longitude = uni.getStorageSync('longitude')
this.getDet()
this.getordertherapist()
this.getOrderComment()
this.classifyId = option.classifyId;
},
onShow() {
this.imageHeight = this.$queue.getData('imageHeight');
},
onReady() {
this.AUDIO.onEnded(function(res) {
this.isPlay = false;
});
},
methods: {
//
tabChange(index) {
this.tabIndex = index
this.fwIndex = index
},
//
getAge(e) {
console.log('出生日期:' + e)
this.birthDate = e
//
var today = new Date();
//
this.birthDate = new Date(this.birthDate);
//
this.age = today.getFullYear() - this.birthDate.getFullYear();
// console.log(this.age+'')
},
//
getDet() {
// uni.showLoading({
// title: '...',
// icon: 'none'
// });
this.$Request.get("/app/artificer/selectArtificerById", {
artificerId: this.artificerId,
latitude: this.latitude,
longitude: this.longitude,
userId: this.myId
}).then(res => {
uni.hideLoading();
this.loading = false;
if (res.code == 0) {
this.order = res.data
this.status = res.data.status
this.tripWay = res.data.tripWay
if (this.order.lifePhoto) {
this.order.lifePhoto = this.order.lifePhoto.split(',')
}
this.order.certificate = this.order.certificate.split(',')
if (this.order.distance > 1000) {
this.order.distance = (this.order.distance / 1000).toFixed(1) + 'km'
} else {
this.order.distance = (this.order.distance).toFixed(1) + 'm'
}
if (res.data.collectCount == 1) {
this.isFollow = true
} else {
this.isFollow = false
}
} else {
this.loading = false;
uni.hideLoading();
}
uni.hideLoading();
});
},
//
getordertherapist() {
this.$Request.get("/app/artificer/selectArtificerMassageList", {
artificerId: this.artificerId
}).then(res => {
if (res.code == 0) {
this.artificerlist = res.data
// this.commentList = [...this.commentList, ...res.data.list]
}
});
},
//
getOrderComment() {
this.$Request.get("/app/takingComment/selectOrderTakingComment", {
artificerId: this.artificerId,
page: this.page,
limit: this.limit
}).then(res => {
if (res.code == 0) {
this.commentList = [...this.commentList, ...res.data.list]
}
});
},
playVoice() {
console.log(this.isPlay)
this.AUDIO.src = this.order.voiceIntroduce;
if (this.isPlay) {
this.AUDIO.stop();
} else {
this.AUDIO.play();
}
this.isPlay = !this.isPlay;
},
goNav(massageTypeId,classifyId) {
if (this.status == 2) {
uni.showToast({
title: '技师已下线',
icon: 'none'
})
} else {
uni.navigateTo({
url: "/pages/index/order/orderDet?massageTypeId=" + massageTypeId + '&artificerId=' + this
.artificerId + '&tripWay=' + this.tripWay + '&classifyId=' + this.classifyId
})
}
},
goMsg() {
let data = {
userId: this.myId,
focusedUserId: this.order.userId
}
this.$Request.postJson('/app/chat/insertChatConversation ', data).then(res => {
if (res.code == 0) {
let id = this.order.userId == res.data.userId ? res.data.focusedUserId : this.order.userId
uni.navigateTo({
url: '/pages/msg/im?chatConversationId=' + res.data.chatConversationId +
'&byUserId=' + id
})
}
})
},
//
follow() {
let oldIsFollow = this.isFollow;
let that = this
let data = {
artificerId: that.artificerId,
userId: that.myId,
classify: '1'
}
that.$Request.postJson("/app/artificer/insertCollect", data).then(res => {
if (res.code == 0) {
if (oldIsFollow) {
uni.showToast({
title: '取消成功',
icon: 'none'
})
} else {
uni.showToast({
title: '收藏成功',
icon: 'none'
})
}
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
setTimeout(function() {
that.getDet()
}, 500)
});
},
saveImg(imgs, index) {
// console.log(imgs)
let that = this;
let imgArr = imgs
// imgArr.push(imgs);
// //
uni.previewImage({
urls: imgArr,
current: imgArr[index]
});
},
saveImgs(imgs, index) {
console.log(imgs, index)
// let that = this
let imgArr = imgs
// this.imgArr.push(imgs);
// console.log(this.imgArr)
// //
uni.previewImage({
urls: imgArr,
current: imgArr[index]
});
},
}
}
</script>
<style>
page {
background-color: #F7F7F7;
}
.bgs {
background-color: #FFFFFF;
}
.bg {
background-color: #FFFFFF;
}
.swiper-image {
width: 100%;
}
.wrap {
padding: 20upx 23upx;
}
.line_s {
display: inline-flex;
width: 14rpx;
height: 14rpx;
background: #1AD566;
border-radius: 50%;
margin-right: 10rpx;
}
.line_x {
display: inline-flex;
width: 14rpx;
height: 14rpx;
background: #000000;
border-radius: 50%;
margin-right: 10rpx;
}
.tab>view {
border-bottom: 2upx solid #F5F5F2;
}
.tab>view:last-of-type {
border: none;
}
.rir {
font-size: 30upx;
font-family: DFZongYi-Bd-80-Win-GB;
font-weight: 800;
color: #30B47A;
margin-right: 30rpx;
}
.btn {
width: 129rpx;
height: 52rpx;
background: #096f4b;
border-radius: 26rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
}
.swiper {
height: 662rpx;
}
</style>

View File

@ -144,9 +144,9 @@
<view class="xiangmu-foot-left-shiji">
<span></span>
<span>{{item.price}}</span>
<span>/元套</span>
<!-- <span>/元套</span> -->
</view>
<view class="xiangmu-foot-left-dazhe">{{item.oldPrice}}</view>
<view class="xiangmu-foot-left-dazhe"><span></span>{{item.oldPrice}}</view>
</view>
<view class="xiadan" @click.stop="goNavDing(item)">
预约