|
|
|
|
<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>
|