From 435fa4eca47eab9b41f254dd55dc6572244b96a4 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期二, 18 七月 2023 12:34:30 +0800 Subject: [PATCH] Update: 依據來源 url parameters 切換 banner (FILM1: education, FILM2: Health) --- PAMapp/store/index.ts | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/PAMapp/store/index.ts b/PAMapp/store/index.ts index 3fe527f..cd5d2fe 100644 --- a/PAMapp/store/index.ts +++ b/PAMapp/store/index.ts @@ -1,26 +1,46 @@ import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators' import myConsultantService from '~/shared/services/my-consultant.service'; -import queryConsultantService from '~/shared/services/query-consultant.service'; +import queryConsultantService, { AddFavoriteConsultantItem } from '~/shared/services/query-consultant.service'; import reviewsService from '~/shared/services/reviews.service'; -import { Consultant } from '~/shared/models/consultant.model'; +import { Consultant, ConsultantWithAppointmentId } from '~/shared/models/consultant.model'; import { getFavoriteFromStorage, setFavoriteToStorage } from '~/shared/storageConsultant'; import { AppointmentLog } from '~/shared/models/appointment.model'; import { AgentOfStrictQuery, StrictQueryParams } from '~/shared/models/strict-query.model'; import { NotificationList } from '~/shared/models/reviews.model'; +import {AccessFroms} from "~/shared/services/utils.service"; @Module export default class Store extends VuexModule { recommendList: Consultant[] = []; strictQueryList: AgentOfStrictQuery[] = []; myConsultantList: Consultant[] = []; + myAppointmentGroupByConsultantList: ConsultantWithAppointmentId[] = []; reviewLogList: AppointmentLog[] = []; unReviewLogList: AppointmentLog[] = []; notificationList: NotificationList[] = []; + accessFrom: AccessFroms | null = null; + get isUserLogin() { return this.context.getters['localStorage/isUserLogin']; + } + + get strictResultList(): AgentOfStrictQuery[] { + const perfectMatchList = this.strictQueryList.filter((i) => i.suitability === 100); + return perfectMatchList.length > 5 + ? perfectMatchList + : this.strictQueryList; + } + + get fromAccess(): AccessFroms | null { + return this.accessFrom; + } + + @Mutation + setAccessSource(from: AccessFroms) { + this.accessFrom = from; } @Mutation @@ -35,7 +55,7 @@ @Mutation updateStrictQueryList(data: AgentOfStrictQuery[]) { - this.strictQueryList = data; + this.strictQueryList = data.sort((a, b) => b.suitability - a.suitability); } @Mutation @@ -51,6 +71,11 @@ @Mutation updateNotification(data: NotificationList[]) { this.notificationList = data; + } + + @Mutation + updateAppointmentGroupByConsultantList(data: ConsultantWithAppointmentId[]) { + this.myAppointmentGroupByConsultantList = data; } @Action @@ -71,14 +96,18 @@ if (localData?.length) { - const agentNoList = localData.map(i => i.agentNo) - await queryConsultantService.addFavoriteConsultant(agentNoList).then(res => { + const addFavoriteAgentList: AddFavoriteConsultantItem[] = localData.map(i => ({ agentNo: i.agentNo, createdTime: i.updateTime})); + await queryConsultantService.addFavoriteConsultant(addFavoriteAgentList).then(res => { localStorage.removeItem('favoriteConsultant') }) } myConsultantService.getFavoriteConsultantList().then(data => { this.context.commit('updateConsultantList', data); + }) + + myConsultantService.getAllGroupByConsultant().then((data) => { + this.context.commit('updateAppointmentGroupByConsultantList', data); }) } @@ -107,7 +136,7 @@ if (!found) { const newData = [consultantToAdd].concat(this.myConsultantList); if (this.isUserLogin) { - await queryConsultantService.addFavoriteConsultant([consultantToAdd.agentNo]) + await queryConsultantService.addFavoriteConsultant([{ agentNo: consultantToAdd.agentNo, createdTime: consultantToAdd.updateTime }]) } else { setFavoriteToStorage(newData); } -- Gitblit v1.9.3