保誠-保戶業務員媒合平台
HelenHuang
2022-02-16 10c73966d79b72196a26b4b5e0ad15a299b82b1f
PAMapp/pages/recommendConsultant/result.vue
@@ -4,14 +4,30 @@
    <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-suitability"
                :class="{
                  'match--level1': info.suitability === 100,
                  'match--level2': 50 < info.suitability && info.suitability < 100,
                  'match--level3': info.suitability < 51
                }">
                </div>
                <div class="pam-rec-agent-card-suitability-text">
                  <div class="label">匹配度</div>
                  <div class="value">{{info.suitability}}%</div>
                </div>
                <div class="pam-rec-agent-card__content-header">
                    <div class="pam-rec-agent-card__avatar">
                        <UiAvatar :fileName="info.img" ></UiAvatar>
                        <UiAvatar
                          :agentNo="info.agentNo" >
                        </UiAvatar>
                    </div>
                    <div class="pam-rec-agent-card__main-info">
                        <div class="fz-20 pt-10 rec-desktop-name">{{ info.name }}</div>
                        <div class="text--middle  pt-10 rec-desktop-name">{{ info.name }}</div>
                        <div class="rec-role">{{ info.role }}</div>
                        <span class="rec-detail"  @click="showAgentDetail(info.agentNo)">詳細資料</span>
                        <span class="rec-detail fix-chrome-click--issue"  @click="showAgentDetail(info.agentNo)">詳細資料</span>
                    </div>
                </div>
                <div class="pam-rec-agent-card__content-body">
@@ -35,7 +51,7 @@
                            {{ info.seniority }}
                            </div>
                        </el-col>
                        <el-col :span="12">
                        <el-col :span="12" v-if="!hideReviews">
                            <div class="field__label">
                            客戶滿意度
                            </div>
@@ -60,7 +76,7 @@
    <UiPagination
        class="mb-30"
        :totalList="strictQueryList"
        :totalList="strictResultList"
        @changePage="changePage"
        :pageSize = 6
    ></UiPagination>
@@ -69,33 +85,62 @@
      >
        <div class="text--center mdTxt">
            <p class="mb-50">{{popUpTxt}}</p>
            <p class="text--primary cursor--pointer"
                @click="isVisiblePopUp = false">我知道了</p>
            <div class="text--center">
                <el-button
                    type="primary"
                    @click="isVisiblePopUp = false"
                >我知道了</el-button>
            </div>
        </div>
    </PopUpFrame>
</div>
</template>
<script lang="ts">
import {Vue,Component, State} from 'nuxt-property-decorator';
import { AgentOfStrictQuery } from '~/assets/ts/api/consultant';
import { AgentOfStrictQuery } from '~/shared/models/strict-query.model';
import { hideReviews } from '~/shared/const/hide-reviews';
import { Vue,Component, State, namespace, Action, Getter} from 'nuxt-property-decorator';
const localStorage = namespace('localStorage');
@Component
export default class Reslut extends Vue{
    @State('strictQueryList') strictQueryList!: AgentOfStrictQuery;
    @State('strictQueryList')
    strictQueryList!: AgentOfStrictQuery[];
    @Action
    storeStrictQueryList!: (data: any) => Promise<number>;
    @Getter('strictResultList')
    strictResultList!: AgentOfStrictQuery[];
    @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;
    }
}
@@ -107,8 +152,48 @@
    border-radius: 10px;
    border: 1px solid $LIGHT_GREY;
    padding: 20px 33px;
    overflow: hidden;
    .pam-rec-agent-card__content {
      position: relative;
        .pam-rec-agent-card-suitability{
          left: -125px;
          top: -108px;
          width: 150px;
          height: 150px;
          transform: rotate(45deg);
          position:absolute;
          &.match--level3 {
            background-color: #C3A787;
          }
          &.match--level2 {
            background-color: #D0D0CE;
          }
          &.match--level1 {
            background-color: #F2C75C;
          }
        }
        .pam-rec-agent-card-suitability-text{
          position: absolute;
          left: -25px;
          top: -10px;
          z-index: 5;
          line-height: 1.3;
          .label {
            font-size: 10px;
            color: #68737A;
            @include desktop {
              display: none;
            }
          }
          .value {
            font-size: 12px;
            color: #222222;
            @include desktop {
              padding-left: 8px;
            }
          }
        }
        .pam-rec-agent-card__content-header {
            display: flex;
            .pam-rec-agent-card__avatar {