<template>
|
<div class="record-log-component">
|
<div class="mdTxt mt-30 mb-10">系統通知紀錄</div>
|
|
<div v-for="(item, index) in displayLogs"
|
:key="index">
|
<section
|
class="record-log-card"
|
>
|
<div class="record-log-card-date-container">
|
<div class="record-log-card-date-container-circle">
|
<div class="xxsTxt bold line-height">{{item.createdDate | formatYear}}</div>
|
<div>
|
<UiDateFormat
|
class="xxsTxt bold line-height"
|
:date="item.createdDate"
|
onlyShowSection="DAY" />
|
</div>
|
<div>
|
<UiDateFormat
|
class="xxsTxt mt-4 line-space"
|
:date="item.createdDate"
|
onlyShowSection="TIME" />
|
</div>
|
</div>
|
</div>
|
<div class="record-log-msg">
|
<div>發送約訪通知
|
<span v-if="item.email && item.phone">(手機簡訊、Email)</span>
|
<span v-else-if="item.email">(Email)</span>
|
<span v-else>(手機簡訊)</span>
|
</div>
|
<div class="mt-10">預約{{item.interviewDate | formatDate}}</div>
|
</div>
|
</section>
|
<div class="time-line"></div>
|
</div>
|
|
<section class="more-log-action">
|
<div class="pam-link-button--lg"
|
>展開看更多</div>
|
</section>
|
</div>
|
</template>
|
|
<script lang="ts">
|
import { Vue, Component, Prop, Watch } from 'nuxt-property-decorator';
|
import { NoticeLogs } from '~/shared/models/appointment.model';
|
|
@Component({
|
filters: {
|
formatYear(value) {
|
if (value) {
|
return new Date(value).getFullYear();
|
}
|
}
|
}
|
})
|
export default class AppointmentRecordList extends Vue {
|
|
@Prop()
|
noticeLogs!: NoticeLogs[];
|
|
appointmentId: string = '';
|
displayLogs : NoticeLogs[] = [];
|
|
mounted() {
|
this.appointmentId = this.$route.params.appointmentId;
|
}
|
|
//////////////////////////////////////////////////////////////////////
|
|
@Watch('noticeLogs', {immediate: true})
|
onNoticeLogsChange() {
|
if (this.noticeLogs.length) {
|
this.displayLogs = this.noticeLogs
|
.map((i) => ({ ...i, sortDate: new Date(i.createdDate)}))
|
.sort((preItem, nextItem) => +nextItem.sortDate - +preItem.sortDate);
|
}
|
}
|
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.record-log-component{
|
display: flex;
|
flex-direction: column;
|
.record-log-card{
|
display: flex;
|
.record-log-card-date-container{
|
position:relative;
|
.record-log-card-date-container-circle{
|
display: flex;
|
flex-direction: column;
|
width: 56px;
|
height: 56px;
|
border-radius: 50%;
|
border:1px solid $PRIMARY_BLACK;
|
justify-content: center;
|
align-items: center;
|
align-content: center;
|
}
|
}
|
}
|
}
|
.mt-4{
|
margin-top: 4px;
|
}
|
.line-space{
|
letter-spacing: 1px;
|
}
|
.line-height{
|
line-height:1.2;
|
}
|
.time-line{
|
border-left: 1px solid black;
|
height: 30px;
|
margin-left: 28px;
|
|
}
|
.record-log-msg{
|
margin-left: 13px;
|
margin-top: 10px;
|
}
|
.more-log-action{
|
display: flex;
|
justify-content:flex-end;
|
}
|
|
</style>
|