From a7b7bc7f3a29dd6d435ff3320211e7edbba81bdf Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期三, 01 十二月 2021 11:34:15 +0800 Subject: [PATCH] [ Update ] : 修正錯誤訊息 css ,新增顧問登入查看帳號資訊 --- PAMapp/components/BackActionBar.vue | 2 PAMapp/pages/consultantLogin/index.vue | 6 ++- PAMapp/pages/login/index.vue | 5 +- PAMapp/components/NavBar.vue | 11 +++-- PAMapp/pages/agentInfo/_agentNo.vue | 8 +++ PAMapp/assets/scss/vendors/elementUI/_messageBox.scss | 24 +++++++++--- PAMapp/assets/ts/api/share.ts | 5 +- PAMapp/assets/ts/errorService.ts | 3 + PAMapp/store/localStorage.ts | 29 ++++++++++++-- 9 files changed, 67 insertions(+), 26 deletions(-) diff --git a/PAMapp/assets/scss/vendors/elementUI/_messageBox.scss b/PAMapp/assets/scss/vendors/elementUI/_messageBox.scss index 79abcf9..56b4b5c 100644 --- a/PAMapp/assets/scss/vendors/elementUI/_messageBox.scss +++ b/PAMapp/assets/scss/vendors/elementUI/_messageBox.scss @@ -7,15 +7,27 @@ flex-direction: column; justify-content: space-between; width:300px; - min-height: 150px; - max-height: 300px; .el-message-box__content{ padding: 15px; + font-size: 18px; + .message-header{ + color: $PRIMARY_BLACK; + text-align: center; + font-size: 20px; + font-weight: bolder; + } + .message-content{ + max-height: 150px; + overflow: auto; + margin-top: 10px; + color: $PRIMARY_BLACK; + letter-spacing: 2px; + } .el-message-box__message p{ - text-align: center; - color: $PRIMARY_BLACK; - letter-spacing: 2px; - font-size: 20px; + text-align: center; + font-size: 20px; + font-weight: bolder; + color: $PRIMARY_BLACK; } } diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts index 6e92bac..cd6084e 100644 --- a/PAMapp/assets/ts/api/share.ts +++ b/PAMapp/assets/ts/api/share.ts @@ -47,15 +47,14 @@ if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){ switch (error.response.status) { case 401: - ErrorMessageBox('���暹��').then(()=>{ - window.$nuxt.$store.commit('localStorage/storageClear'); + Promise.all([ErrorMessageBox('���暹��'),window.$nuxt.$store.dispatch('localStorage/actionStorageClear')]).then(()=>{ location.href='/'; }); break; + default: ErrorMessageBox('', error); break; } - } }; diff --git a/PAMapp/assets/ts/errorService.ts b/PAMapp/assets/ts/errorService.ts index bfedf59..240370b 100644 --- a/PAMapp/assets/ts/errorService.ts +++ b/PAMapp/assets/ts/errorService.ts @@ -8,7 +8,8 @@ return MessageBox({ message: errorMsg ? errorMsg - : `蝟餌絞���隤�: ${errorObj?.response?.status} <p/><p/> ${errorObj?.response?.data?.detail}`, + : `<div class="message-header"> 蝟餌絞���隤�: ${errorObj?.response?.status} </div> + <div class="message-content">${errorObj?.response?.data?.detail}</div>`, dangerouslyUseHTMLString: true, showClose:false, showConfirmButton:true, diff --git a/PAMapp/components/BackActionBar.vue b/PAMapp/components/BackActionBar.vue index a57cb21..fbcfa5c 100644 --- a/PAMapp/components/BackActionBar.vue +++ b/PAMapp/components/BackActionBar.vue @@ -34,7 +34,7 @@ featureLabel = '���“���'; break; case 'agentInfo': - featureLabel = '璆剖�鞈��' + featureLabel = _.isEqual(this.currentRole,Role.ADMIN) ? '���董�����' : '璆剖�鞈��' break; default: featureLabel = '�����'; diff --git a/PAMapp/components/NavBar.vue b/PAMapp/components/NavBar.vue index e55c62c..ba27b33 100644 --- a/PAMapp/components/NavBar.vue +++ b/PAMapp/components/NavBar.vue @@ -45,6 +45,7 @@ @roleStorage.Mutation storageClearRecommendConsultant!: () => void; @roleStorage.Getter idToken!: string | null; @roleStorage.Getter currentRole!: string | null; + @roleStorage.Getter consultantId!: string | null; navBarList = [{ authorityOfRoleList: [Role.NOT_LOGIN], @@ -58,7 +59,7 @@ }, { authorityOfRoleList:[Role.ADMIN], - routeUrl: '/consultantAccountSetting', + routeUrl: '/agentInfo/', title: '���董�����', }, { @@ -96,15 +97,17 @@ routerNavigateTo(url: string): void { (this.$refs.dropdown as any).hide(); - _.isEqual(url, '') ? this.fakeLogout() : this.$router.push(url); + _.isEqual(url,'') + ? this.logout() + : this.$router.push(_.isEqual(url,'/agentInfo/') ? url+this.consultantId :url); } pushRouterByLoginRole(): void { const link = _.isEqual(this.currentRole, Role.ADMIN) ? '/myAppointmentList/appointmentList' : '/'; this.$router.push(link); } - // TODO: ��TP隤����� ���蝙� - fakeLogout(): void { + + logout(): void { this.storageClear(); this.storageClearQuickFilter(); this.storageClearRecommendConsultant(); diff --git a/PAMapp/pages/agentInfo/_agentNo.vue b/PAMapp/pages/agentInfo/_agentNo.vue index 7ef3396..9a75eec 100644 --- a/PAMapp/pages/agentInfo/_agentNo.vue +++ b/PAMapp/pages/agentInfo/_agentNo.vue @@ -144,7 +144,9 @@ </UiField> </el-row> + <AddAndReservedBtns + v-if="currentRole!==role.ADMIN" :cusClass="'pam-paragraph'" :agentInfo="agentInfo" @openPopUp="alertAddSuccess" @@ -182,11 +184,15 @@ <script lang="ts"> import { Context } from '@nuxt/types'; +import { namespace } from 'nuxt-property-decorator'; import { Vue, Component } from 'vue-property-decorator'; import { getConsultantDetail } from '~/assets/ts/api/consultant'; - +import { Role } from '~/assets/ts//models/enum/Role'; +const roleStorage = namespace('localStorage'); @Component export default class AgentInfoComponent extends Vue { + @roleStorage.Getter currentRole!:string|null; + role = Role; agentInfo!: AgentInfo; isAlertAddSuccess = false; isAlertFieldInfo = false; diff --git a/PAMapp/pages/consultantLogin/index.vue b/PAMapp/pages/consultantLogin/index.vue index f4bc4df..17d59a5 100644 --- a/PAMapp/pages/consultantLogin/index.vue +++ b/PAMapp/pages/consultantLogin/index.vue @@ -69,7 +69,7 @@ export default class ConsultantLogin extends Vue { @roleStorage.Mutation storageIdToken!: (token: string) => void; @roleStorage.Mutation storageRole!: (role: string) => void; - + @roleStorage.Mutation storageConsultantId!:(id:string) => void; isRememberUserName = false; isShowPassword = false; imgSrc = ''; @@ -126,6 +126,7 @@ logInToConsultant(this.consultantDto).then(res => { this.storageIdToken(res.data.id_token); this.storageRole(Role.ADMIN); + this.storageConsultantId(this.consultantDto.username) this.storeUserName(); this.$router.push('/myAppointmentList/appointmentList'); }).catch((error:AxiosError)=>{ @@ -139,8 +140,9 @@ const errorMsg = error.response.data.detail; ErrorMessageBox(errorMsg); break; + default: - ErrorMessageBox(); + ErrorMessageBox('',error); break; } } diff --git a/PAMapp/pages/login/index.vue b/PAMapp/pages/login/index.vue index ce2d0f4..93525b9 100644 --- a/PAMapp/pages/login/index.vue +++ b/PAMapp/pages/login/index.vue @@ -504,8 +504,7 @@ private checkHttpErrorStatus(error:any):void{ switch (error.response.status) { case 401: - const errorMsg = error.response.data.detail; - ErrorMessageBox(errorMsg); + ErrorMessageBox('',error); break; case 403: this.registerDialogVisible = true; @@ -517,7 +516,7 @@ }, 1000); break; default: - ErrorMessageBox(); + ErrorMessageBox('',error); break; } } diff --git a/PAMapp/store/localStorage.ts b/PAMapp/store/localStorage.ts index d820735..d93aa2c 100644 --- a/PAMapp/store/localStorage.ts +++ b/PAMapp/store/localStorage.ts @@ -1,9 +1,10 @@ import { Selected } from '~/components/QuickFilter/QuickFilterSelector.vue'; -import { Module, Mutation, VuexModule } from 'vuex-module-decorators'; +import { Module, Mutation, VuexModule ,Action } from 'vuex-module-decorators'; @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'); @@ -12,12 +13,18 @@ }; 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[]; } + + @Mutation storageIdToken(token: string): void { localStorage.setItem('id_token', token); @@ -26,8 +33,13 @@ @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); @@ -44,9 +56,12 @@ 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'); @@ -58,4 +73,8 @@ this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); } + @Action actionStorageClear(): void { + this.context.commit("storageClear"); + } + } -- Gitblit v1.8.0