宇宙无敌M1处理器的MacBook Pro 4 anos atrás
pai
commit
c1c0536ec1

+ 5 - 2
components/datepicker/datepicker.vue

xqd xqd xqd
@@ -21,7 +21,7 @@
 							{{itm.intro}}
 						</view>
 						<view class="margin-top-sm">{{itm.start_time_period}} - {{itm.end_time_period}}</view>
-						<view v-if="itm.can_appoint==1"
+						<view v-if="itm.can_appoint==1||type==3||type==5"
 							:class="itm.can_appoint_num==0?'margin-top-sm text-gray text-sm':'margin-top-sm text-blue text-sm'">
 							可预约号源:{{itm.can_appoint_num}}
 						</view>
@@ -40,6 +40,9 @@
 		props: {
 			date: {
 				type: Array,
+			},
+			type: {
+				type: String
 			}
 		},
 		mounted() {},
@@ -91,7 +94,7 @@
 					})
 				})
 			},
-			selectday(itm) {
+			selectday(itm) {
 				console.log(itm)
 				let arr = itm.year + " " + itm.end_time_period;
 				arr = arr.split(/[- :]/)

+ 378 - 359
pages/archives/archives_info.vue

xqd
@@ -1,360 +1,379 @@
-<template>
-	<view class="main">
-		<view class="header-content">
-			<image src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/img/mybanner.png" style="width:100%;height:260rpx;"></image>
-		</view>
-		<view class="pr" style="z-index:2">
-			<view class="plr15">
-				<view class="bdr4 pb20">
-					<view class="m-dpflex m-justify-start m-align-center" style="height: 165rpx;">
-						<image binderror="_binderror" mode="scaleToFill" :src="infodata.patient.avatar" style="width: 120rpx;height: 120rpx;border-radius: 50%;"></image>
-						<text class="line1 f20 fb plr15 text-white">{{infodata.patient.name}}</text>
-						<view class="pr tr m-flex">
-							<navigator hoverClass="none" :url="'add_archives?info='+JSON.stringify(infodata.patient)">
-								<u-icon name="arrow-right" color="#fff" size="36"></u-icon>
-							</navigator>
-						</view>
-					</view>
-					<view class=" header-box" style="padding: 0 8rpx;background-color: #fff;border-radius: 16rpx;">
-						<view class="cu-list menu">
-							<view class="cu-item arrow" @click="gotoupcard(infodata.patient)">
-								<view class="content">
-									<text class="text-grey">证件照</text>
-								</view>
-								<view class="action">
-									<!-- <text v-if="infodata.patient.card_img_url==''" class="text-grey text-sm">未上传</text>
-									<text v-else class="text-grey text-sm">已上传</text> -->
-								</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="fb f18 plr20" style="margin-bottom: 24rpx;" v-if="infodata.orders.cases.length!=0">病例信息</view>
-		<view class="margin-lr-sm">
-			<view class="margin-top-sm" v-for="(item,index) in infodata.orders.cases" :key="index" style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
-				<view class="flex justify-between align-center bg-white" style="padding: 28rpx;border-radius: 16rpx;">
-					<view class="jinxing">
-						<text style="display: inline-block;width: 12rpx;height: 12rpx;border-radius: 50%;background-color:#EEAA3F;margin-right: 8rpx;"></text>
-						<text v-if="item.order_status==3">进行中</text>
-						<text v-else-if="item.order_status==1">未支付</text>
-						<text v-else-if="item.order_status==2">待接单</text>
-						<text v-else-if="item.order_status==4">已完成</text>
-						<text v-else>已取消</text>
-					</view>
-					<text class="phonezi" v-if="item.product_type==1">电话咨询</text>
-					<text class="phonezi" v-else-if="item.product_type==2">图文咨询</text>
-					<text class="phonezi" v-else-if="item.product_type==3">门诊预约</text>
-					<text class="phonezi" v-else-if="item.product_type==4">疫苗接种预约</text>
-					<text class="phonezi" v-else-if="item.product_type==5">儿保预约</text>
-					<text class="phonezi" v-else-if="item.product_type==6">服务包</text>
-				</view>
-				<view class="" style="background: #FBFBFB;padding: 28rpx; border-radius: 16rpx;" v-if="item.product_type!=5&&item.product_type!=4">
-					<view class="nametaile flex align-center">
-						<text>{{item.docter.name}}</text>
-						<text class="text_style" v-for="(itm,idx) in item.docter.label_texts" :key="index">{{itm.label_name}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						科室:<text style="color: #333333;">{{item.docter.office.name||'暂无'}} {{item.docter.qualification.name||'暂无'}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						编号:<text style="color: #333333;">{{item.order_sn}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						咨询时间:<text style="color: #333333;">{{item.created_at}}</text>
-					</view>
-				</view>
-				<view class="" style="background: #FBFBFB;padding: 28rpx; border-radius: 16rpx;" v-else>
-					<view class="nametaile flex align-center">
-						<text>{{item.organization.docter[0].name}}</text>
-						<text class="text_style" v-for="(itm,idx) in item.organization.docter[0].label_texts" :key="index">{{itm.label_name}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						科室:<text style="color: #333333;">{{item.organization.docter[0].office.name||'暂无'}} {{item.organization.docter[0].qualification.name||'暂无'}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						编号:<text style="color: #333333;">{{item.order_sn}}</text>
-					</view>
-					<view class="textstyle margin-top-xs">
-						咨询时间:<text style="color: #333333;">{{item.created_at}}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="fb f18 plr20" style="margin-bottom: 24rpx;margin-top: 40rpx;" v-if="infodata.orders.service_packs.length!=0">服务包</view>
-		<view style="width: 100vw;height: auto;background-color: #f6f6f6;">
-			<view style="width: 100%;height: 100%;">
-				<view v-for="(item,index) in infodata.orders.service_packs" :key="index">
-					<view class="card flex justify-center">
-						<view class="taocan" :data-id="item.order_pack.id" @click="details">
-							<view class="tc_left">
-								<text>{{item.order_pack.pack_name}}</text>
-							</view>
-							<view class="tc_right">
-								<view style="width: 100%;">
-									<view class="text">{{item.order_pack.pack_intro}}</view>
-									<!-- <view class="text">{{item.desc}}</view> -->
-									<view class="text">
-										<text style="text-align: left;">时长:{{item.order_pack.effective_days}}天</text>
-										<text style="float: right;color: #FF4F61;font-weight: bold;">¥{{item.order_pack.pack_price/100}}</text>
-									</view>
-								</view>
-								<view class="margin-top-xs">
-									剩余时长:<u-count-down v-if="true" color="#EEAA3F" separator="zh" :timestamp="item.order_pack.end_time-miao"></u-count-down><text
-									 v-else>已结束</text>
-								</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<u-empty text="暂无数据" :show="show" mode="order" margin-top="300"></u-empty>
-		<view class="cu-tabbar-height"></view>
-		<view class="cu-tabbar-height"></view>
-	</view>
-</template>
-
-<script>
-	export default {
-		onLoad(options) {
-			this.id = options.id
-		},
-		onShow() {
-			this.getarchivesInfo()
-			this.miao = parseInt(new Date().getTime() / 1000)
-		},
-		mounted() {
-
-		},
-		data() {
-			return {
-				id: "",
-				infodata: "",
-				miao: "",
-				show: false
-			}
-		},
-		methods: {
-			getarchivesInfo: async function() {
-				let res = await this.$request.post("/api/v1/patient/patientDetail", {
-					patient_id: this.id
-				})
-				console.log(res)
-				if (res.status == 0) {
-					this.infodata = res.data
-				}
-				if (this.infodata.orders.cases.length == 0 && this.infodata.orders.service_packs.length == 0) {
-					this.show = true
-				} else {
-					this.show = false
-				}
-			},
-			// gotoupcard(item) {
-			// 	let imglist = [{
-			// 		url: item.card_img_url
-			// 	}, {
-			// 		url: item.card_back_img_url
-			// 	}]
-			// 	uni.navigateTo({
-			// 		url: "upcard?id=" + item.id + "&data=" + JSON.stringify(imglist)
-			// 	})
-			// }
-		}
-	};
-</script>
-
-<style scoped lang="scss">
-	@import url("../index/mine.css");
-
-	.main {}
-
-	.text_style {
-		font-weight: 400;
-		margin-left: 15rpx;
-		background-color: #E5F5FF;
-		color: #0B73B9;
-		// width: 100rpx;
-		height: 28rpx;
-		font-size: 20rpx;
-		border-radius: 10rpx;
-		text-align: center;
-		align-items: center;
-	}
-
-	.nametaile {
-		font-size: 30rpx;
-		font-weight: 500;
-		color: #333333;
-	}
-
-	.textstyle {
-		font-size: 26rpx;
-		color: #666666;
-		font-weight: 400;
-	}
-
-	.phonezi {
-		width: 160rpx;
-		height: 54rpx;
-		background: #F6F6F6;
-		border-radius: 27rpx;
-		font-size: 28rpx;
-		font-family: PingFangSC-Regular, PingFang SC;
-		font-weight: 400;
-		color: #666666;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.jinxing {
-		height: 30rpx;
-		font-size: 30rpx;
-		font-family: PingFangSC-Medium, PingFang SC;
-		font-weight: 500;
-		color: #EEAA3F;
-		display: flex;
-		align-items: center;
-	}
-
-	.header-content {
-		position: absolute;
-		top: 0;
-		right: 0;
-		bottom: 0;
-		left: 0;
-		width: 100%;
-		z-index: -1;
-		overflow: hidden;
-		box-sizing: border-box;
-	}
-
-	.header-box {
-		box-shadow: 0px 8rpx 34rpx -6rpx rgba(248, 151, 164, 0.13);
-	}
-
-	.header-img {
-		width: 36rpx;
-		height: 36rpx;
-	}
-
-	.tip {
-		position: absolute;
-		top: 0;
-		right: 20%;
-		bottom: 0;
-		background-color: red;
-		width: 12rpx;
-		height: 12rpx;
-		border-radius: 50%;
-	}
-
-	.msg {
-		top: -3rpx;
-		right: -9rpx;
-	}
-
-	swiper {
-		height: 320rpx;
-	}
-
-	.swiper-wrapper {
-		padding: 0 10rpx;
-		box-sizing: border-box;
-	}
-
-	.swiper-item {
-		width: 100%;
-		height: 300rpx;
-		box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
-		background: url("http://file.supermm.me/miniProgram/images/personal/bg_doc.png") no-repeat bottom center;
-	}
-
-	.dots {
-		position: absolute;
-		left: 0;
-		right: 0;
-		bottom: -40rpx;
-		display: flex;
-		justify-content: center;
-	}
-
-	.dots .dot {
-		margin: 0 8rpx;
-		width: 14rpx;
-		height: 14rpx;
-		background: #E4E4E4;
-		border-radius: 8rpx;
-		transition: all .6s;
-	}
-
-	.dots .dot.active {
-		width: 24rpx;
-		background: rgb(153, 153, 153);
-	}
-
-	.game-wrap {
-		position: relative;
-		width: 100%;
-		height: 100%;
-		overflow: hidden;
-		box-sizing: border-box;
-	}
-
-	.game-item {
-		height: 100%;
-		background: url("https://file.supermm.me/h5/wechat-h5/integral/personeBg001.jpg") no-repeat;
-		background-size: 100% 100%;
-		background-position: center center;
-		border-radius: 100rpx;
-	}
-
-	.card {
-		width: 100%;
-		height: auto;
-		margin-top: 20rpx;
-
-		// background-image: url(../../static/服务包.png);
-		.taocan {
-			width: 710rpx;
-			height: 230rpx;
-			position: relative;
-			display: flex;
-			border-radius: 10rpx;
-			background: radial-gradient(circle at right top, transparent 15rpx, #ffffff 0) top left / 152rpx 51% no-repeat,
-				radial-gradient(circle at right bottom, transparent 15rpx, #ffffff 0) bottom left /152rpx 51% no-repeat,
-				radial-gradient(circle at left top, transparent 15rpx, #ffffff 0) top right /560rpx 51% no-repeat,
-				radial-gradient(circle at left bottom, transparent 15rpx, #ffffff 0) bottom right /560rpx 51% no-repeat;
-			filter: drop-shadow(0rpx 2rpx 12rpx 0rpx rgba(0, 0, 0, 0.04));
-		}
-	}
-
-	.tc_left {
-		display: flex;
-
-		justify-content: center;
-		align-items: center;
-		width: 152rpx;
-
-		text {
-			font-size: 30rpx;
-			font-weight: bold;
-		}
-	}
-
-	.tc_right {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		width: 550rpx;
-		padding: 0 20rpx;
-		font-size: 26rpx;
-
-		.text {
-			padding: 10rpx 0rpx;
-			width: 100%;
-		}
-	}
+<template>
+	<view class="main">
+		<view class="header-content">
+			<image src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/img/mybanner.png"
+				style="width:100%;height:260rpx;"></image>
+		</view>
+		<view class="pr" style="z-index:2">
+			<view class="plr15">
+				<view class="bdr4 pb20">
+					<view class="m-dpflex m-justify-start m-align-center" style="height: 165rpx;">
+						<image binderror="_binderror" mode="scaleToFill" :src="infodata.patient.avatar"
+							style="width: 120rpx;height: 120rpx;border-radius: 50%;"></image>
+						<text class="line1 f20 fb plr15 text-white">{{infodata.patient.name}}</text>
+						<view class="pr tr m-flex">
+							<navigator hoverClass="none" :url="'add_archives?info='+JSON.stringify(infodata.patient)">
+								<u-icon name="arrow-right" color="#fff" size="36"></u-icon>
+							</navigator>
+						</view>
+					</view>
+					<view class=" header-box" style="padding: 0 8rpx;background-color: #fff;border-radius: 16rpx;">
+						<view class="cu-list menu">
+							<view class="cu-item arrow" @click="gotoupcard(infodata.patient)">
+								<view class="content">
+									<text class="text-grey">证件照</text>
+								</view>
+								<view class="action">
+									<!-- <text v-if="infodata.patient.card_img_url==''" class="text-grey text-sm">未上传</text>
+									<text v-else class="text-grey text-sm">已上传</text> -->
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="fb f18 plr20" style="margin-bottom: 24rpx;" v-if="infodata.orders.cases.length!=0">病例信息</view>
+		<view class="margin-lr-sm">
+			<view class="margin-top-sm" @click="gotoinfo(item)" v-for="(item,index) in infodata.orders.cases"
+				:key="index" style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+				<view class="flex justify-between align-center bg-white" style="padding: 28rpx;border-radius: 16rpx;">
+					<view class="jinxing">
+						<text
+							style="display: inline-block;width: 12rpx;height: 12rpx;border-radius: 50%;background-color:#EEAA3F;margin-right: 8rpx;"></text>
+						<text v-if="item.order_status==3">进行中</text>
+						<text v-else-if="item.order_status==1">未支付</text>
+						<text v-else-if="item.order_status==2">待接单</text>
+						<text v-else-if="item.order_status==4">已完成</text>
+						<text v-else>已取消</text>
+					</view>
+					<text class="phonezi" v-if="item.product_type==1">电话咨询</text>
+					<text class="phonezi" v-else-if="item.product_type==2">图文咨询</text>
+					<text class="phonezi" v-else-if="item.product_type==3">门诊预约</text>
+					<text class="phonezi" v-else-if="item.product_type==4">疫苗接种预约</text>
+					<text class="phonezi" v-else-if="item.product_type==5">儿保预约</text>
+					<text class="phonezi" v-else-if="item.product_type==6">服务包</text>
+				</view>
+				<view class="" style="background: #FBFBFB;padding: 28rpx; border-radius: 16rpx;"
+					v-if="item.product_type!=5&&item.product_type!=4">
+					<view class="nametaile flex align-center">
+						<text>{{item.docter.name}}</text>
+						<text class="text_style" v-for="(itm,idx) in item.docter.label_texts"
+							:key="index">{{itm.label_name}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						科室:<text style="color: #333333;">{{item.docter.office.name||'暂无'}}
+							{{item.docter.qualification.name||'暂无'}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						编号:<text style="color: #333333;">{{item.order_sn}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						咨询时间:<text style="color: #333333;">{{item.created_at}}</text>
+					</view>
+				</view>
+				<view class="" style="background: #FBFBFB;padding: 28rpx; border-radius: 16rpx;" v-else>
+					<view class="nametaile flex align-center">
+						<text>{{item.organization.docter[0].name}}</text>
+						<text class="text_style" v-for="(itm,idx) in item.organization.docter[0].label_texts"
+							:key="index">{{itm.label_name}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						科室:<text style="color: #333333;">{{item.organization.docter[0].office.name||'暂无'}}
+							{{item.organization.docter[0].qualification.name||'暂无'}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						编号:<text style="color: #333333;">{{item.order_sn}}</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						咨询时间:<text style="color: #333333;">{{item.created_at}}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="fb f18 plr20" style="margin-bottom: 24rpx;margin-top: 40rpx;"
+			v-if="infodata.orders.service_packs.length!=0">服务包</view>
+		<view style="width: 100vw;height: auto;background-color: #f6f6f6;">
+			<view style="width: 100%;height: 100%;">
+				<view v-for="(item,index) in infodata.orders.service_packs" :key="index">
+					<view class="card flex justify-center">
+						<view class="taocan" :data-id="item.order_pack.id" @click="details">
+							<view class="tc_left">
+								<text>{{item.order_pack.pack_name}}</text>
+							</view>
+							<view class="tc_right">
+								<view style="width: 100%;">
+									<view class="text">{{item.order_pack.pack_intro}}</view>
+									<!-- <view class="text">{{item.desc}}</view> -->
+									<view class="text">
+										<text style="text-align: left;">时长:{{item.order_pack.effective_days}}天</text>
+										<text
+											style="float: right;color: #FF4F61;font-weight: bold;">¥{{item.order_pack.pack_price/100}}</text>
+									</view>
+								</view>
+								<view class="margin-top-xs">
+									剩余时长:<u-count-down v-if="true" color="#EEAA3F" separator="zh"
+										:timestamp="item.order_pack.end_time-miao"></u-count-down><text
+										v-else>已结束</text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<u-empty text="暂无数据" :show="show" mode="order" margin-top="300"></u-empty>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+			this.id = options.id
+		},
+		onShow() {
+			this.getarchivesInfo()
+			this.miao = parseInt(new Date().getTime() / 1000)
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+				id: "",
+				infodata: "",
+				miao: "",
+				show: false
+			}
+		},
+		methods: {
+			gotoinfo(item) {
+				if (item.product_type == 2) {
+					uni.navigateTo({
+						url: "./wechatrecord?id=" + item.id
+					})
+				}
+			},
+			getarchivesInfo: async function() {
+				let res = await this.$request.post("/api/v1/patient/patientDetail", {
+					patient_id: this.id
+				})
+				console.log(res)
+				if (res.status == 0) {
+					this.infodata = res.data
+				}
+				if (this.infodata.orders.cases.length == 0 && this.infodata.orders.service_packs.length == 0) {
+					this.show = true
+				} else {
+					this.show = false
+				}
+			},
+			// gotoupcard(item) {
+			// 	let imglist = [{
+			// 		url: item.card_img_url
+			// 	}, {
+			// 		url: item.card_back_img_url
+			// 	}]
+			// 	uni.navigateTo({
+			// 		url: "upcard?id=" + item.id + "&data=" + JSON.stringify(imglist)
+			// 	})
+			// }
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	@import url("../index/mine.css");
+
+	.main {}
+
+	.text_style {
+		font-weight: 400;
+		margin-left: 15rpx;
+		background-color: #E5F5FF;
+		color: #0B73B9;
+		// width: 100rpx;
+		height: 28rpx;
+		font-size: 20rpx;
+		border-radius: 10rpx;
+		text-align: center;
+		align-items: center;
+	}
+
+	.nametaile {
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #333333;
+	}
+
+	.textstyle {
+		font-size: 26rpx;
+		color: #666666;
+		font-weight: 400;
+	}
+
+	.phonezi {
+		width: 168rpx;
+		height: 54rpx;
+		background: #F6F6F6;
+		border-radius: 27rpx;
+		font-size: 28rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #666666;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.jinxing {
+		height: 30rpx;
+		font-size: 30rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #EEAA3F;
+		display: flex;
+		align-items: center;
+	}
+
+	.header-content {
+		position: absolute;
+		top: 0;
+		right: 0;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		z-index: -1;
+		overflow: hidden;
+		box-sizing: border-box;
+	}
+
+	.header-box {
+		box-shadow: 0px 8rpx 34rpx -6rpx rgba(248, 151, 164, 0.13);
+	}
+
+	.header-img {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.tip {
+		position: absolute;
+		top: 0;
+		right: 20%;
+		bottom: 0;
+		background-color: red;
+		width: 12rpx;
+		height: 12rpx;
+		border-radius: 50%;
+	}
+
+	.msg {
+		top: -3rpx;
+		right: -9rpx;
+	}
+
+	swiper {
+		height: 320rpx;
+	}
+
+	.swiper-wrapper {
+		padding: 0 10rpx;
+		box-sizing: border-box;
+	}
+
+	.swiper-item {
+		width: 100%;
+		height: 300rpx;
+		box-shadow: 0 26rpx 40rpx 0 rgba(255, 255, 255, 0.31);
+		background: url("http://file.supermm.me/miniProgram/images/personal/bg_doc.png") no-repeat bottom center;
+	}
+
+	.dots {
+		position: absolute;
+		left: 0;
+		right: 0;
+		bottom: -40rpx;
+		display: flex;
+		justify-content: center;
+	}
+
+	.dots .dot {
+		margin: 0 8rpx;
+		width: 14rpx;
+		height: 14rpx;
+		background: #E4E4E4;
+		border-radius: 8rpx;
+		transition: all .6s;
+	}
+
+	.dots .dot.active {
+		width: 24rpx;
+		background: rgb(153, 153, 153);
+	}
+
+	.game-wrap {
+		position: relative;
+		width: 100%;
+		height: 100%;
+		overflow: hidden;
+		box-sizing: border-box;
+	}
+
+	.game-item {
+		height: 100%;
+		background: url("https://file.supermm.me/h5/wechat-h5/integral/personeBg001.jpg") no-repeat;
+		background-size: 100% 100%;
+		background-position: center center;
+		border-radius: 100rpx;
+	}
+
+	.card {
+		width: 100%;
+		height: auto;
+		margin-top: 20rpx;
+
+		// background-image: url(../../static/服务包.png);
+		.taocan {
+			width: 710rpx;
+			height: 230rpx;
+			position: relative;
+			display: flex;
+			border-radius: 10rpx;
+			background: radial-gradient(circle at right top, transparent 15rpx, #ffffff 0) top left / 152rpx 51% no-repeat,
+				radial-gradient(circle at right bottom, transparent 15rpx, #ffffff 0) bottom left /152rpx 51% no-repeat,
+				radial-gradient(circle at left top, transparent 15rpx, #ffffff 0) top right /560rpx 51% no-repeat,
+				radial-gradient(circle at left bottom, transparent 15rpx, #ffffff 0) bottom right /560rpx 51% no-repeat;
+			filter: drop-shadow(0rpx 2rpx 12rpx 0rpx rgba(0, 0, 0, 0.04));
+		}
+	}
+
+	.tc_left {
+		display: flex;
+
+		justify-content: center;
+		align-items: center;
+		width: 152rpx;
+
+		text {
+			font-size: 30rpx;
+			font-weight: bold;
+		}
+	}
+
+	.tc_right {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		width: 550rpx;
+		padding: 0 20rpx;
+		font-size: 26rpx;
+
+		.text {
+			padding: 10rpx 0rpx;
+			width: 100%;
+		}
+	}
 </style>

+ 119 - 0
pages/archives/wechatrecord.vue

xqd
@@ -0,0 +1,119 @@
+<template>
+	<view>
+		<view class="cu-chat" v-for="(item,index) in messages" :key="index">
+			<view class="cu-item self" v-if="formatID(item.senderId) == user.id">
+				<view class="main" v-if="item.type == 'text'">
+					<view class="content bg-green shadow">
+						<text>{{formatString(item.payload).text}}</text>
+					</view>
+				</view>
+				<view class="main" v-else-if="item.type == 'image'">
+					<image @click="viewImg" :data-url="formatString(item.payload).url"
+						:src="formatString(item.payload).url" class="radius" mode="widthFix"></image>
+				</view>
+				<view class="main" v-else-if="item.type == 'audio'">
+					<GoEasyAudioPlayer :src="formatString(item.payload).url"
+						:duration="formatString(item.payload).duration" />
+				</view>
+				<view class="cu-avatar radius" :style="'background-image:url('+item.sender_avatar+');'">
+				</view>
+				<view class="date">{{$u.timeFormat(item.timestamp, 'yyyy年mm月dd日 hh时MM分ss秒')}}</view>
+			</view>
+			<view class="cu-item" v-else>
+				<view class="cu-avatar radius" :style="'background-image:url('+item.sender_avatar+');'">
+				</view>
+				<view class="main" v-if="item.type == 'text'">
+					<view class="content shadow">
+						<text>{{formatString(item.payload).text}}</text>
+					</view>
+				</view>
+				<view class="main" v-else-if="item.type == 'image'">
+					<image @click="viewImg" :data-url="formatString(item.payload).url"
+						:src="formatString(item.payload).url" class="radius" mode="widthFix"></image>
+				</view>
+				<view class="main" v-else-if="item.type == 'audio'">
+					<GoEasyAudioPlayer :src="formatString(item.payload).url"
+						:duration="formatString(item.payload).duration" />
+				</view>
+				<view class="date ">{{$u.timeFormat(item.timestamp, 'yyyy年mm月dd日 hh时MM分ss秒')}}</view>
+			</view>
+		</view>
+		<!-- <view class="cu-bar foot input" :style="[{bottom:InputBottom+'px'}]">
+			<view class="action">
+				<text class="cuIcon-sound text-grey"></text>
+			</view>
+			<input class="solid-bottom" :adjust-position="false" :focus="false" maxlength="300" cursor-spacing="10"
+				@focus="InputFocus" @blur="InputBlur"></input>
+			<view class="action">
+				<text class="cuIcon-emojifill text-grey"></text>
+			</view>
+			<button class="cu-btn bg-green shadow">发送</button>
+		</view> -->
+		<u-empty text="暂无数据" mode="order" :show="show" margin-top="350"></u-empty>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations,
+		mapGetters,
+		mapActions
+	} from 'vuex';
+	import GoEasyAudioPlayer from "@/components/GoEasyAudioPlayer/GoEasyAudioPlayer";
+	export default {
+		components: {
+			GoEasyAudioPlayer
+		},
+		data() {
+			return {
+				order_id: "",
+				messages: [],
+				show: false
+			};
+		},
+		computed: {
+			...mapState(['user'])
+		},
+		onLoad(op) {
+			this.order_id = op.id
+			this.getrecord()
+		},
+		methods: {
+			async getrecord() {
+				let res = await this.$request.post("/api/v1/order/getChatRecord", {
+					order_id: this.order_id
+				})
+				if (res.status == 0) {
+					this.messages = res.data
+					if (this.messages.length == 0) {
+						this.show = true
+					} else {
+						this.show = false
+					}
+				}
+			},
+			formatString(str) {
+				let obj = JSON.parse(str)
+				return obj
+			},
+			formatID(str) {
+				let string = str.split('_')[1]
+				return string
+			},
+			viewImg(e) {
+				console.log(e.currentTarget.dataset.url)
+				uni.previewImage({
+					urls: [e.currentTarget.dataset.url],
+					current: e.currentTarget.dataset.url
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	page {
+		padding-bottom: 100upx;
+	}
+</style>

+ 1 - 1
pages/childcare/child_care.vue

xqd
@@ -88,7 +88,7 @@
 			</view>
 		</view>
 		<u-popup v-model="dateshow" mode="bottom" :safe-area-inset-bottom="true" border-radius="14" length="50%" height="700rpx">
-			<datepicker :date="multiSelector" @callbacktime="callbacktime" ref="date"></datepicker>
+			<datepicker :date="multiSelector" @callbacktime="callbacktime" type="5" ref="date"></datepicker>
 		</u-popup>
 		<view class="cu-tabbar-height"></view>
 		<view class="cu-tabbar-height"></view>

+ 1 - 1
pages/doctor_related/doctor_info.vue

xqd
@@ -138,7 +138,7 @@
 		<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>
+			<datepicker :date="multiSelector" @callbacktime="callbacktime" type="3" ref="date"></datepicker>
 		</u-popup>
 	</view>
 </template>

+ 3 - 2
pages/doctor_related/select_doctor.vue

xqd xqd
@@ -7,7 +7,7 @@
 				<u-dropdown-item @change="recommend" v-model="value3" :title="options3[value3].label" :options="options3"></u-dropdown-item>
 			</u-dropdown>
 			<view class="main">
-				<u-search :clearabled="false" shape="round" search-icon-color="#EEAA3F" placeholder="搜索医生姓名、医院名" @custom="searchvalue"
+				<u-search :clearabled="false" shape="round" search-icon-color="#EEAA3F" placeholder="搜索医生姓名" @custom="searchvalue"
 				 :show-action="true" v-model="keyword"></u-search>
 				<!-- <view class="margin-top-sm text-df text-bold" @click="xuanzetime" v-if="istime">
 					选择时间:{{showtime}}
@@ -230,7 +230,8 @@
 				}).catch(res => {})
 			},
 			//取服务价格最小值
-			getpricemin(arr) {
+			getpricemin(arr) {
+				arr = arr.filter(item => item != 0)
 				return Math.min(...arr)
 			},
 			//监听滚动

+ 41 - 24
pages/index/index.vue

xqd xqd xqd xqd xqd xqd
@@ -1,8 +1,8 @@
 <template>
 	<view class="main">
 		<view class="">
-			<u-search :clearabled="true" shape="round" search-icon-color="#EEAA3F" @custom="searchvalue" :show-action="true"
-			 placeholder="搜索医生、医院、服务包" v-model="keyword"></u-search>
+			<u-search :clearabled="true" shape="round" search-icon-color="#EEAA3F" @custom="searchvalue"
+				:show-action="true" placeholder="搜索医生" v-model="keyword"></u-search>
 		</view>
 		<view class="margin-top-sm margin-bottom-sm">
 			<official-account></official-account>
@@ -59,16 +59,20 @@
 			</u-grid>
 		</view>
 		<view class="margin-top-sm">
-			<u-notice-bar type="error" bg-color="white" color="black" border-radius="15" :list="configInfo.notices" mode="vertical"></u-notice-bar>
+			<u-notice-bar type="error" bg-color="white" color="black" border-radius="15" :list="configInfo.notices"
+				mode="vertical"></u-notice-bar>
 		</view>
 		<view class="tltleStyle">
 			<u-section title="热门推荐" font-size="40" line-color="#0B73BA" :bold="true" :right="false"></u-section>
 		</view>
-		<view class="cu-card case" style="margin-top: 20rpx;background-color: transparent;border-radius: 16rpx;position: relative;">
-			<swiper @change="swiperChange" :indicator-dots="false" style="height: 426rpx;border-radius:16rpx;background-color: transparent;"
-			 :autoplay="true" :interval="3000" :duration="1000" :current="itemcurrent">
+		<view class="cu-card case"
+			style="margin-top: 20rpx;background-color: transparent;border-radius: 16rpx;position: relative;">
+			<swiper @change="swiperChange" :indicator-dots="false"
+				style="height: 426rpx;border-radius:16rpx;background-color: transparent;" :autoplay="true"
+				:interval="3000" :duration="1000" :current="itemcurrent">
 				<swiper-item style="background-color: transparent;" v-for="(item,index) in hotlist" :key="index">
-					<view class="cu-item shadow" style="margin: 0;background-color: transparent;height: 100%;" @click="gotojournalism(index)">
+					<view class="cu-item shadow" style="margin: 0;background-color: transparent;height: 100%;"
+						@click="gotojournalism(index)">
 						<view class="image">
 							<image :src="imghos+item.image" style="height: 426rpx;" mode="heightFix"></image>
 							<!-- <view class="cu-bar bg-shadeBottom" style="background-image: linear-gradient(rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0));bottom:44rpx ;">
@@ -79,7 +83,8 @@
 				</swiper-item>
 			</swiper>
 			<view class="dots">
-				<view :class="index==itemcurrent?'dot active':'dot'" v-for="(item,index) in hotlist" :key="index"></view>
+				<view :class="index==itemcurrent?'dot active':'dot'" v-for="(item,index) in hotlist" :key="index">
+				</view>
 			</view>
 		</view>
 		<view class="tltleStyle">
@@ -93,28 +98,35 @@
 							<view class="base_item_zi_content" style="height: 241rpx;background-color:#FBFBFB;">
 								<image style="width: 120rpx;height: 120rpx;border-radius: 50%;" :src="item.avatar">
 								</image>
-								<view class="follow_style" @click.stop="submitCollect" :data-index="index" :data-id="item.id" v-if="item.is_collect==0">
+								<view class="follow_style" @click.stop="submitCollect" :data-index="index"
+									:data-id="item.id" v-if="item.is_collect==0">
 									关注
 								</view>
-								<view class="follow_style" @click.stop="submitCollect" :data-index="index" :data-id="item.id" style="background-color: #fff;color: rgb(208, 105, 150);border:2rpx solid rgb(208, 105, 150);"
-								 v-else>
+								<view class="follow_style" @click.stop="submitCollect" :data-index="index"
+									:data-id="item.id"
+									style="background-color: #fff;color: rgb(208, 105, 150);border:2rpx solid rgb(208, 105, 150);"
+									v-else>
 									已关注
 								</view>
 								<view class="content_right">
 									<view class="" style="display: flex;align-items: center;">
 										<text style="font-size: 32rpx; font-weight: bold;">{{item.name}}</text>
-										<text class="text_style" v-for="(itm,index) in item.label_texts" :key="index">{{itm.label_name}}</text>
+										<text class="text_style" v-for="(itm,index) in item.label_texts"
+											:key="index">{{itm.label_name}}</text>
 									</view>
 									<view class="m_gray_small">
-										科室:<text style="color:#333333;">{{item.office.name||'暂无'}} {{item.qualification.name||'暂无'}}</text>
+										科室:{{item.office.name||'暂无'}} {{item.qualification.name||'暂无'}}
 									</view>
 									<view class="flex justify-start align-center flex-wrap" style="position: relative;">
-										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2" v-if="item.is_chat==1" style="margin-top:20rpx ; margin-right: 20rpx;"
-										 text="图文" shape="circle" />
-										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2" v-if="item.is_phone==1" style="margin-top:20rpx ; margin-right: 20rpx;"
-										 text="电话" shape="circle" />
-										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2" v-if="item.is_appoint==1" style="margin-top:20rpx ; margin-right: 20rpx;"
-										 text="门诊" shape="circle" />
+										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2"
+											v-if="item.is_chat==1" style="margin-top:20rpx ; margin-right: 20rpx;"
+											text="图文" shape="circle" />
+										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2"
+											v-if="item.is_phone==1" style="margin-top:20rpx ; margin-right: 20rpx;"
+											text="电话" shape="circle" />
+										<u-tag bg-color="#F2F2F2" color="#666666" border-color="#F2F2F2"
+											v-if="item.is_appoint==1" style="margin-top:20rpx ; margin-right: 20rpx;"
+											text="门诊" shape="circle" />
 									</view>
 								</view>
 							</view>
@@ -131,21 +143,25 @@
 									</view>
 									<view class="text-sm" style="flex: 1; text-align: right;">
 										距离:
-										<text style="color: #FF7B72;">{{item.distance!='未知'?parseInt(item.distance/1000)+'km':'未知'}}</text>
+										<text
+											style="color: #FF7B72;">{{item.distance!='未知'?parseInt(item.distance/1000)+'km':'未知'}}</text>
 									</view>
 								</view>
 								<view class="doctor_style margin-top-sm">
 									<view class="doctor_style_item">
 										{{item.intro}}
 									</view>
-									<view class="text-black flex justify-between align-center margin-top-sm" style="font-size: 30rpx;">
+									<view class="text-black flex justify-between align-center margin-top-sm"
+										style="font-size: 30rpx;">
 										<view class="jisu flex align-center">
-											<image src="../../static/img/speed.png" style="width: 30rpx;height: 30rpx;margin-right: 10rpx;margin-top: 6rpx;"
-											 mode=""></image>急速响应
+											<image src="../../static/img/speed.png"
+												style="width: 30rpx;height: 30rpx;margin-right: 10rpx;margin-top: 6rpx;"
+												mode=""></image>急速响应
 										</view>
 										<view class="">
 											服务
-											<text class="text-red text-bold text-xl" style="margin-right: 10rpx;">¥{{getpricemin([item.phone_price,item.chat_price,item.appoint_price])/100}}</text>
+											<text class="text-red text-bold text-xl"
+												style="margin-right: 10rpx;">¥{{getpricemin([item.phone_price,item.chat_price,item.appoint_price])/100}}</text>
 										</view>
 									</view>
@@ -241,6 +257,7 @@
 			},
 			//取服务价格最小值
 			getpricemin(arr) {
+				arr = arr.filter(item => item != 0)
 				return Math.min(...arr)
 			},
 			getindexImg: async function() {

+ 1 - 1
pages/vaccines/vaccines_info.vue

xqd
@@ -91,7 +91,7 @@
 		</view>
 		<u-popup v-model="dateshow" mode="bottom" :safe-area-inset-bottom="true" border-radius="14" length="50%"
 			height="700rpx">
-			<datepicker :date="multiSelector" @callbacktime="callbacktime" ref="date"></datepicker>
+			<datepicker :date="multiSelector" @callbacktime="callbacktime" type="4" ref="date"></datepicker>
 		</u-popup>
 		<view class="cu-tabbar-height"></view>
 		<view class="cu-tabbar-height"></view>