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