From cd4a64b39c429f2f5b45cb042d1b66f1cd3904cd Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期一, 15 十一月 2021 18:06:40 +0800 Subject: [PATCH] [ Update ] 更新 navbar 清單 根據 角色 顯示清單 --- PAMapp/components/NavBar.vue | 93 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 84 insertions(+), 9 deletions(-) diff --git a/PAMapp/components/NavBar.vue b/PAMapp/components/NavBar.vue index 89a9b4c..3dbaf28 100644 --- a/PAMapp/components/NavBar.vue +++ b/PAMapp/components/NavBar.vue @@ -1,6 +1,6 @@ <template> <header class="pam-header"> - <img class="pam-header__logo" src="~/assets/images/logo.png" alt="" @click="$router.push('/login')"> + <img class="pam-header__logo" src="~/assets/images/logo.png" alt="" @click="$router.push('/')"> <div class="pam-header__title"> ���兢蝳��蜓 <div class="pam-header__sub-title"> @@ -9,14 +9,30 @@ </div> <div class="pam-header__action-bar"> <i class="icon-bell text--dark-blue cursor--pointer" @click="$router.push('/notification')"></i> - <el-dropdown @command="handleCommand"> + <!-- <el-dropdown @command="handleCommand"> <i class="icon-avatar text--dark-blue cursor--pointer"></i> <el-dropdown-menu slot="dropdown" class="pam-header__dropdown"> + <li class="pam-header__dropdown-item" @click="$router.push('/login')">��</li> <li class="pam-header__dropdown-item" @click="$router.push('/accountSetting')">�犖撣唾�身摰�</li> <li class="pam-header__dropdown-item" @click="$router.push('/record/contactRecord')">�������</li> - <li class="pam-header__dropdown-item" @click="$router.push('/contactList/consultantList')">���“���</li> + <li class="pam-header__dropdown-item" @click="$router.push('/myConsultantList/consultantList')">���“���</li> <li class="pam-header__dropdown-item">��</li> - <li class="pam-header__dropdown-item pam-header__dropdown-divider" @click="$router.push('/login')">憿批��</li> + <li class="pam-header__dropdown-item pam-header__dropdown-divider" @click="$router.push('/consultantLogin')">憿批��</li> + </el-dropdown-menu> + </el-dropdown> --> + + <el-dropdown> + <i class="icon-avatar text--dark-blue cursor--pointer"></i> + <el-dropdown-menu slot="dropdown" class="pam-header__dropdown"> + <template v-for="(navbarItem,index) in navBarList"> + <li class="pam-header__dropdown-item" + :class="{'pam-header__dropdown-divider':navbarItem.title === '憿批��'}" + v-if="navbarItem.needRole.includes(loginRole)" + :key="index" + @click="linkTo(navbarItem.link)"> + {{navbarItem.title}} + </li> + </template> </el-dropdown-menu> </el-dropdown> </div> @@ -25,12 +41,71 @@ <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; - +import * as _ from 'lodash'; @Component export default class NavBar extends Vue { - handleCommand() { - + navBarList=[ + { + needRole:[Role.NOT_LOGIN], + link:'/login', + title:'��', + }, + { + needRole:[Role.USER], + link:'/accountSetting', + title:'�犖撣唾�身摰�', + }, + { + needRole:[Role.ADMIN], + link:'/notFinish', + title:'���董�����', + }, + { + needRole:[Role.USER,Role.ADMIN], + link:'/record/contactRecord', + title:'�������', + }, + { + needRole:[Role.NOT_LOGIN,Role.USER], + link:'/myConsultantList/consultantList', + title:'���“���', + }, + { + needRole:[Role.USER,Role.ADMIN], + link:'', + title:'��', + }, + { + needRole:[Role.NOT_LOGIN,Role.USER], + link:'/consultantLogin', + title:'憿批��', + }, + ]; + get idToken():string | null{ + return localStorage.getItem('id_token'); } + get roleOfState():string | null{ + return localStorage.getItem('roleOfState'); + } + get loginRole():string{ + return this.roleOfState&&this.idToken ? this.roleOfState : Role.NOT_LOGIN; + } + + linkTo(routerLink:string):void{ + _.isEqual(routerLink,'') ? this.fakeLogout() :this.$router.push(routerLink); + } + + + // TODO: ��TP隤����� ���蝙� + fakeLogout():void{ + localStorage.clear(); + this.$router.go(0); + } +} +export enum Role{ + USER='user', + ADMIN='admin', + NOT_LOGIN='', } </script> @@ -49,14 +124,14 @@ border-left: 1px solid #CCCCCC; font-size: 16px; font-weight: bold; - color: #68737A; + color: $PRUDENTIAL_GREY; letter-spacing: 3.6px; flex-basis: 140px; .pam-header__sub-title { padding-top: 2px; font-size: 13px; font-weight: bold; - color: #F09491; + color: $CORAL; letter-spacing: 1.2px } } -- Gitblit v1.8.0