| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231 | <template>	<view class="therapistList">		<view class="padding-lr padding-top-sm " style="width: 100%;padding-bottom: 10rpx;"> 			<view class="flex margin-right-sm" @tap="Cityshow = true" style="line-height: 68rpx;"> 				<image src="../../static/images/address.png" style="width: 40rpx;height: 40rpx;" 					class="margin-top-xs"></image> 				<view class="localName  margin-left-sm">{{city}}</view> 			</view> 			<u-search class="flex-sub search" clearabled placeholder="请输入技师名字" :focus="false" v-model="artificerName" 				:show-action="true" :animation="true" bg-color="#F7F7F7" color="#1A1A1A" @search="onSearch()" 				action-text="搜索" @custom="onSearch()"></u-search> 		</view>		<view style="padding-top: 1rpx;padding-bottom: 30rpx;">			<view class="flex align-center margin-bottom-sm bg padding-sm radius margin-sm"				v-for="(item,index) in orderList" :key='index' @click.stop="goOrderDetail(item)"				style="position: relative;">				<view style="position: absolute;z-index: 99;top: 0rpx;left: 0;" v-if="item.isGoods == 1">					<image						src="/static/image/text_you.png"						style="width: 42rpx;height: 36rpx;"></image>				</view>				<view style="width:130upx;height:190upx;border-radius: 10rpx;">					<image :src="item.artificerImg?item.artificerImg: '../../static/logo.png'"						@click.stop="saveImgs(item.artificerImg)"						style="width: 130upx;height: 130upx;border-radius: 50%;" mode="aspectFill"></image>					<image v-if="item.isHot == 1"						src="/static/image/icon_fire.png"						style="width: 30rpx;height: 36rpx;position: absolute;z-index: 99;top: 40rpx;left: 110rpx;">					</image>					<view class="kyy_view" v-if="item.state == 1">可服务</view>					<view class="kfw_view" v-else-if="item.state == 2">可预约</view>					<view class="byy_view" v-else>休息中</view>				</view>				<view class="margin-left  flex flex-direction" style="width: 85%;">					<view class="flex align-center justify-between">						<view class="flex align-center">							<view class="text-bold text-30 margin-right-xs">{{item.artificerName}}</view>							<image								src="/static/image/icon_pao.png"								style="width: 40rpx;height:40rpx;">							</image>							<view class="zpmore_view" v-if="item.lifePhoto" @click.stop="saveImgss(item.lifePhoto,0)">更多照片</view>						</view>						<view class="zz_view" v-if="item.status == 1 && item.time && numIndex == 1">							<view class="zz_label">								最早可约							</view>							<view class="zz_value">								{{item.time}}							</view>						</view>						<view class="zz_view" v-if="numIndex == 3">可用余额:{{item.money ? item.money : 0}}</view>					</view>					<view class="flex align-center" style="margin:15rpx 0rpx 0rpx">						<view v-if="item.ordersScore" class="flex margin-right-sm">							<text style="color: #FCAD3D;">{{item.ordersScore}}</text>								<u-rate activeColor="#FCAD3D" size="20rpx" :count="5" v-model="item.ordersScore"></u-rate>						</view>														</view>					<view class="flex justify-between " style="margin:15rpx 0rpx 0rpx">					<!-- 	<view class="flex align-center">							<view v-if="item.ordersScore" class="margin-right-sm">								<image src="../../static/images/start.png" style="width: 24upx;height: 22upx;">								</image>								<text class="margin-left-xs" style="color: #FF1200;">{{item.ordersScore}}</text>							</view>							<view style="color: #999999;">已服务:{{item.ordersCount}}单</view>						</view> -->						<view class="flex align-center" style="color: #AAAAAA;font-size: 24rpx;">							<view class="flex align-center" >已服务: 								<view style="color: #FF6E98;margin-left: 8rpx;">									{{item.ordersCount}}单								</view>							</view>							<view class="flex align-center" style="margin-left: 24rpx;" v-if="item.tripWay != 3 && numIndex != 3">								距您								<view style="color: #FF6E98;margin-left: 8rpx;">{{item.distance}}</view>							</view>							<view class="flex align-center" style="font-size: 26rpx;color: #f49650;font-weight: bold;"								v-if="item.tripWay == 3">								免出行费							</view>						</view>				<!-- 		<view class="flex align-center" v-if="item.tripWay != 3 && numIndex != 3">							<image src="../../static/images/address.png" style="width: 24rpx;height: 29rpx;"></image>							<view style="color: #333333;margin-left: 8rpx;">{{item.distance}}</view>						</view>						<view class="flex align-center" style="font-size: 26rpx;color: #f49650;font-weight: bold;"							v-if="item.tripWay == 3">							免出行费						</view> -->					</view>					<view style="width: 100%;display: flex;justify-content: space-between;align-items: center;">						<view class="flex flex-wrap align-center" style="margin-top: 10rpx;">							<image								src="/static/image/icon_shang.png"								style="width: 34rpx;height: 36rpx;"></image>							<view style="margin-left: 10rpx;color: #999;font-size: 26rpx;">商家</view>							<image								src="/static/image/icon_ping.png"								style="width: 40rpx;height: 32rpx;margin-left: 20rpx;"></image>							<view style="margin-left: 10rpx;color: #999;font-size: 26rpx;">								{{item.commentCount ? item.commentCount : 0}}							</view>							<image								src="/static/image/icon_cang.png"								style="width: 40rpx;height: 36rpx;margin-left: 20rpx;"></image>							<view style="margin-left: 10rpx;color: #999;font-size: 26rpx;">								{{item.collectCount ? item.collectCount : 0}}							</view>						</view>						<view v-if="numIndex == 1">							<view class="text-center text-sm" @tap.stop="goOrder(item)" v-if="item.status == 1"								style="background: linear-gradient( 313deg, #FFE6EE 0%, #FFBACA 100%);color: #222222;width: 160rpx;border-radius: 36rpx;line-height: 64rpx;font-weight: bold;position: relative;"									@click.stop="goOrder(item)">									立即预约									<image style="position: absolute;width: 39rpx;height: 39rpx;top: -4rpx;right: -8rpx;" src="../../static/image/btn-icon.png" mode=""></image>								</view>														<view class="text-center text-sm" v-else								style="background: #d9d9d9;color: #ffffff;width: 135upx;border-radius: 16upx;line-height: 50upx;position: relative;">								立即预约								<image style="position: absolute;width: 39rpx;height: 39rpx;top: -4rpx;right: -8rpx;" src="../../static/image/btn-icon.png" mode=""></image>							</view>						</view>						<view v-if="numIndex == 2">							<view class="text-center text-sm" @tap.stop="showPay(item)"								style="background: #2FB57A;color: #ffffff;width: 135upx;border-radius: 16upx;line-height: 50upx;">								为TA充值							</view>						</view>						<view v-if="numIndex == 3">							<view class="text-center text-sm"								style="background: #d9d9d9;color: #222222;width: 160rpx;border-radius: 36rpx;line-height: 64rpx;font-weight: bold;position: relative;">								立即预约								<image style="position: absolute;width: 39rpx;height: 39rpx;top: -4rpx;right: -8rpx;" src="../../static/image/btn-icon.png" mode=""></image>							</view>						</view>					</view>				</view>			</view>		</view>		<empty v-if="orderList.length == 0"></empty>		<u-select v-model="Cityshow" :list="cityList" @confirm="getCityData"></u-select>		<view style="position: fixed;z-index: 9999;bottom: 160rpx;" v-if="showTP"> 			<image src="https://wap.quanmindaojia.com/file/uploadPath/2023/02/16/15ade225e9fa8a1d82b325c06dc2b653.png" 				style="width: 690rpx;margin: 30rpx;height: 600rpx;"></image> 			<view 				style="position: absolute;bottom: 100rpx;width: 100%;text-align: center;display: flex;justify-content: center;"> 				<view> 					<view style="color: #333333;font-size: 28rpx;"><text 							style="font-size: 44rpx;color:#ee6c54">{{tpCount}}</text>人已投票</view> 					<view class="tp_view" v-if="tpSel == 2" @tap="saveTP">投票</view> 					<view class="ytp_view" v-if="tpSel == 1">已投票</view> 				</view> 			</view> 		</view>		<!-- 支付方式 -->		<u-popup v-model="showpay" mode="bottom">			<view class="popup_pay">				<view style="background-color: #fff;">					<view style="padding: 0 20upx;margin-top: 60rpx;margin-bottom: 20rpx;">						<view class="padding margin-top" style="background: #f4f4f4;">							<view class="text-lg margin-bottom">充值金额</view>							<input type="number" placeholder="请输入充值金额" v-model="price">							<view style="width: 100%;height: 1rpx;background: #e8e8e8;margin-top: 15rpx;"></view>						</view>						<view							style="display: flex;height: 100upx;align-items: center;padding: 20upx 0;justify-content: center;"							v-for="(item,index) in openLists" :key='index'>							<image :src="item.image" style="width: 55upx;height: 55upx;border-radius: 50upx;">							</image>							<view style="font-size: 30upx;margin-left: 20upx;width: 70%;">								{{item.text}}							</view>							<radio-group name="openWay" style="margin-left: 45upx;" @tap='selectWay(item.id)'>								<label class="tui-radio">									<radio color="#2FB57A" :checked="openWay === item.id ? true : false" />								</label>							</radio-group>						</view>					</view>				</view>				<view class="pay_btn" @click="pay()">确认支付</view>			</view>		</u-popup>	</view>	<!-- <u-skeleton :loading="loading" :animation="true" elColor='#FFFFFF' bgColor='#FFFFFF'></u-skeleton> -->	</view></template><script>	import meTabs from "@/components/mescroll-uni/me-tabs/me-tabs.vue";	import empty from '@/components/empty.vue'	import RenDropdownFilter from '@/components/ren-dropdown-filter/ren-dropdown-filter.vue'	export default {		components: {			meTabs,			empty,			RenDropdownFilter		},		data() {			return {				Cityshow: false, 				cityList: [],				tpSel: 0, 				tpCount: 0, 				showTP: false,				showpay: false,				price: '',				numIndex: 1,				classifyId: '',				artificerName: '',				loading: true, // 是否显示骨架屏组件				defaultSelected: [],				value1: '',				value2: '',				value3: '',				game: [],				defaultIndex: [0, 0, 0],				filterData: [					[{							label: '智能优选',							value: '',						},						{							label: '距离优先',							value: 3,						},						{							label: '人气优先',							value: 2,						},						{							label: '同城',							value: 1,						}					],					[{							label: '服务',							value: '0',						},						{							label: '从高到低',							value: '1',						},						{							label: '从低到高',							value: '2',						}					],					[{							label: '距离',							value: '0',						},						{							label: '从远到近',							value: '1',						},						{							label: '从近到远',							value: '2',						}					],				],				list: [{					name: '综合',					id: 1				}, {					name: '距离',					id: 2				}, {					name: '销量',					id: 3				}, {					name: '好评',					id: 4				}],				listIndex: 0,				city: '请选择城市',				latitude: '',				longitude: '',				orderList: [],				page: 1,				limit: 10,				token: '',				XCXIsSelect: '否',				isVip: false,				myId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : '',				showModal: true,				arr: [],				tab: '',				artificerId:'',				massageTypeId: '',				openWay: 1,				openLists: []			}		},		onLoad(e) {			if (e.index) {				this.numIndex = e.index;				if (e.index == 2) {					uni.setNavigationBarTitle({						title: '为TA充值'					})				} else {					uni.setNavigationBarTitle({						title: '我的技师'					})				}			} else {				uni.setNavigationBarTitle({					title: '选择技师'				})			}			uni.showLoading({				title: '加载中...',			});			// #ifdef MP-WEIXIN			this.openWay = 1;			this.openLists = [{				image: '../../my/static/icon_weixin.png',				text: '微信',				id: 1			}, {				image: '../../static/images/lingqian.png',				text: '零钱支付',				id: 3			}]			// #endif			// #ifndef MP-WEIXIN			this.openWay = 1;			this.openLists = [{				image: '../../my/static/icon_weixin.png',				text: '微信',				id: 1			}, {				image: '../../my/static/zhifubao.png',				text: '支付宝',				id: 2			}, {				image: '../../static/images/lingqian.png',				text: '零钱支付',				id: 3			}]			// #endif			let that = this			that.token = uni.getStorageSync('token') 			that.city = uni.getStorageSync('city') ? uni.getStorageSync('city') : '请选择城市'			if (e.massageTypeId) {				that.massageTypeId = e.massageTypeId			}			if (e.classifyId) {				that.classifyId = e.classifyId			}			uni.getLocation({				type: 'gcj02',				geocode: true, //设置该参数为true可直接获取经纬度及城市信息				success: function(res) {					console.log(res, '地理位置')					that.latitude = res.latitude					that.longitude = res.longitude					// uni.setStorageSync('latitude', res.latitude)					// uni.setStorageSync('longitude', res.longitude)					that.page = 1					that.getlist()				},				fail: function() {					that.page = 1					that.getlist()					console.log('获取地址失败')				}			})			// 获取邀请码保存到本地			if (e.invitation) {				that.$queue.setData('inviterCode', e.invitation);			}			if (this.myId) {				that.$Request.getT('/app/common/type/235').then(res => { //报名成功通知					if (res.code == 0) {						if (res.data && res.data.value) {							that.arr.push(res.data.value)						}					}				})				that.$Request.getT('/app/common/type/236').then(res => { //活动即将开始提醒					if (res.code == 0) {						if (res.data && res.data.value) {							that.arr.push(res.data.value)						}					}				})			}		},		onShow() {			let that = this			that.city = uni.getStorageSync('city') ? uni.getStorageSync('city') : '请选择城市'			that.token = uni.getStorageSync('token')			that.getKTCityList(); 			that.getTpCount(); 			that.getTpMy();			if (uni.getStorageSync('token')) {				that.getIsVip()			}			that.myId = uni.getStorageSync('userId')			// #ifdef MP-WEIXIN			//订阅			if (that.myId) {				if (this.showModal) {					// this.openMsg()				}			}			// #endif		},		methods: {			getCityData(e) { 				console.log(e[0].label); 				this.city = e[0].label; 				uni.setStorageSync('city', this.city) 				this.getKTCityList(); 				this.page = 1 				this.getlist() 			},			saveTP() { 				if (!this.token) { 					uni.navigateTo({ 						url: '/pages/public/login' 					}); 					return; 				} 				let userId = this.$queue.getData('userId'); 				let userName = this.$queue.getData('userName'); 				this.$queue.showLoading('投票中...'); 				this.$Request.postJson('/app/message/insertMessage', { 						state: 11, 						content: this.city, 						userName: userName, 						userId: userId 					}) 					.then(res => { 						if (res.code === 0) { 							uni.showToast({ 								title: '投票成功!' 							}); 							this.getTpCount(); 							this.getTpMy(); 						} else { 							uni.hideLoading(); 							uni.showModal({ 								showCancel: false, 								title: '投票失败', 								content: res.msg 							}); 						} 					}); 			}, 			getTpMy() { 				this.$Request.getT('/app/message/selectMessageByUserId?page=1&limit=1&state=11').then(res => { 					if (res.code == 0) { 						if (res.data && res.data.list && res.data.list.length > 0) { 							this.tpSel = 1; 						} else { 							this.tpSel = 2; 						} 					} 				}); 			}, 			getTpCount() { 				this.$Request.getT('/app/message/selectCityCount?city=' + this.city).then(res => { 					if (res.code == 0) { 						this.tpCount = res.data ? res.data : 0; 					} 				}); 			}, 			getKTCityList() { 				this.$Request.getT('/app/trip/selectTripList').then(res => { 					if (res.code == 0) {						this.cityList = []; 						let isOpen = false 						let cityName = uni.getStorageSync('city') ? uni.getStorageSync('city') : '请选择城市' 						res.data.forEach((d, index) => { 							if (cityName === d.city) { 								isOpen = true; 							}							let data = {} 							data.label = d.city 							data.value = index 							this.cityList.push(data); 						});  						if (!isOpen) { 							this.orderList = [] 							// this.showTP = true; 						} else { 							this.showTP = false; 						} 					} 				}); 			},			showPay(e){				this.showpay = true				this.artificerId = e.artificerId			},			selectWay: function(id) {				this.openWay = id;			},			// 跳转订单			goOrder(e) {				uni.navigateTo({					url: "/pages/index/order/orderDet?artificerId=" + e.artificerId + '&massageTypeId=' + this						.massageTypeId + '&tripWay=' + e.tripWay				})			},			saveImgss(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]				});			},			saveImgs(imgs) {				let imgArr = [];				imgArr.push(imgs);				// //预览图片				uni.previewImage({					urls: imgArr,					current: 0				});			},			onSearch(e) {				// this.artificerName = e;				this.page = 1;				this.getlist()			},			// 开启订阅消息			openMsg() {				var that = this				uni.getSetting({					withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回					success(ret) {						// if (ret.subscriptionsSetting.itemSettings && Object.keys(ret.subscriptionsSetting.itemSettings).length == 2) {						if (ret.subscriptionsSetting.itemSettings) {							uni.setStorageSync('sendMsg', true)							uni.openSetting({ // 打开设置页 								success(rea) {									// console.log(rea.authSetting)								}							});						} else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息							uni.setStorageSync('sendMsg', false)							uni.showModal({								title: '提示',								content: '为了更好的体验,请绑定消息推送',								confirmText: '确定',								cancelText: '取消',								success: function(res) {									if (res.confirm) {										wx.requestSubscribeMessage({											tmplIds: that.arr,											success(re) {												var datas = JSON.stringify(re);												if (datas.indexOf("accept") != -1) {													console.log(re)													// uni.setStorageSync('sendMsg', true)												}											},											fail: (res) => {												console.log(res)											}										})										// uni.setStorageSync('sendMsg', true)										console.log('确认')										that.showModal = false									} else if (res.cancel) {										console.log('取消')										// uni.setStorageSync('sendMsg', false)										that.showModal = true									}								}							})						}					}				})			},			getIsVip() {				this.$Request.get("/app/UserVip/isUserVip").then(res => {					if (res.code == 0) {						this.isVip = res.data						uni.setStorageSync('isVIP', res.data)					}				});			},			getlist() {				let index = this.list[this.listIndex].id				let data = {					classifyId: this.classifyId,					artificerName: this.artificerName,					page: this.page,					limit: this.limit,					massageTypeId: this.massageTypeId,					by: index, //价格					latitude: this.latitude,					longitude: this.longitude,					city: this.city				}				if (this.token) {					if (this.numIndex != 3) {						this.$Request.get("/app/artificer/selectArtificerList", data).then(res => {							this.loading = false;							uni.hideLoading()							if (res.code == 0) {								if (this.page == 1) {									this.orderList = [];								}								if (res.data.list.length > 0) {									for (var i = 0; i < res.data.list.length; i++) {										if (res.data.list[i].lifePhoto) {											res.data.list[i].lifePhoto = res.data.list[i].lifePhoto.split(',')										}										if (res.data.list[i].distance > 1000) {											res.data.list[i].distance = (res.data.list[i].distance / 1000).toFixed(1) + 'km'										} else {											res.data.list[i].distance = (res.data.list[i].distance).toFixed(1) + 'm'										}									}									if (this.page == 1) {										this.orderList = res.data.list									} else {										this.orderList = [...this.orderList, ...res.data.list]									}								} else {									// this.orderList = []									// uni.showToast({									// 	title: '当前城市暂未开通,请切换城市',									// 	duration: 2000,									// 	icon: 'none'									// });								}								uni.stopPullDownRefresh();							}						})					} else {						let userId = this.$queue.getData('userId')						let data = {							userId: userId,							page: this.page,							limit: this.limit						}						this.$Request.get("/app/userMoney/selectUserMoneyArtificer", data).then(res => {							this.loading = false;							uni.hideLoading()							if (res.code == 0) {								if (this.page == 1) {									this.orderList = [];								}								res.data.list.forEach(d => {									if (d.artificer.lifePhoto) {										d.artificer.lifePhoto = d.artificer.lifePhoto.split(',')									}									d.artificer.money = d.money;									this.orderList.push(d.artificer)								});								uni.stopPullDownRefresh();							}						})					}				} else {					uni.hideLoading()				}			},			// 筛选			change(index) {				this.listIndex = index				// this.value1 = e[0][0].value				// this.value2 = e[1][0].value				// this.value3 = e[2][0].value				this.page = 1				this.getlist()			},			// 选择城市			goSelectCity() {				// uni.navigateTo({				// 	url: '/pages/index/citys/citys'				// });				let that = this				uni.chooseLocation({					success: function(res) {						console.log('位置名称:' + res.name);						console.log('详细地址:' + res.address);						console.log('纬度:' + res.latitude);						console.log('经度:' + res.longitude);						that.latitude = res.latitude						that.longitude = res.longitude						that.selectCity(that.longitude, that.latitude);					}				});			},			selectCity(longitude, latitude) {				this.$Request.get('/app/Login/selectCity?lat=' + latitude + '&lng=' + longitude).then(res => {					if (res.code == 0) {						this.city = res.data.city ? res.data.city : '未知'						uni.setStorageSync('city', res.data.city)						this.page = 1						this.getlist()					}				});			},			// 跳转游戏列表			goNav(url) {				console.log(url, '1111112333')				if (uni.getStorageSync('sendMsg')) {					console.log('授权+1')					wx.requestSubscribeMessage({						tmplIds: this.arr,						success(re) {							console.log(JSON.stringify(re), 111111111111)							var datas = JSON.stringify(re);							if (datas.indexOf("accept") != -1) {								console.log(re)							}						},						fail: (res) => {							console.log(res)						}					})				}				if (url.indexOf('/pages/') !== -1) {					uni.navigateTo({						url					});				} else {					//#ifndef H5					uni.navigateTo({						url: '/pages/index/webView?url=' + url					});					//#endif					//#ifdef H5					window.location.href = url;					//#endif				}			},			// 跳转搜索			goSearch() {				if (uni.getStorageSync('sendMsg')) {					console.log('授权+1')					wx.requestSubscribeMessage({						tmplIds: this.arr,						success(re) {							// console.log(JSON.stringify(re), 111111111111)							var datas = JSON.stringify(re);							if (datas.indexOf("accept") != -1) {								console.log(re)							}						},						fail: (res) => {							console.log(res)						}					})				}				uni.navigateTo({					url: '/pages/index/search/index'				});			},			// 跳转订单			goOrder(e) {				console.log('授权', uni.getStorageSync('sendMsg'))				if (uni.getStorageSync('sendMsg')) {					console.log('授权+1')					wx.requestSubscribeMessage({						tmplIds: this.arr,						success(re) {							console.log(JSON.stringify(re), 111111111111)							var datas = JSON.stringify(re);							if (datas.indexOf("accept") != -1) {								console.log(re)							}						},						fail: (res) => {							console.log(res)						}					})				}				if (this.token) {					uni.navigateTo({						url: "/pages/index/order/orderDet?artificerId=" + e.artificerId + '&massageTypeId=' + this							.massageTypeId					})				} else {					uni.navigateTo({						url: '/pages/public/login'					});				}			},			goOrderDetail(e) {				if (this.numIndex == 1) {					if (e.status != 1) {						this.$queue.showToast('当前技师已下线,请预约其他技师!')						return;					}					uni.navigateTo({						url: "/pages/index/order/orderDetail?artificerId=" + e.artificerId + '&massageTypeId=' + this.massageTypeId					})				} else {					uni.navigateTo({						url: '/pages/therapist/orderDetail?artificerId=' + e.artificerId					});				}			},			pay() {				this.showpay = false;				if (this.price === '') {					this.$queue.showToast('请输入充值金额!')					return;				}				this.$queue.showLoading('支付中...')				let that = this;				if (this.openWay == 1) {					// #ifdef MP-WEIXIN					that.$Request.postT("/app/wxPay/payUserMoneyArtificer", {						artificerId: that.artificerId,						money: that.price,						type: 3					}).then(red => {						if (red.code == 0) {							uni.requestPayment({								provider: 'wxpay',								timeStamp: red.data.timestamp,								nonceStr: red.data.noncestr,								package: red.data.package,								signType: red.data.signType,								paySign: red.data.sign,								success: function(redd) {									uni.hideLoading();									uni.showToast({										title: '充值成功!'									})								},								fail: function(err) {									uni.hideLoading();									that.$queue.showToast(										'支付失败');								}							});						} else {							uni.showToast({								title: red.msg,								icon: 'none'							})						}					});					// #endif					// #ifdef H5					let ua = navigator.userAgent.toLowerCase();					console.log(ua)					if (ua.indexOf('micromessenger') !== -1) {						that.$Request.post("/app/wxPay/payUserMoneyArtificer", {							money: that.price,							artificerId: that.artificerId,							type: 2						}).then(red => {							if (red.code == 0) {								that.callPay(red.data);							} else {								uni.showToast({									title: red.msg,									icon: 'none'								})							}						});					} else {						that.$Request.post("/app/wxPay/payUserMoneyArtificer", {							money: that.price,							artificerId: that.artificerId,							type: 4						}).then(red => {							if (red.code == 0) {								const urlArr = window.location.href;								const hostUrl = urlArr.split("/");								const callBack = hostUrl[0] + "//" + hostUrl[2] + "/";								const url = '&redirect_url=' + callBack + 'my/vip/index';								window.location = red.data.mweb_url + url							} else {								uni.showToast({									title: red.msg,									icon: 'none'								})							}						});					}					// #endif					// #ifdef APP-PLUS					that.$Request.post("/app/wxPay/payUserMoneyArtificer", {						money: that.price,						artificerId: that.artificerId,						type: 1					}).then(red => {						if (red.code == 0) {							console.log(JSON.stringify(red))							that.setPayment('wxpay', JSON.stringify(red								.data));						} else {							uni.showToast({								title: red.msg,								icon: 'none'							})						}					});					// #endif				} else if (this.openWay == 2) {					// #ifdef H5					that.$Request.post("/app/aliPay/payUserMoneyArtificer", {						money: that.price,						artificerId: that.artificerId,						classify: 2					}).then(red => {						if (red.code == 0) {							const div = document.createElement('div')							div.innerHTML = red.data //此处form就是后台返回接收到的数据							document.body.appendChild(div)							document.forms[0].submit()						} else {							uni.showToast({								title: red.msg,								icon: 'none'							})						}					});					// #endif					// #ifdef APP-PLUS					that.$Request.post("/app/aliPay/payUserMoneyArtificer", {						money: that.price,						artificerId: that.artificerId,						classify: 1					}).then(red => {						if (red.code == 0) {							that.setPayment('alipay', red.data);						} else {							uni.showToast({								title: red.msg,								icon: 'none'							})						}					});					// #endif				} else if (this.openWay == 3) {					uni.hideLoading();					uni.showModal({						title: '付款提示',						content: '确认支付' + that.price + '元吗?',						success: function(re) {							if (re.confirm) {								that.$queue.showLoading('支付中...')								// console.log('用户点击确定');								that.$Request.post("/app/userMoney/payUserMoneyArtificer", {									money: that.price,									artificerId: that.artificerId,									classify: 1								}).then(ret => {									uni.hideLoading();									if (ret.code == 0) {										uni.showToast({											title: '充值成功',											icon: 'none'										})									} else {										uni.showToast({											title: ret.msg,											icon: 'none'										})									}								});							}						}					})				}			},			callPay: function(response) {				if (typeof WeixinJSBridge === "undefined") {					if (document.addEventListener) {						document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(response), false);					} else if (document.attachEvent) {						document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(response));						document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(response));					}				} else {					this.onBridgeReady(response);				}			},			onBridgeReady: function(response) {				let that = this;				if (!response.package) {					return;				}				WeixinJSBridge.invoke(					'getBrandWCPayRequest', {						"appId": response.appid, //公众号名称,由商户传入						"timeStamp": response.timestamp, //时间戳,自1970年以来的秒数						"nonceStr": response.noncestr, //随机串						"package": response.package,						"signType": response.signType, //微信签名方式:						"paySign": response.sign //微信签名					},					function(res) {						if (res.err_msg === "get_brand_wcpay_request:ok") {							// 使用以上方式判断前端返回,微信团队郑重提示:							//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。							uni.hideLoading();							uni.showToast({								title: '充值成功!'							})						} else {							uni.hideLoading();						}						WeixinJSBridge.log(response.err_msg);					}				);			},			setPayment(name, order) {				let that = this;				uni.requestPayment({					provider: name,					orderInfo: order, //微信、支付宝订单数据					success: function(res) {						uni.hideLoading();						uni.showToast({							title: '充值成功!'						})					},					fail: function(err) {						uni.hideLoading();						console.log(12)					}				});			}		},		onReachBottom: function() {			this.page = this.page + 1;			this.getlist()		},		onPullDownRefresh: function() {			this.page = 1;			this.getlist()		},	}</script><style lang="scss">	.therapistList {		background: linear-gradient( 180deg, #FFE5ED 0%, #F6F6F6 500rpx);		height: 100VH;		overflow: hidden!important;	}	.search ::v-deep .u-content,.search ::v-deep input{		background: #FFFFFF!important;	}		.zz_view {		display: flex;		line-height: 40rpx;		text-align: center;		font-size: 24rpx;		.zz_label{			width: 120rpx;			background: #4B2F20;			border-radius: 32rpx 0 0 32rpx;			color: #FFFFFF;		}		.zz_value{			width: 88rpx;			border-radius: 0 32rpx 32rpx 0;			background: #EECEAC;			color: #4B2F20;		}	}		.zpmore_view {		background: #07BF89;		width: 128rpx;		height: 40rpx;		text-align: center;		border-radius: 32rpx;		line-height: 40rpx;		font-size: 24rpx;		color: #FFFFFF;		margin-left: 10rpx;	}		.byy_view {		background: #ebebeb;		width: 120upx;		text-align: center;		border-radius: 50rpx;		height: 46rpx;		line-height: 46rpx;		font-size: 24rpx;		color: #000000;		// border: 3upx solid #999999;		margin-top: 6rpx;	}		.kfw_view {		background: #ffaa00;		width: 120upx;		text-align: center;		border-radius: 50rpx;		height: 46rpx;		line-height: 46rpx;		font-size: 24rpx;		color: #FFFFFF;		margin-top: 6rpx;	}		.kyy_view {		background: #DCFFEA;		width: 120upx;		text-align: center;		border-radius: 36rpx;		height: 40rpx;		line-height: 40rpx;		font-size: 24rpx;		color: #54CC84;	}	.kyy_view,.kfw_view,.byy_view{		margin-top: -10rpx;		z-index: 9;	}		.bg {		background: #FFFFFF;	}		.ytp_view {		background: #e3e3e3;		width: 400rpx;		border-radius: 10rpx;		font-size: 28rpx;		text-align: center;		height: 80rpx;		line-height: 80rpx;		color: #848484;		margin-top: 40rpx;	}	.tp_view {		background: #ee6c54;		width: 400rpx;		border-radius: 10rpx;		font-size: 28rpx;		text-align: center;		height: 80rpx;		line-height: 80rpx;		color: #FFFFFF;		margin-top: 40rpx;	}	.sticky-tabs {		z-index: 990;		position: sticky;		top: var(--window-top);		// background-color: #fff;	}	/* // 使用mescroll-uni,则top为0 */	.mescroll-uni,	/deep/.mescroll-uni {		.sticky-tabs {			top: 0;		}	}	.demo-tip {		padding: 18upx;		font-size: 24upx;		text-align: center;	}	.line_s {		display: inline-flex;		width: 10rpx;		height: 10rpx;		background: #1AD566;		border-radius: 50%;		margin-right: 10rpx;	}	.line_x {		display: inline-flex;		width: 10rpx;		height: 10rpx;		background: #000000;		border-radius: 50%;		margin-right: 10rpx;	}	.box {		// border: 3rpx solid #005dff;		background: #E8FAE1;		color: #2FB57A;		padding: 5rpx 15rpx;		font-size: 26rpx;		letter-spacing: 2rpx;		border-radius: 8rpx;		// margin-top: 10rpx;		margin-right: 8upx;	}</style>
 |