|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 604 B |
|
After Width: | Height: | Size: 924 B |
|
After Width: | Height: | Size: 943 B |
|
After Width: | Height: | Size: 405 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 379 B |
@ -0,0 +1,298 @@ |
|||||||
|
<template> |
||||||
|
<div class="pro_con"> |
||||||
|
<div class="pro_box" v-for="item in proArr" :key="item.time"> |
||||||
|
<div class="pro_top"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/time.png" alt="" /> |
||||||
|
</div> |
||||||
|
<div class="time_box"> |
||||||
|
<div class="time_text">{{item.day}}</div> |
||||||
|
<div class="date_txt">{{item.monmet}}</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="pro_bottom"> |
||||||
|
<div class="pro_left"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/pro.png" alt="" /> |
||||||
|
</div> |
||||||
|
<div class="pro_name">{{item.name}}</div> |
||||||
|
<div class="pro_pos">{{item.posi}}</div> |
||||||
|
</div> |
||||||
|
<div class="pro_right"> |
||||||
|
<div class="cancel" @click="cancelButton(item)">取消预约</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="act_box"> |
||||||
|
<div class="act_btn" @click="confirm">确认</div> |
||||||
|
</div> |
||||||
|
<van-overlay :show="isShow"> |
||||||
|
<div class="wrapper" @click.stop v-show="isSuccess"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/succ.png" alt=""> |
||||||
|
</div> |
||||||
|
<div class="tips">预约成功</div> |
||||||
|
<div class="tip_txt"> |
||||||
|
<div>预约成功后若不能按时体检请提前取消</div> |
||||||
|
<div>未提前取消且未按期体检将被拉入黑名单</div> |
||||||
|
<div>被拉黑用户10日内不可再预约</div> |
||||||
|
</div> |
||||||
|
<div class="btn">知道了</div> |
||||||
|
</div> |
||||||
|
<div class="wrapper" @click.stop v-show="!isSuccess"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/fail.png" alt=""> |
||||||
|
</div> |
||||||
|
<div class="tips">预约失败</div> |
||||||
|
<div class="tip_txt"> |
||||||
|
<div>您选择的时间段已无号,请重新预约</div> |
||||||
|
</div> |
||||||
|
<div class="btn">知道了</div> |
||||||
|
</div> |
||||||
|
<div class="close_box"><img src="~@/assets/image/close.png" alt=""></div> |
||||||
|
</van-overlay> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
proData:{}, |
||||||
|
proArr:[], |
||||||
|
isShow:false, |
||||||
|
isSuccess:false |
||||||
|
}; |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
console.log(this.$route.params); |
||||||
|
this.proData = this.$route.params; |
||||||
|
this.proData.selectArr.map(item =>{ |
||||||
|
this.proArr.push({ |
||||||
|
day:this.proData.time, |
||||||
|
name:item.name, |
||||||
|
monmet:item.time, |
||||||
|
posi:item.posi |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
cancelButton(val){ |
||||||
|
this.proArr = this.proArr.filter(item => item.name != val.name) |
||||||
|
if(this.proArr.length == 0){ |
||||||
|
this.$router.push({ |
||||||
|
name:'examination' |
||||||
|
}) |
||||||
|
} |
||||||
|
// lightAppJssdk.notification.alert ({ |
||||||
|
// message: "这是一个弹窗", |
||||||
|
// title: "提示",//可传空 |
||||||
|
// buttonName: "收到", |
||||||
|
// success:function(data){ |
||||||
|
// //onSuccess将在点击button之后回调 |
||||||
|
// /*回调*/ |
||||||
|
|
||||||
|
// }, |
||||||
|
// fail:function(data){ //错误返回 |
||||||
|
// } |
||||||
|
// }); |
||||||
|
}, |
||||||
|
|
||||||
|
confirm(){ |
||||||
|
console.log(this.proArr) |
||||||
|
if(this.proArr.length != 0){ |
||||||
|
this.isShow = true |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
.pro_con { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
|
||||||
|
.pro_box { |
||||||
|
width: 98%; |
||||||
|
margin-top: 0.2rem; |
||||||
|
background: #fff; |
||||||
|
margin: 0.4rem auto; |
||||||
|
margin-bottom: 0.7rem; |
||||||
|
|
||||||
|
|
||||||
|
.pro_top{ |
||||||
|
display: flex; |
||||||
|
padding-bottom: 0.26rem; |
||||||
|
border-bottom: 1px solid #EEEEEE; |
||||||
|
.img_box{ |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin-right: 0.24rem; |
||||||
|
img{ |
||||||
|
width: 0.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.time_box{ |
||||||
|
.time_text{ |
||||||
|
width: 1.46rem; |
||||||
|
height: 0.32rem; |
||||||
|
text-align: center; |
||||||
|
background: #F6F6F6; |
||||||
|
border-radius: 0.08rem; |
||||||
|
line-height: 0.32rem; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #999999; |
||||||
|
} |
||||||
|
.date_txt{ |
||||||
|
font-size: 0.3rem; |
||||||
|
font-weight: bold; |
||||||
|
color: #333; |
||||||
|
line-height: 0.46rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.pro_bottom{ |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
height: 0.6rem; |
||||||
|
margin-top: 0.24rem; |
||||||
|
|
||||||
|
.pro_left{ |
||||||
|
display: flex; |
||||||
|
|
||||||
|
|
||||||
|
.img_box{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
img{ |
||||||
|
width: 0.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
.pro_name{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.3rem; |
||||||
|
color: #333; |
||||||
|
font-weight: bold; |
||||||
|
margin-left: 0.24rem; |
||||||
|
} |
||||||
|
.pro_pos{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #999; |
||||||
|
margin-left: 0.24rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.pro_right{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
.cancel{ |
||||||
|
width: 1.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
background: rgba(22, 119, 255,.1); |
||||||
|
border-radius: 0.26rem; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #1677FF; |
||||||
|
margin-right: 0.24rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.act_box { |
||||||
|
position:absolute; |
||||||
|
left:0; |
||||||
|
right:0; |
||||||
|
bottom:0; |
||||||
|
padding: 0.24rem; |
||||||
|
background: #fff; |
||||||
|
.act_btn{ |
||||||
|
color: #FFFFFF; |
||||||
|
font-size: 0.3rem; |
||||||
|
font-family: PingFang SC-Bold, PingFang SC; |
||||||
|
font-weight: bold; |
||||||
|
line-height:0.96rem; |
||||||
|
text-align: center; |
||||||
|
background: #1677FF; |
||||||
|
border-radius: 0.08rem; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.wrapper{ |
||||||
|
width: 5.98rem; |
||||||
|
height: 6.66rem; |
||||||
|
background: #FFFFFF; |
||||||
|
border-radius: 0.16rem; |
||||||
|
margin: 0 auto; |
||||||
|
margin-top: 2.76rem; |
||||||
|
|
||||||
|
.img_box{ |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
img{ |
||||||
|
width: 1rem; |
||||||
|
height: 1rem; |
||||||
|
margin-top: 1.2rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.tips{ |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
font-size: 0.34rem; |
||||||
|
color:#000; |
||||||
|
font-weight: bold; |
||||||
|
margin: 0.56rem 0 0.2rem 0; |
||||||
|
font-family: PingFang SC-Regular, PingFang SC; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
.tip_txt{ |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #666; |
||||||
|
font-family: PingFang SC-Regular, PingFang SC; |
||||||
|
} |
||||||
|
.btn{ |
||||||
|
width: 3rem; |
||||||
|
height: 0.8rem; |
||||||
|
background: #1677FF; |
||||||
|
border-radius: 0.08rem; |
||||||
|
margin: 0 auto; |
||||||
|
margin-top: 0.6rem; |
||||||
|
font-size: 0.3rem; |
||||||
|
color: #fff; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-family: PingFang SC-Regular, PingFang SC; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.close_box{ |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
margin-top: 0.6rem; |
||||||
|
img{ |
||||||
|
width: 0.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
||||||
@ -0,0 +1,513 @@ |
|||||||
|
<template> |
||||||
|
<div class="exam_contaniner"> |
||||||
|
<div class="top_box"> |
||||||
|
<div class="week-box" v-if="!isCal"> |
||||||
|
<div class="week_box" style="display:flex"> |
||||||
|
<div class="week_num" v-for="item in weekData" :key="item">{{item}}</div> |
||||||
|
</div> |
||||||
|
<div class="week_text"> |
||||||
|
<div class="week_txt" v-for="item in weekArr" :key="item" @click="changeDate(item)" :class="[(item < today ? 'week_none' : ''),item == isToday ? 'today_week' : '',numData.find(item1 => item1.date.slice(-2) == (item < 0 ? '0' + item : item)) ? numData.find(item1 => item1.date.slice(-2) == (item < 0 ? '0' + item : item)).isNum == 0 ? 'isnum' : 'none' : '']"> |
||||||
|
<div class="top_info"></div> |
||||||
|
{{item}} |
||||||
|
<div class="bottom_info" v-text="numData.find(item1 => item1.date.slice(-2) == (item < 0 ? '0' + item : item)) ? numData.find(item1 => item1.date.slice(-2) == (item < 0 ? '0' + item : item)).isNum == 0 ? '有号' :'无号' : ''"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div v-if="isCal"> |
||||||
|
<van-swipe class="my-swipe" :stop-propagation="false"> |
||||||
|
<van-swipe-item> |
||||||
|
<van-calendar |
||||||
|
class="can_box" |
||||||
|
ref="calendar" |
||||||
|
first-day-of-week="1" |
||||||
|
v-model="show" |
||||||
|
@confirm="onConfirm" |
||||||
|
:poppable="false" |
||||||
|
:show-mark="false" |
||||||
|
:show-title="false" |
||||||
|
:show-subtitle="false" |
||||||
|
:show-confirm="false" |
||||||
|
:min-date="minDate" |
||||||
|
:max-date="maxDate" |
||||||
|
:formatter="formatter" |
||||||
|
/> |
||||||
|
</van-swipe-item> |
||||||
|
<van-swipe-item> |
||||||
|
<van-calendar |
||||||
|
class="can_box" |
||||||
|
ref="calendar1" |
||||||
|
first-day-of-week="1" |
||||||
|
v-model="show" |
||||||
|
@confirm="onConfirm1" |
||||||
|
:poppable="false" |
||||||
|
:show-mark="false" |
||||||
|
:show-title="false" |
||||||
|
:show-subtitle="false" |
||||||
|
:show-confirm="false" |
||||||
|
:min-date="minDate1" |
||||||
|
:max-date="maxDate1" |
||||||
|
/> |
||||||
|
</van-swipe-item> |
||||||
|
</van-swipe> |
||||||
|
</div> |
||||||
|
<div class="pull_box" @click="isShow"> |
||||||
|
<img v-show="!isCal" src="~@/assets/image/pull.png" alt=""> |
||||||
|
<img v-show="isCal" src="~@/assets/image/up.png" alt=""> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="center_box"> |
||||||
|
<div class="exam_box" v-for="item in examData" :key="item.name"> |
||||||
|
<div class="exam_top"> |
||||||
|
<div class="top_left"> |
||||||
|
<div class="name_txt">{{item.name}}</div> |
||||||
|
<div class="posi_txt"> |
||||||
|
<img style="width:0.24rem;height:0.24rem" src="~@/assets/image/posi.png" alt=""> |
||||||
|
<div style="color: #999;font-size: 0.24rem;">{{item.position}}</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="top_right"><div style="font-size:0.3rem;color:#333">{{item.residue}}</div><div style="font-size:0.22rem;color:rgba(51, 51, 51,0.5)">/{{item.total}}</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="exam_bottom"> |
||||||
|
<div class="exam_txt" v-for="item1 in item.examArr" :key="item1.time" @click="clickExam(item,item1)" :class="[(item1.num == 0 ? 'isAct' : ''),(item1.isSelect ? 'active' : '')]"> |
||||||
|
<div class="txt" style="font-size:0.22rem;color:#666;"><span style="font-size:0.24rem;color:#666">{{item1.moment}}</span> {{item1.time}}</div> |
||||||
|
<div style="font-size:0.24rem;color:#333333;">剩余:{{item1.num}}</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="btn_box"> |
||||||
|
<van-button v-show="selectArr.length == 0" type="info" block disabled >预约</van-button> |
||||||
|
<van-button v-show="selectArr.length !== 0" type="info" block @click="handleExam">预约</van-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
show:true, |
||||||
|
text:"下拉", |
||||||
|
isCal:false, |
||||||
|
radio:1, |
||||||
|
weekArr:[], |
||||||
|
weekData:['一','二','三','四','五','六','日'], |
||||||
|
minDate: new Date(new Date().getFullYear(), new Date().getMonth(), 1), |
||||||
|
maxDate: new Date(new Date().getFullYear(), new Date().getMonth(), new Date(new Date().getFullYear(),new Date().getMonth() + 1,0).getDate()), |
||||||
|
minDate1: new Date(new Date().getFullYear(), new Date().getMonth() + 1, 1), |
||||||
|
maxDate1: new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date(new Date().getFullYear(),new Date().getMonth() + 2,0).getDate()), |
||||||
|
numData:[{date:'2023-02-09',isNum:1},{date:'2023-02-11',isNum:0}, |
||||||
|
{date:'2023-02-15',isNum:1},{date:'2023-02-20',isNum:0}], |
||||||
|
examData:[ |
||||||
|
{name:'单眼视力',position:'门诊楼3楼眼科门诊',total:20,residue:15,examArr:[ |
||||||
|
{moment:'上午',time:'8:00-8:30',num:2}, |
||||||
|
{moment:'上午',time:'8:30-9:00',num:0}, |
||||||
|
{moment:'上午',time:'9:00-9:30',num:1}, |
||||||
|
{moment:'上午',time:'9:30-10:00',num:1}, |
||||||
|
]}, |
||||||
|
{name:'肢体',position:'门诊楼3楼',total:20,residue:15,examArr:[ |
||||||
|
{moment:'上午',time:'8:00-8:30',num:2}, |
||||||
|
{moment:'上午',time:'8:30-9:00',num:0}, |
||||||
|
{moment:'上午',time:'9:00-9:30',num:1}, |
||||||
|
{moment:'上午',time:'9:30-10:00',num:1}, |
||||||
|
]}, |
||||||
|
{name:'听力',position:'门诊楼3楼听力门诊',total:20,residue:15,examArr:[ |
||||||
|
{moment:'上午',time:'8:00-8:30',num:2}, |
||||||
|
{moment:'上午',time:'8:30-9:00',num:0}, |
||||||
|
{moment:'上午',time:'9:00-9:30',num:1}, |
||||||
|
{moment:'上午',time:'9:30-10:00',num:1}, |
||||||
|
]} |
||||||
|
], |
||||||
|
selectArr:[], |
||||||
|
selectDate:'', |
||||||
|
today:'', |
||||||
|
isToday:'' |
||||||
|
} |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.getList() |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
var WeekFirstDay=new Date(new Date()-(new Date().getDay()-1)*86400000); |
||||||
|
this.today = new Date().getDate(); |
||||||
|
this.isToday = this.today; |
||||||
|
let year = new Date().getFullYear(); |
||||||
|
let month = new Date().getMonth() + 1 < 10 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1 |
||||||
|
this.selectDate = year + '-' + month + '-' + (this.today < 10 ? '0' + this.today : this.today); |
||||||
|
for(var i = WeekFirstDay.getDate();i<= parseInt(WeekFirstDay.getDate()) + 6;i++){ |
||||||
|
this.weekArr.push(i) |
||||||
|
} |
||||||
|
var todayWeek = new Date().getDay(); |
||||||
|
this.weekData.map((item,index) =>{ |
||||||
|
if(index + 1 == todayWeek){ |
||||||
|
// item = '今日' |
||||||
|
this.weekData[index] = '今日' |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
getList(){ |
||||||
|
this.examData.map(item =>{ |
||||||
|
item.examArr.map(item1 =>{ |
||||||
|
item1.isSelect = false |
||||||
|
}) |
||||||
|
}) |
||||||
|
console.log(this.examData) |
||||||
|
}, |
||||||
|
formatter(day){ |
||||||
|
/* |
||||||
|
这里的参数包含以下属性 |
||||||
|
bottomInfo: undefined |
||||||
|
date: Sat May 22 2021 00:00:00 GMT+0800 (中国标准时间) {} |
||||||
|
text: 22 |
||||||
|
type: " |
||||||
|
|
||||||
|
我们只需要修改type值为 disabled 即可 |
||||||
|
*/ |
||||||
|
if(day.date.getDate() < new Date().getDate()){ |
||||||
|
day.type = 'disabled' |
||||||
|
}else{ |
||||||
|
this.numData.forEach(item =>{ |
||||||
|
if(day.date.getDate() == item.date.slice(-2)){ |
||||||
|
item.isNum == 0 ? day.bottomInfo = '有号' : day.bottomInfo = '无号' |
||||||
|
item.isNum == 0 ? day.className = 'num1' : day.className = 'num2' |
||||||
|
|
||||||
|
} |
||||||
|
}) |
||||||
|
} |
||||||
|
// if(day.date.getDate() == new Date().getDate()){ |
||||||
|
day.topInfo = ` ` |
||||||
|
// day.className = 'today' |
||||||
|
|
||||||
|
// } |
||||||
|
return day |
||||||
|
}, |
||||||
|
changeDate(item){ |
||||||
|
console.log(item) |
||||||
|
this.isToday = item |
||||||
|
}, |
||||||
|
isShow(){ |
||||||
|
console.log(111) |
||||||
|
this.isCal = !this.isCal |
||||||
|
}, |
||||||
|
clickExam(val,val1){ |
||||||
|
this.selectArr = [] |
||||||
|
let arr = JSON.parse(JSON.stringify(this.examData)) |
||||||
|
arr.find(item =>{ |
||||||
|
if(item.name == val.name){ |
||||||
|
console.log(item) |
||||||
|
item.examArr.find(item1 =>{ |
||||||
|
if(item1.time == val1.time){ |
||||||
|
item1.isSelect = true |
||||||
|
}else{ |
||||||
|
item1.isSelect = false |
||||||
|
} |
||||||
|
}) |
||||||
|
} |
||||||
|
}) |
||||||
|
this.examData = arr |
||||||
|
this.examData.map(item =>{ |
||||||
|
item.examArr.map(item1 =>{ |
||||||
|
if(item1.isSelect){ |
||||||
|
this.selectArr.push({ |
||||||
|
name:item.name, |
||||||
|
posi:item.position, |
||||||
|
time:item1.moment + ' ' + item1.time, |
||||||
|
}) |
||||||
|
} |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
onConfirm(date){ |
||||||
|
let year = date.getFullYear(); |
||||||
|
let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 |
||||||
|
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() |
||||||
|
let text = year + '-' + month + '-' + day |
||||||
|
let val = this.numData.find(item => item.date == text) |
||||||
|
console.log(val) |
||||||
|
if(val){ |
||||||
|
this.selectDate = val.date |
||||||
|
}else{ |
||||||
|
// this.$toast('异常') |
||||||
|
} |
||||||
|
}, |
||||||
|
onConfirm1(){}, |
||||||
|
handleExam(){ |
||||||
|
console.log(this.selectArr,this.selectDate) |
||||||
|
this.$router.replace({ |
||||||
|
name:'ExamProject', |
||||||
|
params:{ |
||||||
|
time:this.selectDate, |
||||||
|
selectArr:this.selectArr |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
}, |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.exam_contaniner{ |
||||||
|
width: 100%; |
||||||
|
overflow-y: scroll; |
||||||
|
height: 100%; |
||||||
|
overflow-x: hidden; |
||||||
|
background: #F9F9F9; |
||||||
|
|
||||||
|
.top_box{ |
||||||
|
background: #fff; |
||||||
|
.week-box{ |
||||||
|
.week_box{ |
||||||
|
width: 100%; |
||||||
|
height: 0.6rem; |
||||||
|
padding-top: 0.7rem; |
||||||
|
|
||||||
|
.week_num{ |
||||||
|
flex: 1; |
||||||
|
font-size: 0.32rem; |
||||||
|
line-height: 0.6rem; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
.week_text{ |
||||||
|
display: flex; |
||||||
|
width: 100%; |
||||||
|
height: 1.28rem; |
||||||
|
.week_txt{ |
||||||
|
position: relative; |
||||||
|
width: 13.5%; |
||||||
|
height: 84%; |
||||||
|
font-size: 0.32rem; |
||||||
|
cursor: pointer; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
text-align: center; |
||||||
|
margin: 0.24rem 0.35% 0 0.35%; |
||||||
|
// margin-top: 0.12rem; |
||||||
|
|
||||||
|
.bottom_info{ |
||||||
|
position: absolute; |
||||||
|
right: 0; |
||||||
|
left: 0; |
||||||
|
font-size: 10px; |
||||||
|
line-height: 14px; |
||||||
|
bottom: 6px; |
||||||
|
} |
||||||
|
|
||||||
|
.top_info{ |
||||||
|
position: absolute; |
||||||
|
right: 0; |
||||||
|
left: 0; |
||||||
|
top: 6px; |
||||||
|
font-size: 10px; |
||||||
|
line-height: 14px; |
||||||
|
} |
||||||
|
} |
||||||
|
.week_none{ |
||||||
|
color:#ccc; |
||||||
|
pointer-events:none; |
||||||
|
} |
||||||
|
|
||||||
|
.none{ |
||||||
|
background: rgba(22, 119, 255,0.5); |
||||||
|
border-radius: 50%; |
||||||
|
color:#fff; |
||||||
|
} |
||||||
|
.isnum{ |
||||||
|
background: rgb(22, 119, 255,); |
||||||
|
border-radius: 50%; |
||||||
|
color:#fff; |
||||||
|
} |
||||||
|
.today_week{ |
||||||
|
background: #1677FF; |
||||||
|
border-radius: 50%; |
||||||
|
color:#fff; |
||||||
|
|
||||||
|
.top_info{ |
||||||
|
width: 0.1rem; |
||||||
|
height: 0.1rem; |
||||||
|
background: #fff; |
||||||
|
border-radius: 50%; |
||||||
|
margin: 0 auto; |
||||||
|
margin-top: 0.1rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.pull_box{ |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
margin-top: 0.24rem; |
||||||
|
|
||||||
|
img{ |
||||||
|
width: 0.4rem; |
||||||
|
height: 0.4rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.my-swipe .van-swipe-item { |
||||||
|
width: 100%; |
||||||
|
font-size: 0.4rem; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
.can_box{ |
||||||
|
padding-top:0.7rem |
||||||
|
} |
||||||
|
} |
||||||
|
.center_box{ |
||||||
|
width: 100%; |
||||||
|
margin-top: 0.2rem; |
||||||
|
.exam_box{ |
||||||
|
width: 100%; |
||||||
|
background: #fff; |
||||||
|
padding-bottom: 0.4rem; |
||||||
|
margin-bottom: 0.2rem; |
||||||
|
|
||||||
|
.exam_top{ |
||||||
|
width: 100%; |
||||||
|
height: 1.6rem; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
.top_left{ |
||||||
|
width: 80%; |
||||||
|
height: 80%; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: space-around; |
||||||
|
margin-left: 5%; |
||||||
|
|
||||||
|
.name_txt{ |
||||||
|
font-size: 0.3rem; |
||||||
|
color: #333; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.posi_txt{ |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
} |
||||||
|
.top_right{ |
||||||
|
width: 1.48rem; |
||||||
|
height: 0.6rem; |
||||||
|
border-top-left-radius: 0.4rem; |
||||||
|
border-bottom-left-radius: 0.4rem; |
||||||
|
border-right: none; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
background: rgba(72, 118, 255,0.2); |
||||||
|
} |
||||||
|
} |
||||||
|
.exam_bottom{ |
||||||
|
width: 93%; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
margin: 0 auto; |
||||||
|
flex-wrap: wrap; |
||||||
|
|
||||||
|
.exam_txt{ |
||||||
|
width: 2.2rem; |
||||||
|
height: 1rem; |
||||||
|
background: #F6F6F6; |
||||||
|
border: 1px solid #1677FF; |
||||||
|
border-radius: 0.08rem; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: space-around; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.22rem; |
||||||
|
margin-bottom: 0.2rem; |
||||||
|
} |
||||||
|
|
||||||
|
.isAct{ |
||||||
|
background: #F6F6F6; |
||||||
|
border: 1px solid #F6F6F6; |
||||||
|
pointer-events:none; |
||||||
|
.txt{ |
||||||
|
color:rgba(102, 102, 102,0.3) !important; |
||||||
|
} |
||||||
|
div{ |
||||||
|
span{ |
||||||
|
color:rgba(102, 102, 102,0.3) !important; |
||||||
|
|
||||||
|
} |
||||||
|
color: rgba(51, 51, 51,0.3) !important; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.active{ |
||||||
|
background: #1677FF ; |
||||||
|
div{ |
||||||
|
span{ |
||||||
|
color: #fff !important; |
||||||
|
} |
||||||
|
color: #fff !important; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.btn_box{ |
||||||
|
width:90%; |
||||||
|
height: 1.6rem; |
||||||
|
margin:0 auto; |
||||||
|
margin-top: 0.4rem; |
||||||
|
cursor: not-allowed |
||||||
|
} |
||||||
|
} |
||||||
|
::v-deep{ |
||||||
|
.van-calendar__header { |
||||||
|
box-shadow: none !important; |
||||||
|
} |
||||||
|
.van-calendar__month-title{ |
||||||
|
display: none; |
||||||
|
} |
||||||
|
.num1{ |
||||||
|
background: rgb(22, 119, 255); |
||||||
|
border-radius: 50%; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.num2{ |
||||||
|
background: rgba(22, 119, 255,0.5); |
||||||
|
border-radius: 50%; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.van-calendar__weekday{ |
||||||
|
font-size: 0.32rem; |
||||||
|
} |
||||||
|
.van-calendar__selected-day{ |
||||||
|
.van-calendar__top-info{ |
||||||
|
width: 0.1rem; |
||||||
|
height: 0.1rem; |
||||||
|
background: #fff; |
||||||
|
border-radius: 50%; |
||||||
|
margin: 0 auto; |
||||||
|
margin-top: 0.1rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.van-calendar__days{ |
||||||
|
height: 6.4rem; |
||||||
|
|
||||||
|
.van-calendar__day{ |
||||||
|
height: 17%; |
||||||
|
width: 13.5%; |
||||||
|
margin: 0 0.35%; |
||||||
|
|
||||||
|
.van-calendar__selected-day{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: #1677FF; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
||||||
@ -0,0 +1,154 @@ |
|||||||
|
<template> |
||||||
|
<div class="my_exam"> |
||||||
|
<div class="exam_box"> |
||||||
|
<div class="time_box">2023-01-08</div> |
||||||
|
<div class="pro_box"> |
||||||
|
<div class="pro_top"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/time.png" alt="" /> |
||||||
|
</div> |
||||||
|
<div class="time_box"> |
||||||
|
<div class="time_text">2023-01-08</div> |
||||||
|
<div class="date_txt">上午 9:00-9:30</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="pro_bottom"> |
||||||
|
<div class="pro_left"> |
||||||
|
<div class="img_box"> |
||||||
|
<img src="~@/assets/image/pro.png" alt="" /> |
||||||
|
</div> |
||||||
|
<div class="pro_name">单眼视力</div> |
||||||
|
<div class="pro_pos">门诊楼3楼眼科门诊</div> |
||||||
|
</div> |
||||||
|
<div class="pro_right"> |
||||||
|
<div class="cancel">取消预约</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default {}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.my_exam { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: #f9f9f9; |
||||||
|
.exam_box { |
||||||
|
background: #fff; |
||||||
|
padding: 0.5rem 0.24rem 0 0.24rem; |
||||||
|
|
||||||
|
.time_box { |
||||||
|
font-size: 0.3rem; |
||||||
|
font-family: PingFang SC-Bold, PingFang SC; |
||||||
|
font-weight: bold; |
||||||
|
color: #333333; |
||||||
|
line-height: 0.46rem; |
||||||
|
} |
||||||
|
|
||||||
|
.pro_box { |
||||||
|
width: 98%; |
||||||
|
margin-top: 0.2rem; |
||||||
|
background: #fff; |
||||||
|
margin: 0.4rem auto; |
||||||
|
margin-bottom: 0.7rem; |
||||||
|
|
||||||
|
|
||||||
|
.pro_top{ |
||||||
|
display: flex; |
||||||
|
padding-bottom: 0.26rem; |
||||||
|
border-bottom: 1px solid #EEEEEE; |
||||||
|
.img_box{ |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin-right: 0.24rem; |
||||||
|
img{ |
||||||
|
width: 0.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.time_box{ |
||||||
|
.time_text{ |
||||||
|
width: 1.46rem; |
||||||
|
height: 0.32rem; |
||||||
|
text-align: center; |
||||||
|
background: #F6F6F6; |
||||||
|
border-radius: 0.08rem; |
||||||
|
line-height: 0.32rem; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #999999; |
||||||
|
} |
||||||
|
.date_txt{ |
||||||
|
font-size: 0.3rem; |
||||||
|
font-weight: bold; |
||||||
|
color: #333; |
||||||
|
line-height: 0.46rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.pro_bottom{ |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
height: 0.6rem; |
||||||
|
margin-top: 0.24rem; |
||||||
|
|
||||||
|
.pro_left{ |
||||||
|
display: flex; |
||||||
|
|
||||||
|
|
||||||
|
.img_box{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
img{ |
||||||
|
width: 0.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
.pro_name{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.3rem; |
||||||
|
color: #333; |
||||||
|
font-weight: bold; |
||||||
|
margin-left: 0.24rem; |
||||||
|
} |
||||||
|
.pro_pos{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #999; |
||||||
|
margin-left: 0.24rem; |
||||||
|
} |
||||||
|
} |
||||||
|
.pro_right{ |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
.cancel{ |
||||||
|
width: 1.5rem; |
||||||
|
height: 0.5rem; |
||||||
|
background: rgba(22, 119, 255,.1); |
||||||
|
border-radius: 0.26rem; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 0.24rem; |
||||||
|
color: #1677FF; |
||||||
|
margin-right: 0.24rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
||||||