From f36e617e9e534a4b05f2029724d678bbd6c655b3 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 22 十二月 2021 11:38:54 +0800 Subject: [PATCH] refactor: separate api/consultant.ts into serveral services --- PAMapp/store/localStorage.ts | 70 +++++++++++++++++++++++++++++++--- 1 files changed, 63 insertions(+), 7 deletions(-) diff --git a/PAMapp/store/localStorage.ts b/PAMapp/store/localStorage.ts index b8b0eb9..aefef14 100644 --- a/PAMapp/store/localStorage.ts +++ b/PAMapp/store/localStorage.ts @@ -1,17 +1,39 @@ -import { Module, Mutation, VuexModule } from 'vuex-module-decorators'; - +import { Module, Mutation, VuexModule ,Action } from 'vuex-module-decorators'; +import { Role } from '~/shared/models/enum/role'; +import { Selected } from '~/shared/models/quick-filter.model'; @Module export default class LocalStorage extends VuexModule { id_token = localStorage.getItem('id_token'); - role_State= localStorage.getItem('current_role'); + current_role= localStorage.getItem('current_role'); + consultant_id = localStorage.getItem('consultant_id'); + quickFilterSelectedItem = localStorage.getItem('quickFilter'); + recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); get idToken(): string|null { return this.id_token; }; get currentRole(): string|null { - return this.role_State; + return this.current_role; }; + + get consultantId():string|null{ + return this.consultant_id; + } + + get quickFilterSelectedData(): Selected[] { + return JSON.parse(this.quickFilterSelectedItem || '[]') as Selected[]; + } + + get isAdminLogin(): boolean { + return this.currentRole === Role.ADMIN; + } + + get isUserLogin(): boolean { + return this.currentRole === Role.USER; + } + + @Mutation storageIdToken(token: string): void { localStorage.setItem('id_token', token); @@ -20,14 +42,48 @@ @Mutation storageRole(role:string): void { localStorage.setItem('current_role', role); - this.role_State = localStorage.getItem('current_role'); + this.current_role = localStorage.getItem('current_role'); }; + @Mutation storageConsultantId(id:string):void{ + localStorage.setItem('consultant_id', id); + this.consultant_id = localStorage.getItem('consultant_id'); + } + + @Mutation storageQuickFilter(selected: string): void { + localStorage.setItem('quickFilter', selected); + this.quickFilterSelectedItem = localStorage.getItem('quickFilter'); + }; + + @Mutation storageRecommendConsultant(selected: string): void { + localStorage.setItem('recommendConsultantItem', selected); + this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); + } + @Mutation storageClear(): void { - localStorage.removeItem('userInfo') + localStorage.removeItem('myRequests'); + localStorage.removeItem('userInfo'); localStorage.removeItem('id_token'); localStorage.removeItem('current_role'); + localStorage.removeItem('consultant_id'); this.id_token = localStorage.getItem('id_token'); - this.role_State = localStorage.getItem('current_role'); + this.current_role = localStorage.getItem('current_role'); + this.consultant_id = localStorage.getItem('consultant_id'); } + + + @Mutation storageClearQuickFilter() { + localStorage.removeItem('quickFilter'); + this.quickFilterSelectedItem = localStorage.getItem('quickFilter'); + } + + @Mutation storageClearRecommendConsultant() { + localStorage.removeItem('recommendConsultantItem'); + this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); + } + + @Action actionStorageClear(): void { + this.context.commit("storageClear"); + } + } -- Gitblit v1.8.0