Bläddra i källkod

意见反馈页面搭建

chenyue 6 år sedan
förälder
incheckning
9c7149d1d5

+ 5 - 2
api/patient/jiuzhen-api.js

@ -15,8 +15,11 @@
			return httpRequest.get("basic/api/v1.0/appointment/registration/" + data);
		},		
		getRegisterWarn: function(data) {
			return httpRequest.get("basic/api/v1.0/dictionaries/170/entries/RegisterWarn?token=e8b01d2e-6dc8-4ba2-8422-462ae7535651");
		},
			return httpRequest.get("basic/api/v1.0/dictionaries/170/entries/RegisterWarn",{data:data});
		},		
		CancellationWarn: function(data) {
			return httpRequest.get("basic/api/v1.0/dictionaries/170/entries/CancellationWarn",{data:data});
		},		
		cancelOrder: function(data) {
			return httpRequest.get("basic/api/v1.0/appointment/registration/updateState", {
				data: data

+ 1 - 1
component/doctor-home/device-reback.js

@ -14,7 +14,7 @@
										<p class="c-909090 m0 mt5 c-f12 txt-center">{{list.detail}}</p>
									</li>
								</ul>
								<div>
								<div class="suggestcss">
									<label class="">问题&建议<span class="c-f00">*</span></label>
									<p class="c-position-r m0" v-if="!isEdit">
										<textarea @input="limit" class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>

+ 9 - 5
component/mine/left-menu.js

@ -11,6 +11,7 @@
									<div id="info" class="pt20" @click="goinfo()">个人设置</div>
									<div id="xiaoxi" class="pt20"  @click="gonotices()">消息通知</div>
									<div id="securitySetting" class="pt20"  @click="gosecuritySetting()">安全设置</div>
									<div id="suggest" class="pt20"  @click="goSuggest()">意见反馈</div>
								</div>
							</div>
						</div>
@ -38,19 +39,22 @@
		},
		methods: {
			goinfo: function() {
				location.href = "../../mine/html/personal-info.html"
				window.location.href = "../../mine/html/personal-info.html"
			},
			gosecuritySetting: function() {
				location.href = "../../mine/html/security-setting.html"
				window.location.href = "../../mine/html/security-setting.html"
			},
			gorecord: function() {
				location.href = "../../mine/html/record.html"
				window.location.href = "../../mine/html/record.html"
			},
			godoctor: function() {
				location.href = "../../mine/html/doctor.html"
				window.location.href = "../../mine/html/doctor.html"
			},
			gonotices:function(){
				location.href = "../../mine/html/xiaoxi.html"
				window.location.href = "../../mine/html/xiaoxi.html"
			},
			goSuggest:function(){
				window.location.href = "../../mine/html/suggest.html"
			}
		},
	})

+ 1 - 1
component/mine/personal-info.js

@ -18,7 +18,7 @@
										<input type="text" class="form-control" v-model="userinfo.realName" name="realName">\
									</div>\
								</div>\
								<div class="w3-row form-group">\
								<div class="w3-row form-group" style="height: 40px;">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">性&emsp;&emsp;别</div>\
									<div class="w3-rest pl15 c-f14">\
										<input type="radio" name="gender"  value="0" v-model="userinfo.gender">&emsp;男&emsp;\

+ 2 - 2
component/mine/record.js

@ -41,7 +41,7 @@
														</div>\
														<div class="table-cell c-f16 mt25">{{record.patientName}}</div>\
														<div class="table-cell">\
															<div class="cancelbtn" @click="cancelbtn(record.orderId,record.orderId)">取消预约</div>\
															<div class="cancelbtn" @click="cancelbtn(record.orderId,record.id)">取消预约</div>\
															<div class="mt10" style="color:#0AD8C8"  @click="getinfo(record.id)">查看详情</span>\
														</div>\
													</div>\
@ -188,7 +188,7 @@
				var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
				var filters = "userId=" + oauthInfo.id
				if(types == '2') {
					filters += ";state=" + types
					filters += ";state=" + types+";orderId<>null"
				}
				var param = {
					fields: '',

+ 2 - 1
page/appointment/html/confirm-info.html

@ -74,7 +74,7 @@
                        </div>
                        <div class="mt30 mb30 c-border-dashed bgc-f6f6f6 ptb15 plr20">
                            <div class="c-f16 c-909090">预约须知</div>
                            <div class="c-666 mt5">频繁刷新导致IP被限制2小时不能预约挂号,若耽误您预约,后果自负。</div>
                            <div class="c-666 mt5">{{Warntxt}}</div>
                            <div class="c-f16 c-909090 mt10">温馨提示</div>
                            <div class="c-666 mt5">1、3个月内无故爽约2次,将列入黑名单限制3个月内不予预约</div>
                        </div>
@ -99,6 +99,7 @@
        <script src="../../../component/common/appointment-step.js" type="text/javascript" charset="utf-8"></script>
        <!--利用搜狐的接口获得ip-->
        <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
        <script src="../../../api/patient/jiuzhen-api.js"></script>
        <script src="../js/confirm-info.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>

+ 124 - 115
page/appointment/js/confirm-info.js

@ -1,118 +1,127 @@
var request = GetRequest(),
    id = request.id;
	id = request.id;
new Vue({
    el: "#main",
    data: {
        dateInfo: {},
        numberInfo: {},
        baseInfo: {},
        patientInfo: {}
    },
    mounted: function(){
        EventBus.$emit("jump-step",{step:4});//step:跳转的步数
        //从缓存获取前一个页面缓存的信息
        var dateInfo = window.localStorage.getItem("dateInfo"),
            numberInfo = window.localStorage.getItem("numberInfo"),
            baseInfo = window.localStorage.getItem("baseInfo"),
            patientInfo = window.sessionStorage.getItem("oauthInfo");
        
        if(patientInfo){
            patientInfo = JSON.parse(patientInfo);
            this.patientInfo = patientInfo;
        }
        if(dateInfo){
            dateInfo = JSON.parse(dateInfo);
            this.dateInfo = dateInfo;
        }
        if(numberInfo){
            numberInfo = JSON.parse(numberInfo);
            this.numberInfo = numberInfo;
        }
        if(baseInfo){
            baseInfo = JSON.parse(baseInfo);
            this.baseInfo = baseInfo;
        }
    },
    methods: {
        confirm: function(){
            var userInfo = this.patientInfo,
                baseInfo = this.baseInfo,
                dateInfo = this.dateInfo,
                numberInfo = this.numberInfo;
            var params = {
                thirdPartyUserId: userInfo.id,
                patientName: userInfo.realName,
                tel: userInfo.telephone,
                IP: returnCitySN.cip, //通过搜狐接口获得ip地址
                cardNo: userInfo.idCardNo,
                modeId: dateInfo.modeId,
                hospitalId: baseInfo.hospitalId,
                hospitalName: baseInfo.hosName,
                hosDeptId: baseInfo.hosDeptId,
                hosDeptName: baseInfo.deptName,
                doctorSn: baseInfo.doctorSn,
                doctorName: baseInfo.doctorName,
                numberSn: numberInfo.numberSN,
                numberPrice: dateInfo.specialPrice,
                thirdPartyOrderId: id,
                registerDate: dateInfo.registerDate,
                timeId: dateInfo.timeId,
                commendTime: numberInfo.commendTime,
                serialNo: numberInfo.serialNo
            }
            appointmentAPI.createRegOrderForOpen(params).then(function(res){
                if(res.successFlg){
                    if(res.obj.Code == "10000"){
                        var orderId = res.obj.orderId;
                        //更新我们自己系统的挂号单信息
                        var params2 = {
                            id: res.obj.thirdPartyOrderId,
                            userId: userInfo.id
                        };
                        appointmentAPI.updateRegistrationOrder(params2).then(function(res){
                            console.log(res);
                            if(res.successFlg){
                                window.localStorage.removeItem("dateInfo");
                                window.localStorage.removeItem("numberInfo");
                                window.localStorage.removeItem("baseInfo");
                                
                                window.location.href = "success-info.html?orderId="+orderId+"&hospitalId="+baseInfo.hospitalId+"&deptId="+baseInfo.hosDeptId;
                            }else{
                                console.log(res.errorMsg);
                            }
                        })
                    }else{
                        showErrorMessage(res.obj.Message);
                    }
                }else{
                    showErrorMessage(res.errorMsg);
                }
            });
        },
        cancel: function(){
            var params = {
                id: id,
                state: 99 //订单状态: 1-待付款,2-待就诊,11-预约中,22-退款中,99-已退号,-1-系统取消,3-已就诊
            };
            appointmentAPI.updateOrderState(params).then(function(res){
                if(res.successFlg){
                    window.localStorage.removeItem("dateInfo");
                    window.localStorage.removeItem("numberInfo");
                    window.localStorage.removeItem("baseInfo");
            
                    document.history.back();
                }else{
                    showErrorMessage(res.errorMsg);
                }
            })
            
        }
    }
    
    function showErrorMessage(content){
        layer.msg(content, {
            icon: 2,
            time: 3000
        });
    }
	el: "#main",
	data: {
		dateInfo: {},
		numberInfo: {},
		baseInfo: {},
		patientInfo: {},
		Warntxt: "",
	},
	mounted: function() {
		EventBus.$emit("jump-step", {
			step: 4
		}); //step:跳转的步数
		//从缓存获取前一个页面缓存的信息
		var dateInfo = window.localStorage.getItem("dateInfo"),
			numberInfo = window.localStorage.getItem("numberInfo"),
			baseInfo = window.localStorage.getItem("baseInfo"),
			patientInfo = window.sessionStorage.getItem("oauthInfo");
		if(patientInfo) {
			patientInfo = JSON.parse(patientInfo);
			this.patientInfo = patientInfo;
		}
		if(dateInfo) {
			dateInfo = JSON.parse(dateInfo);
			this.dateInfo = dateInfo;
		}
		if(numberInfo) {
			numberInfo = JSON.parse(numberInfo);
			this.numberInfo = numberInfo;
		}
		if(baseInfo) {
			baseInfo = JSON.parse(baseInfo);
			this.baseInfo = baseInfo;
		}
		jiuzhenAPI.getRegisterWarn({
			token: "e8b01d2e-6dc8-4ba2-8422-462ae7535651"
		}).then(function(res) {
			this.Warntxt = res.value.replace("预约须知:", "")
		})
	},
	methods: {
		confirm: function() {
			var userInfo = this.patientInfo,
				baseInfo = this.baseInfo,
				dateInfo = this.dateInfo,
				numberInfo = this.numberInfo;
			var params = {
				thirdPartyUserId: userInfo.id,
				patientName: userInfo.realName,
				tel: userInfo.telephone,
				IP: returnCitySN.cip, //通过搜狐接口获得ip地址
				cardNo: userInfo.idCardNo,
				modeId: dateInfo.modeId,
				hospitalId: baseInfo.hospitalId,
				hospitalName: baseInfo.hosName,
				hosDeptId: baseInfo.hosDeptId,
				hosDeptName: baseInfo.deptName,
				doctorSn: baseInfo.doctorSn,
				doctorName: baseInfo.doctorName,
				numberSn: numberInfo.numberSN,
				numberPrice: dateInfo.specialPrice,
				thirdPartyOrderId: id,
				registerDate: dateInfo.registerDate,
				timeId: dateInfo.timeId,
				commendTime: numberInfo.commendTime,
				serialNo: numberInfo.serialNo
			}
			appointmentAPI.createRegOrderForOpen(params).then(function(res) {
				if(res.successFlg) {
					if(res.obj.Code == "10000") {
						var orderId = res.obj.orderId;
						//更新我们自己系统的挂号单信息
						var params2 = {
							id: res.obj.thirdPartyOrderId,
							userId: userInfo.id
						};
						appointmentAPI.updateRegistrationOrder(params2).then(function(res) {
							console.log(res);
							if(res.successFlg) {
								window.localStorage.removeItem("dateInfo");
								window.localStorage.removeItem("numberInfo");
								window.localStorage.removeItem("baseInfo");
								window.location.href = "success-info.html?orderId=" + orderId + "&hospitalId=" + baseInfo.hospitalId + "&deptId=" + baseInfo.hosDeptId;
							} else {
								console.log(res.errorMsg);
							}
						})
					} else {
						showErrorMessage(res.obj.Message);
					}
				} else {
					showErrorMessage(res.errorMsg);
				}
			});
		},
		cancel: function() {
			var params = {
				id: id,
				state: 99 //订单状态: 1-待付款,2-待就诊,11-预约中,22-退款中,99-已退号,-1-系统取消,3-已就诊
			};
			appointmentAPI.updateOrderState(params).then(function(res) {
				if(res.successFlg) {
					window.localStorage.removeItem("dateInfo");
					window.localStorage.removeItem("numberInfo");
					window.localStorage.removeItem("baseInfo");
					document.history.back();
				} else {
					showErrorMessage(res.errorMsg);
				}
			})
		}
	}
})
function showErrorMessage(content) {
	layer.msg(content, {
		icon: 2,
		time: 3000
	});
}

+ 94 - 0
page/mine/css/suggest.css

@ -0,0 +1,94 @@
body {
	background: rgba(245, 249, 249, 1);
	color: #323232;
}
.w3-row:after {
	content: "";
	display: table;
	clear: both
}
.w3-col {
	float: left;
	width: 100%
}
.w3-rest {
	overflow: hidden
}
.mine-menu {}
.mine-menu {
	font-size: 16px;
	color: #909090;
}
.mine-menu .active {
	color: #0AD8C8;
}
.all-center {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	margin: 0 auto;
}
.mainbox {
	width: 420px;
	margin: 0 auto;
}
.btn-theme {
	color: #fff;
	background: #0AD8C8;
	border-color: #0AD8C8;
}
.btn-theme:hover,
.btn-theme:active {
	color: #fff;
	background: #0aD9ff;
	border-color: #0AD8C8;
}
.pl105 {
	padding-left: 105px;
}
.pl251 {
	padding-left: 251px;
}
.m8 {
	margin-top: 8px;
}
.btn-default {
	background: #fff;
	color: #909090;
	font-size: 16px;
	border: 1px solid #D1D7D4;
}
.btn-default:hover,
.btn-default:active {
	color: #333;
	background: #F4F6FA;
}
.clearfix:after {
	content: none;
}
.list-record li {
	height: 50px;
}
.suggestcss {
	margin-top: 80px;
}

+ 1 - 1
page/mine/css/xiaoxi.css

@ -142,4 +142,4 @@ body {
	color: #909090;
	border-bottom: 1px solid #E3EDE8;
	padding: 0 20px;
}
}

+ 53 - 0
page/mine/html/suggest.html

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>意见反馈</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />
		<meta name="keywords" content="公众健康服务平台">
		<meta name="description" content="公众健康服务平台">
		<link rel="shortcut icon" href="../../favicon.ico">
		<link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../../../doctor/home/css/mine.css" />
		<link rel="stylesheet" type="text/css" href="../css/suggest.css" />
	</head>
	<body>
		<div id="app">
			<page-header></page-header>
			<div class="container ptb20 ">
				<div class="row w3-row">
					<left-menu :code="code"></left-menu>
					<div class="pl251">
						<div class="bgc-fff c-border" style="min-height: 706px;">
							<device-reback></device-reback>
						</div>
					</div>
				</div>
			</div>
			<page-footer></page-footer>
		</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
		<script src="../../../js/bootstrap.min.js"></script>
		<script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/header.js"></script>
		<script src="../../../component/doctor-home/device-reback.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/mine/left-menu.js"></script>
		<script src="../js/suggest.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

+ 12 - 0
page/mine/js/suggest.js

@ -0,0 +1,12 @@
new Vue({
	el: "#app",
	data: {
		code: "suggest",
	},
	mounted: function() {
		
	},
	methods: {
	}
});

+ 6 - 6
page/mineJiuZhen/html/mineJiuZhen.html

@ -37,29 +37,29 @@
						<div role="tabpanel" class="tab-pane active" id="home">
							<template v-if="records.length>0">
								<div class="list-body" v-for="record in records">
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.mRegistration.registerDate}} {{record.mRegistration.timeIdDesc}} {{record.mRegistration.commendTime}}</span></div>
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.registerDate}} {{record.timeIdDesc}} {{record.commendTime}}</span></div>
									<div class="w3-row">
										<div class="w3-col" style="width:150px;float: right;padding-top: 30px;">
											<div class="cancelbtn" @click="cancelbtn(record.orderId,record.mRegistration.orderId)">取消预约</div>
											<div class="cancelbtn" @click="cancelbtn(record.orderId,record.id)">取消预约</div>
										</div>
										<div class="w3-rest">
											<div class="div-table">
												<div class="table-row">
													<div class="table-cell">
														<div class="c-909090">医院</div>
														<div>{{record.mRegistration.hospitalName}}</div>
														<div>{{record.hospitalName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">科室</div>
														<div>{{record.mRegistration.deptName}}</div>
														<div>{{record.deptName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">医师</div>
														<div>{{record.mRegistration.doctorName}}</div>
														<div>{{record.doctorName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">挂号方式</div>
														<div>{{record.mRegistration.registerTypeDesc}}</div>
														<div>{{record.registerTypeDesc}}</div>
													</div>
												</div>
											</div>

+ 7 - 5
page/mineJiuZhen/js/cancelAppointment.js

@ -10,7 +10,7 @@ new Vue({
		var query = GetRequest();
		vm.orderid = query.orderid;
		vm.thirdorderid = query.thirdorderid;
		jiuzhenAPI.getRegisterWarn().then(function(res) {
		jiuzhenAPI.CancellationWarn({token:"e8b01d2e-6dc8-4ba2-8422-462ae7535651"}).then(function(res) {
			vm.Warntxt = res.value.replace("预约须知:","")
		})
	},
@ -18,14 +18,16 @@ new Vue({
		cancelAppointment: function() {
			var vm = this
			var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			//取消总部预约记录
			appointmentAPI.cancelOrder({
				orderId: orderid,
				orderId: vm.orderid,
				thirdPartyUserId: oauthInfo.id
			}).then(function(res) {
				if(res.Code == "10000") {
				if(res.obj.Code == "10000") {
					//取消我们这边的预约记录
					jiuzhenAPI.cancelOrder({
						id: thirdorderid,
						state: 99
						id: vm.thirdorderid,
						state: 99,
					}).then(function(res) {
						toastr.success("取消成功!")
					})

+ 45 - 34
page/mineJiuZhen/js/mineJiuZhen.js

@ -10,15 +10,35 @@ new Vue({
	},
	mounted: function() {
		var vm = this
		vm.getlist(1, vm.recodestype)
		vm.getlist(1, vm.historytype)
		vm.getlist(1)
		vm.gethistory(1)
	},
	methods: {
		getlist: function(pageNo, types) {
		getlist: function(pageNo) {
			var vm = this
			var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			var filters = "userId=" + oauthInfo.id+";state=2;orderId<>null"
			var param = {
				type: types,
				fields: '',
				filters: filters,
				sort: '+registerDate',
				page: pageNo,
				size: 5
			}
			jiuzhenAPI.queryRegOrderInfos(param).then(function(res) {
				vm.records = res.detailModelList
				if(res.totalCount == 0) {
					vm.ishomeNull = true
				} else {
					vm.inithomePage(pageNo, res.totalPage, res.totalCount)
				}
			})
		},
		gethistory: function(pageNo) {
			var vm = this
			var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			var param = {
				type: 100,
				appId: httpRequest.client_id,
				toUserId: oauthInfo.id,
				page: pageNo,
@ -26,36 +46,27 @@ new Vue({
				typeId: 7,
			}
			jiuzhenAPI.getRemind(param).then(function(res) {
				if(types == '101') {
					vm.records = res.detailModelList
					if(res.totalCount == 0) {
						vm.ishomeNull = true
					} else {
						vm.inithomePage(pageNo, res.totalPage, res.totalCount)
					}
				} else if(types == '100') {
					vm.historyrecords = res.detailModelList
					vm.historyrecords = res.detailModelList.map(function(v) {
						var content = JSON.parse(v.content);
						for(var i = 0; i < content.length; i++) {
							var aaa = content[i].code
							if(content[i].code == 'registerDate') {
								v.registerDate = content[i].value
							} else if(content[i].code == 'deptName') {
								v.deptName = content[i].value
							} else if(content[i].code == 'doctorName') {
								v.doctorName = content[i].value
							} else if(content[i].code == 'hospitalName') {
								v.hospitalName = content[i].value
							}
				vm.historyrecords = res.detailModelList
				vm.historyrecords = res.detailModelList.map(function(v) {
					var content = JSON.parse(v.content);
					for(var i = 0; i < content.length; i++) {
						var aaa = content[i].code
						if(content[i].code == 'registerDate') {
							v.registerDate = content[i].value
						} else if(content[i].code == 'deptName') {
							v.deptName = content[i].value
						} else if(content[i].code == 'doctorName') {
							v.doctorName = content[i].value
						} else if(content[i].code == 'hospitalName') {
							v.hospitalName = content[i].value
						}
						return v
					})
					if(res.totalCount == 0) {
						vm.ishomeNull = true
					} else {
						vm.inithistoryPage(pageNo, res.totalPage, res.totalCount)
					}
					return v
				})
				if(res.totalCount == 0) {
					vm.ishomeNull = true
				} else {
					vm.inithistoryPage(pageNo, res.totalPage, res.totalCount)
				}
			})
		},
@ -68,7 +79,7 @@ new Vue({
				totalSize: size,
				callback: function(num) {
					//回调的页数
					vm.getlist(1, vm.recodestype)
					vm.getlist(1)
				}
			})
		},
@ -81,7 +92,7 @@ new Vue({
				totalSize: size,
				callback: function(num) {
					//回调的页数
					vm.getlist(1, vm.historytype)
					vm.gethistory(1)
				}
			})
		},