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 |  158 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 150 insertions(+), 8 deletions(-)

diff --git a/PAMapp/components/NavBar.vue b/PAMapp/components/NavBar.vue
index 2de27f4..3dbaf28 100644
--- a/PAMapp/components/NavBar.vue
+++ b/PAMapp/components/NavBar.vue
@@ -1,9 +1,151 @@
 <template>
-    <div>Header
-        <el-button @click="$router.push('/login')">��</el-button>
-        <el-button @click="$router.push('/notification')">���</el-button>
-        <el-button @click="$router.push('/accountSetting')">�犖撣唾�身摰�</el-button>
-        <el-button @click="$router.push('/record/contactRecord')">�������</el-button>
-        <el-button @click="$router.push('/contactList/consultantList')">���蝯⊥�</el-button>
-    </div>
-</template>
\ No newline at end of file
+    <header class="pam-header">
+      <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">
+            �����兢蝳�風��
+          </div>
+        </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">
+            <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('/myConsultantList/consultantList')">���“���</li>
+              <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>
+</template>
+
+<script lang="ts">
+import { Vue, Component } from 'vue-property-decorator';
+import * as _ from 'lodash';
+@Component
+export default class NavBar extends Vue {
+  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>
+
+<style lang="scss" scoped>
+.pam-header {
+  height: 53px;
+  display: flex;
+  align-items: center;
+  .pam-header__logo {
+    height: 100%;
+  }
+  .pam-header__title {
+    flex: 1;
+    margin: 10px 0;
+    padding-left: 10px;
+    border-left: 1px solid #CCCCCC;
+    font-size: 16px;
+    font-weight: bold;
+    color: $PRUDENTIAL_GREY;
+    letter-spacing: 3.6px;
+    flex-basis: 140px;
+    .pam-header__sub-title {
+      padding-top: 2px;
+      font-size: 13px;
+      font-weight: bold;
+      color: $CORAL;
+      letter-spacing: 1.2px
+    }
+  }
+  .pam-header__action-bar {
+    display: flex;
+    font-size: 24px;
+    font-weight: bold;
+    justify-content: space-around;
+    i {
+      padding: 0 15px;
+      @media screen and (max-width: 320px) {
+        padding: 0 5px;
+      }
+    }
+  }
+}
+</style>

--
Gitblit v1.8.0