PAMapp/pages/recommendConsultant/index.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/store/localStorage.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 |
PAMapp/pages/recommendConsultant/index.vue
@@ -86,22 +86,26 @@ import { Vue, Component, Mutation Mutation, namespace } from 'nuxt-property-decorator'; import {strictQuery} from '~/assets/ts/api/consultant'; import * as _ from 'lodash'; import { strictQuery } from '~/assets/ts/api/consultant'; const localStorage = namespace('localStorage'); @Component export default class RecommendConsultant extends Vue { isVisiblePopUp = false; strictQueryDto={ strictQueryDto: StrictQueryDto ={ gender:'', area:'', status:'', requirements:[], requirements: [], otherRequirement:'', seniority:'', avgScore:0, popularTags:[], popularTags: [], otherPopularTags:'', }; genderOptions=[ @@ -225,10 +229,18 @@ showAddress = false; @Mutation updateStrictQueryList!: (data: any) => void; @localStorage.Mutation storageRecommendConsultant!: (data: any) => void; @localStorage.State recommendConsultantItem!: string; mounted() { if (!!this.recommendConsultantItem) { this.strictQueryDto = JSON.parse(this.recommendConsultantItem); } } makePair():void{ strictQuery(this.strictQueryDto).then(res=>{ console.log('resultData',res.data); this.storageRecommendConsultant(JSON.stringify(this.strictQueryDto)); this.updateStrictQueryList(res.data); if (res.data.length === 0) { this.isVisiblePopUp = true; @@ -239,7 +251,9 @@ } get notFinishByRequireRules():boolean{ const area = this.strictQueryDto.area; const requirementLength = this.strictQueryDto.requirements.length; const requirementLength = this.strictQueryDto.requirements ? this.strictQueryDto.requirements.length : 0; return !(area && requirementLength >0) } @@ -253,6 +267,18 @@ MALE="male", FEMALE="female", } export interface StrictQueryDto { gender: string, area: string, status: string, requirements: string[], otherRequirement: string, seniority: string, avgScore: number, popularTags: string[], otherPopularTags: string } </script> <style lang="scss" > PAMapp/store/localStorage.ts
@@ -1,9 +1,11 @@ import { Selected } from '~/components/QuickFilter/QuickFilterSelector.vue'; import { Module, Mutation, VuexModule } from 'vuex-module-decorators'; @Module export default class LocalStorage extends VuexModule { id_token = localStorage.getItem('id_token'); role_State= localStorage.getItem('current_role'); quickFilterSelectedItem = localStorage.getItem('quickFilter'); recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); get idToken(): string|null { return this.id_token; @@ -12,6 +14,10 @@ get currentRole(): string|null { return this.role_State; }; get quickFilterSelectedData(): Selected[] { return JSON.parse(this.quickFilterSelectedItem || '[]') as Selected[]; } @Mutation storageIdToken(token: string): void { localStorage.setItem('id_token', token); @@ -23,6 +29,16 @@ this.role_State = localStorage.getItem('current_role'); }; @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('id_token'); @@ -30,4 +46,15 @@ this.id_token = localStorage.getItem('id_token'); this.role_State = localStorage.getItem('current_role'); } @Mutation storageClearQuickFilter() { localStorage.removeItem('quickFilter'); this.quickFilterSelectedItem = localStorage.getItem('quickFilter'); } @Mutation storageClearRecommendConsultant() { localStorage.removeItem('recommendConsultantItem'); this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem'); } }