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.
 
 
 

286 lines
6.9 KiB

<template>
<div class="my_exam" :style="{ backgroundColor: examArr.length > 0 ? '#f9f9f9' : '#fff' }">
<div class="exam_noresult" v-if="examArr.length < 1">
<img src="~@/assets/image/no_result.jpg" />
<div class="no_title">查询无结果</div>
<div class="no_txt">暂无您的预约项目,请选择医院后进行预约</div>
</div>
<div class="exam_box" v-for="item in examArr" :key="item.time">
<div class="time_box">{{ doDateFormatter(item.apmTime) }}</div>
<div class="pro_box">
<div class="pro_top">
<div class="img_box">
<img v-if="item.apmStatus !== 1" 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">{{ doDateFormatter(item.apmTime) }}</div>
<div class="date_txt">{{ item.period + ' ' + item.timeFrame }}</div>
</div>
</div>
<div class="pro_bottom">
<div class="pro_left">
<div class="img_box">
<img v-if="item.apmStatus !== 1" src="~@/assets/image/pro.png" alt="" />
<img v-else src="~@/assets/image/pro_gray.png" alt="" />
</div>
<div class="pro_name">{{ item.project }}</div>
<div class="pro_pos" :class="item.apmStatus === 0 ? 'tips' : item.apmStatus == 1 ? 'cancel_tip' : ''">
{{ item.cuAddr }}</div>
</div>
<div class="pro_right">
<div class="cancel" @click="cancelRegisiter(item)"
:class="item.apmStatus == 3 ? 'finish' : item.apmStatus == 1 ? 'cancel_item' : ''">{{
item.apmStatus == 1 ?
'已取消' : item.apmStatus == 2 ? '未报到' : item.apmStatus == 3 ? '已报到' : '取消预约'
}}</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { myRecord, recordCancel } from "@/api/hospital";
import { dateFormat } from "@/utils/date";
export default {
data() {
return {
current: 1,
size: 10,
examArr: [],
userInfo: null
}
},
mounted() {
let userInfo = sessionStorage.getItem('userInfo') ? JSON.parse(sessionStorage.getItem('userInfo')) : null;
if (userInfo) {
this.userInfo = userInfo;
this.queryMyRecord();
}
},
methods: {
//我的预约列表
queryMyRecord() {
this.$toast.loading({
message: '加载中',
duration: 0,
})
try {
myRecord("", this.userInfo.papersnumber, this.current, this.size).then(res => {
this.$toast.clear();
this.examArr = res.data.records;
}, err => {
this.$toast.clear();
})
} catch (error) {
this.$toast.clear();
}
},
//日期格式化
doDateFormatter(date) {
return dateFormat(new Date(date), 'yyyy-MM-dd');
},
//取消预约
cancelRegisiter(row) {
if (row.apmStatus !== 0) {
return;
}
lightAppJssdk.notification.confirm({
message: "是否取消该体检项目",
title: "提示",//可传空
buttonLabels: ['确定', '取消'],
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_noresult {
text-align: center;
padding-top: 2rem;
img {
width: 2.56rem;
height: 2.56rem;
}
.no_title {
color: #666;
font-size: 0.44rem;
font-weight: bold;
margin-bottom: 0.1rem;
}
.no_txt {
color: #999;
font-size: 0.24rem;
width: 3rem;
line-height: 0.33rem;
margin: 0 auto;
}
}
.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>