<!-- 选择就诊时段 -->
<van-popup v-model="showPicker" round position="bottom">
<van-picker
title="请选择就诊时段"
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="onCancel"
@change="onChange"
/>
</van-popup>
数据:
columns: [
{ text: '上午' , disabled: true},
{ text: '下午', disabled: true },
{ text: '晚上', disabled: true }
]
方法:
//控制就诊时段控件
TimeZu(){
//this.doctorscheInfo.TimeQuantum存储的后端返回的时间代表数
//4代表全天,1代表上午,2代表下午,3代表晚上
let TimeQuantum = this.doctorscheInfo.TimeQuantum;
//判断TimeQuantum 是 上午晚上/下午晚上 或 上午下午/下午上午(需要用户选择就诊时段)
let Qutum = ((TimeQuantum.includes("上午") || TimeQuantum.includes("下午")) && TimeQuantum.includes("晚上")) || (TimeQuantum.includes("上午")&&TimeQuantum.includes("下午"));
console.log("判断是否为多个时段:",Qutum)
if(TimeQuantum === "全天" || Qutum) {//判断时段是否为全天
var nowTime = new Date();
//获取年月日
var nowDate = new Date();
var year = nowDate.getFullYear();
var month = nowDate.getMonth() + 1 < 10 ? "0" + (nowDate.getMonth() + 1)
: nowDate.getMonth() + 1;
var day = nowDate.getDate() < 10 ? "0" + nowDate.getDate() : nowDate
.getDate();
var dateStr = year + "-" + month + "-" + day; // 格式2020-06-01
console.log("年月日",dateStr === this.time)
//nowTime.getHours() +":" + nowTime.getMinutes() ——> 9:12 时间形式
var m = nowTime.getHours();
console.log("mm",m >= 12 && m < 13)
console.log("xuanz", this.columns)
if(dateStr != this.time) {//当前日期不等于当前挂号日期
//不是当天挂号日期,根据排班显示可选时段
if(TimeQuantum.includes("上午")){
this.columns[0].disabled = false;
}
if(TimeQuantum.includes("下午")){
this.columns[1].disabled = false;
}
if(TimeQuantum.includes("晚上")){
this.columns[2].disabled = false;
}
}else{
//当前日期等于当前挂号日期,根据当前时间以及排班信息进行显示可选时段
if (m <= 12 && m >= 8 && TimeQuantum.includes("上午")) {//m小于等于12点并且大于等于8点 包含上午 时启用上午挂号
console.log("shang")
this.columns[0].disabled = false;//启用
}
if (m <= 18 && TimeQuantum.includes("下午")) {//m小于下午18点 包含下午 时启用下午挂号
console.log("xia")
this.columns[1].disabled = false;//启用
}
if (m >= 19 && m <= 7 && TimeQuantum.includes("晚上")) {//m大于等于19点 并且小于等于7点 包含晚上 时启用晚上挂号
console.log("wan")
this.columns[2].disabled = false;//启用
}
}
if(this.columns[0].disabled && this.columns[1].disabled && this.columns[2].disabled){//三个选项时段都被禁用
//表示当前时段不可挂至该医生
this.$toast('当前时段已不可挂至该医生!')
}else{
this.showPicker = true;
}
}else{
this.payment();//调起支付
}
},
展示图: