From 60dc6e178e4ab05ea8f62f7baa1dd72a5c20f93c Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期一, 13 十二月 2021 16:10:13 +0800 Subject: [PATCH] fixed#132096: 查看完聯絡清單(或登出後再登入),顧問清單的黃點並不會消失 --- PAMapp/store/index.ts | 58 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 42 insertions(+), 16 deletions(-) diff --git a/PAMapp/store/index.ts b/PAMapp/store/index.ts index 1f7af2a..d075c4f 100644 --- a/PAMapp/store/index.ts +++ b/PAMapp/store/index.ts @@ -1,23 +1,31 @@ import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators' -import { allAppointmentsView, ClientInfo, getMyAppointmentList } from '~/assets/ts/api/appointment'; -// import * as consultant from '~/assets/ts/api/consultant'; -import { Consultants,recommend,AgentOfStrictQuery, getFavoriteConsultant, addFavoriteConsultant, deleteConsultant, strictQuery } from '~/assets/ts/api/consultant'; -import { isLogin } from '~/assets/ts/auth'; + +import { ClientInfo, getMyAppointmentList, getMyReviewLog } from '~/assets/ts/api/appointment'; +import { recommend, AgentOfStrictQuery, addFavoriteConsultant, deleteConsultant, strictQuery } from '~/assets/ts/api/consultant'; import { getFavoriteFromStorage, setFavoriteToStorage } from '~/assets/ts/storageConsultant'; +import myConsultantService from '~/assets/ts/services/my-consultant.service'; +import { Consultant } from '~/assets/ts/models/consultant.model'; +import { AppointmentLog } from '~/assets/ts/models/appointment.model'; @Module export default class Store extends VuexModule { - recommendList: Consultants[] = []; + recommendList: Consultant[] = []; strictQueryList: AgentOfStrictQuery[] = []; - myConsultantList: Consultants[] = []; + myConsultantList: Consultant[] = []; myAppointmentList: ClientInfo[] = []; - @Mutation updateRecommend(data: Consultants[]) { + myAppointmentReviewLogList: AppointmentLog[] = []; + + get isUserLogin() { + return this.context.getters['localStorage/isUserLogin']; + } + + @Mutation updateRecommend(data: Consultant[]) { this.recommendList = data; } - @Mutation updateConsultantList(data: Consultants[]) { + @Mutation updateConsultantList(data: Consultant[]) { this.myConsultantList = data; } @@ -29,6 +37,10 @@ this.myAppointmentList = data; } + @Mutation updateMyAppointmentReviewLog(data: AppointmentLog[]) { + this.myAppointmentReviewLogList = data; + } + @Action storeRecommendList() { recommend().then(data => { this.context.commit('updateRecommend', data) @@ -38,7 +50,8 @@ @Action async storeConsultantList() { const localData = getFavoriteFromStorage(); - if (!isLogin()) { + + if (!this.isUserLogin) { this.context.commit('updateConsultantList', localData) return; }; @@ -51,8 +64,8 @@ }) } - getFavoriteConsultant().then(data => { - this.context.commit('updateConsultantList', data) + myConsultantService.getFavoriteConsultantList().then(data => { + this.context.commit('updateConsultantList', data); }) } @@ -63,7 +76,7 @@ // no agent was removed if (left.length === this.myConsultantList.length) return false; - if (!isLogin()) { + if (!this.isUserLogin) { setFavoriteToStorage(left); } else { await deleteConsultant(agentNo) @@ -75,13 +88,12 @@ } @Action - async addToMyConsultantList(consultantToAdd: Consultants) { + async addToMyConsultantList(consultantToAdd: Consultant) { if (consultantToAdd) { const found = this.myConsultantList.find(item => item.agentNo === consultantToAdd.agentNo); if (!found) { const newData = [consultantToAdd].concat(this.myConsultantList); - - if (isLogin()) { + if (this.isUserLogin) { await addFavoriteConsultant([consultantToAdd.agentNo]) } else { setFavoriteToStorage(newData); @@ -104,6 +116,20 @@ }); } + @Action + storeMyAppointmentReviewLog() { + getMyReviewLog().then((data) => { + const dataWithLatestDate = data.map((item) => { + return { + ...item, + compareDate: new Date(item.lastModifiedDate) + } + }); + const sortedData = dataWithLatestDate.sort((a, b) => +b.compareDate - +a.compareDate); + this.context.commit('updateMyAppointmentReviewLog', sortedData); + }); + } + @Action updateMyAppointment(myAppointment: ClientInfo) { const data = this.myAppointmentList.filter(item => item.id !== myAppointment.id); data.unshift(myAppointment); @@ -119,4 +145,4 @@ }); } -} \ No newline at end of file +} -- Gitblit v1.8.0