(function(){ Vue.component('date-scource', { template: '
\

就诊日期

\
\
\
\
{{d.dStr}} {{d.day}}
\
\
\
\
上午
\
\ {{getStatusName(item.arrangeStatus, item.numberStatus)}}
\ 预约\
\
\
\
\
下午
\
\ {{getStatusName(item.arrangeStatus, item.numberStatus)}}
\ 预约\
\
\
\
\

就诊时间

\
\
\
\ {{it.commendTime || it.commendScope}}\
\
\
\
\ \
\
', props: ['doctorsn', 'arrangeid', 'registerdate'], data: function(){ return { planDate: [], selectedDate: 0, amData: [], pmData: [], numberSource: [], registerNumber: '', modeId: '', //号源池模式:1:实时号源池, 0:非实时号源池 baseInfo: {}, //记录医生医院等基础信息 specialPrice: 0, //挂号费(单位:分), curPage: 1, //当前页 page: 1 , //日期分页,当有号源的日期数超过了7天,则需要分页展示 totalPage: 5, pageSize: 31 } }, mounted: function(){ getDoctorInfo(this); getNumbers(this.arrangeid, this); }, methods: { getStatusName: function(arrangeStatus, numberStatus){ return getStatusName(arrangeStatus, numberStatus); }, getColor: function(arrangeStatus, numberStatus){ return getStatusColor(arrangeStatus, numberStatus); }, getNumbers: function(code, specialPrice){ if(code && this.arrangeid != code){ getNumbers(code, this); this.arrangeid = code; } }, showCol: function(index){ //默认分页一页展示7条数据,然后显示一个月的数据31天 switch(this.curPage){ case 1: return index < 7 ? true: false; break; case 2: return index >=7 && index<14 ? true: false; break; case 3: return index >=14 && index<21 ? true: false; break; case 4: return index >=21 && index<28? true: false; break; case 5: return index>=28 ? true : false; break; default: return true; break; } }, chooseNumber: function(id, modeId){ this.registerNumber = id; this.modeId = modeId; }, prePage: function(){ if(this.curPage > 1){ this.curPage --; } }, nextPage: function(){ if(this.curPage < this.totalPage){ this.curPage ++; } }, submitForm: function(){ if(!this.arrangeid){ dialog({ content: "请选择就诊日期", contentType:'tipsbox', skin:'bk-popup', quickClose: true }).showModal(); return false; } if(!this.registerNumber){ dialog({ content: "请选择就诊时间", contentType:'tipsbox', skin:'bk-popup', quickClose: true }).showModal(); return false; } var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo")); if(!oauthInfo){ //要求登录 dialog({ title: "登录提醒", skin: "my-dialog", content: "需要登录才可以预约", okValue: "跳转去登录", ok: function(){ window.location.href = "../../login/html/login.html"; }, cancelValue: "我知道了", cancel: function(){} }).showModal(); return false; } submitForm(this); } } }); //获取医生基本信息 function getDoctorInfo(vm){ var params = { doctorSn: vm.doctorsn } appointmentAPI.querySimpleDoctorBySn(params).then(function(res){ if(res.successFlg){ if(res.obj.Code == "10000"){ //触发父类获取医生信息 EventBus.$emit("get-doctor-info", {docInfo: res.obj}); getArrangeDate(vm, res.obj) vm.baseInfo = res.obj; }else{ showErrorMessage(res.obj.Message); } }else{ showErrorMessage(res.errorMsg); } }) } //获取医生排班信息 function getArrangeDate(vm, docInfo){ var params = { hospitalId: docInfo.hospitalId, //'2h+klDvGn+Q=', hosDeptId: docInfo.hosDeptId, //'vp0N0lqGZgA=', doctorSn: vm.doctorsn, //'1jGMsR3q3nZawh/iQIuzYg==', //科室和医生必选一 registerDate: '', //就诊日期 yyyy-MM-dd pageIndex: vm.page, pageSize: vm.pageSize }; appointmentAPI.queryGhtArrangeWater(params).then(function(res){ if(res.successFlg){ if(res.obj.Code == "10000"){ var list = res.obj.Result; //先groupby结果,判断有几天号源 var dateGroup = _.groupBy(list, 'registerDate'); //展示整个月的数据 var now = new Date(); var planDate = [], selectedIndex; for(i=0; i<31; i++){ var d = new Date(); d.setDate(now.getDate()+i); var dStr = d.format("yyyy-MM-dd"); planDate.push({ date: dStr, dStr: d.format("MM/dd"), day: getWeekDay(d.getDay()) }); //日期记录 //记录选中的日期 if(vm.registerdate == dStr){ selectedIndex = i; } var objArr = dateGroup[dStr]; if(objArr && objArr.length > 0){ if(objArr.length == 1){ var obj = objArr[0]; if(obj.timeId == 1){ //1 上午 2下午 3 晚上 vm.amData.push(obj); vm.pmData.push({ arrangeID: '', //没有排号 arrangeStatus: 0, }); }else{ vm.pmData.push(obj); vm.amData.push({ arrangeID: '', //没有排号 arrangeStatus: 0, }); } }else if(objArr.length == 2){ for(j=0; j