保誠-保戶業務員媒合平台
Mila
2022-01-25 5782fa345a46eff4b8b39b4dc56e2cd1ddf82a07
PAMapp/components/Appointment/AppointmentRecordList.vue
@@ -2,89 +2,52 @@
    <div class="record-log-component">
        <div class="mdTxt mt-30 mb-10">系統通知紀錄</div>
            <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">2021</div>
                        <div class="xxsTxt bold line-height">12/24</div>
                        <div class="xxsTxt mt-4 line-space">21:00</div>
                    </div>
                </div>
                    <div class="record-log-msg">發送約訪通知(mail)</div>
            </section>
            <div class="time-line"></div>
            <InterviewRecordCard :noticeLogsList="displayLogs.slice(0, 3)"></InterviewRecordCard>
            <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">2021</div>
                        <div class="xxsTxt bold line-height">12/31</div>
                        <div class="xxsTxt mt-4 line-space">09:00</div>
                    </div>
                </div>
                    <div class="record-log-msg">發送約訪通知(mail)</div>
            </section>
            <div class="time-line"></div>
            <section class="more-log-action">
                <div class="pam-link-button--lg">展開看更多</div>
            <section class="text--center mt-30" v-if="displayLogs.length > 3">
                <div class="pam-link-button"
                    @click="readMoreBtn"
                >展開看更多
                <i class="icon-expand"></i></div>
            </section>
    </div>
</template>
<script lang="ts">
import { Vue, Component, Prop } from 'nuxt-property-decorator';
import { Vue, Component, Prop, Watch } from 'nuxt-property-decorator';
import { NoticeLogs } from '~/shared/models/appointment.model';
@Component
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);
      }
    }
    //////////////////////////////////////////////////////////////////////
    readMoreBtn() {
        this.$router.push(`/appointment/${this.appointmentId}/recordList`);
    }
}
</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>