保誠-保戶業務員媒合平台
HelenHuang
2021-12-06 1076fdc06d40646d1d6f125a3ce4d43cf4eac673
rename: change Consultants model to Consultant
修改17個檔案
109 ■■■■ 已變更過的檔案
PAMapp/assets/ts/api/consultant.ts 6 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/models/appointment.model.ts 5 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/models/consultant.model.ts 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/storageConsultant.ts 6 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/AddAndReservedBtns.vue 10 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Consultant/ConsultantCard.vue 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Consultant/ConsultantList.vue 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Consultant/ConsultantSwiper.vue 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/QuickFilter/QuickFilterConsultantList.vue 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Ui/UiDateFormat.vue 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Ui/UiPagination.vue 10 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/index.vue 10 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/myConsultantList.vue 10 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/myConsultantList/consultantList.vue 8 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/myConsultantList/contactedList.vue 8 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/quickFilter/index.vue 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/store/index.ts 12 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/api/consultant.ts
@@ -4,7 +4,7 @@
import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo';
import _ from 'lodash';
import { UserSetting } from '../models/account.model';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
// 顧客登入(TODO: OTP認證開發前 暫時使用)
export function login(user: any) {
@@ -28,7 +28,7 @@
// 推薦保險顧問
export function recommend() {
    return service.get<Consultants[]>('/consultant/recommend')
    return service.get<Consultant[]>('/consultant/recommend')
            .then(res => res.data);
}
@@ -37,7 +37,7 @@
    const headers = {
        Authorization: 'Bearer ' + localStorage.getItem('id_token')
    }
    return service.get<Consultants[]>('/consultant/favorite', {headers})
    return service.get<Consultant[]>('/consultant/favorite', {headers})
            .then(res => res.data);
}
PAMapp/assets/ts/models/appointment.model.ts
@@ -6,7 +6,6 @@
    agentNo         : string,
    status          : 'UNFILLED' | 'FILLED',
    score           : number,
    // 需要 agentName
    agentName: string,
    clientName: string,
    agentName       : string,
    customerName    : string,
}
PAMapp/assets/ts/models/consultant.model.ts
@@ -1,4 +1,4 @@
export interface Consultants {
export interface Consultant {
    agentNo            : string;
    name               : string;
    img                : string;
PAMapp/assets/ts/storageConsultant.ts
@@ -1,11 +1,11 @@
import { Consultants } from "./models/consultant.model";
import { Consultant } from "./models/consultant.model";
export function getFavoriteFromStorage(): Consultants[] {
export function getFavoriteFromStorage(): Consultant[] {
    const consultantList = localStorage.getItem('favoriteConsultant');
    return consultantList ? JSON.parse(consultantList) : [];
}
export function setFavoriteToStorage(consultants: Consultants[]) {
export function setFavoriteToStorage(consultants: Consultant[]) {
    localStorage.setItem('favoriteConsultant', JSON.stringify(consultants));
}
PAMapp/components/AddAndReservedBtns.vue
@@ -12,17 +12,17 @@
<script lang="ts">
import { Vue, Component, Prop, Emit, Action, State, namespace } from 'nuxt-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
const localStorage = namespace('localStorage');
@Component
export default class AddAndReservedBtns extends Vue {
    @Action addToMyConsultantList!: (consultantToAdd: Consultants) => Promise<boolean>
    @State('myConsultantList') myConsultantList!: Consultants[];
    @Prop() agentInfo!: Consultants;
    @Action addToMyConsultantList!: (consultantToAdd: Consultant) => Promise<boolean>
    @State('myConsultantList') myConsultantList!: Consultant[];
    @Prop() agentInfo!: Consultant;
    @Prop() cusClass!: string;
    isVisiblePopUp = false;
    addConsultant(item: Consultants) {
    addConsultant(item: Consultant) {
        this.addToMyConsultantList(item).then(addOk => {
            addOk && this.openPopUp();
        });
PAMapp/components/Consultant/ConsultantCard.vue
@@ -105,7 +105,7 @@
<script lang="ts">
import { Vue, Component, Prop, Emit, Action, State } from 'nuxt-property-decorator';
import { getAppointmentDetail, UserReviewsConsultantsParams, userReviewsConsultants  } from '~/assets/ts/api/consultant';
import { Consultants, Appointment } from '~/assets/ts/models/consultant.model';
import { Consultant, Appointment } from '~/assets/ts/models/consultant.model';
import { isLogin } from '~/assets/ts/auth';
import { isMobileDevice } from '~/assets/ts/device';
@@ -132,7 +132,7 @@
export default class ConsultantCard extends Vue {
    @Action removeFromMyConsultantList!: (agentNo: string) => Promise<boolean>;
    @Action storeConsultantList!: any;
    @Prop() agentInfo!: Consultants;
    @Prop() agentInfo!: Consultant;
    isVisibleDialog = false;
    reviewsBtn = false;
    status = false;
PAMapp/components/Consultant/ConsultantList.vue
@@ -24,12 +24,12 @@
<script lang="ts">
import { Vue, Component, Prop } from 'nuxt-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
import { isLogin } from '~/assets/ts/auth';
@Component
export default class ConsultantList extends Vue {
    @Prop() agents!: Consultants[];
    @Prop() agents!: Consultant[];
    get isLogin() {
        return isLogin();
PAMapp/components/Consultant/ConsultantSwiper.vue
@@ -28,12 +28,12 @@
<script lang="ts">
import { Vue, Component, Prop } from 'vue-property-decorator';
import { SwiperOptions } from 'swiper';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class UiSwiper extends Vue {
    @Prop() agents!: Consultants[];
    @Prop() agents!: Consultant[];
    swiperOptions: SwiperOptions = {
      loop: false,
PAMapp/components/QuickFilter/QuickFilterConsultantList.vue
@@ -79,12 +79,12 @@
<script lang="ts">
import { ElCarousel } from 'element-ui/types/carousel';
import { Vue, Component, Prop } from 'vue-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class QuickFilterConsultantList extends Vue {
    @Prop() consultantList!: Consultants[];
    @Prop() consultantList!: Consultant[];
    isVisiblePopUp = false;
    popUpTxt = '成功加入顧問清單';
PAMapp/components/Ui/UiDateFormat.vue
@@ -20,7 +20,7 @@
        if (!this.date) return;
        const toDatePromise = new Promise((resolve, reject) => {
            const date: Date = typeof(this.date) === 'string' ? new Date(this.date) : this.date;
            const date: Date = typeof(this.date) === 'string' ? new Date(this.date) : this.date as Date;
            resolve(date);
        });
PAMapp/components/Ui/UiPagination.vue
@@ -12,20 +12,20 @@
<script lang="ts">
import { Vue, Component, Prop, Emit, Watch } from 'nuxt-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class UiPagination extends Vue {
    @Prop() totalList!: Consultants[];
    @Prop() totalList!: Consultant[];
    @Prop({default: 5}) pageSize!: number;
    currentPage = 1;
    pageList: Consultants[] = [];
    pageList: Consultant[] = [];
    mounted() {
        this.handleCurrentChange(this.currentPage);
    }
    @Emit('changePage') chagnePage(): Consultants[] {
    @Emit('changePage') chagnePage(): Consultant[] {
        return this.pageList
    }
@@ -41,7 +41,7 @@
        }
    }
    @Watch('totalList') watchtotalList(newValue: Consultants[]) {
    @Watch('totalList') watchtotalList(newValue: Consultant[]) {
        if (newValue) {
            this.handleCurrentChange(this.currentPage);
        }
PAMapp/pages/index.vue
@@ -44,18 +44,18 @@
<script lang="ts">
  import { Vue, Component, State, Action, Watch } from 'nuxt-property-decorator';
  import { Consultants } from '~/assets/ts/models/consultant.model';
  import { Consultant } from '~/assets/ts/models/consultant.model';
  @Component({
    layout: 'home'
  })
  export default class MainComponent extends Vue {
    consultantList: Consultants[] = [];
    agents: Consultants[] = [];
    @State('recommendList') recommendList!: Consultants[];
    consultantList: Consultant[] = [];
    agents: Consultant[] = [];
    @State('recommendList') recommendList!: Consultant[];
    @Action storeRecommendList!: any;
    @State('myConsultantList') myConsultantList!: Consultants[];
    @State('myConsultantList') myConsultantList!: Consultant[];
    @Action storeConsultantList!: any;
    @Watch('myConsultantList')
PAMapp/pages/myConsultantList.vue
@@ -26,16 +26,16 @@
<script lang='ts'>
import { Vue, Component, Watch, State, Action } from 'nuxt-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class myConsultantList extends Vue {
    activeTabName = 'consultantList';
    agents: Consultants[] = [];
    contactedList: Consultants[] = [];
    consultantList: Consultants[] = [];
    agents: Consultant[] = [];
    contactedList: Consultant[] = [];
    consultantList: Consultant[] = [];
    @State('myConsultantList') myConsultantList!: Consultants[];
    @State('myConsultantList') myConsultantList!: Consultant[];
    @Action storeConsultantList!: any;
    @Watch('myConsultantList')
PAMapp/pages/myConsultantList/consultantList.vue
@@ -13,16 +13,16 @@
<script lang="ts">
import { Vue, Component, Prop, Getter } from 'nuxt-property-decorator';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class ConsultantPage extends Vue {
    @Prop() consultantList!: Consultants[];
    @Prop() consultantList!: Consultant[];
    @Getter isLogin!: boolean;
    pageList: Consultants[] = [];
    pageList: Consultant[] = [];
    changePage(pageList: Consultants[]) {
    changePage(pageList: Consultant[]) {
        this.pageList = pageList;
    }
PAMapp/pages/myConsultantList/contactedList.vue
@@ -13,15 +13,15 @@
<script lang="ts">
import { Vue, Component, Prop } from 'nuxt-property-decorator' ;
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
@Component
export default class ContactedList extends Vue {
    @Prop() contactedList!: Consultants[];
    pageList: Consultants[] = [];
    @Prop() contactedList!: Consultant[];
    pageList: Consultant[] = [];
    changePage(pageList: Consultants[]) {
    changePage(pageList: Consultant[]) {
        this.pageList = pageList;
    }
}
PAMapp/pages/quickFilter/index.vue
@@ -67,7 +67,7 @@
<script lang="ts">
import { Vue, Component, namespace } from 'nuxt-property-decorator';
import { FastQueryParams } from '~/assets/ts/api/consultant';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
import { Selected } from '~/components/QuickFilter/QuickFilterSelector.vue';
import { fastQuery } from '~/assets/ts/api/consultant';
@@ -78,7 +78,7 @@
    @localStorage.Getter quickFilterSelectedData!: Selected[];
    isOpenQuestionPopUp = false;
    consultantList: Consultants[] = [];
    consultantList: Consultant[] = [];
    questionOption = {};
    confirmItem: Selected[] = [];
    questionList: QuestionOption[] = [
PAMapp/store/index.ts
@@ -2,26 +2,26 @@
import { ClientInfo, getMyAppointmentList, getMyReviewLog, allAppointmentsView } from '~/assets/ts/api/appointment';
// import * as consultant from '~/assets/ts/api/consultant';
import { recommend, AgentOfStrictQuery, getFavoriteConsultant, addFavoriteConsultant, deleteConsultant, strictQuery } from '~/assets/ts/api/consultant';
import { Consultants } from '~/assets/ts/models/consultant.model';
import { Consultant } from '~/assets/ts/models/consultant.model';
import { isLogin } from '~/assets/ts/auth';
import { AppointmentLog } from '~/assets/ts/models/appointment.model';
import { getFavoriteFromStorage, setFavoriteToStorage } from '~/assets/ts/storageConsultant';
@Module
export default class Store extends VuexModule {
    recommendList: Consultants[] = [];
    recommendList: Consultant[] = [];
    strictQueryList: AgentOfStrictQuery[] = [];
    myConsultantList: Consultants[] = [];
    myConsultantList: Consultant[] = [];
    myAppointmentList: ClientInfo[] = [];
    myAppointmentReviewLogList: AppointmentLog[] = [];
    @Mutation updateRecommend(data: Consultants[]) {
    @Mutation updateRecommend(data: Consultant[]) {
        this.recommendList = data;
    }
    @Mutation updateConsultantList(data: Consultants[]) {
    @Mutation updateConsultantList(data: Consultant[]) {
        this.myConsultantList = data;
    }
@@ -83,7 +83,7 @@
    }
    @Action
    async addToMyConsultantList(consultantToAdd: Consultants) {
    async addToMyConsultantList(consultantToAdd: Consultant) {
        if (consultantToAdd) {
            const found = this.myConsultantList.find(item => item.agentNo === consultantToAdd.agentNo);
            if (!found) {