保誠-保戶業務員媒合平台
HelenHuang
2021-12-30 ac594e4efb30ba28776d74b0fb08ab34d7c32023
PAMapp/pages/recommendConsultant/result.vue
@@ -2,130 +2,131 @@
<div>
    <div class="mdTxt pb-10">嚴選顧問推薦</div>
    <ul class="pam-rec-agent__list">
        <li class="pam-rec-agent-card" v-for="(info,index) in recAgentList" :key="index">
        <li class="pam-rec-agent-card" v-for="(info,index) in pageList" :key="index">
            <div class="pam-rec-agent-card__content">
              <div class="pam-rec-agent-card__content-header">
                <div class="pam-rec-agent-card__avatar">
                    <img :src="info.avatar" class="avatar">
                <div class="pam-rec-agent-card__content-header">
                    <div class="pam-rec-agent-card__avatar">
                        <UiAvatar
                          :agentNo="info.agentNo" >
                        </UiAvatar>
                    </div>
                    <div class="pam-rec-agent-card__main-info">
                        <div class="text--middle  pt-10 rec-desktop-name">{{ info.name }}</div>
                        <div class="rec-role">{{ info.role }}</div>
                        <span class="rec-detail fix-chrome-click--issue"  @click="showAgentDetail(info.agentNo)">詳細資料</span>
                    </div>
                </div>
                <div class="pam-rec-agent-card__main-info">
                    <div class="fz-20 pt-10">{{ info.name }}</div>
                    <div class="rec-role">{{ info.role }}</div>
                    <span class="rec-detail pt-30">詳細資料</span>
                <div class="pam-rec-agent-card__content-body">
                    <el-row type="flex" class="pam-paragraph">
                        <div class="field">
                            <div class="field__label">專長領域</div>
                            <div class="field__content expertieses-container">
                                <div class="pr-10 pb-10" v-for="(expert, index) in info.expertise" :key="index">
                                    #{{ expert }}
                                </div>
                            </div>
                        </div>
                    </el-row>
                    <el-row type="flex" class="pam-paragraph">
                        <el-col :span="12">
                            <div class="field__label">
                            服務資歷
                            </div>
                            <div class="field__content">
                            {{ info.seniority }}
                            </div>
                        </el-col>
                        <!-- TODO:隱藏滿意度 -->
                        <el-col :span="12" v-if="!hideReviews">
                            <div class="field__label">
                            客戶滿意度
                            </div>
                            <div class="field__content">
                                <i class="icon-star" style="color:#F2C75C"></i>
                            {{ info.avgScore }}
                            </div>
                        </el-col>
                    </el-row>
                </div>
              </div>
              <div class="pam-rec-agent-card__content-body">
                <el-row type="flex" class="pam-paragraph">
                  <div class="field">
                    <div class="field__label">
                    專長領域
                    </div>
                    <div class="field__content expertieses-container">
                      <div class="pr-10 pb-10" v-for="(expert, index) in info.expertises" :key="index">
                        #{{ expert }}
                      </div>
                    </div>
                  </div>
                </el-row>
                <el-row type="flex" class="pam-paragraph">
                  <el-col :span="12">
                    <div class="field__label">
                    服務資歷
                    </div>
                    <div class="field__content">
                      {{ info.seniority }}
                    </div>
                  </el-col>
                  <el-col :span="12">
                    <div class="field__label">
                    客戶滿意度
                    </div>
                    <div class="field__content">
                      {{ info.avgScore }}
                    </div>
                  </el-col>
                </el-row>
              </div>
              <div class="pam-rec-agent-card__content-footer">
                <el-row
                  type="flex"
                  justify="center"
                  class="">
                    <el-button>+ 顧問清單</el-button>
                    <el-button type="primary" style="margin-left: 10px">進行預約</el-button>
                </el-row>
              </div>
                <div class="pam-rec-agent-card__content-footer">
                    <AddAndReservedBtns
                        :cusClass="'pam-rec-btns'"
                        :agentInfo="info"
                        @openPopUp="openPopUp"
                    ></AddAndReservedBtns>
                </div>
            </div>
        </li>
    </ul>
    <div class="mt-30">
      分頁器
    </div>
    <UiPagination
        class="mb-30"
        :totalList="strictQueryList"
        @changePage="changePage"
        :pageSize = 6
    ></UiPagination>
    <PopUpFrame :isOpen.sync="isVisiblePopUp"
      >
        <div class="text--center mdTxt">
            <p class="mb-50">{{popUpTxt}}</p>
            <div class="text--center">
                <el-button
                    type="primary"
                    @click="isVisiblePopUp = false"
                >我知道了</el-button>
            </div>
        </div>
    </PopUpFrame>
</div>
</template>
<script>
import {Vue,Component} from 'vue-property-decorator';
<script lang="ts">
import { AgentOfStrictQuery } from '~/shared/models/strict-query.model';
import { hideReviews } from '~/shared/const/hide-reviews';
import { Vue,Component, State, namespace, Action} from 'nuxt-property-decorator';
const localStorage = namespace('localStorage');
@Component
export default class Reslut extends Vue{
    @State('strictQueryList')
    strictQueryList!: AgentOfStrictQuery[];
    recAgentList =[
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'蔡美莓',
            role:'伯樂保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
        },
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'賈斯町',
            role:'鮭魚保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
        },
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'陳家婷',
            role:'千里馬保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
        },
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'張小美',
            role:'鮭魚保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
        },
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'林美女',
            role:'千里馬保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
        },
        {
            avatar:'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
            name:'蔣帥哥',
            role:'鮭魚保險經紀人',
            expertises: ['財務規劃', '資產轉移', '節稅', '樂活退休'],
            seniority:'1年2個月',
            avgScore:4.8
    @Action
    storeStrictQueryList!: (data: any) => Promise<number>;
    @localStorage.State
    recommendConsultantItem!: string;
    pageList: any[] = [];
    isVisiblePopUp = false;
    popUpTxt = '';
    hideReviews = hideReviews;
    //////////////////////////////////////////////////////////////////////
    mounted(): void {
        if (this.recommendConsultantItem && this.strictQueryList.length === 0) {
            const strictQueryDto = JSON.parse(this.recommendConsultantItem);
            this.storeStrictQueryList(strictQueryDto);
        }
    ];
    }
    //////////////////////////////////////////////////////////////////////
    changePage(pageList: any[]) {
        this.pageList = pageList;
    }
    showAgentDetail(agentNo: string): void {
        this.$router.push(`/agentInfo/${agentNo}`);
    }
    openPopUp(txt: string) {
        this.popUpTxt = txt;
        this.isVisiblePopUp = true;
    }
}
</script>
@@ -135,37 +136,37 @@
    border-radius: 10px;
    border: 1px solid $LIGHT_GREY;
    padding: 20px 33px;
    .pam-rec-agent-card__content {
      width: 270px;
      .pam-rec-agent-card__content-header {
        display: flex;
        .pam-rec-agent-card__avatar {
        .pam-rec-agent-card__content-header {
            display: flex;
            flex-direction: row;
            margin-right: 20px;
            .avatar{
                width: 120px;
                height: 120px;
                border-radius:  50%;
            .pam-rec-agent-card__avatar {
                display: flex;
                flex-direction: row;
                margin-right: 20px;
            }
            .pam-rec-agent-card__main-info {
                display: flex;
                flex-direction: column;
                justify-content: flex-end;
                .rec-role {
                    font-size: 16px;
                    color: $PRUDENTIAL_GREY;
                    font-weight: bold;
                    margin-top: 4px;
                }
                .rec-detail{
                    font-size: 20px;
                    color:$PRIMARY_RED;
                    font-weight: bold;
                    padding-top: 30px;
                    cursor: pointer;
                }
            }
        }
        .pam-rec-agent-card__main-info {
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            .rec-role {
                font-size: 16px;
                color: $PRUDENTIAL_GREY;
                font-weight: bold;
                margin-top: 4px;
            }
            .rec-detail{
                font-size: 20px;
                color:$PRIMARY_RED;
                font-weight: bold;
            }
        .pam-rec-agent-card__content-body {
            height: 200px;
        }
      }
    }
}
@@ -175,9 +176,73 @@
    font-weight:bold;
    margin-bottom: 7px;
}
.field__content{
    font-size: 18px;
}
.expertieses-container {
  display: flex;
  flex-wrap: wrap;
    display: flex;
    flex-wrap: wrap;
}
@include desktop{
    .pam-rec-agent__list{
        display: flex;
        flex-wrap: wrap;
        flex-direction:row;
        width: 100%;
    }
    .pam-paragraph{
        margin-top: 10px;
    }
    .pam-rec-agent-card {
        border-radius: 10px;
        border: 1px solid $LIGHT_GREY;
        padding: 15px 20px 15px 20px;
        width: 170px;
        margin: 0 10px 10px 10px;
        .pam-rec-agent-card__content {
            .pam-rec-agent-card__content-header {
                display: flex;
                .pam-rec-agent-card__avatar {
                    display: flex;
                    flex-direction: row;
                    margin-right: 20px;
                }
                .pam-rec-agent-card__main-info {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    .rec-desktop-name{
                        font-size: 12px;
                        font-weight: bold;
                    }
                    .rec-role {
                        font-size: 12px;
                        color:$PRUDENTIAL_GREY;
                    }
                    .rec-detail{
                        font-size: 12px;
                        color:$PRIMARY_RED;
                        font-weight: bold;
                        padding-top: 10px;
                    }
                }
            }
        }
    }
    .field__label {
        font-size: 12px;
        color: $PRUDENTIAL_GREY;
        font-weight:bold;
        margin-bottom: 7px;
    }
    .field__content{
        font-size: 12px;
    }
    .expertieses-container {
        display: flex;
        flex-wrap: wrap;
    }
}
</style>