Explorar el Código

对接预约挂号

linehang hace 7 años
padre
commit
62593d44ad

+ 1 - 1
api/patient/appointment-api.js

@ -5,7 +5,7 @@
    var appointmentAPI = {
        //查询医院列表
        querySimpleHospitalList: function(data){
            return httpRequest.fzPost("baseinfo/HospitalApi/querySimpleHospitalList", data);
           return httpRequest.get("basic/api/v1.0/appointment/combination/findHospitalList", {data: data});
        },
        //获取医院详情
        querySimpleHospitalById: function(data){

+ 49 - 20
component/appointment/dept-source.js

@ -1,41 +1,32 @@
(function() {
	Vue.component('dept-source', {
		template: '<div class="select-hospital">\
					<ul class="select-condition-list">\
						<li class="select-condition-list-item">\
					<ul class="select-condition-list" @click="itemClick">\
						<li class="select-condition-list-item" data-type="hostipal">\
							<div class="condition-name">医院</div>\
							<div class="condition-list">\
								<span>全部</span>\
								<span :class="{\'active\': hos.hospitalId==currentHospitalId}" v-for="hos in hospitalData" v-bind:data-id="hos.hospitalId">{{hos.hosName}}</span>\
								<span :class="{\'active\': hos.hospitalId==currentHospitalId}" v-for="hos in hospitalData" v-bind:data-val="hos.hospitalId">{{hos.hosName}}</span>\
							</div>\
							<div class="more-list">更多</div>\
						</li>\
						<li class="select-condition-list-item">\
						<li class="select-condition-list-item" data-type="visitdept">\
							<div class="condition-name">就诊科室</div>\
							<div class="condition-list">\
								<span>全部</span>\
								<span  v-for="dept in deptData" v-bind:data-id="dept.hosDeptId">{{dept.deptName}}</span>\
								<span class="active">全部</span>\
								<span v-for="dept in deptData" v-bind:data-val="dept.hosDeptId">{{dept.deptName}}</span>\
							</div>\
							<div class="more-list">更多</div>\
						</li>\
						<li class="select-condition-list-item">\
						<li class="select-condition-list-item" data-type="visitdate">\
							<div class="condition-name">就诊日期</div>\
							<div class="condition-list">\
								<span>全部</span>\
								<span class="active">全部</span>\
								<span data-val="{{nowDate}}">今天</span>\
								<span v-for="d in planDate" v-bind:data-val="d.date1">{{d.day}}({{d.date}})</span>\
							</div>\
							<div class="more-list">更多</div>\
						</li>\
						<li class="select-condition-list-item">\
							<div class="condition-name">医生类型</div>\
							<div class="condition-list">\
								<span>全部</span>\
								<span>主任医师</span>\
								<span>其他</span>\
							</div>\
							<div class="more-list">更多</div>\
						</li>\
					</ul>\
				</div>',
		props: ["info"],
@ -62,6 +53,27 @@
			},50);
		},
		methods: {
			itemClick:function(){
				var vm = this;
				var hosDeptId = "";
				var curType = $(event.target).closest("li").attr("data-type");
				var activeItemId = $(event.target).attr("data-val");
				$(event.target).closest("li").find("span").removeClass("active");
				$(event.target).addClass("active");
				if(curType=="hostipal") {//医院
					vm.currentHospitalId = activeItemId;
					hosDeptId = ""
					vm.getDeptList();
				}else if(curType=="visitdept"){//就诊科室
					vm.currentHospitalId = $(".select-condition-list li[data-type=hostipal]").find("span.active").attr("data-val");
					hosDeptId = activeItemId;
				}else if(curType=="subdept"){//子科室
					
				}else if(curType=="visitdate"){//就诊日期
					
				}
				EventBus.$emit('update-doctor-list',{hospitalId:vm.currentHospitalId,hosDeptId:hosDeptId});
			},
			bindEvents:function(){
				//查看更多
				$(".more-list").click(function() {
@ -100,6 +112,9 @@
				appointmentAPI.querySimpleHosDeptList(params).then(function(res) {
					if(res.successFlg && res.obj.Code == "10000") {
						vm.deptData = res.obj.Result;
//						vm.deptData = _.filter(vm.deptData,function(item){
//							return 
//						})
					}
				})
			},
@ -146,8 +161,22 @@
		}
	});
	function getDeptList(vm) {
})()
	}
//<li class="select-condition-list-item">\
//	<div class="condition-name">医生类型</div>\
//	<div class="condition-list">\
//		<span>全部</span>\
//		<span>主任医师</span>\
//		<span>其他</span>\
//	</div>\
//	<div class="more-list">更多</div>\
//</li>\
})()
//<li class="select-condition-list-item" data-type="subdept">\
//	<div class="condition-name">子科室</div>\
//	<div class="condition-list">\
//		<span class="active">全部</span>\
//	</div>\
//	<div class="more-list">更多</div>\
//</li>\

+ 29 - 15
component/appointment/doctor-list.js

@ -2,7 +2,7 @@
	Vue.component('doctor-list', {
		template: '<div class="ui-col-1 ml15 bgc-fff c-border p20">\
						<div class="c-f16 c-323232 mb20">医生列表</div>\
						<div class="ui-grid c-border p10 pb0 mt10" v-for="(doc, index) in doctorList">\
						<div class="ui-grid c-border p10 pb0 mt10" v-for="(doc, index) in doctorList" v-show="isDoctorList">\
							<div class="ui-col-0 mr10">\
								<img v-bind:src="doc.photoUri" width="70" height="70" class="c-images-cycle">\
							</div>\
@ -19,12 +19,12 @@
								</p>\
							</div>\
							<div class="ui-col-1 div-doctor-section" v-for="(arrange, aindex) in arrangeList" v-if="index==aindex">\
								<div class="div-left-btn c-hide" @click="preClick" v-show="leftBtn"></div>\
								<div class="div-left-btn" @click="preClick"></div>\
								<ul class="doctor-ul">\
									<li v-for="(arrg, arrIndex) in arrange" @click="goToDoctorPage(doc.doctorSn, arrg.arrangeID)">\
										<div class="div-doctor-item" :class="getColorClass(arrg.numberStatus,arrg.arrangeStatus)">\
											<div class="mt5">{{arrg.registerDate}}</div>\
											<div class="mt5">{{arrg.timeName}}</div>\
											<div class="mt5">{{arrg.date}}</div>\
											<div class="mtb2">{{arrg.timeName}}</div>\
											<div class="div-doctor-type bgc-0ad8c8" v-if="arrg.numberStatus==1">预约</div>\
											<div class="div-doctor-type bgc-d1d1d1" v-if="arrg.numberStatus==2">已满</div>\
											<div class="div-doctor-type bgc-f0a65f" v-if="arrg.arrangeStatus==2">放号提醒</div>\
@ -32,10 +32,14 @@
										</div>\
									</li>\
								</ul>\
								<div class="div-right-active-btn" v-show="rightBtn" @click="nextClick" v-if="arrangeList[aindex].length>4"></div>\
								<div class="div-right-active-btn" @click="nextClick"></div>\
							</div>\
						</div>\
						<div id="page" class="page_div fr"></div>\
						<div id="page" class="page_div fr" v-show="isDoctorList"></div>\
						<div class="div-wushuju" v-show="!isDoctorList">\
							<div style="background: url(../../../images/wushuju_icon.png) no-repeat;width: 230px;height: 130px;margin: 30px auto;"></div>\
							<div style="text-align:center">查无数据</div>\
						</div>\
					</div>',
		props: ["info"],
		data: function() {
@ -44,13 +48,14 @@
				currentHospitalId: "",
				currentHosName: "",
				pageIndex: 1,
				pageSize: 10,
				pageSize: 5,
				totalPage: 0,
				hosDeptId: "",
				doctorList: [],
				arrangeList:[],
				leftBtn:false,
				rightBtn:false,
				isDoctorList:true
			}
		},
		mounted: function() {
@ -60,6 +65,14 @@
				vm.currentHosName = JSON.parse(vm.info).hosName;
				vm.getDoctorList();
			}, 50);
			
			//更新医生列表信息
			EventBus.$on('update-doctor-list', function(arg) {
				vm.isInit = true;
				vm.currentHospitalId = arg.hospitalId;
				vm.hosDeptId = arg.hosDeptId;
				vm.getDoctorList();
			})
		},
		methods: {
			getColorClass:function(numberStatus,arrangeStatus){
@ -86,16 +99,17 @@
				}
				appointmentAPI.querySimpleDoctorList(params).then(function(res) {
					if(res.successFlg && res.obj.Code == "10000") {
						vm.doctorList = res.obj.Result;
						//获取医生排班数据
						vm.getArrangeWater(vm.doctorList);
						vm.doctorList = res.obj.Result || [];
						vm.isDoctorList = vm.doctorList.length>0?true:false;
						vm.getArrangeWater(vm.doctorList);//获取医生排班数据
						if(vm.isInit) {
							vm.totalPage = Math.ceil(res.obj.Total / vm.pageSize);
							vm.totalPage = Math.ceil(res.obj.Total / vm.pageSize) || 0;
							var totalSize = res.obj.Total || 0;
							//分页初始化
							$("#page").paging({
								pageNo: 1,
								totalPage: vm.totalPage,
								totalSize: res.obj.Total,
								totalSize: totalSize,
								callback: function(num) {
									vm.pageIndex = num; //回调的页数
									getDoctorList(vm);
@ -130,13 +144,13 @@
					})
					
					vm.arrangeList = _.map(vm.arrangeList, function(data) {
						_.map(data, function(item) {
							item.registerDate = item.registerDate.substring(5,10).replace("-","/");
						_.map(data, function(item,index) {
							item.date = item.registerDate.substring(5,10).replace("-","/");
							item.timeName = item.timeId==1?"上午":item.timeId==2?"下午":"晚上";
						})	
						return data;
					})
					 $(".doctor-ul li:lt(4)").hide()
//					 $(".doctor-ul li:lt(4)").hide()
				});
			},
			preClick:function(){

+ 8 - 22
component/appointment/hospital-source.js

@ -10,10 +10,6 @@
								</div>\
								<div class="ui-col-1">\
									<div class="c-f16 c-323232">{{data.hosName}}<span class="ml10 c-f14 c-ef6b00">[{{data.levelName}}]</span></div>\
									<div class="mt16 c-f14">\
										<span class="c-0AD9C9">{{data.doctorNum}}</span>\
										<span class="c-909090">个推荐医生</span>\
									</div>\
									<div class="mt20">\
										<img src="../../../images/icon_dizhi.png" width="24" height="24" />\
										<span class="ml5 c-f14 c-909090">{{data.address}}</span>\
@ -36,7 +32,6 @@
		},
		mounted: function() {
			var vm = this;
//			getHospitalList(vm);
            vm.getHospitalList();
		},
		methods: {
@ -48,13 +43,13 @@
				var params = {
					pageIndex: vm.currentPage,
					pageSize: vm.pageSize,
					provinceCode: 360000,
					provinceCode: "360000",
					cityCode: 361100
				}
				appointmentAPI.querySimpleHospitalList(params).then(function(res) {
					if(res.successFlg && res.obj.Code == "10000") {
						var hospitalData = res.obj;
						//				vm.hospitalData = hospitalData.Result;
						vm.hospitalData = hospitalData.Result;
						if(vm.isInit) {
							vm.totalPage = Math.ceil(hospitalData.Total / vm.pageSize);
							//分页初始化
@ -68,20 +63,6 @@
								}
							})
							vm.isInit = false;
							//查询医生总数
							var doctorParams = {
								pageIndex: vm.currentPage,
								pageSize: vm.pageSize,
								hospitalId: hospitalData.Result[0].hospitalId
							}
							appointmentAPI.querySimpleDoctorList(doctorParams).then(function(doctorRes) {
								if(doctorRes.successFlg && doctorRes.obj.Code == "10000") {
									hospitalData.Result[0].doctorNum = doctorRes.obj.Total;
									vm.hospitalData = hospitalData.Result;
								}
							})
						}
					}
				})
@ -89,4 +70,9 @@
		}
	});
})()
})()
//<div class="mt16 c-f14">\
//	<span class="c-0AD9C9">{{data.doctorNum}}</span>\
//	<span class="c-909090">个推荐医生</span>\
//</div>\

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
css/bootstrap.min.css


+ 20 - 0
js/util.js

@ -58,6 +58,26 @@ function GetRequest() {
   return theRequest;
}
//正则匹配法
function GetRequest1(name){
	var url = window.location.href; //获取地址栏url
	var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
	var matcher = pattern.exec(url);
	var items = null;
	if(null != matcher) {
		try {
			items = decodeURIComponent(decodeURIComponent(matcher[1]));
		} catch(e) {
			try {
				items = decodeURIComponent(matcher[1]);
			} catch(e) {
				items = matcher[1];
			}
		}
	}
	return items;
}
//判断输入字符串是否为空或全是空格
function isNull(str) {
	if(str == null) return true;

+ 5 - 3
page/appointment/css/select-hospital.css

@ -95,7 +95,7 @@
.doctor-ul {
	padding-left: 10px;
	height: 72px;
	width:390px;
	width: 480px;
	overflow: hidden;
}
@ -107,7 +107,7 @@
}
.div-doctor-info {
	width: 240px !important;
	width: 250px !important;
}
.ml276 {
@ -203,4 +203,6 @@
	color: #fff;
	border-bottom-left-radius: 10px;
	border-bottom-right-radius: 10px;
}
}
.mtb2{margin-bottom: 2px;margin-top: 2px;}

+ 1 - 0
page/appointment/html/home.html

@ -45,6 +45,7 @@
			<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="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
			<script src="../../../plugins/pace/pace.min.js" type="text/javascript" charset="utf-8"></script>
			<script src="../../../js/paging.js"></script>
			<script src="../../../api/http-request.js"></script>
			<script src="../../../api/patient/appointment-api.js"></script>

+ 1 - 0
page/appointment/html/select-hospital.html

@ -46,6 +46,7 @@
		<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="../../../plugins/pace/pace.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js"></script>
		<script src="../../../api/patient/appointment-api.js"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>

+ 1 - 0
page/appointment/html/success-info.html

@ -79,6 +79,7 @@
        <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="../../../plugins/pace/pace.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/patient/appointment-api.js"></script>
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>

+ 3 - 1
page/appointment/js/home.js

@ -4,6 +4,8 @@ new Vue({
        
    },
    mounted:function(){
		EventBus.$emit("jump-step",{});//step:跳转的步数
		EventBus.$emit("jump-step", {
				step: 1
			}); //step: 跳转的步数
    }
})

+ 6 - 21
page/appointment/js/select-hospital.js

@ -1,3 +1,5 @@
    var hospitalId = GetRequest1("hospitalId"),
        hosName = GetRequest1("hosName");
new Vue({
	el: "#main",
	data: {
@ -5,34 +7,17 @@ new Vue({
	},
	mounted: function() {
		this.info = JSON.stringify({
			hospitalId: this.getRequest("hospitalId"),
			hosName: this.getRequest("hosName")
			hospitalId: hospitalId,
			hosName: hosName
		});
		this.bindEvents();
	},
	methods: {
		bindEvents: function() {
			EventBus.$emit("jump-step", {
				step: 1
				step: 2
			}); //step: 跳转的步数
		},
		getRequest: function(name) {
			var url = window.location.href; //获取地址栏url
			var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
			var matcher = pattern.exec(url);
			var items = null;
			if(null != matcher) {
				try {
					items = decodeURIComponent(decodeURIComponent(matcher[1]));
				} catch(e) {
					try {
						items = decodeURIComponent(matcher[1]);
					} catch(e) {
						items = matcher[1];
					}
				}
			}
			return items;
		}
		
	}
})

+ 3 - 22
page/appointment/js/success-info.js

@ -1,14 +1,13 @@
var hospitalId = GetRequest1("hospitalId");
new Vue({
	el: "#main",
	data: function() {
		return {
			activeTabIdx: 1,
			hospitalId:"",
			data: {}
		}
	},
	mounted: function() {
		this.hospitalId = this.getRequest("hospitalId");
		EventBus.$emit("jump-step", {
			step: 4
		}); //step:跳转的步数
@ -22,7 +21,7 @@ new Vue({
		querySimpleHospitalById: function() {
			var vm = this;
			appointmentAPI.querySimpleHospitalById({
				hospitalId: vm.hospitalId
				hospitalId: hospitalId
			}).then(function(res) {
				if(res.successFlg && res.obj.Code == "10000") {
					var obj = res.obj;
@ -32,7 +31,7 @@ new Vue({
			});
		},
		backPage: function() {
			window.location.href = "select-hospital.html";
			window.location.href = "select-hospital.html?hospitalId="+hospitalId;
		},
		//根据经纬度定位
		doLocate: function(jd, wd) {
@ -57,24 +56,6 @@ new Vue({
			map.centerAndZoom(point, 15);
			// 初始化地图,设置中心点坐标和地图级别。
		},
		getRequest: function(name) {
			var url = window.location.href; //获取地址栏url
			var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
			var matcher = pattern.exec(url);
			var items = null;
			if(null != matcher) {
				try {
					items = decodeURIComponent(decodeURIComponent(matcher[1]));
				} catch(e) {
					try {
						items = decodeURIComponent(matcher[1]);
					} catch(e) {
						items = matcher[1];
					}
				}
			}
			return items;
		}
	}
})