宇宙无敌M1处理器的MacBook Pro 4 vuotta sitten
vanhempi
commit
c566caaa82

+ 1 - 0
pages/common_tools/my_consulting/my_appointment.vue

xqd
@@ -150,6 +150,7 @@
 					success: (res) => {
 						if (res.confirm) {
 							uni.requestSubscribeMessage({
+								tmplIds: ['368_VJaSVZQay3E5-yPelJKJn3R_Hu56dVflxazHiCY'],
 								success: (res) => {
 									this.confirmorder(item, index)
 								},

+ 1 - 0
pages/common_tools/my_consulting/my_consulting.vue

xqd
@@ -311,6 +311,7 @@
 					success: (res) => {
 						if (res.confirm) {
 							uni.requestSubscribeMessage({
+								tmplIds: ['368_VJaSVZQay3E5-yPelJKJn3R_Hu56dVflxazHiCY'],
 								success: (res) => {
 									this.confirmorder(item, index)
 								},

+ 616 - 607
pages/doctor_related/doctor_info.vue

xqd
@@ -1,608 +1,617 @@
-<template>
-	<view class="main">
-		<view class="u-skeleton">
-			<view class="pr det-body">
-				<image class="det-bg-img" mode="scaleToFill" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/img/doctorbanner.png"></image>
-				<view class="det-head pr plr15 bdr8 m-bg-white mlr15 pt25 u-skeleton-fillet">
-					<view class="m-xstart pr m-bottom-line pb25 margin-bottom-sm">
-						<view class="m-flex overflow mr10">
-							<view class="flex align-center">
-								<text class="dpb fb f16">{{doctor.name||''}}</text>
-								<text class="dpb f14 m-gray-small ml5" v-for="(itm,index) in doctor.label_texts" :key="index">{{itm.label_name||''}}</text>
-
-							</view>
-							<view class="dpb m-flex margin-top-sm">科室:{{doctor.office.name||'暂无'}} {{doctor.qualification.name||'暂无'}}</view>
-							<view class="m-xend mt12">
-								<view class="f12 m-gray-big">评分:<text class="m-theme">{{doctor.score}}</text>
-									<text class="f11 margin-left-xs">分</text>
-								</view>
-								<view class="f12 ml15 m-gray-big">服务:<text class="m-theme">{{doctor.service_persons}}</text>
-									<text class="f11">人</text>
-								</view>
-								<view class="m-flex ml15 text-sm">距离:<text class="text-sm">{{doctor.distance!='未知'?parseInt(doctor.distance/1000)+'km':'未知'}}</text></view>
-							</view>
-						</view>
-						<view class="pr pt5">
-							<view class="follow_style" @click="submitCollect" :data-index="index" :data-id="doctor.id" v-if="doctor.is_collect==0">
-								关注
-							</view>
-							<view class="follow_style" @click="submitCollect" :data-index="index" :data-id="doctor.id" style="background-color: #fff;color: rgb(208, 105, 150);border:2rpx solid rgb(208, 105, 150);"
-							 v-else>
-								已关注
-							</view>
-							<u-image shape="circle" width="120rpx" height="120rpx" :src="doctor.avatar"></u-image>
-						</view>
-					</view>
-					<u-read-more :toggle="true" show-height="0" :shadow-style="shadowStyle" close-text=" " open-text=" ">
-						<rich-text :nodes="doctor.intro"></rich-text>
-					</u-read-more>
-				</view>
-			</view>
-			<view class="gridstyle padding-sm margin-lr-sm u-skeleton-fillet">
-				<u-grid :col="3" :border="false">
-					<view @click="gotoxuanze" data-index="1" data-name="电话咨询" :data-istrue="doctor.is_phone">
-						<u-grid-item :bg-color="barindex==1&&doctor.is_phone==1?'#efefef':'#fff'">
-							 shape="circle"></u-image>
-						</u-grid-item>
-					</view>
-					<view class="" @click="gotoxuanze" data-index="2" data-name="图文咨询" :data-istrue="doctor.is_chat">
-						<u-grid-item :bg-color="barindex==2&&doctor.is_chat==1?'#efefef':'#fff'">
-							 shape="circle"></u-image>
-						</u-grid-item>
-					</view>
-					<view class="" @click="gotoxuanze" data-index="3" data-name="门诊预约" :data-istrue="doctor.is_appoint">
-						<u-grid-item :bg-color="barindex==3&&doctor.is_appoint==1?'#efefef':'#fff'">
-							<u-image width="120rpx" height="120rpx" :src="doctor.is_appoint==1?'https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/indexmen.png':'/static/img/yuyue_gray.png'"
-							 shape="circle"></u-image>
-							<view class="grid-text margin-top-sm" :style="doctor.is_appoint==1?'color:black;':'color:rgb(219,219,219)'">门诊预约</view>
-						</u-grid-item>
-					</view>
-				</u-grid>
-				<u-line color="#efefef" :hair-line="true" />
-				<view v-if="!isjigou" class="text-lg text-center margin-top-sm" style="color: rgb(238, 170, 63);">
-					平均回复低至1分钟
-				</view>
-				<view v-else class="text-lg margin-top-sm" style="color: rgb(238, 170, 63);border-bottom: 3rpx solid rgb(238, 170, 63); width: 530rpx;"
-				 @click="xuantime">
-					已选时间:{{daytime||'该医生暂未排班'}}
-					<!-- <u-picker mode="multiSelector" @confirm="callbacktime" v-model="show"  range-key="start_time_period"
-					 :range="multiSelector"></u-picker> -->
-				</view>
-			</view>
-			<view class="" v-if="isjigou">
-				<view @click="goAdrPostion(itm)" v-for="(itm,idx) in doctor.organization" :key="idx" class="pr pt10 pb10 margin-lr-sm margin-top-sm m-bg-white"
-				 style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
-					<view class="pr">
-						<view class="f18 fb plr15">机构地址</view>
-						<view class="pr m-xcenter plr15 mt15">
-							<image class="dpb" mode="scaleToFill" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAABx0lEQVQoU2WSP2gTcRTHv+/dH4IdmkVcFAvSgihNLi1SRKE4uNhek4I6iNLY5AQnB93dpHNBMEltIbgUc5pUF0F0cDBIk2twKiJBBAWHVgOl5u5+TxrINeCbvnz5Pnh8vo8wMBPOE8NXx6YIcpKJfu74Ox/aa9n9foT6IrFYtVjjMkHOHO7TV6Ww6JVm3x94vXBy4fkombGPUMEwEW+oMPRY44QAs0TcDfzwUms1Xe+FrXztJURsIdz0inPPkgsv4t5aZjd5u3qDGGUiqjeK9nmauLo+rOLmDyJuNQr2VMrZWBJR90DacrMwc9/K1+qAmvQDjNB4rnJcg/aN2Kg2ClcyqTuvP0nYnWQ2vM3CjGU5tQpE5gPfP03T0+/036OdLwBinT19bCjmn2JCPoBa6SreHtJpWwTdzvf2WO/mRM7NaqQ/BeFN92949/Oe3z57xBgxTe0xgMuhCm9trWTKfXSUcmquKJUGUQBgF0AcIroQvfKKtg2QRJyt7PpRMmKbosITEWfW2vD3zzVXr/2KOEfFOO4FFu0tRJnE+h8odbFRmmv912DfSObcB8zGI5HgerOYqQy+Q3TGofmQE7nx9FZp3h0MHuh/o0mz0Kcr4U0AAAAASUVORK5CYII="
-							 style="width: 10px; height: 12px;"></image>
-							<view class="m-flex tl ml5">{{itm.name||'无'}}</view>
-						</view>
-						<view class="pr m-xcenter plr15 mt10">
-							<view class="m-flex tl m-gray-small f12 pl15 mr5">地址:{{itm.address||'无'}}</view>
-							<view class="pt2 pb2 plr10 f12 m-gray-small br-gray-letter bdr30" v-if="itm.distance!='0'">
-								{{itm.distance/1000||'暂无距离'}}km
-							</view>
-							<view class="pt2 pb2 plr10 f12 m-gray-small br-gray-letter bdr30" wx:else>暂无距离</view>
-							<text class="dpb iconfont icon-arrow-right m-gray-letter f20"></text>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="margin-lr-sm mt15 bg-white u-skeleton-fillet" style="border-radius: 16rpx; box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);"
-			 v-if="doctor.evaluate.length!=0">
-				<view class="f18 fb flex align-center plr15 pt15">患者评价 <text class="f12 m-gray-letter margin-left-xs">({{doctor.evaluate.length}})</text>
-				</view>
-				<view class="cu-list menu-avatar card-menu">
-					<view class="cu-item" v-for="(item,index) in doctor.evaluate" :key="index">
-						<view class="cu-avatar round lg" :style="'background-image:url('+item.user.avatar+');'"></view>
-						<view class="content">
-							<view class="text-grey margin-right-sm">
-								{{item.user.nickname}}
-								<u-rate :count="5" v-model="item.score" :disabled="true"></u-rate>
-							</view>
-							<view class="text-gray text-sm flex">
-								<text class="text-cut">
-									{{item.content}}
-								</text>
-							</view>
-						</view>
-						<view class="action" style="width: 124rpx;">
-							<view class="text-grey text-xs">{{item.created_at}}</view>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="cu-tabbar-height"></view>
-			<view class="cu-tabbar-height"></view>
-		</view>
-		<view class="cu-bar bg-white tabbar border shop" style="position: fixed; bottom: 0; z-index: 99;width: 100%;">
-			<button class="action text-orange" open-type="share" style="width: 200rpx;">
-				<view class="cuIcon-share text-orange">
-				</view>
-				分享
-			</button>
-			<button v-else class="submit text-white" @click="phonezixun" :disabled="ismenzhen||daytime==''||is_can_appoint==0"
-			 :style="!ismenzhen&&daytime!=''&&is_can_appoint!=0?'background-color: rgb(11,115,186);font-size: 26rpx;':'font-size: 26rpx;color:gray'">门诊预约</button>
-		</view>
-		<u-no-network></u-no-network>
-		<u-skeleton :loading="loading" el-color="#ddd" :animation="true" bgColor="#FFF"></u-skeleton>
-		<u-popup v-model="dateshow" :safe-area-inset-bottom="true" mode="bottom" border-radius="14" length="50%" height="700rpx">
-			<datepicker :date="multiSelector" @callbacktime="callbacktime" ref="date"></datepicker>
-		</u-popup>
-	</view>
-</template>
-
-<script>
-	import datepicker from '../../components/datepicker/datepicker'
-	var user = require('../../common/user.js');
-	export default {
-		components: {
-			datepicker
-		},
-		onLoad(options) {
-			this.doctorid = options.id
-			if (options.time != undefined) {
-				this.daytime = options.time
-			}
-
-			this.barindex = options.index
-			if (this.barindex == 3) {
-				this.isjigou = true
-			} else {
-				this.isjigou = false
-			}
-			console.log(this.daytime)
-		},
-		onShow() {
-			this.gettime()
-			this.getdoctorInfo()
-		},
-		mounted() {
-
-		},
-		data() {
-			return {
-				doctorid: "",
-				doctor: {},
-				shadowStyle: {
-					backgroundImage: "none"
-				},
-				isjigou: false,
-				barindex: 1, //显示按钮
-				daytime: "",
-				multiSelector: [],
-				show: false,
-				istime: false,
-				hospital: "",
-				address: "",
-				distance: "",
-				jigouid: "",
-				year: "",
-				yearid: "",
-				isphone: false,
-				istuwen: false,
-				ismenzhen: false,
-				loading: false,
-				is_can_appoint: "",
-				dateshow: false,
-				is_date_obsolete: "",
-				location: {}
-
-			}
-		},
-		methods: {
-			getdoctorInfo: async function() {
-				this.loading = true
-				let res = await this.$request.post("/api/v1/docter/docterDetail", {
-					docter_id: this.doctorid,
-					latitude: uni.getStorageSync("latitude"),
-					longitude: uni.getStorageSync("longitude")
-				})
-				console.log(res)
-				if (res) {
-					this.loading = false
-				}
-				this.doctor = res
-				this.doctor.is_chat != 0 ? this.istuwen = false : this.istuwen = true
-				this.doctor.is_phone != 0 ? this.isphone = false : this.isphone = true
-				this.doctor.is_appoint != 0 || this.multiSelector.length != 0 ? this.ismenzhen = false : this.ismenzhen = true
-				console.log(this.ismenzhen)
-
-			},
-			submitCollect: async function(e) {
-				let res = await this.$request.post("/api/v1/collection/submitCollect", {
-					type: 1,
-					relation_id: e.currentTarget.dataset.id
-				})
-				let status = user.islogin(res)
-				if (status) {
-					if (res.data.is_collect == 0) {
-						uni.showToast({
-							title: "取消成功",
-							icon: "none"
-						})
-						this.doctor.is_collect = res.data.is_collect
-					} else {
-						uni.showToast({
-							title: "关注成功",
-							icon: "none"
-						})
-						this.doctor.is_collect = res.data.is_collect
-					}
-				}
-			},
-			gettime: async function() {
-				this.multiSelector = []
-				let res = await this.$request.post("/api/v1/docter/schedulePeriodList", {
-					docter_id: this.doctorid,
-					latitude: uni.getStorageSync('latitude'),
-					longitude: uni.getStorageSync('longitude')
-				})
-				if (res.status == 0) {
-					if (res.data.data.length != 0) {
-						// let nian = res.data.data.map(item => {
-						// 	return item.schedule_date
-						// })
-						// let time = res.data.data.map(item => {
-						// 	return item.schedule_period.map(itm => {
-						// 		itm.organization.org_id = itm.organization['id']
-						// 		return {
-						// 			can_appoint_num: itm.can_appoint_num,
-						// 			...itm.organization,
-						// 			...itm.time_period
-						// 		}
-						// 	})
-						// })
-						// time[0].forEach(item => {
-						// 	item.start_time_period = item.start_time_period + '-' + item.end_time_period
-						// })
-						// this.multiSelector.push(nian)
-						// time[0].sort((a,b)=> {return a.end_time_period>b.end_time_period?1:-1})
-						// this.multiSelector.push(time[0])
-						// console.log(this.multiSelector)
-						// this.daytime = this.multiSelector[0][0] + " " + this.multiSelector[1][0].start_time_period
-						// this.hospital = this.multiSelector[1][0].name
-						// this.address = this.multiSelector[1][0].address
-						// this.jigouid = this.multiSelector[1][0].org_id
-						// this.is_can_appoint = this.multiSelector[1][0].can_appoint_num
-						// this.year = this.multiSelector[0][0]
-						// console.log(this.jigouid)
-						// this.yearid = this.multiSelector[1][0].id
-						// console.log(this.yearid)
-						// this.distance = parseInt(this.multiSelector[1][0].distance) / 1000
-
-						let times = []
-						let nian = res.data.data.map(item => {
-							if (item.schedule_period.length != 0) {
-								return {
-									date: item.schedule_date,
-									id: item.id,
-									week: item.week
-								}
-							}
-						})
-						res.data.data.forEach(item => {
-							if (item.schedule_period.length != 0) {
-								let time = item.schedule_period.map(itm => {
-									if (item.id == itm.schedule_id) {
-										if (itm.time_period != null) {
-											itm.organization.org_id = itm.organization['id']
-											return {
-												yeardate: itm.schedule_date,
-												schedule_id: itm.schedule_id,
-												can_appoint_num: itm.can_appoint_num,
-												...itm.organization,
-												...itm.time_period
-											}
-										}
-
-									}
-								})
-								time = time.filter(item => item !== undefined)
-								times.push(time)
-							}
-
-						})
-						nian = nian.filter(item => item !== undefined)
-						this.multiSelector.push(nian)
-						times.forEach((item, index) => {
-							item.sort((a, b) => {
-								return a.end_time_period > b.end_time_period ? 1 : -1
-							})
-							// for (let i = item.length - 1; i >= 0; i--) {
-							// 	let arr = item[i].yeardate + " " + item[i].end_time_period;
-							// 	arr = arr.split(/[- :]/)
-							// 	let nndate = Date.parse(new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4]));
-							// 	let currentTime = Date.parse(new Date())
-							// 	// console.log(nndate<currentTime,index)
-							// 	if (nndate < currentTime) {
-							// 		item.splice(i, 1)
-							// 	}
-							// }
-						})
-						this.multiSelector.push(times)
-						this.daytime = this.multiSelector[0][0].date + " " + this.multiSelector[1][0][0].start_time_period + "-" + this.multiSelector[
-							1][0][0].end_time_period
-						this.is_date_obsolete = this.multiSelector[0][0].date + " " + this.multiSelector[
-							1][0][0].end_time_period
-						this.hospital = this.multiSelector[1][0][0].name
-						this.address = this.multiSelector[1][0][0].address
-						this.jigouid = this.multiSelector[1][0][0].org_id
-						this.is_can_appoint = this.multiSelector[1][0][0].can_appoint_num
-						this.year = this.multiSelector[0][0].date
-						this.yearid = this.multiSelector[1][0][0].id
-						this.distance = parseInt(this.multiSelector[1][0][0].distance) / 1000
-						this.location = {
-							latitude: this.multiSelector[1][0][0].latitude - 0,
-							longitude: this.multiSelector[1][0][0].longitude - 0,
-							name: this.multiSelector[1][0][0].name,
-							address: this.multiSelector[1][0][0].address,
-						}
-						let arr = this.multiSelector[1][0]
-						arr.forEach(item => {
-							item.year = nian[0].date
-						})
-						this.$refs.date.rightday = arr
-						console.log(this.multiSelector)
-					}
-				}
-			},
-			goAdrPostion(itm) {
-				uni.openLocation({
-					latitude: Number(itm.latitude),
-					longitude: Number(itm.longitude),
-					name: itm.name,
-					address: itm.address,
-					success: (res) => {
-						console.log(res)
-					},
-					fail: (err) => {
-						console.log(err)
-					}
-				})
-			},
-			gotoxuanze(e) {
-				if (e.currentTarget.dataset.istrue == 0) {
-					uni.showToast({
-						title: "该医生暂未开通服务",
-						icon: "none",
-						duration: 1500
-					})
-					return false
-				}
-				this.barindex = e.currentTarget.dataset.index
-				if (this.barindex == 3) {
-					this.isjigou = true
-				} else {
-					this.isjigou = false
-				}
-			},
-			phonezixun() {
-				let arr = this.is_date_obsolete.split(/[- :]/)
-				let nndate = new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4]);
-				nndate = Date.parse(nndate)
-				let currentTime = Date.parse(new Date())
-				if (this.barindex == 3) {
-					if (nndate < currentTime) {
-						uni.showToast({
-							title: "不可预约已过时间",
-							icon: "none"
-						})
-						return false
-					}
-				}
-				uni.navigateTo({
-					url: "info_write?doctor=" + JSON.stringify(this.doctor) + "&type=" + this.barindex + "&time=" + this.daytime +
-						"&hospital=" + this.hospital + "&jigou=" + this.jigouid + "&year=" + this.year + "&yearid=" + this.yearid
-				})
-			},
-			xuantime() {
-				if (this.multiSelector.length != 0) {
-					this.dateshow = !this.dateshow
-				} else {
-					uni.showToast({
-						title: "该医生暂未排班",
-						icon: "none"
-					})
-				}
-			},
-			callbacktime(item) {
-				console.log(item)
-				// this.daytime = this.multiSelector[0][arr[0]] + " " + this.multiSelector[1][arr[1]].start_time_period
-				// this.hospital = this.multiSelector[1][arr[1]].name
-				// this.address = this.multiSelector[1][arr[1]].address
-				// this.jigouid = this.multiSelector[1][arr[1]].org_id
-				// this.is_can_appoint = this.multiSelector[1][arr[1]].can_appoint_num
-				// this.year = this.multiSelector[0][arr[0]]
-				// console.log(this.multiSelector[1][arr[1]])
-				// this.yearid = this.multiSelector[1][arr[1]].id
-				// console.log(this.yearid)
-				// this.distance = parseInt(this.multiSelector[1][arr[1]].distance) / 1000
-				this.is_date_obsolete = item.year + " " + item.end_time_period
-				this.daytime = item.year + " " + item.start_time_period + "-" + item.end_time_period
-				this.hospital = item.name
-				this.address = item.address
-				this.jigouid = item.org_id
-				this.is_can_appoint = item.can_appoint_num
-				this.year = item.year
-				this.yearid = item.id
-				this.distance = parseInt(item.distance) / 1000
-				this.dateshow = false
-				this.location = item
-			}
-		}
-	};
-</script>
-
-<style scoped>
-	@import url("../index/mine.css");
-
-	.gridstyle {
-		height: 340rpx;
-		background-color: #fff;
-		border-radius: 16rpx;
-		margin-top: 30rpx;
-		box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);
-	}
-
-	.det-body {
-		z-index: 1;
-		padding-top: 80rpx;
-	}
-
-	.det-bg-img {
-		position: absolute;
-		top: 0;
-		left: 0;
-		right: 0;
-		z-index: 1;
-		display: block;
-		width: 100%;
-		height: 267rpx;
-	}
-
-	.det-head {
-		z-index: 2;
-		box-shadow: 0 0 50rpx 0 rgba(248, 151, 164, 0.13);
-	}
-
-	.det-attention {
-		position: absolute;
-		display: block;
-		bottom: -22rpx;
-		right: 50%;
-		z-index: 1;
-		width: 128rpx;
-		height: auto;
-		margin-right: -64rpx;
-		padding: 4rpx 0;
-		background-color: #F897A1;
-		box-sizing: border-box;
-	}
-
-	.det-attention.active {
-		background-color: #E6E6E6;
-	}
-
-	.det-item {
-		width: calc((100% - 120rpx) / 4);
-	}
-
-	.det-item.active {
-		background-color: rgba(255, 123, 114, 0.24);
-	}
-
-	.det-item .text {
-		color: rgba(0, 0, 0, 0.54);
-	}
-
-	.det-item .price {
-		color: rgba(0, 0, 0, 0.40);
-	}
-
-	.det-item.active .text,
-	.det-item.active .price {
-		color: #FF979C;
-	}
-
-	.det-item.disabled .text,
-	.det-item.disabled .price {
-		color: rgba(0, 0, 0, 0.3);
-	}
-
-	.button-reset {
-		height: 102rpx;
-		background: none !important;
-		color: rgba(0, 0, 0, 0.54) !important;
-	}
-
-	button::after {
-		border: none;
-	}
-
-	.button-reset::after {
-		border: none;
-	}
-
-	.package-list {
-		width: 100%;
-		height: 178rpx;
-		overflow: hidden;
-	}
-
-	.package-list .warp {
-		white-space: nowrap;
-		overflow: scroll;
-	}
-
-	.package-list .warp .list {
-		background: red;
-		display: inline-block;
-		font-size: 14px;
-		width: 266rpx;
-		height: 178rpx;
-		background: linear-gradient(270deg, rgba(255, 100, 101, 1) 0%, rgba(255, 148, 133, 1) 100%);
-		box-shadow: 0px 3px 5px 0px rgba(255, 110, 110, 0.5);
-		border-radius: 8rpx;
-		margin-right: 18rpx;
-		padding: 30rpx 20rpx 24rpx 20rpx;
-		overflow: hidden;
-	}
-
-	.package-list .warp .list:nth-child(3) {
-		margin-right: 0;
-	}
-
-	.package-list .warp .list .name {
-		font-size: 30rpx;
-		font-weight: 500;
-		color: rgba(255, 255, 255, 1);
-		line-height: 30rpx;
-	}
-
-	.package-list .warp .list .desc {
-		font-size: 24rpx;
-		font-weight: 400;
-		color: rgba(255, 255, 255, .87);
-		margin-top: 16rpx;
-		line-height: 24rpx;
-	}
-
-	.package-list .warp .list .price {
-		font-size: 24rpx;
-		font-weight: 500;
-		color: rgba(255, 255, 255, 1);
-		margin-top: 30rpx;
-		line-height: 24rpx;
-	}
-
-	.det-desc {
-		height: 40px;
-		overflow: hidden;
-	}
-
-	.det-desc.active {
-		height: auto;
-	}
-
-	.follow_style {
-		position: absolute;
-		bottom: -12rpx;
-		left: 8rpx;
-		z-index: 1;
-		width: 106rpx;
-		height: 40rpx;
-		padding: 4rpx 0;
-		background-color: rgb(208, 105, 150);
-		box-sizing: border-box;
-		color: #fff;
-		text-align: center;
-		border-radius: 60rpx;
-		font-size: 24rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
+<template>
+	<view class="main">
+		<view class="u-skeleton">
+			<view class="pr det-body">
+				<image class="det-bg-img" mode="scaleToFill" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/img/doctorbanner.png"></image>
+				<view class="det-head pr plr15 bdr8 m-bg-white mlr15 pt25 u-skeleton-fillet">
+					<view class="m-xstart pr m-bottom-line pb25 margin-bottom-sm">
+						<view class="m-flex overflow mr10">
+							<view class="flex align-center">
+								<text class="dpb fb f16">{{doctor.name||''}}</text>
+								<text class="dpb f14 m-gray-small ml5" v-for="(itm,index) in doctor.label_texts" :key="index">{{itm.label_name||''}}</text>
+
+							</view>
+							<view class="dpb m-flex margin-top-sm">科室:{{doctor.office.name||'暂无'}} {{doctor.qualification.name||'暂无'}}</view>
+							<view class="m-xend mt12">
+								<view class="f12 m-gray-big">评分:<text class="m-theme">{{doctor.score}}</text>
+									<text class="f11 margin-left-xs">分</text>
+								</view>
+								<view class="f12 ml15 m-gray-big">服务:<text class="m-theme">{{doctor.service_persons}}</text>
+									<text class="f11">人</text>
+								</view>
+								<view class="m-flex ml15 text-sm">距离:<text class="text-sm">{{doctor.distance!='未知'?parseInt(doctor.distance/1000)+'km':'未知'}}</text></view>
+							</view>
+						</view>
+						<view class="pr pt5">
+							<view class="follow_style" @click="submitCollect" :data-index="index" :data-id="doctor.id" v-if="doctor.is_collect==0">
+								关注
+							</view>
+							<view class="follow_style" @click="submitCollect" :data-index="index" :data-id="doctor.id" style="background-color: #fff;color: rgb(208, 105, 150);border:2rpx solid rgb(208, 105, 150);"
+							 v-else>
+								已关注
+							</view>
+							<u-image shape="circle" width="120rpx" height="120rpx" :src="doctor.avatar"></u-image>
+						</view>
+					</view>
+					<u-read-more :toggle="true" show-height="0" :shadow-style="shadowStyle" close-text=" " open-text=" ">
+						<rich-text :nodes="doctor.intro"></rich-text>
+					</u-read-more>
+				</view>
+			</view>
+			<view class="gridstyle padding-sm margin-lr-sm u-skeleton-fillet">
+				<u-grid :col="3" :border="false">
+					<view @click="gotoxuanze" data-index="1" data-name="电话咨询" :data-istrue="doctor.is_phone">
+						<u-grid-item :bg-color="barindex==1&&doctor.is_phone==1?'#efefef':'#fff'">
+							<u-image width="120rpx" height="120rpx" :src="doctor.is_phone==1&&doctor.is_can_phone==1?'https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/indexphone.png':'/static/img/phone_gray.png'"
+							 shape="circle"></u-image>
+							<view class="grid-text margin-top-sm" :style="doctor.is_phone==1&&doctor.is_can_phone==1?'color:black;':'color:rgb(219,219,219)'">电话咨询</view>
+						</u-grid-item>
+					</view>
+					<view class="" @click="gotoxuanze" data-index="2" data-name="图文咨询" :data-istrue="doctor.is_chat">
+						<u-grid-item :bg-color="barindex==2&&doctor.is_chat==1?'#efefef':'#fff'">
+							<u-image width="120rpx" height="120rpx" :src="doctor.is_chat==1&&doctor.is_can_chat==1?'https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/indextu.png':'/static/img/chat_gray.png'"
+							 shape="circle"></u-image>
+							<view class="grid-text margin-top-sm" :style="doctor.is_chat==1&&doctor.is_can_chat==1?'color:black;':'color:rgb(219,219,219)'">图文咨询</view>
+						</u-grid-item>
+
+					</view>
+					<view class="" @click="gotoxuanze" data-index="3" data-name="门诊预约" :data-istrue="doctor.is_appoint">
+						<u-grid-item :bg-color="barindex==3&&doctor.is_appoint==1?'#efefef':'#fff'">
+							<u-image width="120rpx" height="120rpx" :src="doctor.is_appoint==1?'https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/indexmen.png':'/static/img/yuyue_gray.png'"
+							 shape="circle"></u-image>
+							<view class="grid-text margin-top-sm" :style="doctor.is_appoint==1?'color:black;':'color:rgb(219,219,219)'">门诊预约</view>
+						</u-grid-item>
+					</view>
+				</u-grid>
+				<u-line color="#efefef" :hair-line="true" />
+				<view v-if="!isjigou" class="text-lg text-center margin-top-sm" style="color: rgb(238, 170, 63);">
+					平均回复低至1分钟
+				</view>
+				<view v-else class="text-lg margin-top-sm" style="color: rgb(238, 170, 63);border-bottom: 3rpx solid rgb(238, 170, 63); width: 530rpx;"
+				 @click="xuantime">
+					已选时间:{{daytime||'该医生暂未排班'}}
+					<!-- <u-picker mode="multiSelector" @confirm="callbacktime" v-model="show"  range-key="start_time_period"
+					 :range="multiSelector"></u-picker> -->
+				</view>
+			</view>
+			<view class="" v-if="isjigou">
+				<view @click="goAdrPostion(itm)" v-for="(itm,idx) in doctor.organization" :key="idx" class="pr pt10 pb10 margin-lr-sm margin-top-sm m-bg-white"
+				 style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+					<view class="pr">
+						<view class="f18 fb plr15">机构地址</view>
+						<view class="pr m-xcenter plr15 mt15">
+							<image class="dpb" mode="scaleToFill" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAABx0lEQVQoU2WSP2gTcRTHv+/dH4IdmkVcFAvSgihNLi1SRKE4uNhek4I6iNLY5AQnB93dpHNBMEltIbgUc5pUF0F0cDBIk2twKiJBBAWHVgOl5u5+TxrINeCbvnz5Pnh8vo8wMBPOE8NXx6YIcpKJfu74Ox/aa9n9foT6IrFYtVjjMkHOHO7TV6Ww6JVm3x94vXBy4fkombGPUMEwEW+oMPRY44QAs0TcDfzwUms1Xe+FrXztJURsIdz0inPPkgsv4t5aZjd5u3qDGGUiqjeK9nmauLo+rOLmDyJuNQr2VMrZWBJR90DacrMwc9/K1+qAmvQDjNB4rnJcg/aN2Kg2ClcyqTuvP0nYnWQ2vM3CjGU5tQpE5gPfP03T0+/036OdLwBinT19bCjmn2JCPoBa6SreHtJpWwTdzvf2WO/mRM7NaqQ/BeFN92949/Oe3z57xBgxTe0xgMuhCm9trWTKfXSUcmquKJUGUQBgF0AcIroQvfKKtg2QRJyt7PpRMmKbosITEWfW2vD3zzVXr/2KOEfFOO4FFu0tRJnE+h8odbFRmmv912DfSObcB8zGI5HgerOYqQy+Q3TGofmQE7nx9FZp3h0MHuh/o0mz0Kcr4U0AAAAASUVORK5CYII="
+							 style="width: 10px; height: 12px;"></image>
+							<view class="m-flex tl ml5">{{itm.name||'无'}}</view>
+						</view>
+						<view class="pr m-xcenter plr15 mt10">
+							<view class="m-flex tl m-gray-small f12 pl15 mr5">地址:{{itm.address||'无'}}</view>
+							<view class="pt2 pb2 plr10 f12 m-gray-small br-gray-letter bdr30" v-if="itm.distance!='0'">
+								{{itm.distance/1000||'暂无距离'}}km
+							</view>
+							<view class="pt2 pb2 plr10 f12 m-gray-small br-gray-letter bdr30" wx:else>暂无距离</view>
+							<text class="dpb iconfont icon-arrow-right m-gray-letter f20"></text>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="margin-lr-sm mt15 bg-white u-skeleton-fillet" style="border-radius: 16rpx; box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);"
+			 v-if="doctor.evaluate.length!=0">
+				<view class="f18 fb flex align-center plr15 pt15">患者评价 <text class="f12 m-gray-letter margin-left-xs">({{doctor.evaluate.length}})</text>
+				</view>
+				<view class="cu-list menu-avatar card-menu">
+					<view class="cu-item" v-for="(item,index) in doctor.evaluate" :key="index">
+						<view class="cu-avatar round lg" :style="'background-image:url('+item.user.avatar+');'"></view>
+						<view class="content">
+							<view class="text-grey margin-right-sm">
+								{{item.user.nickname}}
+								<u-rate :count="5" v-model="item.score" :disabled="true"></u-rate>
+							</view>
+							<view class="text-gray text-sm flex">
+								<text class="text-cut">
+									{{item.content}}
+								</text>
+							</view>
+						</view>
+						<view class="action" style="width: 124rpx;">
+							<view class="text-grey text-xs">{{item.created_at}}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="cu-tabbar-height"></view>
+			<view class="cu-tabbar-height"></view>
+		</view>
+		<view class="cu-bar bg-white tabbar border shop" style="position: fixed; bottom: 0; z-index: 99;width: 100%;">
+			<button class="action text-orange" open-type="share" style="width: 200rpx;">
+				<view class="cuIcon-share text-orange">
+				</view>
+				分享
+			</button>
+			<button v-if="barindex==1" class="submit text-white" :disabled="isphone||doctor.is_can_phone!=1" @click="phonezixun"
+			 :style="!isphone&&doctor.is_can_phone==1?'background-color: rgb(11,115,186);font-size: 26rpx;':'font-size: 26rpx;color:gray'">电话咨询</button>
+			<button v-else-if="barindex==2" class="submit text-white" :disabled="istuwen||doctor.is_can_chat!=1" @click="phonezixun"
+			 :style="!istuwen&&doctor.is_can_chat==1?'background-color: rgb(11,115,186);font-size: 26rpx;':'font-size: 26rpx;color:gray'">图文咨询</button>
+			<button v-else class="submit text-white" @click="phonezixun" :disabled="ismenzhen||daytime==''||is_can_appoint==0"
+			 :style="!ismenzhen&&daytime!=''&&is_can_appoint!=0?'background-color: rgb(11,115,186);font-size: 26rpx;':'font-size: 26rpx;color:gray'">门诊预约</button>
+		</view>
+		<u-no-network></u-no-network>
+		<u-skeleton :loading="loading" el-color="#ddd" :animation="true" bgColor="#FFF"></u-skeleton>
+		<u-popup v-model="dateshow" :safe-area-inset-bottom="true" mode="bottom" border-radius="14" length="50%" height="700rpx">
+			<datepicker :date="multiSelector" @callbacktime="callbacktime" ref="date"></datepicker>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import datepicker from '../../components/datepicker/datepicker'
+	var user = require('../../common/user.js');
+	export default {
+		components: {
+			datepicker
+		},
+		onLoad(options) {
+			this.doctorid = options.id
+			if (options.time != undefined) {
+				this.daytime = options.time
+			}
+
+			this.barindex = options.index
+			if (this.barindex == 3) {
+				this.isjigou = true
+			} else {
+				this.isjigou = false
+			}
+			console.log(this.daytime)
+		},
+		onShow() {
+			this.gettime()
+			this.getdoctorInfo()
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+				doctorid: "",
+				doctor: {},
+				shadowStyle: {
+					backgroundImage: "none"
+				},
+				isjigou: false,
+				barindex: 1, //显示按钮
+				daytime: "",
+				multiSelector: [],
+				show: false,
+				istime: false,
+				hospital: "",
+				address: "",
+				distance: "",
+				jigouid: "",
+				year: "",
+				yearid: "",
+				isphone: false,
+				istuwen: false,
+				ismenzhen: false,
+				loading: false,
+				is_can_appoint: "",
+				dateshow: false,
+				is_date_obsolete: "",
+				location: {}
+
+			}
+		},
+		methods: {
+			getdoctorInfo: async function() {
+				this.loading = true
+				let res = await this.$request.post("/api/v1/docter/docterDetail", {
+					docter_id: this.doctorid,
+					latitude: uni.getStorageSync("latitude"),
+					longitude: uni.getStorageSync("longitude")
+				})
+				console.log(res)
+				if (res) {
+					this.loading = false
+				}
+				this.doctor = res
+				this.doctor.is_chat != 0 ? this.istuwen = false : this.istuwen = true
+				this.doctor.is_phone != 0 ? this.isphone = false : this.isphone = true
+				this.doctor.is_appoint != 0 || this.multiSelector.length != 0 ? this.ismenzhen = false : this.ismenzhen = true
+				console.log(this.ismenzhen)
+
+			},
+			submitCollect: async function(e) {
+				let res = await this.$request.post("/api/v1/collection/submitCollect", {
+					type: 1,
+					relation_id: e.currentTarget.dataset.id
+				})
+				let status = user.islogin(res)
+				if (status) {
+					if (res.data.is_collect == 0) {
+						uni.showToast({
+							title: "取消成功",
+							icon: "none"
+						})
+						this.doctor.is_collect = res.data.is_collect
+					} else {
+						uni.showToast({
+							title: "关注成功",
+							icon: "none"
+						})
+						this.doctor.is_collect = res.data.is_collect
+					}
+				}
+			},
+			gettime: async function() {
+				this.multiSelector = []
+				let res = await this.$request.post("/api/v1/docter/schedulePeriodList", {
+					docter_id: this.doctorid,
+					latitude: uni.getStorageSync('latitude'),
+					longitude: uni.getStorageSync('longitude')
+				})
+				if (res.status == 0) {
+					if (res.data.data.length != 0) {
+						// let nian = res.data.data.map(item => {
+						// 	return item.schedule_date
+						// })
+						// let time = res.data.data.map(item => {
+						// 	return item.schedule_period.map(itm => {
+						// 		itm.organization.org_id = itm.organization['id']
+						// 		return {
+						// 			can_appoint_num: itm.can_appoint_num,
+						// 			...itm.organization,
+						// 			...itm.time_period
+						// 		}
+						// 	})
+						// })
+						// time[0].forEach(item => {
+						// 	item.start_time_period = item.start_time_period + '-' + item.end_time_period
+						// })
+						// this.multiSelector.push(nian)
+						// time[0].sort((a,b)=> {return a.end_time_period>b.end_time_period?1:-1})
+						// this.multiSelector.push(time[0])
+						// console.log(this.multiSelector)
+						// this.daytime = this.multiSelector[0][0] + " " + this.multiSelector[1][0].start_time_period
+						// this.hospital = this.multiSelector[1][0].name
+						// this.address = this.multiSelector[1][0].address
+						// this.jigouid = this.multiSelector[1][0].org_id
+						// this.is_can_appoint = this.multiSelector[1][0].can_appoint_num
+						// this.year = this.multiSelector[0][0]
+						// console.log(this.jigouid)
+						// this.yearid = this.multiSelector[1][0].id
+						// console.log(this.yearid)
+						// this.distance = parseInt(this.multiSelector[1][0].distance) / 1000
+
+						let times = []
+						let nian = res.data.data.map(item => {
+							if (item.schedule_period.length != 0) {
+								return {
+									date: item.schedule_date,
+									id: item.id,
+									week: item.week
+								}
+							}
+						})
+						res.data.data.forEach(item => {
+							if (item.schedule_period.length != 0) {
+								let time = item.schedule_period.map(itm => {
+									if (item.id == itm.schedule_id) {
+										if (itm.time_period != null) {
+											itm.organization.org_id = itm.organization['id']
+											return {
+												yeardate: itm.schedule_date,
+												schedule_id: itm.schedule_id,
+												can_appoint_num: itm.can_appoint_num,
+												...itm.organization,
+												...itm.time_period
+											}
+										}
+
+									}
+								})
+								time = time.filter(item => item !== undefined)
+								times.push(time)
+							}
+
+						})
+						nian = nian.filter(item => item !== undefined)
+						this.multiSelector.push(nian)
+						times.forEach((item, index) => {
+							item.sort((a, b) => {
+								return a.end_time_period > b.end_time_period ? 1 : -1
+							})
+							// for (let i = item.length - 1; i >= 0; i--) {
+							// 	let arr = item[i].yeardate + " " + item[i].end_time_period;
+							// 	arr = arr.split(/[- :]/)
+							// 	let nndate = Date.parse(new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4]));
+							// 	let currentTime = Date.parse(new Date())
+							// 	// console.log(nndate<currentTime,index)
+							// 	if (nndate < currentTime) {
+							// 		item.splice(i, 1)
+							// 	}
+							// }
+						})
+						this.multiSelector.push(times)
+						this.daytime = this.multiSelector[0][0].date + " " + this.multiSelector[1][0][0].start_time_period + "-" + this.multiSelector[
+							1][0][0].end_time_period
+						this.is_date_obsolete = this.multiSelector[0][0].date + " " + this.multiSelector[
+							1][0][0].end_time_period
+						this.hospital = this.multiSelector[1][0][0].name
+						this.address = this.multiSelector[1][0][0].address
+						this.jigouid = this.multiSelector[1][0][0].org_id
+						this.is_can_appoint = this.multiSelector[1][0][0].can_appoint_num
+						this.year = this.multiSelector[0][0].date
+						this.yearid = this.multiSelector[1][0][0].id
+						this.distance = parseInt(this.multiSelector[1][0][0].distance) / 1000
+						this.location = {
+							latitude: this.multiSelector[1][0][0].latitude - 0,
+							longitude: this.multiSelector[1][0][0].longitude - 0,
+							name: this.multiSelector[1][0][0].name,
+							address: this.multiSelector[1][0][0].address,
+						}
+						let arr = this.multiSelector[1][0]
+						arr.forEach(item => {
+							item.year = nian[0].date
+						})
+						this.$refs.date.rightday = arr
+						console.log(this.multiSelector)
+					}
+				}
+			},
+			goAdrPostion(itm) {
+				uni.openLocation({
+					latitude: Number(itm.latitude),
+					longitude: Number(itm.longitude),
+					name: itm.name,
+					address: itm.address,
+					success: (res) => {
+						console.log(res)
+					},
+					fail: (err) => {
+						console.log(err)
+					}
+				})
+			},
+			gotoxuanze(e) {
+				if (e.currentTarget.dataset.istrue == 0) {
+					uni.showToast({
+						title: "该医生暂未开通服务",
+						icon: "none",
+						duration: 1500
+					})
+					return false
+				}
+				this.barindex = e.currentTarget.dataset.index
+				if (this.barindex == 3) {
+					this.isjigou = true
+				} else {
+					this.isjigou = false
+				}
+			},
+			phonezixun() {
+				let arr = this.is_date_obsolete.split(/[- :]/)
+				let nndate = new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4]);
+				nndate = Date.parse(nndate)
+				let currentTime = Date.parse(new Date())
+				if (this.barindex == 3) {
+					if (nndate < currentTime) {
+						uni.showToast({
+							title: "不可预约已过时间",
+							icon: "none"
+						})
+						return false
+					}
+				}
+				uni.navigateTo({
+					url: "info_write?doctor=" + JSON.stringify(this.doctor) + "&type=" + this.barindex + "&time=" + this.daytime +
+						"&hospital=" + this.hospital + "&jigou=" + this.jigouid + "&year=" + this.year + "&yearid=" + this.yearid
+				})
+			},
+			xuantime() {
+				if (this.multiSelector.length != 0) {
+					this.dateshow = !this.dateshow
+				} else {
+					uni.showToast({
+						title: "该医生暂未排班",
+						icon: "none"
+					})
+				}
+			},
+			callbacktime(item) {
+				console.log(item)
+				// this.daytime = this.multiSelector[0][arr[0]] + " " + this.multiSelector[1][arr[1]].start_time_period
+				// this.hospital = this.multiSelector[1][arr[1]].name
+				// this.address = this.multiSelector[1][arr[1]].address
+				// this.jigouid = this.multiSelector[1][arr[1]].org_id
+				// this.is_can_appoint = this.multiSelector[1][arr[1]].can_appoint_num
+				// this.year = this.multiSelector[0][arr[0]]
+				// console.log(this.multiSelector[1][arr[1]])
+				// this.yearid = this.multiSelector[1][arr[1]].id
+				// console.log(this.yearid)
+				// this.distance = parseInt(this.multiSelector[1][arr[1]].distance) / 1000
+				this.is_date_obsolete = item.year + " " + item.end_time_period
+				this.daytime = item.year + " " + item.start_time_period + "-" + item.end_time_period
+				this.hospital = item.name
+				this.address = item.address
+				this.jigouid = item.org_id
+				this.is_can_appoint = item.can_appoint_num
+				this.year = item.year
+				this.yearid = item.id
+				this.distance = parseInt(item.distance) / 1000
+				this.dateshow = false
+				this.location = item
+			}
+		}
+	};
+</script>
+
+<style scoped>
+	@import url("../index/mine.css");
+
+	.gridstyle {
+		height: 340rpx;
+		background-color: #fff;
+		border-radius: 16rpx;
+		margin-top: 30rpx;
+		box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);
+	}
+
+	.det-body {
+		z-index: 1;
+		padding-top: 80rpx;
+	}
+
+	.det-bg-img {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		z-index: 1;
+		display: block;
+		width: 100%;
+		height: 267rpx;
+	}
+
+	.det-head {
+		z-index: 2;
+		box-shadow: 0 0 50rpx 0 rgba(248, 151, 164, 0.13);
+	}
+
+	.det-attention {
+		position: absolute;
+		display: block;
+		bottom: -22rpx;
+		right: 50%;
+		z-index: 1;
+		width: 128rpx;
+		height: auto;
+		margin-right: -64rpx;
+		padding: 4rpx 0;
+		background-color: #F897A1;
+		box-sizing: border-box;
+	}
+
+	.det-attention.active {
+		background-color: #E6E6E6;
+	}
+
+	.det-item {
+		width: calc((100% - 120rpx) / 4);
+	}
+
+	.det-item.active {
+		background-color: rgba(255, 123, 114, 0.24);
+	}
+
+	.det-item .text {
+		color: rgba(0, 0, 0, 0.54);
+	}
+
+	.det-item .price {
+		color: rgba(0, 0, 0, 0.40);
+	}
+
+	.det-item.active .text,
+	.det-item.active .price {
+		color: #FF979C;
+	}
+
+	.det-item.disabled .text,
+	.det-item.disabled .price {
+		color: rgba(0, 0, 0, 0.3);
+	}
+
+	.button-reset {
+		height: 102rpx;
+		background: none !important;
+		color: rgba(0, 0, 0, 0.54) !important;
+	}
+
+	button::after {
+		border: none;
+	}
+
+	.button-reset::after {
+		border: none;
+	}
+
+	.package-list {
+		width: 100%;
+		height: 178rpx;
+		overflow: hidden;
+	}
+
+	.package-list .warp {
+		white-space: nowrap;
+		overflow: scroll;
+	}
+
+	.package-list .warp .list {
+		background: red;
+		display: inline-block;
+		font-size: 14px;
+		width: 266rpx;
+		height: 178rpx;
+		background: linear-gradient(270deg, rgba(255, 100, 101, 1) 0%, rgba(255, 148, 133, 1) 100%);
+		box-shadow: 0px 3px 5px 0px rgba(255, 110, 110, 0.5);
+		border-radius: 8rpx;
+		margin-right: 18rpx;
+		padding: 30rpx 20rpx 24rpx 20rpx;
+		overflow: hidden;
+	}
+
+	.package-list .warp .list:nth-child(3) {
+		margin-right: 0;
+	}
+
+	.package-list .warp .list .name {
+		font-size: 30rpx;
+		font-weight: 500;
+		color: rgba(255, 255, 255, 1);
+		line-height: 30rpx;
+	}
+
+	.package-list .warp .list .desc {
+		font-size: 24rpx;
+		font-weight: 400;
+		color: rgba(255, 255, 255, .87);
+		margin-top: 16rpx;
+		line-height: 24rpx;
+	}
+
+	.package-list .warp .list .price {
+		font-size: 24rpx;
+		font-weight: 500;
+		color: rgba(255, 255, 255, 1);
+		margin-top: 30rpx;
+		line-height: 24rpx;
+	}
+
+	.det-desc {
+		height: 40px;
+		overflow: hidden;
+	}
+
+	.det-desc.active {
+		height: auto;
+	}
+
+	.follow_style {
+		position: absolute;
+		bottom: -12rpx;
+		left: 8rpx;
+		z-index: 1;
+		width: 106rpx;
+		height: 40rpx;
+		padding: 4rpx 0;
+		background-color: rgb(208, 105, 150);
+		box-sizing: border-box;
+		color: #fff;
+		text-align: center;
+		border-radius: 60rpx;
+		font-size: 24rpx;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
 </style>