保誠-保戶業務員媒合平台
Tomas
2021-12-15 4d573c67bec4e81781bf68b61cec5828118c52b0
PAMapp/pages/agentInfo/_agentNo.vue
@@ -3,14 +3,15 @@
      <el-row
        type="flex"
        justify="center">
        <UiAvatar :size="150" :fileName="agentInfo.image"></UiAvatar>
        <UiAvatar :size="150" :fileName="agentInfo.img"></UiAvatar>
      </el-row>
      <el-row
        type="flex"
        class="pt-10"
        justify="center"
        align="middle">
        align="middle" v-if="!hideReviews">
        <!-- TODO:隱藏滿意度 -->
          <i class="pam-icon icon--primary icon-star"></i>
          <h3 class="mdTxt">{{ agentInfo.avgScore }}</h3>
      </el-row>
@@ -50,14 +51,17 @@
        type="flex"
        class="pam-paragraph">
        <UiField :span="12" icon="time" label="最後上線時間">
          {{ agentInfo.lastestLoginTime | formatDate }}
          {{ agentInfo.latestLoginTime | formatDate }}
        </UiField>
        <UiField :span="12" icon="calender" label="服務資歷">
          {{ agentInfo.seniority }}
        </UiField>
      </el-row>
      <el-row
      <!-- TODO: 依據 2021/12/10 10:30 與 Charles 的討論,先隱藏匹配度欄位的顯示 [Tomas, 2021/12/10] -->
      <!-- REF:  https://reurl.cc/OkO6Q9-->
      <!-- <el-row
        type="flex"
        v-if="agentInfo.suitability"
        class="pam-paragraph">
@@ -83,7 +87,7 @@
            </el-progress>
          </div>
        </el-col>
      </el-row>
      </el-row> -->
      <el-row
        type="flex"
@@ -111,7 +115,7 @@
        class="pam-paragraph">
        <UiField icon="flag" label="專長領域">
          <div class="pam-field-experts">
            <div class="text--orange bold pr-10" v-for="(expert, index) in agentInfo.expertises" :key="index">
            <div class="text--orange bold pr-10" v-for="(expert, index) in agentInfo.expertise" :key="index">
              #{{ expert }}
            </div>
          </div>
@@ -144,7 +148,9 @@
        </UiField>
      </el-row>
      <AddAndReservedBtns
        v-if="currentRole!==role.ADMIN"
        :cusClass="'pam-paragraph'"
        :agentInfo="agentInfo"
        @openPopUp="alertAddSuccess"
@@ -163,7 +169,6 @@
    </PopUpFrame>
    <PopUpFrame
      drawerSize="40%"
      :isOpen.sync="isAlertFieldInfo"
      >
        <div class="text--center mdTxt fs-18">
@@ -182,17 +187,23 @@
<script lang="ts">
import { Context } from '@nuxt/types';
import { namespace } from 'nuxt-property-decorator';
import { Vue, Component } from 'vue-property-decorator';
import { getConsultantDetail } from '~/assets/ts/api/consultant';
import { Role } from '~/assets/ts//models/enum/Role';
import { hideReviews } from '~/assets/ts/const/hide-reviews';
const roleStorage = namespace('localStorage');
@Component
export default class AgentInfoComponent extends Vue {
  @roleStorage.Getter currentRole!:string|null;
  role = Role;
  agentInfo!: AgentInfo;
  isAlertAddSuccess = false;
  isAlertFieldInfo = false;
  fieldInfoTitle = '';
  fieldInfoDesc = '';
  hideReviews = hideReviews ;
  async asyncData(context: Context) {
    const agentNo = context.route.params.agentNo;
    let agentInfo = {};
@@ -212,7 +223,6 @@
  alertFieldInfo(field: string): void {
    this.isAlertFieldInfo = true;
    console.log(field);
    switch(field) {
      case 'suitability':
        this.fieldInfoTitle = '匹配度';
@@ -227,23 +237,22 @@
}
interface AgentInfo {
  name: string;
  agentNo:string;
  role: string;
  image: string;
  avgScore: number;
  title: string;
  phoneNumber: string;
  serveArea: string;
  companyAddress: string;
  lastestLoginTime: Date | null;
  seniority: string;
  suitability: number;
  evaluation: number;
  expertises: string[];
  concept: string;
  experiences: string[];
  awards: string;
  name            : string;
  agentNo         : string;
  role            : string;
  img             : string;
  avgScore        : number;
  title           : string;
  phoneNumber     : string;
  serveArea       : string;
  companyAddress  : string;
  seniority       : string;
  suitability     : number;
  evaluation      : number;
  expertise       : string[];
  concept         : string;
  experiences     : string[];
  awards          : string;
}
</script>