From 026b04258bd4217ae4c53125655d6073c1bce474 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期一, 24 一月 2022 10:39:15 +0800 Subject: [PATCH] remove: 移除 agenda 功能畫面(暫不提供此功能) --- PAMapp/components/NavBar.vue | 95 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 82 insertions(+), 13 deletions(-) diff --git a/PAMapp/components/NavBar.vue b/PAMapp/components/NavBar.vue index 58a73cd..13c53a4 100644 --- a/PAMapp/components/NavBar.vue +++ b/PAMapp/components/NavBar.vue @@ -8,7 +8,7 @@ </div> <div class="pam-header__action-bar"> <i - v-if="currentRole" + v-if="isShowNotification" class="icon-bell text--dark-blue cursor--pointer fix-chrome-click--issue" @click="$router.push('/notification')" ></i> @@ -16,11 +16,20 @@ ref="dropdown" trigger="click" @command="routerNavigateTo"> - <i - class="icon-avatar text--dark-blue cursor--pointer fix-chrome-click--issue" + <div @click="isOpenDropdown =!isOpenDropdown" - @blur="isOpenDropdown =false" - ></i> + @blur="isOpenDropdown =false"> + <template v-if="isAdminLogin"> + <UiAvatar + :size="30" + :agentNo="consultantId" + class="admin-avatar" + ></UiAvatar> + </template> + <template v-else> + <i class="icon-avatar text--dark-blue cursor--pointer fix-chrome-click--issue"></i> + </template> + </div> <el-dropdown-menu class="pam-header__dropdown"> <template v-for="(item,index) in navBarList"> @@ -40,19 +49,45 @@ <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; - import { namespace } from 'nuxt-property-decorator'; + import { Action, namespace, State, Watch } from 'nuxt-property-decorator'; import { Role } from '~/shared/models/enum/Role'; import * as _ from 'lodash'; + import { NotificationList } from '~/shared/models/reviews.model'; + import { AppointmentLog } from '~/shared/models/appointment.model'; const roleStorage = namespace('localStorage'); @Component export default class NavBar extends Vue { - @roleStorage.Getter idToken!: string | null; - @roleStorage.Getter currentRole!: string | null; - @roleStorage.Getter consultantId!: string | null; + @roleStorage.Getter + idToken!: string | null; - @roleStorage.Mutation storageClear!: () => void; + @roleStorage.Getter + currentRole!: string | null; + + @roleStorage.Getter + consultantId!: string | null; + + @roleStorage.Mutation + storageClear!: () => void; + + @roleStorage.Getter + isAdminLogin!: boolean; + + @roleStorage.Getter + isUserLogin!: boolean; + + @Action + storeMyPersonalNotification!: () => void; + + @State + notificationList!: NotificationList[]; + + @Action + storeMyAppointmentReviewLog!: () => void; + + @State + unReviewLogList!: AppointmentLog[]; isOpenDropdown = false; @@ -105,6 +140,24 @@ ////////////////////////////////////////////////////////////////////// + @Watch('$route', {immediate: true}) + onRouterChange() { + this.getNotificationAndReviewLog(); + } + + private getNotificationAndReviewLog() { + if (this.isUserLogin) { + this.storeMyPersonalNotification(); + this.storeMyAppointmentReviewLog(); + } + + if (this.isAdminLogin) { + this.storeMyPersonalNotification(); + } + } + + ////////////////////////////////////////////////////////////////////// + routerNavigateTo(url: string): void { (this.$refs.dropdown as any).hide(); _.isEqual(url,'') @@ -124,6 +177,15 @@ get loginRole(): Role { return this.idToken && this.currentRole ? (this.currentRole as Role): Role.NOT_LOGIN; + } + + get isShowNotification() { + if (this.isUserLogin) { + return this.notificationList.length || this.unReviewLogList.length; + } + if (this.isAdminLogin) { + return this.notificationList.length + } } } @@ -196,6 +258,13 @@ padding: 0px 10px; } } + + .admin-avatar { + margin: 0px 15px; + @media screen and (max-width: 352px) { + margin: 0px 10px; + } + } } } @@ -216,11 +285,11 @@ height: $DESKTOP_NAV_BAR; .pam-header__logo { - width: 180px; - height: 100%; + width: 160px; + height: 70px; margin: 0; background-image: url('~/assets/images/logo.png'); - background-size: cover; + background-size: contain; background-repeat: no-repeat; background-position: center; } -- Gitblit v1.8.0