| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 | 
							- <template>
 
- 	<view>
 
- 		<view class="bg">
 
- 			<view>
 
- 				<swiper class="swiper" autoplay="1500" :indicator-dots="false" :circular='true'
 
- 					indicator-active-color="#ffffff" indicator-color="#cccccc">
 
- 					<swiper-item class="swiper-wrap" v-for="(item,index) in order.lifePhoto" :key='index'
 
- 						style="height: 750rpx;" @click="saveImgs(order.lifePhoto,index)">
 
- 						<image :src="item" style="width: 100%;height: 750rpx;" mode="aspectFill">
 
- 						</image>
 
- 					</swiper-item>
 
- 				</swiper>
 
- 			</view>
 
- 			<!-- 	<view class="wrap">
 
- 				<u-swiper :list="order.lifePhoto" height="500" border-radius="30"></u-swiper>
 
- 			</view> -->
 
- 			<view class="info-box">
 
- 				<view v-if="isFollow" class="like-box" @click="follow">
 
- 					<image class="icon" src="../../../static/images/index/like.png" mode=""></image>
 
- 					<view class="label">
 
- 						已收藏
 
- 					</view>
 
- 				</view>
 
- 				<view v-else class="like-box unlike-box" @click="follow">
 
- 					<image class="icon" src="../../../static/images/index/unlike.png" mode=""></image>
 
- 					<view class="label">
 
- 						点击收藏
 
- 					</view>
 
- 				</view>
 
- 				<view class="flex padding-tb-sm align-center">
 
- 					<view class="margin-right-xs text-bold" style="letter-spacing: 3rpx; font-size: 35rpx;">
 
- 						{{order.artificerName}}
 
- 					</view>
 
- 					<view class=" margin-right-xs text-26"
 
- 						style="color: #FF6E98;background: #FFECF2;border-radius:15rpx;border-radius: 32rpx;width: 152rpx;height: 48rpx;text-align: center;line-height: 48rpx;">
 
- 						健康理疗师
 
- 					</view>
 
- 				</view>
 
- 				<view class="padding-bottom-sm flex justify-between">
 
- 					<view class="flex align-center">
 
- 						<view v-if="order.ordersScore" class="margin-right-sm">
 
- 							<text style="color: #FCAD3D;">{{order.ordersScore}}</text>
 
- 							<u-rate activeColor="#FCAD3D" size="20rpx" :count="5" v-model="order.ordersScore"></u-rate>
 
- 						</view>
 
- 						<view class="flex align-center" style="color: #AAA;">已服务: <view style="color: #FF6E98;">
 
- 								{{order.ordersCount}}单</view>
 
- 						</view>
 
- 					</view>
 
- 				</view>
 
- 				<view class="flex align-center padding-bottom">
 
- 					<image src="../../../static/images/address.png" style="width: 40rpx;height: 40rpx;"></image>
 
- 					<view style="color: #222222;margin-left: 5rpx;">距离:{{order.distance}}</view>
 
- 				</view>
 
- 				<view class="padding-bottom" style="color: #AAAAAA;font-size: 22rpx;">
 
- 					{{order.content}}
 
- 				</view>
 
- 				<!-- 	<view class="padding-bottom flex justify-between">
 
- 					<view class="padding-xs margin-right-xs text-sm"
 
- 						style="color: #2FB57A;background-color: #EDFAF7;border: 1rpx solid #05C25C;border-radius: 6rpx;">
 
- 						健康理疗师
 
- 					</view>
 
- 				</view> -->
 
- 				<view class="flex align-center padding-tb-sm padding-lr"
 
- 					style="background: #EDFAF7;border-radius: 24rpx;">
 
- 					<view class="rir">
 
- 						<!-- 安心购 -->
 
- 						<image src="/static/image/text_axg.png" style="width: 87rpx;height:29rpx;"></image>
 
- 					</view>
 
- 					<view class="flex align-center" style="margin-right: 30upx;">
 
- 						<image src="../../../static/images/index/renz1.png" style="width: 32upx;height: 28upx;"></image>
 
- 						<text class="margin-left-xs">实名认证</text>
 
- 					</view>
 
- 					<view class="flex align-center" style="margin-right: 30upx;">
 
- 						<image src="../../../static/images/index/renz2.png" style="width:28upx;height: 33upx;"></image>
 
- 						<text class="margin-left-xs">资质认证</text>
 
- 					</view>
 
- 					<view class="flex align-center">
 
- 						<image src="../../../static/images/index/renz3.png" style="width: 28upx;height: 32upx;"></image>
 
- 						<text class="margin-left-xs">平台担保</text>
 
- 					</view>
 
- 				</view>
 
- 			</view>
 
- 		</view>
 
- 		<!-- <view class="bg padding-lr padding-tb-sm margin-bottom-sm">
 
- 			<view class="text-bold" style="font-size: 35rpx;letter-spacing: 3rpx;">自我介绍</view>
 
- 			<view class="margin-top" style="color: #666666;font-size: 28rpx;">
 
- 				{{order.content}}
 
- 			</view>
 
- 		</view> -->
 
- 		<view class="padding bg" style="padding-bottom: 90px;">
 
- 			<u-tabs :list="tabs" :is-scroll="true" :current="tabIndex" @change="tabChange" active-color="#FF6E98">
 
- 			</u-tabs>
 
- 			<view style="border: 2upx solid #F5F5F2;position: relative;top: -8upx;"></view>
 
- 			<view class=" padding  u-skeleton-fillet" v-if="fwIndex == 0">
 
- 				<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 justify-between">
 
- 						<u-avatar src="/static/logo.png" size="48"></u-avatar>
 
- 						<view class="flex-sub margin-left-sm" style="line-height: 46upx;">匿名</view>
 
- 						<view class="flex">
 
- 							<u-icon v-for="ite in item.score" :key='ite' color="#FFAA01" name="star-fill"></u-icon>
 
- 						</view>
 
- 					</view>
 
- 					<view class="margin-top-sm">{{item.content}}</view>
 
- 				</view>
 
- 			</view>
 
- 			<view v-if="fwIndex == 1">
 
- 				<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" 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> -->
 
- 		<view class="u-skeleton-fillet text-lg cu-bar foot bg padding-lr">
 
- 			<!-- 		<view class="text-center"
 
- 				style="width:40%;line-height: 78upx;background: #FF6E98;border-radius: 8upx;margin: 0 auto;"
 
- 				@click="follow">
 
- 				<image src="../../../static/images/index/shoucang.png"
 
- 					style="width: 30upx;height: 28upx;position: relative;top: 4upx;"></image>
 
- 				<text style="color: #FFFFFF;margin-left: 10upx;" v-if="!isFollow">收藏</text>
 
- 				<text style="color: #FFFFFF;margin-left: 10upx;" v-else>已收藏</text>
 
- 			</view> -->
 
- 			<view class="text-center" style="width: 686rpx;
 
- height: 100rpx;line-height: 100rpx;
 
- background: linear-gradient( 143deg, #FFE6EE 0%, #FF9AB2 100%);
 
- border-radius: 86rpx 86rpx 86rpx 86rpx;font-weight: bold;
 
- font-size: 32rpx;
 
- color: #222222;" @click="goOrder(order)" v-if="XCXIsSelect !='否'">
 
- 				选TA
 
- 			</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 {
 
- 				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,
 
- 				tabs: [{
 
- 					name: '评价',
 
- 					status: 0
 
- 				}, {
 
- 					name: '资质证书',
 
- 					status: 1
 
- 				}],
 
- 				tabIndex: 0, // tab下标
 
- 				fwIndex: 0,
 
- 				count: 5,
 
- 				value: 4,
 
- 				latitude: '',
 
- 				longitude: '',
 
- 				massageTypeId: '',
 
- 				XCXIsSelect: '否',
 
- 			}
 
- 		},
 
- 		onLoad(option) {
 
- 			console.log(option)
 
- 			this.artificerId = option.artificerId
 
- 			this.massageTypeId = option.massageTypeId
 
- 			this.myId = uni.getStorageSync('userId')
 
- 			this.isVip = uni.getStorageSync('isVIP')
 
- 			this.latitude = uni.getStorageSync('latitude')
 
- 			this.longitude = uni.getStorageSync('longitude')
 
- 			this.getDet()
 
- 			this.getOrderComment()
 
- 			this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
 
- 		},
 
- 		onShow() {
 
- 		},
 
- 		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: '加载中...'
 
- 				});
 
- 				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
 
- 						if (this.order.lifePhoto) {
 
- 							this.order.lifePhoto = this.order.lifePhoto.split(',')
 
- 						}
 
- 						if (this.order.certificate) {
 
- 							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();
 
- 				});
 
- 			},
 
- 			// 评价
 
- 			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;
 
- 			},
 
- 			// 跳转订单
 
- 			goOrder(e) {
 
- 				uni.navigateTo({
 
- 					url: "/pages/index/order/orderDet?artificerId=" + e.artificerId + '&massageTypeId=' + this
 
- 						.massageTypeId + '&tripWay=' + e.tripWay
 
- 				})
 
- 			},
 
- 			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
 
- 				}
 
- 				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 lang="scss" scoped>
 
- 	.info-box {
 
- 		position: relative;
 
- 		z-index: 9;
 
- 		border-radius: 32rpx 32rpx 0rpx 0rpx;
 
- 		margin-top: -120rpx;
 
- 		background: #fff;
 
- 		padding: 0 32rpx 28rpx;
 
- 		position: relative;
 
- 		margin-bottom: 20rpx;
 
- 		.like-box {
 
- 			position: absolute;
 
- 			top: 28rpx;
 
- 			right: 32rpx;
 
- 			width: 120rpx;
 
- 			height: 80rpx;
 
- 			background: linear-gradient(90deg, #FFFFFF 0%, #FFD1DF 100%);
 
- 			border-radius: 32rpx 32rpx 32rpx 32rpx;
 
- 			border: 1rpx solid #FF6E98;
 
- 			display: flex;
 
- 			flex-direction: column;
 
- 			align-items: center;
 
- 			justify-content: center;
 
- 			.icon {
 
- 				width: 30rpx;
 
- 				height: 30rpx;
 
- 			}
 
- 			.label {
 
- 				color: #FF6E98;
 
- 				font-size: 22rpx;
 
- 			}
 
- 		}
 
- 		.like-box.unlike-box {
 
- 			background: linear-gradient(90deg, #FFFFFF 0%, #CCCCCC 100%);
 
- 			border-radius: 32rpx 32rpx 32rpx 32rpx;
 
- 			border: 1rpx solid #AAAAAA;
 
- 			.label {
 
- 				color: #AAAAAA;
 
- 				font-size: 22rpx;
 
- 			}
 
- 		}
 
- 	}
 
- 	page {
 
- 		background-color: #F7F7F7;
 
- 	}
 
- 	.bgs {
 
- 		background-color: #FFFFFF;
 
- 	}
 
- 	.bg {
 
- 		background-color: #FFFFFF;
 
- 	}
 
- 	.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: 30upx;
 
- 	}
 
- 	.swiper {
 
- 		height: 750rpx;
 
- 	}
 
- </style>
 
 
  |