You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

255 lines
6.3 KiB

<template>
<div class="my_exam">
<div class="exam_box" v-for="item in examArr" :key="item.time">
<div class="time_box">{{ item.time }}</div>
<div class="pro_box" v-for="item1 in item.examData" :key="item1.name">
<div class="pro_top">
<div class="img_box">
<img v-if="item1.status !== 3" src="~@/assets/image/time.png" alt="" />
<img v-else src="~@/assets/image/time_gray.png" alt="" />
</div>
<div class="time_box">
<div class="time_text">{{ item1.time }}</div>
<div class="date_txt">{{ item1.monment }}</div>
</div>
</div>
<div class="pro_bottom">
<div class="pro_left">
<div class="img_box">
<img v-if="item1.status !== 3" src="~@/assets/image/pro.png" alt="" />
<img v-else src="~@/assets/image/pro_gray.png" alt="" />
</div>
<div class="pro_name">{{ item1.name }}</div>
<div class="pro_pos" :class="item1.status == 1 ? 'tips' : item1.status == 3 ? 'cancel_tip' : ''">
{{ item1.tip }}</div>
</div>
<div class="pro_right">
<div class="cancel" @click="cancelRegisiter(item1)"
:class="item1.status == 2 ? 'finish' : item1.status == 3 ? 'cancel_item' : ''">{{
item1.status == 1 ?
'取消预约' : item1.status == 2 ? '已完成' : item1.status == 3 ? '已取消' : ''
}}</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { myRecord,recordCancel } from "@/api/hospital";
export default {
data() {
return {
current: 1,
size: 10,
examArr: [
{
time: '2023-02-08', examData: [
{
name: '单眼视力', monment: '上午 9:00-9:30', time: '2023-01-08', tip: '门诊楼3楼眼科门诊', status: 1
},
{
name: '听力', monment: '上午 9:00-9:30', time: '2023-01-08', tip: '门诊楼3楼耳科门诊', status: 2
}
]
},
{
time: '2022-01-15', examData: [
{
name: '单眼视力', monment: '上午 9:00-9:30', time: '2022-01-15', tip: '门诊楼3楼眼科门诊', status: 3
},
]
}
],
userInfo: null
}
},
mounted() {
let userInfo = sessionStorage.getItem('userInfo') ? JSON.parse(sessionStorage.getItem('userInfo')) : null;
if (userInfo) {
this.userInfo = userInfo;
this.queryMyRecord();
}
},
methods: {
//我的预约列表
queryMyRecord() {
myRecord("",this.userInfo.papersnumber, this.current, this.size).then(res => {
})
},
//取消预约
cancelRegisiter(row) {
lightAppJssdk.notification.alert({
message: "是否取消该体检项目",
title: "提示",//可传空
buttonName: "收到",
success: function (data) {
//onSuccess将在点击button之后回调
/*回调*/
console.log('取消===>', data)
recordCancel(row.id).then(res => {
this.$message({
type: "success",
message: "操作成功!"
});
this.queryMyRecord();
})
},
fail: function (data) { //错误返回
}
});
}
},
};
</script>
<style lang="scss" scoped>
.my_exam {
width: 100%;
height: 100%;
background: #f9f9f9;
position: absolute;
.exam_box {
background: #fff;
padding: 0.5rem 0.24rem 0 0.24rem;
margin-bottom: 0.2rem;
.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.4rem;
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: 1.2rem;
.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;
}
.tips {
color: #00B578;
}
.cancel_tip {
color: #F93A4A;
}
}
.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;
}
.finish {
background: #E5E5E5;
color: #999;
pointer-events: none;
}
.cancel_item {
background: rgba(125, 125, 125, .2);
color: #999;
pointer-events: none;
}
}
}
}
}
}
</style>