<template>
|
<div>
|
<div class="mdTxt pb-10">嚴選顧問推薦</div>
|
<ul class="pam-rec-agent__list">
|
<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">
|
<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__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 class="pam-rec-agent-card__content-footer">
|
<AddAndReservedBtns
|
:cusClass="'pam-rec-btns'"
|
:agentInfo="info"
|
@openPopUp="openPopUp"
|
></AddAndReservedBtns>
|
</div>
|
</div>
|
</li>
|
</ul>
|
|
<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 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[];
|
|
@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>
|
|
<style lang="scss" scoped>
|
.pam-rec-agent-card {
|
margin-bottom: 10px;
|
border-radius: 10px;
|
border: 1px solid $LIGHT_GREY;
|
padding: 20px 33px;
|
|
.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: 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__content-body {
|
height: 200px;
|
}
|
}
|
}
|
|
.field__label {
|
font-size: 16px;
|
color: $PRUDENTIAL_GREY;
|
font-weight:bold;
|
margin-bottom: 7px;
|
}
|
.field__content{
|
font-size: 18px;
|
}
|
.expertieses-container {
|
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>
|