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 | 82 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 78 insertions(+), 4 deletions(-) diff --git a/PAMapp/components/NavBar.vue b/PAMapp/components/NavBar.vue index 07a669d..3dbaf28 100644 --- a/PAMapp/components/NavBar.vue +++ b/PAMapp/components/NavBar.vue @@ -9,7 +9,7 @@ </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> @@ -19,6 +19,21 @@ <li class="pam-header__dropdown-item">��</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> </header> @@ -26,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> -- Gitblit v1.8.0