yanjie 4 سال پیش
والد
کامیت
f431393c5e

+ 50 - 2
pages.json

xqd xqd xqd
@@ -106,7 +106,7 @@
 		{
 			"path": "pages/personal/personal_information",
 			"style": {
-				"navigationBarTitleText": "个人信息"
+				"navigationBarTitleText": "余额"
 			}
 
 		},
@@ -199,6 +199,54 @@
 			"style": {
 				"navigationBarTitleText": "我的服务包"
 			}
+		},
+		{
+			"path": "pages/vaccines/vaccines_info",
+			"style": {
+				"navigationBarTitleText": "疫苗信息填写"
+			}
+		},
+		{
+			"path": "pages/vaccines/mechanism",
+			"style": {
+				"navigationBarTitleText": "服务机构"
+			}
+		},
+		{
+			"path": "pages/vaccines/vaccinesList",
+			"style": {
+				"navigationBarTitleText": "接种疫苗"
+			}
+		},
+		{
+			"path": "pages/archives/archives_info",
+			"style": {
+				"navigationBarTitleText": "档案详情"
+			}
+		},
+		{
+			"path": "pages/index/editinfo",
+			"style": {
+				"navigationBarTitleText": "个人信息"
+			}
+		},
+		{
+			"path": "pages/index/editphone",
+			"style": {
+				"navigationBarTitleText": "修改手机"
+			}
+		},
+		{
+			"path": "pages/index/paypassword",
+			"style": {
+				"navigationBarTitleText": "设置密码"
+			}
+		},
+		{
+			"path": "pages/index/message",
+			"style": {
+				"navigationBarTitleText": "消息通知"
+			}
 		}
 
 
@@ -239,7 +287,7 @@
 		"current": 0,
 		"list": [{
 			"name": "工具",
-			"path": "pages/index/mine"//我的
+			"path": "pages/index/mine" //我的
 			// "path": "pages/service_packs/introduce"//服务包
 		}]
 	}

+ 250 - 0
pages/archives/archives_info.vue

xqd
@@ -0,0 +1,250 @@
+<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="info.avatar" style="width: 120rpx;height: 120rpx;border-radius: 50%;"></image>
+						<text class="line1 f20 fb plr15 text-white">{{info.nickname}}</text>
+
+						<view class="pr tr m-flex">
+							<navigator hoverClass="none">
+								<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="">
+								<view class="content">
+									<text class="text-grey">证件照</text>
+								</view>
+								<view class="action">
+									<text class="text-grey text-sm">未上传</text>
+								</view>
+							</view>
+							<view class="cu-item arrow" @click="">
+								<view class="content">
+									<text class="text-grey">基础建档信息</text>
+								</view>
+								<view class="action">
+
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="fb f18 plr20" style="margin-bottom: 24rpx;">病例信息</view>
+		<view class="margin-lr-sm">
+			<view class="" 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>进行中</text>
+					</view>
+					<text class="phonezi">电话咨询</text>
+				</view>
+				<view class="" style="background: #FBFBFB;padding: 28rpx; border-radius: 16rpx;">
+					<view class="nametaile flex align-center">
+						<text>李英林</text>
+						<text class="text_style">30年经验</text>
+						<text class="text_style">优秀医师</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						科室:<text style="color: #333333;">外科 主任医师</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						编号:<text style="color: #333333;">ZX202000010</text>
+					</view>
+					<view class="textstyle margin-top-xs">
+						咨询时间:<text style="color: #333333;">2020.09.01 11:12:09</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="fb f18 plr20" style="margin-bottom: 24rpx;margin-top: 40rpx;">服务包</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+			this.id = options.id
+		},
+		onShow() {
+
+		},
+		mounted() {
+			this.getarchivesInfo()
+		},
+		data() {
+			return {
+				id: "",
+				infodata: ""
+			}
+		},
+		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
+				}
+			}
+		}
+	};
+</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;
+	}
+</style>

+ 7 - 1
pages/archives/my_archives.vue

xqd xqd
@@ -1,6 +1,7 @@
 <template>
 	<view class="main">
-		<view class="cu-list menu-avatar margin-sm" v-for="(item,index) in patientList" :key="index" style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+		<view class="cu-list menu-avatar margin-sm" @click="gotoinfo(item)" v-for="(item,index) in patientList" :key="index"
+		 style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
 			<view class="cu-item">
 				<view class="cu-avatar round lg" :style="'background-image:url('+item.avatar+');'"></view>
 				<view class="content">
@@ -57,6 +58,11 @@
 				uni.navigateTo({
 					url: "add_archives"
 				})
+			},
+			gotoinfo(item) {
+				uni.navigateTo({
+					url: "archives_info?id=" + item.id
+				})
 			}
 		}
 	};

+ 3 - 3
pages/doctor_related/doctor_info.vue

xqd
@@ -6,12 +6,12 @@
 				<view class="det-head pr plr15 bdr8 m-bg-white mlr15 pt25">
 					<view class="m-xstart pr m-bottom-line pb25 margin-bottom-sm">
 						<view class="m-flex overflow mr10">
-							<view class="m-xend">
+							<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" :key="index">{{itm}}</text>
-								<text class="dpb m-flex"></text>
 							</view>
-							<view class="m-xend mt25">
+							<view class="dpb m-flex margin-top-sm">科室:{{doctor.office.name}} {{doctor.qualification.name}}</view>
+							<view class="m-xend mt12">
 								<view class="f14 m-gray-big">评分:<text class="m-theme">{{doctor.score}}</text>
 									<text class="f11 margin-left-xs">分</text>
 								</view>

+ 1 - 1
pages/doctor_related/info_write.vue

xqd
@@ -131,7 +131,7 @@
 					</view>
 					<view class="popup_list_button flex align-center">
 						<u-radio-group v-model="value">
-							<u-radio @change="peopleRadioChange" :key="index" :name="item.name" :disabled="item.disabled">
+							<u-radio @change="peopleRadioChange" :key="index" :name="item.name">
 							</u-radio>
 						</u-radio-group>
 					</view>

+ 17 - 8
pages/doctor_related/select_doctor.vue

xqd xqd xqd
@@ -67,7 +67,10 @@
 												{{item.intro}}
 											</view>
 											<view class="text-black flex justify-between align-center margin-top-sm" style="font-size: 30rpx;">
-												<view class="jisu">急速响应</view>
+												<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>急速响应
+												</view>
 												<view class="">
 													服务
 													<text class="text-red text-bold text-xl">¥{{item.phone_price/100}}</text>
@@ -109,11 +112,11 @@
 				if (this.value1 == 3) {
 					this.istime = true
 					this.timehour = 1,
-					this.timeday = nian + "-" + yue + "-" + ri
+						this.timeday = nian + "-" + yue + "-" + ri
 				} else {
 					this.istime = false,
-					this.timehour = "",
-					this.timeday = ""
+						this.timehour = "",
+						this.timeday = ""
 				}
 			}
 			if (options.value != "") {
@@ -424,10 +427,16 @@
 	}
 
 	.text_style {
-		font-size: 24rpx;
-		color: rgba(0, 0, 0, .54);
-		display: block;
-		margin-left: 10rpx;
+		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;
 	}
 
 	.m_gray_small {

+ 1 - 1
pages/index/book.vue

xqd
@@ -7,7 +7,7 @@
 			推荐文章
 		</view>
 		<u-card :show-head="false" :show-foot="false" :border="false">
-			<view class="" slot="body" v-for="(item,index) in list" @click="bookinfo(item.id,item.title)">
+			<view class="" slot="body" v-for="(item,index) in list" :key="index" @click="bookinfo(item.id,item.title)">
 				<view class="u-border-bottom padding-bottom-sm">
 					<view class="u-body-item u-flex u-col-between u-p-t-0">
 						<view class="u-body-item-title u-line-2">{{item.title}}</view>

+ 169 - 0
pages/index/editinfo.vue

xqd
@@ -0,0 +1,169 @@
+<template>
+	<view class="main">
+		<view class="cu-list menu">
+			<view class="cu-item arrow" @click="isShowConfirm=true">
+				<view class="content">
+					<text class="text-grey">昵称</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">{{newName}}</text>
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="gotophone">
+				<view class="content">
+					<text class="text-grey">已绑定电话</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm"></text>
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="">
+				<view class="content">
+					<text class="text-grey">切换账号</text>
+				</view>
+				<view class="action">
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="gotopwd">
+				<view class="content">
+					<text class="text-grey">支付密码</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">未设置</text>
+				</view>
+			</view>
+		</view>
+		<block v-if="isShowConfirm">
+			<view class='toast-box'>
+				<view class='toastbg' @click.stop="isShowConfirm=false"></view>
+				<view class='showToast'>
+					<view class='toast-title'>
+						<text>修改昵称</text>
+					</view>
+					<view class='toast-main'>
+						<view class='toast-input'>
+							<input type='text' placeholder='输入昵称' v-model="newName" data-name='stuEidtName'></input>
+						</view>
+					</view>
+					<view class='toast-button'>
+						<view class='button2'>
+							<button type="default" @click.stop="editName">保存</button>
+						</view>
+					</view>
+				</view>
+			</view>
+		</block>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+			this.newName = options.name
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+				isShowConfirm: false,
+				newName: ""
+			}
+		},
+		methods: {
+			editName: async function() {
+				let res = await this.$request.post("/api/v1/user/updateUser", {
+					nickname: this.newName
+				})
+				if (res.status == 0) {
+					this.isShowConfirm = false
+					uni.showToast({
+						title:"修改成功",
+						icon:"none"
+					})
+				}
+			},
+			gotophone(){
+				uni.navigateTo({
+					url:"editphone"
+				})
+			},
+			gotopwd(){
+				uni.navigateTo({
+					url:"paypassword"
+				})
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.main {}
+
+	.button2 button {
+		width: 100%;
+		font-size: 26rpx;
+		height: 70rpx;
+		color: #606266;
+		background-color: #FFFFFF;
+		border-radius: 0;
+		border-top: 2rpx solid rgba(0, 0, 0, .2);
+	}
+
+	.button2 button::after {
+		border: none;
+	}
+
+	.toast-box {
+		width: 100%;
+		height: 100%;
+		opacity: 1;
+		position: fixed;
+		top: 0px;
+		left: 0px;
+	}
+
+
+	.toastbg {
+		opacity: 0.2;
+		background-color: black;
+		position: absolute;
+		width: 100%;
+		min-height: 100vh;
+	}
+
+	.showToast {
+		position: absolute;
+		opacity: 1;
+		width: 70%;
+		margin-left: 15%;
+		margin-top: 40%;
+	}
+
+	.toast-title {
+		padding-left: 5%;
+		background-color: #2196f3;
+		color: white;
+		padding-top: 2vh;
+		padding-bottom: 2vh;
+		border-top-right-radius: 16rpx;
+		border-top-left-radius: 16rpx;
+	}
+
+	.toast-main {
+		padding-top: 2vh;
+		padding-bottom: 2vh;
+		background-color: white;
+		text-align: center;
+	}
+
+	.toast-input {
+		margin-left: 5%;
+		margin-right: 5%;
+		border: 1px solid #ddd;
+		padding-left: 2vh;
+		padding-right: 2vh;
+		padding-top: 1vh;
+		padding-bottom: 1vh;
+	}
+</style>

+ 136 - 0
pages/index/editphone.vue

xqd
@@ -0,0 +1,136 @@
+<template>
+	<view class="main  bg-white margin-top padding-tb-sm">
+		<view class="flex justify-between align-center padding-lr-sm">
+			<view class="flex-sub margin-right-sm">
+				<u-input v-model="value" :type="type" placeholder="请输入原绑定电话验证码" :border="border" />
+			</view>
+			<u-verification-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-verification-code>
+			<u-button @click="getCode">{{tips}}</u-button>
+		</view>
+		<view class="flex justify-between align-center margin-top-sm padding-lr-sm">
+			<view class="flex-sub margin-right-sm">
+				<u-input v-model="newphone" :type="type" placeholder="请输入新号码" :border="border" />
+			</view>
+		</view>
+		<view class="flex justify-between align-center margin-top-sm padding-lr-sm">
+			<view class="flex-sub margin-right-sm">
+				<u-input v-model="newcode" :type="type" placeholder="请输入新号码验证码" :border="border" />
+			</view>
+			<u-verification-code :seconds="newseconds" @end="newend" @start="newstart" ref="newuCode" @change="codeChange1"></u-verification-code>
+			<u-button @click="getnewCode">{{newtips}}</u-button>
+		</view>
+		<view class="cu-bar bg-white tabbar" style="position: fixed;bottom: 0;width: 100%;">
+			<view class="submit" style="background-color: #0B73B9;color: white;" @click="">
+				立即保存
+			</view>
+		</view>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+				value: '',
+				newphone: "",
+				newcode: "",
+				type: 'number',
+				border: true,
+				tips: '',
+				newtips: "",
+				seconds: 60,
+				newseconds: 60
+			}
+		},
+		methods: {
+			codeChange(text) {
+				this.tips = text;
+			},
+			codeChange1(text) {
+				this.newtips = text;
+			},
+			getCode() {
+				if (this.$refs.uCode.canGetCode) {
+					// 模拟向后端请求验证码
+					uni.showLoading({
+						title: '正在获取验证码'
+					})
+					setTimeout(() => {
+						uni.hideLoading();
+						// 这里此提示会被this.start()方法中的提示覆盖
+						uni.showToast({
+							title: "验证码已发送",
+							icon: "none"
+						})
+						// 通知验证码组件内部开始倒计时
+						this.$refs.uCode.start();
+					}, 2000);
+				} else {
+					uni.showToast({
+						title: "结束后再发送",
+						icon: "none"
+					})
+				}
+			},
+			getnewCode() {
+				if (this.$refs.newuCode.canGetCode) {
+					// 模拟向后端请求验证码
+					uni.showLoading({
+						title: '正在获取验证码'
+					})
+					setTimeout(() => {
+						uni.hideLoading();
+						// 这里此提示会被this.start()方法中的提示覆盖
+						uni.showToast({
+							title: "验证码已发送",
+							icon: "none"
+						})
+						// 通知验证码组件内部开始倒计时
+						this.$refs.newuCode.start();
+					}, 2000);
+				} else {
+					uni.showToast({
+						title: "结束后再发送",
+						icon: "none"
+					})
+				}
+			},
+			end() {
+				uni.showToast({
+					title: "倒计时结束",
+					icon: "none"
+				})
+			},
+			start() {
+				uni.showToast({
+					title: "倒计时开始",
+					icon: "none"
+				})
+			},
+			newend() {
+				uni.showToast({
+					title: "倒计时结束",
+					icon: "none"
+				})
+			},
+			newstart() {
+				uni.showToast({
+					title: "倒计时开始",
+					icon: "none"
+				})
+			}
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.main {}
+</style>

+ 19 - 6
pages/index/index.vue

xqd xqd xqd xqd
@@ -33,7 +33,7 @@
 						<view class="grid-text">门诊预约</view>
 					</u-grid-item>
 				</view>
-				<view class="">
+				<view class="" @click="vaccines">
 					<u-grid-item>
 						<u-image width="120rpx" height="120rpx" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/indexyimiao.png"
 						 shape="circle"></u-image>
@@ -200,7 +200,9 @@
 										{{item.intro}}
 									</view>
 									<view class="text-black flex justify-between align-center margin-top-sm" style="font-size: 30rpx;">
-										<view class="jisu">急速响应</view>
+										<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>急速响应
+										</view>
 										<view class="">
 											服务
 											<text class="text-red text-bold text-xl">¥{{item.phone_price/100}}</text>
@@ -350,6 +352,11 @@
 					url: "../doctor_related/select_doctor?value=" + value
 				})
 			},
+			vaccines() {
+				uni.navigateTo({
+					url: "../vaccines/vaccines_info"
+				})
+			},
 			//获取当前地址
 			GetCurrentAddress() {
 				getLocation().then(res => {
@@ -455,10 +462,16 @@
 	}
 
 	.text_style {
-		font-size: 24rpx;
-		color: rgba(0, 0, 0, .54);
-		display: block;
-		margin-left: 10rpx;
+		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;
 	}
 
 	.m_gray_small {

+ 44 - 0
pages/index/message.vue

xqd
@@ -0,0 +1,44 @@
+<template>
+	<view class="main">
+		<view class="padding-lr">
+			<view v-for="(item,index) in 4" :key="index" class="padding-lr-sm padding-tb-sm bg-white margin-top-sm" style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+				<view class="flex justify-start align-center">
+					<u-icon name="order"></u-icon>
+					<text class="text-lg margin-left-xs">订单通知</text>
+					<text class="flex-sub text-right">10:10</text>
+				</view>
+				<view class="margin-top-sm">
+					您接到一个新的图文咨询订单,请尽快确认 (点击查看订单详情)
+				</view>
+				<view class="text-right" style="position: relative">
+					<u-badge size="mini" :absolute="false" type="error" :is-dot="true"></u-badge><text class="margin-left-xs">未读</text>
+				</view>
+			</view>
+		</view>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+
+			}
+		},
+		methods: {
+			
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.main {}
+</style>

+ 3 - 4
pages/index/mine.vue

xqd xqd xqd
@@ -10,12 +10,12 @@
 						<view class="m-dpflex m-justify-start m-align-center" style="height: 165rpx;">
 							<image binderror="_binderror" mode="scaleToFill" :src="info.avatar" style="width: 120rpx;height: 120rpx;border-radius: 50%;"></image>
 							<text class="line1 f20 fb plr15 text-white">{{info.nickname}}</text>
-							<navigator hoverClass="none">
+							<navigator hoverClass="none" :url="'editinfo?name='+info.nickname">
 								<image class="header-img" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/myedit.png"></image>
 							</navigator>
 							<view class="pr tr m-flex">
 								<view class="tip msg" v-if="true"></view>
-								<navigator hoverClass="none">
+								<navigator hoverClass="none" url="message">
 									<image class="header-img" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/toolimg/myinfo.png"></image>
 								</navigator>
 							</view>
@@ -145,7 +145,7 @@
 		onLoad(options) {
 
 		},
-		mounted() {
+		onShow() {
 			this.getUserInfo()
 		},
 		data() {
@@ -167,7 +167,6 @@
 			},
 			getarchives: async function() {
 				let res = await this.$request.post("/api/v1/patient/patientList")
-				console.log(res)
 				if (res.status == 0) {
 					this.patientList = res.data.data
 					if (this.patientList.length == 0) {

+ 88 - 0
pages/index/paypassword.vue

xqd
@@ -0,0 +1,88 @@
+<template>
+	<view class="main  bg-white margin-top padding-tb-sm">
+		<view class="flex justify-between align-center margin-top-sm padding-lr-sm">
+			<view class="flex-sub margin-right-sm">
+				<u-input v-model="password" :type="type" placeholder="请设置支付密码(6位数字)" :border="border" />
+			</view>
+		</view>
+		<view class="flex justify-between align-center margin-top-sm padding-lr-sm">
+			<view class="flex-sub margin-right-sm">
+				<u-input v-model="code" :type="type" placeholder="请输入验证码" :border="border" />
+			</view>
+			<u-verification-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-verification-code>
+			<u-button @click="getCode">{{tips}}</u-button>
+		</view>
+		<view class="cu-bar bg-white tabbar" style="position: fixed;bottom: 0;width: 100%;">
+			<view class="submit" style="background-color: #0B73B9;color: white;" @click="">
+				立即保存
+			</view>
+		</view>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad(options) {
+
+		},
+		mounted() {
+
+		},
+		data() {
+			return {
+				code:'',
+				type: 'number',
+				border: true,
+				tips: '',
+				seconds: 60,
+				password:''
+			}
+		},
+		methods: {
+			codeChange(text) {
+				this.tips = text;
+			},
+			getCode() {
+				if (this.$refs.uCode.canGetCode) {
+					// 模拟向后端请求验证码
+					uni.showLoading({
+						title: '正在获取验证码'
+					})
+					setTimeout(() => {
+						uni.hideLoading();
+						// 这里此提示会被this.start()方法中的提示覆盖
+						uni.showToast({
+							title: "验证码已发送",
+							icon: "none"
+						})
+						// 通知验证码组件内部开始倒计时
+						this.$refs.uCode.start();
+					}, 2000);
+				} else {
+					uni.showToast({
+						title: "结束后再发送",
+						icon: "none"
+					})
+				}
+			},
+			end() {
+				uni.showToast({
+					title: "倒计时结束",
+					icon: "none"
+				})
+			},
+			start() {
+				uni.showToast({
+					title: "倒计时开始",
+					icon: "none"
+				})
+			},
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	.main {}
+</style>

+ 34 - 11
pages/order/payment.vue

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -2,33 +2,33 @@
 	<view>
 		<!-- 弹窗  v-model双向绑定值 mode弹出位置 border-radius弹出层圆角-->
 		<u-popup v-model="popupShow" mode="center" border-radius="14" width="80%" height="40%" close-icon-pos="top-left"
-		 :closeable="true" close-icon-color="#333333">
-			<view style="padding: 0 10%;height: 100%;width: 100%;">
+		 :closeable="true" close-icon-color="#333333" negative-top="250">
+			<view style="height: 100%;width: 100%;">
 				<!-- 标题占20% -->
 				<view style="height: 20%;width: auto;">
 					<text style="font-size: 30rpx;font-weight: bold;display: flex;justify-content: center;align-items: flex-end;height: 100%;">超级妈力</text>
 				</view>
 				<!-- 金额占30% -->
-				<view style="height: 30%;width: auto;border-bottom: 1rpx solid #EFEFEF;">
+				<view style="height: 30%;width: auto;border-bottom: 1rpx solid #EFEFEF;margin-left: 20rpx;margin-right: 20rpx;">
 					<text style="font-size: 78rpx;font-weight: 700;display: flex;justify-content: center;align-items: center;height: 100%;">¥{{norderAmount}}</text>
 				</view>
 				<!-- 支付方式占20% -->
-				<view style="height: 20%;width: auto;">
+				<view style="height: 20%;width: auto;padding-left: 40rpx;">
 					<view style="font-size: 30rpx;display: flex;align-items: center;height: 100%;">
 						<text>余额支付 (余额¥{{info.balance/100}}元)</text>
 						<!-- <text v-else>微信支付</text> -->
 					</view>
 				</view>
 				<!-- 按钮占25% -->
-				<view style="height: 25%;width: auto;">
+				<!-- <view style="height: 25%;width: auto;">
 					<view style="display: flex;justify-content: center;align-items: center;height: 100%;">
 						<u-button type="primary" style="width: 100%;" @click="payment">确认支付</u-button>
 					</view>
-				</view>
-
+				</view> -->
+				<u-message-input :maxlength="maxnum" :disabled-keyboard="true"  :value="password" mode="bottomLine" :breathe="true"
+				 :focus="true" :dot-fill="true"></u-message-input>
 			</view>
 		</u-popup>
-
 		<uni-list :border="false">
 			<image src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/caixian.png" style="width: 100%; height: 5rpx; background-color: #FFFFFF;"></image>
 			<uni-list-item :border="false">
@@ -80,8 +80,10 @@
 				<text style="padding-left: 30rpx;font-size: 32rpx;">合计:</text>
 				<text style="padding-left: 20rpx;font-size: 36;font-weight: 500;color: #FF4F61;">{{orderAmount}}</text>
 			</view>
-			<view class="submit text-white" @click="popupShow=true" style="background-color: rgb(11,115,186); font-size: 32rpx;">确认支付</view>
+			<view class="submit text-white" @click="popupShow=true,show=true" style="background-color: rgb(11,115,186); font-size: 32rpx;">确认支付</view>
 		</view>
+		<u-keyboard @change="valChange" @backspace="backspace" ref="uKeyboard" mode="number" v-model="popupShow" :tooltip="false"
+		 :mask="false"></u-keyboard>
 	</view>
 </template>
 
@@ -117,7 +119,10 @@
 				//订单类型
 				//支付数据类型
 				infodata: {},
-				info: {}
+				info: {},
+				show: false,
+				maxnum: 6,
+				password: ""
 			}
 		},
 		methods: {
@@ -155,6 +160,7 @@
 				})
 				if (res.status == 0) {
 					this.popupShow = false
+					this.show = false
 					uni.showToast({
 						title: "支付成功!",
 						duration: 1500
@@ -179,6 +185,7 @@
 				console.log(res)
 				if (res.status == 0) {
 					this.popupShow = false
+					this.show = false
 					uni.showToast({
 						title: "支付成功!",
 						duration: 1500
@@ -202,6 +209,7 @@
 				})
 				if (res.status == 0) {
 					this.popupShow = false
+					this.show = false
 					uni.showToast({
 						title: "支付成功!",
 						duration: 1500
@@ -222,6 +230,21 @@
 				} else if (this.infodata.product_type == 6) {
 					this.paypacks()
 				}
+			},
+			// 按键被点击(点击退格键不会触发此事件)
+			valChange(val) {
+				// 将每次按键的值拼接到value变量中,注意+=写法
+				this.password += val;
+				console.log(this.password)
+				if (this.password.length == 6) {
+					this.payment()
+				}
+			},
+			// 退格键被点击
+			backspace() {
+				// 删除value的最后一个字符
+				if (this.password.length) this.password = this.password.substr(0, this.password.length - 1);
+				console.log(this.password);
 			}
 		},
 		onShow() {
@@ -229,7 +252,7 @@
 		},
 		onHide() {
 			this.popupShow = false
-		}
+		},
 	}
 </script>
 

+ 17 - 1
pages/personal/personal_information.vue

xqd
@@ -1,8 +1,24 @@
 <template>
+	<view class="main">
+
+	</view>
 </template>
 
 <script>
+	export default {
+		data() {
+			return {
+
+			};
+		},
+		methods: {
+
+		},
+		onShow() {
+
+		}
+	};
 </script>
+<style scoped lang="scss">
 
-<style>
 </style>

+ 104 - 0
pages/vaccines/mechanism.vue

xqd
@@ -0,0 +1,104 @@
+<template>
+	<view class="bg-white">
+		<u-dropdown>
+			<u-dropdown-item @change="addressList" v-model="value1" :title="options1[value1-1].label" :options="options1"></u-dropdown-item>
+		</u-dropdown>
+		<view class="margin-sm">
+			<view v-for="(item,index) in mechanismList" :key="index" @click="xuanzephone(item)" class="padding bg-white margin-top-sm flex justify-between align-center"
+			 style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+				<view class="">
+					<view class="text-bold" style="color: #333333;font-size: 30rpx;">
+						{{item.name}}
+					</view>
+					<view class="margin-top-sm" style="color: #999999; font-size: 26rpx;">
+						地址:<text style="color: #666666;">{{item.address}}</text>
+					</view>
+					<view class="margin-top-sm" style="color: #999999; font-size: 26rpx;">
+						距离:<text style="color: #666666;">{{item.distance}}</text>
+					</view>
+				</view>
+				<view class="">
+					<u-radio-group v-model="value">
+						<u-radio @change="radioChange" :key="index" :name="item.id">
+						</u-radio>
+					</u-radio-group>
+				</view>
+			</view>
+		</view>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+
+		},
+		onShow() {
+
+		},
+		data() {
+			return {
+				value: "",
+				value1: 1,
+				mechanismList: [{
+						id: "1",
+						name: "成都高新区合作社区卫生服务中心",
+						address: "西部园区顺江小区清源环街171号",
+						distance: "10km"
+					},
+					{
+						id: "2",
+						name: "成都高新区合作社区卫生服务中心",
+						address: "西部园区顺江小区清源环街171号",
+						distance: "10km"
+					},
+					{
+						id: "3",
+						name: "成都高新区合作社区卫生服务中心",
+						address: "西部园区顺江小区清源环街171号",
+						distance: "10km"
+					},
+					{
+						id: "4",
+						name: "成都高新区合作社区卫生服务中心",
+						address: "西部园区顺江小区清源环街171号",
+						distance: "10km"
+					},
+					{
+						id: "5",
+						name: "成都高新区合作社区卫生服务中心",
+						address: "西部园区顺江小区清源环街171号",
+						distance: "10km"
+					}
+				],
+				options1: [{
+						label: 'xxx地区',
+						value: 1,
+					},
+					{
+						label: 'yyy地区',
+						value: 2,
+					},
+					{
+						label: 'zzz地区',
+						value: 3,
+					}
+				],
+			}
+		},
+		methods: {
+			xuanzephone(item) {
+				this.value = item.id
+			},
+			addressList(value) {
+				this.value1 = value
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {}
+</style>

+ 152 - 0
pages/vaccines/vaccinesList.vue

xqd
@@ -0,0 +1,152 @@
+<template>
+	<view class="bg-white">
+		<u-dropdown>
+			<u-dropdown-item @change="classtype" v-model="value" :title="options1[value].label" :options="options1"></u-dropdown-item>
+			<u-dropdown-item @change="pricetype" v-model="price" :title="options3[price].label" :options="options3"></u-dropdown-item>
+			<u-dropdown-item @change="recomtype" v-model="recommend" :title="options2[recommend].label" :options="options2"></u-dropdown-item>
+		</u-dropdown>
+		<view class="padding-lr-sm">
+			<u-search :clearabled="false" shape="round" :show-action="false" placeholder="搜索疫苗名称" v-model="keyword"></u-search>
+		</view>
+		<view class="margin-sm">
+			<view v-for="(item,index) in vaccineList" :key="index" @click="xuanzephone(item)" class="padding bg-white margin-top-sm flex justify-between align-center"
+			 style="border-radius: 16rpx;box-shadow: 0 0 50rpx 0 rgba(0, 0, 0, 0.1);">
+				<view class="">
+					<view class="text-bold" style="color: #333333;font-size: 30rpx;">
+						{{item.name}}
+					</view>
+					<view class="flex align-center margin-top-xs">
+						<view class="mianfei margin-right-xs" style="font-size:22rpx;color: #EEAA3F;">
+							{{item.type==1?'免费':'¥'+item.price/100}}
+						</view>
+						<view class="typestyle" style="font-size:22rpx;color: #0B73B9;">
+							{{item.type==1?'I类':'II类'}}
+						</view>
+					</view>
+					<view class="margin-top-xs" style="color: #999999; font-size: 26rpx;">
+						备注:<text style="color: #666666;">{{item.remark}}</text>
+					</view>
+					<view class="margin-top-xs" style="color: #999999; font-size: 26rpx;">
+						厂家:<text style="color: #666666;">{{item.supplier}}</text>
+					</view>
+				</view>
+				<view class="">
+					<u-radio-group v-model="danxuan">
+						<u-radio @change="radioChange" :key="index" :name="item.id">
+						</u-radio>
+					</u-radio-group>
+				</view>
+			</view>
+		</view>
+		<view class="cu-tabbar-height"></view>
+		<view class="cu-tabbar-height"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getvaccinesList()
+		},
+		onShow() {
+
+		},
+		data() {
+			return {
+				vaccineList: [],
+				keyword: "",
+				value: 0, //种类
+				price: 0, //价格
+				recommend: 0, //推荐
+				options1: [{
+					value: 0,
+					label: "全部种类"
+				}, {
+					value: 1,
+					label: "I类"
+				}, {
+					value: 2,
+					label: "II类"
+				}, ],
+				options2: [{
+					value: 0,
+					label: "推荐排序"
+				}, {
+					value: 1,
+					label: "低价优先"
+				}, {
+					value: 2,
+					label: "高价优先"
+				}, ],
+				options3: [{
+					value: 0,
+					label: "全部价格"
+				}, {
+					value: 1,
+					label: "免费"
+				}, {
+					value: 2,
+					label: "收费"
+				}, ],
+				danxuan: ""
+			}
+		},
+		methods: {
+			//种类下拉
+			classtype(value) {
+				this.value = value
+				this.vaccineList = []
+				this.getvaccinesList()
+			},
+			//价格下拉
+			pricetype(value) {
+				this.price = value
+				this.vaccineList = []
+				this.getvaccinesList()
+			},
+			//推荐下拉
+			recomtype(value) {
+				this.recommend = value
+				this.vaccineList = []
+				this.getvaccinesList()
+			},
+			getvaccinesList: async function() {
+				let res = await this.$request.post("/api/v1/vaccine/vaccineList", {
+					name: this.keyword,
+					type: this.value,
+					sort_type: this.recommend
+				})
+				if (res.status == 0) {
+					this.vaccineList = res.data.data
+				}
+			},
+			xuanzephone(item) {
+				this.danxuan = item.id
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {}
+
+	.mianfei {
+		width: 60rpx;
+		height: 30rpx;
+		background: #FFF0D9;
+		// border-radius: 16rpx;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.typestyle {
+		width: 44rpx;
+		height: 30rpx;
+		background: #E5F5FF;
+		// border-radius: 16rpx;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+</style>

+ 240 - 0
pages/vaccines/vaccines_info.vue

xqd
@@ -0,0 +1,240 @@
+<template>
+	<view class="">
+		<view class="cu-list menu">
+			<view class="cu-item arrow" @click="showpeople=true">
+				<view class="content">
+					<text class="text-grey">接种用户</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">{{value}}</text>
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="xuanzefuwu">
+				<view class="content">
+					<text class="text-grey">服务机构</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">请选择服务机构</text>
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="vaccinesList">
+				<view class="content">
+					<text class="text-grey">接种疫苗</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">请选择接种疫苗</text>
+				</view>
+			</view>
+			<view class="cu-item arrow" @click="yuyuetime">
+				<view class="content">
+					<text class="text-grey">预约时间</text>
+				</view>
+				<view class="action">
+					<text class="text-grey text-sm">请选择预约时间</text>
+				</view>
+			</view>
+		</view>
+		<u-popup v-model="showpeople" mode="bottom" border-radius="14" length="50%">
+			<view class="popup_title">
+				<view class="popup_title_text">选择就诊人</view>
+			</view>
+			<scroll-view style="height: 70%;" scroll-y="true">
+				<view class="popup_list" v-for="(item, index) in patientList" :key="index" :data-index="index" @click="xuanzehuanzhe(item)">
+					<view class="popup_list_title">
+						<view class="title">{{item.name}}</view>
+						<view class="body">
+							{{item.sex==1?'男':'女'}}
+						</view>
+					</view>
+					<view class="popup_list_button flex align-center">
+						<u-radio-group v-model="value">
+							<u-radio @change="peopleRadioChange" :key="index" :name="item.name">
+							</u-radio>
+						</u-radio-group>
+					</view>
+				</view>
+			</scroll-view>
+			<u-gap height="10" bg-color="#f9f9f9"></u-gap>
+			<view class="popup_button">
+				<image style="width: 32rpx;height: 32rpx;margin-right: 15rpx;" src="https://zhengda.oss-cn-chengdu.aliyuncs.com/baoma/static/img/addjiu.png"
+				 mode=""></image>
+				<view class="" @click="addPeople">
+					添加就诊人档案
+				</view>
+			</view>
+		</u-popup>
+		<view class="cu-bar bg-white tabbar" style="position: fixed;bottom: 0;width: 100%;">
+			<view class="submit" style="background-color: #0B73B9;color: white;" @click="">
+				提交申请
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		onLoad() {
+			this.getarchives()
+		},
+		onShow() {
+
+		},
+		data() {
+			return {
+				showpeople: false,
+				huanzheID: "",
+				value: "请选择接种用户",
+				patientList: []
+			}
+		},
+		methods: {
+			// 选中某个单选框时,由radio时触发
+			peopleRadioChange(e) {
+				console.log(e);
+			},
+			xuanzehuanzhe(item) {
+				this.huanzheID = item.id
+				this.value = item.name
+				this.showpeople = false
+			},
+			getarchives: async function() {
+				let res = await this.$request.post("/api/v1/patient/patientList")
+				if (res.status == 0) {
+					this.patientList = res.data.data
+				}
+			},
+			//添加就诊人
+			addPeople(e) {
+				uni.navigateTo({
+					url: "../archives/add_archives"
+				})
+			},
+			xuanzefuwu() {
+				uni.navigateTo({
+					url: "mechanism"
+				})
+			},
+			vaccinesList() {
+				uni.navigateTo({
+					url: "vaccinesList"
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {}
+
+	.popup_title {
+		height: 15%;
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		border-bottom: 1rpx solid #f9f9f9;
+	}
+
+	.textareasty {
+		background-color: white;
+		border: 1px solid #efefef;
+		border-radius: 16rpx;
+		padding: 15rpx;
+		margin: 15rpx auto;
+	}
+
+	.popup_title_text {
+		width: auto;
+		height: auto;
+		font-size: 34rpx;
+		font-weight: 540;
+	}
+
+	.popup_list {
+		display: flex;
+		height: 10vh;
+		width: auto;
+		border-bottom: 1rpx solid #f9f9f9;
+	}
+
+	.popup_list_title {
+		height: 100%;
+		width: 90%;
+		display: inline-block;
+		padding: 0 0 0 30rpx;
+
+		.title {
+			height: 50%;
+			width: auto;
+			font-size: 32rpx;
+			font-weight: 500;
+			padding: 20rpx 0 0 0;
+		}
+
+		.body {
+			height: 50%;
+			color: #a1a1a1;
+			height: auto;
+			width: auto;
+			font-size: 30rpx;
+			padding: 10rpx 0 0 0;
+		}
+	}
+
+	.popup_button {
+		height: 80rpx;
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+
+		view {
+			color: #0b73ba;
+			font-weight: 500;
+		}
+	}
+
+	/**选择号码的样式和选择患者不同
+	需要更改样式*/
+	.phone {
+		height: 20%;
+		width: 100%;
+
+		.list {
+			height: 100%;
+			width: 100%;
+			display: flex;
+			padding: 0 10rpx 0 30rpx;
+
+
+			.title {
+				height: 100%;
+				width: 65%;
+				font-size: 32rpx;
+				color: #7d7d7d;
+				display: flex;
+
+				align-items: center;
+			}
+
+			.phone {
+				height: 100%;
+				width: 30%;
+				font-size: 32rpx;
+				font-weight: 500;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.button {
+				height: 100%;
+				width: 5%;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+		}
+	}
+</style>

BIN
static/img/speed.png