From 4b8c80fc5bb864e1785dc171879d0061c4449b27 Mon Sep 17 00:00:00 2001 From: Mila <Mila@pollex.com.tw> Date: 星期四, 20 一月 2022 14:06:27 +0800 Subject: [PATCH] update: UiDateFormat 增加年份 & 月/日 判斷 --- PAMapp/components/Appointment/AppointmentInterviewList.vue | 122 +++++++++++----------------------------- 1 files changed, 35 insertions(+), 87 deletions(-) diff --git a/PAMapp/components/Appointment/AppointmentInterviewList.vue b/PAMapp/components/Appointment/AppointmentInterviewList.vue index 14e66b3..dc06f5b 100644 --- a/PAMapp/components/Appointment/AppointmentInterviewList.vue +++ b/PAMapp/components/Appointment/AppointmentInterviewList.vue @@ -1,63 +1,55 @@ <template> <div> - <div class="interview__header"> - <div class="mdTxt">蝝赤蝝����</div> - <div class="pam-link-button--lg" - @click="addInterview">+�憓�</div> - </div> - - <template v-if="!interviewList.length"> - <div class="record-card record-card--empty"> - �蝝赤蝝���� - </div> - </template> - - <template v-if="interviewList.length"> - <div class="interview--future"> - - <div class="record-card"> - <div class="record-card-date"> - <span class="bold">01/10</span> - <span class="mt-5 line-space">09:00</span> - </div> - <div class="record-card-content"> - <span>�����恥�蝝��璅��撱喉�����������靽</span> - </div> - </div> + <div class="interview__header"> + <div class="mdTxt">蝝赤蝝����</div> + <div class="pam-link-button--lg" + @click="addInterview">+�憓�</div> </div> + <InterviewCard :interviewList="displayList.slice(0, 3)"></InterviewCard> - <section class="interview--past"> - <div class="record-card"> - <div class="record-card-date"> - <span class="bold">01/08</span> - <span class="mt-5 line-space">09:00</span> - </div> - <div class="record-card-content"> - <span>�����縑���閰梯�Ⅳ嚗���������</span> - </div> - </div> + <section class="text--right mt-30" v-if="interviewList.length > 3"> + <div class="pam-link-button--lg" @click="readMoreBtn">撅��憭�</div> </section> - - <section class="more-log-action"> - <div class="pam-link-button--lg">撅��憭�</div> - </section> - </template> </div> </template> <script lang="ts"> -import { Vue, Component } from 'nuxt-property-decorator'; +import { Vue, Component, Prop, Watch } from 'nuxt-property-decorator'; +import { InterviewRecord } from '~/shared/models/appointment.model'; @Component export default class AppointmentInterviewList extends Vue { + @Prop() + interviewList!: InterviewRecord[]; - interviewList = []; + appointmentId!: string; + displayList: InterviewRecord[] = []; + + ////////////////////////////////////////////////////////////////////// + + mounted() { + this.appointmentId = this.$route.params.appointmentId; + } + + ////////////////////////////////////////////////////////////////////// + + @Watch('interviewList', {immediate: true}) + updateInterviewList() { + if (this.interviewList && this.interviewList.length > 0) { + this.displayList = this.interviewList + .map((i) => ({ ...i, sortDate: new Date(i.interviewDate)})) + .sort((preItem, nextItem) => +nextItem.sortDate - +preItem.sortDate); + } + } ////////////////////////////////////////////////////////////////////// addInterview(): void { - const appointmentId = this.$route.params.appointmentId; - this.$router.push(`/appointment/${appointmentId}/interview/new`); + this.$router.push(`/appointment/${this.appointmentId}/interview/new`); + } + + readMoreBtn() { + this.$router.push(`/appointment/${this.appointmentId}/interviewList`); } } @@ -68,49 +60,5 @@ display : flex; justify-content: space-between; margin-bottom : 10px; -} -.interview--future{ - border-bottom: 1px solid #CCCCCC; - padding-bottom: 17px; - margin-bottom: 17px; - .record{ - display: flex; - justify-content: space-between; - margin-bottom: 10px; - } -} -.record-card { - height: 62px; - border: 1px solid #707070; - border-radius: 5px; - display: flex; - border-bottom: 1px solid #000; - .record-card-date{ - display: flex; - flex-direction: column; - margin-left: 10px; - margin-right: 10px; - margin-top: 10px; - } - .record-card-content{ - height: 42px; - margin-top: 10px; - margin-right: 10px; - line-height: 1.2; - } - &.record-card--empty { - align-items : center; - background-color: #fff; - color : $MID_GREY; - justify-content : center; - } -} -.line-space{ - letter-spacing: 1px; -} -.more-log-action{ - margin-top: 30px; - display: flex; - justify-content:flex-end; } </style> -- Gitblit v1.8.0