|
@ -1,83 +1,54 @@
|
|
|
(function(){
|
|
|
Vue.component('date-scource', {
|
|
|
template: `<section class="mt30" name="date-section">
|
|
|
<p class="c-f18">就诊日期</p>
|
|
|
<div class="div-table">
|
|
|
<div class="table-row">
|
|
|
<div class="table-cell arrow-cell"><i class="fa fa-caret-left c-f20 c-909090"></i></div>
|
|
|
<div v-for="d in planDate" class="table-cell">{{d.date}} {{d.day}}</div>
|
|
|
<div class="table-cell arrow-cell active"><i class="fa fa-caret-right c-f20 c-909090"></i></div>
|
|
|
</div>
|
|
|
<div class="table-row">
|
|
|
<div class="table-cell c-f16 bgc-ebf4f3">上午</div>
|
|
|
<div class="table-cell active">可预约<br/><span class="yy-tag active">预约</span></div>
|
|
|
<div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-fea7a8">停诊<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-f4b87f">无安排<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell"></div>
|
|
|
</div>
|
|
|
<div class="table-row">
|
|
|
<div class="table-cell c-f16 bgc-ebf4f3">下午</div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
|
|
|
<div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-fea7a8">停诊<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-f4b87f">无安排<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
|
|
|
<div class="table-cell"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<p class="c-f18 mt30">就诊时间</p>
|
|
|
<div class="clearfix">
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag active"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
<div class="c-20 fl mb20">
|
|
|
<div class="source-tag"><span>第1号</span><span>07:30</span></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="mt30 c-t-center mb50">
|
|
|
<button class="btn btn-primary">确认预约</button>
|
|
|
</div>
|
|
|
</section>`,
|
|
|
props: [],
|
|
|
template: '<section class="mt30" name="date-section">\
|
|
|
<p class="c-f18">就诊日期</p>\
|
|
|
<div class="div-table">\
|
|
|
<div class="table-row">\
|
|
|
<div class="table-cell arrow-cell"><i class="fa fa-caret-left c-f20 c-909090"></i></div>\
|
|
|
<div v-for="d in planDate" class="table-cell">{{d.date}} {{d.day}}</div>\
|
|
|
<div class="table-cell arrow-cell active"><i class="fa fa-caret-right c-f20 c-909090"></i></div>\
|
|
|
</div>\
|
|
|
<div class="table-row">\
|
|
|
<div class="table-cell c-f16 bgc-ebf4f3">上午</div>\
|
|
|
<div class="table-cell" v-for="(item, index) in amData" :class="{\'active\': item.arrangeID == arrangeid && arrangeid!=undefined}" @click="getNumbers(item.arrangeID)">\
|
|
|
<span :class="getColor(item.arrangeStatus, item.numberStatus)">{{getStatusName(item.arrangeStatus, item.numberStatus)}}</span><br/>\
|
|
|
<span class="yy-tag" :class="{\'active\': item.arrangeStatus==1 && item.numberStatus==1}">预约</span>\
|
|
|
</div>\
|
|
|
<div class="table-cell"></div>\
|
|
|
</div>\
|
|
|
<div class="table-row">\
|
|
|
<div class="table-cell c-f16 bgc-ebf4f3">下午</div>\
|
|
|
<div class="table-cell" v-for="(item, index) in pmData" :class="{\'active\': item.arrangeID == arrangeid && arrangeid!=undefined}" @click="getNumbers(item.arrangeID)">\
|
|
|
<span :class="getColor(item.arrangeStatus, item.numberStatus)">{{getStatusName(item.arrangeStatus, item.numberStatus)}}</span><br/>\
|
|
|
<span class="yy-tag" :class="{\'active\': item.arrangeStatus==1 && item.numberStatus==1}">预约</span>\
|
|
|
</div>\
|
|
|
<div class="table-cell"></div>\
|
|
|
</div>\
|
|
|
</div>\
|
|
|
<p class="c-f18 mt30">就诊时间</p>\
|
|
|
<div class="clearfix">\
|
|
|
<div v-for="it in numberSource" class="c-20 fl mb20">\
|
|
|
<div class="source-tag c-t-center" :class="{\'active\': registerNumber==it.numberSN}" @click="chooseNumber(it.numberSN, it.modeId)">\
|
|
|
{{it.commendTime || it.commendScope}}\
|
|
|
</div>\
|
|
|
</div>\
|
|
|
</div>\
|
|
|
<div class="mt30 c-t-center mb50">\
|
|
|
<button class="btn btn-primary" @click="submitForm">确认预约</button>\
|
|
|
</div>\
|
|
|
</section>',
|
|
|
props: ['doctorsn', 'arrangeid'],
|
|
|
data: function(){
|
|
|
return {
|
|
|
planDate: [],
|
|
|
selectedDate: 0,
|
|
|
amData: [],
|
|
|
pmData: []
|
|
|
pmData: [],
|
|
|
numberSource: [],
|
|
|
registerNumber: '',
|
|
|
modeId: '', //号源池模式:1:实时号源池, 0:非实时号源池
|
|
|
baseInfo: {}, //记录医生医院等基础信息
|
|
|
specialPrice: 0, //挂号费(单位:分)
|
|
|
}
|
|
|
},
|
|
|
mounted: function(){
|
|
@ -88,32 +59,159 @@
|
|
|
var nDate = now.getDate();
|
|
|
d.setDate(nDate + i);
|
|
|
var obj = {
|
|
|
date: d.format("MM月dd日"),
|
|
|
day: getWeekDay(d.getDay())
|
|
|
date: d.format("MM/dd"),
|
|
|
day: getWeekDay(d.getDay()),
|
|
|
fullDate: d.format("yyyy-MM-dd")
|
|
|
}
|
|
|
this.planDate.push(obj);
|
|
|
}
|
|
|
|
|
|
//获取每天上午和下午的数据
|
|
|
for(i=0; i<7; i++){
|
|
|
var d = this.planDate[i].date;
|
|
|
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;
|
|
|
}
|
|
|
},
|
|
|
chooseNumber: function(id, modeId){
|
|
|
this.registerNumber = id;
|
|
|
this.modeId = modeId;
|
|
|
},
|
|
|
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{
|
|
|
console.log(res.obj.Message);
|
|
|
}
|
|
|
}else{
|
|
|
console.log(res.errorMsg);
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
//获取医生排班信息
|
|
|
function getArrangeDate(vm){
|
|
|
function getArrangeDate(vm, docInfo){
|
|
|
console.log(vm);
|
|
|
var params = {
|
|
|
hospitalId: '',
|
|
|
hosDeptId: '',
|
|
|
doctorSn: '', //科室和医生必选一
|
|
|
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;
|
|
|
//获取每天上午和下午的数据
|
|
|
for(i=0; i<7; i++){
|
|
|
var d = vm.planDate[i].fullDate;
|
|
|
var objArr = _.where(list, {registerDate: d});
|
|
|
if(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<objArr.length; j++){
|
|
|
var obj = objArr[j];
|
|
|
if(obj.timeId == 1){ //1 上午 2下午 3 晚上
|
|
|
vm.amData.push(obj);
|
|
|
}
|
|
|
if(obj.timeId == 2 || obj.timeId == 3){
|
|
|
vm.pmData.push(obj);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
vm.amData.push({
|
|
|
arrangeID: '', //没有排号
|
|
|
arrangeStatus: 0, //自定义状态,0无安排,1-4系统定义:1正常 2停诊 3已取消 4暂停预约
|
|
|
})
|
|
|
vm.pmData.push({
|
|
|
arrangeID: '', //没有排号
|
|
|
arrangeStatus: 0, //自定义状态,0无安排,1-4系统定义:1正常 2停诊 3已取消 4暂停预约
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
console.log(res.obj.Message);
|
|
|
}
|
|
|
}else{
|
|
|
console.log(res.errorMsg);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
@ -123,10 +221,37 @@
|
|
|
arrangeID: code
|
|
|
};
|
|
|
appointmentAPI.queryNumbers(params).then(function(res){
|
|
|
|
|
|
if(res.successFlg){
|
|
|
if(res.obj.Code == "10000"){
|
|
|
vm.numberSource = res.obj.Result;
|
|
|
}else{
|
|
|
console.log(res.Message);
|
|
|
}
|
|
|
}else{
|
|
|
console.log(res.errorMsg);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//将挂号信息提交给下一个页面去确认
|
|
|
function submitForm(vm){
|
|
|
var dateInfo = {};
|
|
|
var arr = _.where(vm.amData, {arrangeID: parseInt(vm.arrangeid)});
|
|
|
if(arr.length == 0){
|
|
|
arr = _.where(vm.pmData, {arrangeID: parseInt(vm.arrangeid)});
|
|
|
}
|
|
|
dateInfo = arr[0];
|
|
|
var numberInfo = _.findWhere(vm.numberSource, {numberSN: vm.registerNumber});
|
|
|
|
|
|
//存储这些数据传递去确认页面
|
|
|
window.localStorage.setItem("dateInfo", JSON.stringify(dateInfo));
|
|
|
window.localStorage.setItem("numberInfo", JSON.stringify(numberInfo));
|
|
|
window.localStorage.setItem("baseInfo", JSON.stringify(vm.baseInfo));
|
|
|
|
|
|
//跳转去确认信息页面
|
|
|
window.location.href = "confirm-info.html";
|
|
|
}
|
|
|
|
|
|
function getWeekDay(val){
|
|
|
switch(val){
|
|
|
case 0:
|
|
@ -152,4 +277,52 @@
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getStatusName(arrangeStatus, numberStatus){
|
|
|
//arrangeStatus: 1正常 2停诊 3已取消 4暂停预约,自定义: 5无安排
|
|
|
//numberStatus: 1可约 2已约满或无号源
|
|
|
switch(arrangeStatus){
|
|
|
case 1:
|
|
|
if(numberStatus==1){
|
|
|
return "可预约";
|
|
|
}else{
|
|
|
return "已满"
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
return "停诊";
|
|
|
break;
|
|
|
case 3:
|
|
|
return "已取消";
|
|
|
break;
|
|
|
case 4:
|
|
|
return "暂停预约";
|
|
|
break;
|
|
|
default:
|
|
|
return "无安排";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getStatusColor(arrangeStatus, numberStatus){
|
|
|
switch(arrangeStatus){
|
|
|
case 1:
|
|
|
if(numberStatus==1){
|
|
|
return "";
|
|
|
}else{
|
|
|
return "c-909090"
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
return "c-ffb5b6";
|
|
|
break;
|
|
|
case 3:
|
|
|
case 4:
|
|
|
return "c-909090";
|
|
|
break;
|
|
|
default:
|
|
|
return "c-f3be88";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
})()
|