From 472fd20c108714b28be49d4fedee5bbabe1b2358 Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期五, 04 三月 2022 17:40:47 +0800
Subject: [PATCH] Merge branch 'Phase3' into pollex-dev

---
 PAMapp/pages/agentInfo/_agentNo.vue |  118 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 78 insertions(+), 40 deletions(-)

diff --git a/PAMapp/pages/agentInfo/_agentNo.vue b/PAMapp/pages/agentInfo/_agentNo.vue
index fb9be0a..05d4d62 100644
--- a/PAMapp/pages/agentInfo/_agentNo.vue
+++ b/PAMapp/pages/agentInfo/_agentNo.vue
@@ -3,7 +3,10 @@
       <el-row
         type="flex"
         justify="center">
-        <UiAvatar :size="150" :fileName="agentInfo.img"></UiAvatar>
+        <UiAvatar
+          :size="150"
+          :agentNo="agentInfo.agentNo">
+        </UiAvatar>
       </el-row>
 
       <el-row
@@ -24,6 +27,24 @@
       </el-row>
 
       <el-row
+        v-if="currentRole === role.ADMIN"
+        type="flex"
+        class="pam-paragraph">
+        <UiField :span="12" icon="phone" label="����Ⅳ">
+          {{ agentInfo.phoneNumber }}
+        </UiField>
+      </el-row>
+
+      <el-row
+        v-if="currentRole === role.ADMIN"
+        type="flex"
+        class="pam-paragraph">
+        <UiField :span="12" icon="comment" label="靽∠拳">
+          {{ agentInfo.email }}
+        </UiField>
+      </el-row>
+
+      <el-row
         type="flex"
         class="pam-paragraph">
         <UiField :span="12" icon="agent" label="����">
@@ -35,7 +56,7 @@
         type="flex"
         class="pam-paragraph">
         <UiField icon="company" label="�����">
-          {{ agentInfo.serveArea }}
+          {{ agentInfo.serveArea | toServeArea }}
         </UiField>
       </el-row>
 
@@ -89,7 +110,7 @@
         </el-col>
       </el-row> -->
 
-      <el-row
+      <!-- <el-row
         type="flex"
         class="pam-paragraph">
         <el-col :span="24" class="pam-field">
@@ -108,14 +129,23 @@
             <el-progress :show-text="false" :stroke-width="15" :percentage="agentInfo.evaluation * 2"></el-progress>
           </div>
         </el-col>
-      </el-row>
+      </el-row> -->
+
+      <div class="consultant-edit-btn">
+        <UiField icon="flag" label="皞�◢�">
+          <div class="text--orange bold pr-10 "
+            v-for="(communicationStyle, index) in displayCommunicationStyleList"
+            :key="index">
+              #{{ communicationStyle }}</div>
+        </UiField>
+    </div>
 
       <el-row
         type="flex"
         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>
@@ -125,7 +155,7 @@
       <el-row
         type="flex"
         class="pam-paragraph">
-        <UiField icon="comment" label="�犖��艙">
+        <UiField icon="comment" label="�犖��艙" class="agent-info-textarea">
           {{ agentInfo.concept }}
         </UiField>
       </el-row>
@@ -133,9 +163,9 @@
       <el-row
         type="flex"
         class="pam-paragraph">
-        <UiField icon="school" label="�犖��">
-          <span v-for="(experience, index) in agentInfo.experiences" :key="index">
-            {{ experience }}<span v-if="index !== agentInfo.experiences.length - 1">, </span>
+        <UiField icon="school" label="�犖��" class="agent-info-textarea">
+          <span>
+            {{ agentInfo.experiences }}
           </span>
         </UiField>
       </el-row>
@@ -143,7 +173,7 @@
       <el-row
         type="flex"
         class="pam-paragraph">
-        <UiField icon="trophy" label="敺��風">
+        <UiField icon="trophy" label="敺��風" class="agent-info-textarea">
           {{ agentInfo.awards }}
         </UiField>
       </el-row>
@@ -182,6 +212,9 @@
             </div>
         </div>
     </PopUpFrame>
+    <div class="consultant-edit-btn" v-if="currentRole === role.ADMIN">
+      <el-button type="primary" @click.native="$router.push(`/agentInfo/edit/${agentInfo.agentNo}`)">蝺刻摩撣單鞈��</el-button>
+    </div>
     </div>
 </template>
 
@@ -189,35 +222,39 @@
 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';
+
+import myConsultantService from '~/shared/services/my-consultant.service';
+import { AgentInfo } from '~/shared/models/agent-info.model';
+import { hideReviews } from '~/shared/const/hide-reviews';
+import { Role } from '~/shared/models/enum/Role';
 
 const roleStorage = namespace('localStorage');
+
 @Component
 export default class AgentInfoComponent extends Vue {
+
   @roleStorage.Getter currentRole!:string|null;
-  role = Role;
+
   agentInfo!: AgentInfo;
+  role = Role;
   isAlertAddSuccess = false;
   isAlertFieldInfo = false;
   fieldInfoTitle = '';
   fieldInfoDesc = '';
   hideReviews = hideReviews ;
+
+  //////////////////////////////////////////////////////////////////////
+
   async asyncData(context: Context) {
     const agentNo = context.route.params.agentNo;
-    let agentInfo = {};
-    await getConsultantDetail(agentNo).then((res) => agentInfo = res.data )
     return {
-      agentInfo
+      agentInfo: await myConsultantService.getConsultantDetail(agentNo).then((res) => res)
     }
   }
 
-  get agentName(): string {
-    return `${this.agentInfo.name}(${this.agentInfo.role})`;
-  }
+  //////////////////////////////////////////////////////////////////////
 
-  alertAddSuccess() {
+  alertAddSuccess(): void {
       this.isAlertAddSuccess = true;
   }
 
@@ -234,27 +271,17 @@
         break;
     }
   }
+
+  get agentName(): string {
+    return `${this.agentInfo.name}(${this.agentInfo.role})`;
+  }
+
+  get displayCommunicationStyleList(): string[] {
+    return this.agentInfo.communicationStyle.split('��').filter((item) => item);
+  }
+
 }
 
-interface AgentInfo {
-  name            : string;
-  agentNo         : string;
-  role            : string;
-  img             : 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;
-}
 </script>
 
 <style lang="scss">
@@ -306,5 +333,16 @@
   flex-wrap: wrap;
   line-height: 24px;
 }
+.consultant-edit-btn{
+  display: flex;
+  justify-content: center;
+}
 
+.pam-field{
+  display: flex;
+}
+.agent-info-textarea{
+  word-break: break-all;
+  word-wrap: break-word;
+}
 </style>

--
Gitblit v1.9.3