From be45e7dffcf53381b8bd8a562eb5fb8474470763 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期二, 28 十二月 2021 17:01:06 +0800
Subject: [PATCH] refactor: agentInfo/edit

---
 PAMapp/pages/agentInfo/edit/_agentNo.vue              |  301 +++++++++++++++----------------------------------
 PAMapp/shared/const/agent-communication-style-list.ts |    1 
 PAMapp/shared/const/agent-expert-list.ts              |    1 
 3 files changed, 96 insertions(+), 207 deletions(-)

diff --git a/PAMapp/pages/agentInfo/edit/_agentNo.vue b/PAMapp/pages/agentInfo/edit/_agentNo.vue
index 61aa91c..e5c3bbf 100644
--- a/PAMapp/pages/agentInfo/edit/_agentNo.vue
+++ b/PAMapp/pages/agentInfo/edit/_agentNo.vue
@@ -56,13 +56,13 @@
         <UiField :span="12" icon="calender" label="����風" style="display:flex">
           <el-input  v-model="editInfoValue.seniorityYear" class="seniority-input"></el-input>撟�
           <el-select  style="width:60px" v-model="editInfoValue.seniorityMonth" class="seniority-input">
-            <el-option 
+            <el-option
               v-for="(month) in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]"
               :value="month"
               :key="month">
               {{ month }}
-            </el-option>  
-          </el-select>��� 
+            </el-option>
+          </el-select>���
         </UiField>
       </el-row>
 
@@ -86,29 +86,33 @@
           </div>
         </el-col>
       </el-row>
+
       <el-row
         type="flex"
         class="pam-paragraph">
-        <el-checkbox 
+        <UiField icon="flag" label="皞�◢�">
+        <el-checkbox
             v-model="editInfoValue.communicationStyle"
-            :label="communicateStyle" 
-            :key="index" 
+            :label="communicateStyle"
+            :key="index"
             v-for="(communicateStyle, index) in communicationStyleList">
           </el-checkbox>
-        
+        </UiField>
+
       </el-row>
       <el-row
         type="flex"
         class="pam-paragraph">
         <UiField icon="flag" label="撠����">
-          <el-checkbox 
-            v-model="editInfoValue.expert"
-            :label="item.name" 
-            :key="item.id" 
-            v-for="item in expertList">
+          <el-checkbox
+            v-model="editInfoValue.expertise"
+            :label="expert"
+            :key="index"
+            v-for="(expert, index) in expertList">
           </el-checkbox>
         </UiField>
       </el-row>
+
       <el-row
         type="flex"
         class="pam-paragraph">
@@ -168,12 +172,12 @@
 
 import { AgentInfo } from '~/shared/models/agent-info.model';
 import { hideReviews } from '~/shared/const/hide-reviews';
-import { Role } from '~/shared/models/enum/Role';
 import { AgentInfoSetting } from '~/shared/models/account.model';
+import { Role } from '~/shared/models/enum/Role';
+import { agentExpertList } from '~/shared/const/agent-expert-list';
+import { agentCommunicationStyleList } from '~/shared/const/agent-communication-style-list';
 
 const localStorage = namespace('localStorage');
-
-const testImgBase64 =""
 
 @Component
 export default class AgentInfoComponent extends Vue {
@@ -182,17 +186,16 @@
   currentRole!:string | null;
 
   _agentInfoSetting!: AgentInfoSetting;
-  agentInfo!:AgentInfo
-  role = Role;
-  isAlertFieldInfo         = false;
-  fieldInfoTitle           = '';
-  fieldInfoDesc            = '';
-  hideReviews              = hideReviews ;
+  agentInfo!      : AgentInfo
+  fieldInfoDesc   : string = '';
+  fieldInfoTitle  : string = '';
+  hideReviews     : boolean = hideReviews ;
+  isAlertFieldInfo: boolean = false;
 
   editInfoValue = {
     agentNo           : '',
     name              : '',
-    expert            : [] as string[],
+    expertise            : [] as string[],
     title             : '',
     serveArea         : '',
     companyAddress    : '',
@@ -202,43 +205,11 @@
     experiences        : '',
     awards            : '',
     communicationStyle: [] as string[],
-  }
-
-  formValidStatus = {
-    name          : true,
-    title         : true,
-    companyAddress: true,
-    serveArea     : true,
-    seniorityYear : true,
-    seniorityMonth: true,
-    expert        : true,
-    concept       : true,
-    experience    : true,
-    awards        : true,
-    communicationStyle:true
   };
 
-  expertList=[
-    {
-      name:'�摨瑁����'
-      },
-    {
-      name:'摮戊��'
-      },
-    {
-      name:'鞈閬��'
-      },
-    {
-      name:'璅暑��隡�'
-      },
-    {
-      name:'靽�瑼�/閬��'
-    },
-    {
-      name:'����'}
-    ];
-
-  communicationStyleList: string[] = ['雓寞��祕', '��翰銝餃��', '���', '�隢◢頞�'];
+  communicationStyleList: string[] = agentCommunicationStyleList;
+  expertList: string[] = agentExpertList;
+  role           = Role;
 
   //////////////////////////////////////////////////////////////////////
 
@@ -250,7 +221,37 @@
   }
 
   mounted(){
-    this.setAgentInfo(this.agentInfo);     
+    this.setAgentInfo(this.agentInfo);
+  }
+
+  private setAgentInfo(agentInfo: AgentInfo): void {
+    const [agentYear, _yearUnit , agentMonth, _monthUnit] =  agentInfo.seniority.split(" ");
+
+    this._agentInfoSetting = {
+      agentNo           : agentInfo.agentNo||'',
+      name              : agentInfo.name || '',
+      expertise         : agentInfo.expertise || [],
+      title             : agentInfo.title || '',
+      role              : agentInfo.role||'',
+      serveArea         : agentInfo.serveArea || '',
+      gender            : agentInfo.gender||'',
+      phoneNumber       : agentInfo.phoneNumber||'',
+      companyAddress    : agentInfo.companyAddress || '',
+      seniorityYear     : agentYear? +agentYear     : 0,
+      seniorityMonth    : agentMonth ? +agentMonth  : 0,
+      concept           : agentInfo.concept || '',
+      experiences       : agentInfo.experiences  || '',
+      awards            : agentInfo.awards || '',
+      communicationStyle: agentInfo.communicationStyle || '',
+      photoBase64       : '',
+    };
+
+    this.editInfoValue = {
+      ...this._agentInfoSetting,
+      expertise          : _.cloneDeep(this._agentInfoSetting.expertise),
+      // TODO: 蝣箄��垢甇斗���垢���隞�" , "���� [Tomas, 2021/12/28]
+      communicationStyle : this._agentInfoSetting.communicationStyle.split('��')
+    }
   }
 
   //////////////////////////////////////////////////////////////////////
@@ -271,158 +272,44 @@
 
   ////////////////////////////////////////////////////////////
 
-  private setAgentInfo(agentInfo: AgentInfo): void {
-      const [agentYear, _yearUnit , agentMonth, _monthUnit] =  agentInfo.seniority.split(" ");
-
-      this._agentInfoSetting = {
-                  agentNo           : agentInfo.agentNo||'',
-                  name              : agentInfo.name || '',
-                  expertise         : agentInfo.expertise || [],
-                  title             : agentInfo.title || '',
-                  role              : agentInfo.role||'',
-                  serveArea         : agentInfo.serveArea || '',
-                  gender            : agentInfo.gender||'',
-                  phoneNumber       : agentInfo.phoneNumber||'',
-                  companyAddress    : agentInfo.companyAddress || '',
-                  seniorityYear     : agentYear? +agentYear : 0,
-                  seniorityMonth    : agentMonth ? +agentMonth: 0,
-                  concept           : agentInfo.concept || '',
-                  experiences        : agentInfo.experiences  || '',
-                  awards             : agentInfo.awards || '',
-                  communicationStyle: agentInfo.communicationStyle || '',
-                  photoBase64       : '',
-              };
-                this.editInfoValue.agentNo
-                this.editInfoValue.name           = this._agentInfoSetting.name!;
-                this.editInfoValue.title          = this._agentInfoSetting.title!;
-                this.editInfoValue.serveArea      = this._agentInfoSetting.serveArea
-                this.editInfoValue.companyAddress = this._agentInfoSetting.companyAddress;
-                this.editInfoValue.seniorityYear = this._agentInfoSetting.seniorityYear;
-                this.editInfoValue.seniorityMonth = this._agentInfoSetting.seniorityMonth;
-                this.editInfoValue.expert        = _.cloneDeep(this._agentInfoSetting.expertise);
-                this.editInfoValue.concept        = this._agentInfoSetting.concept;
-                this.editInfoValue.experiences     = this._agentInfoSetting.experiences;
-                this.editInfoValue.awards         = this._agentInfoSetting.awards;
-                this.editInfoValue.communicationStyle = this._agentInfoSetting.communicationStyle.split(',');
-
-  }
-
-  get nameValid():boolean {
-      this.formValidStatus.name = this.editInfoValue.name ? true : false;
-      return this.formValidStatus.name;
-  }
-
-  get titleValid():boolean{
-      this.formValidStatus.title = this.editInfoValue.title ? true : false ;
-      return this.formValidStatus.title;
-  }
-
-  get companyAddressValid() : boolean{
-      this.formValidStatus.companyAddress = this.editInfoValue.companyAddress ? true : false;
-      return this.formValidStatus.companyAddress;
-  }
-
-  get serveAreaValid():boolean{
-      this.formValidStatus.serveArea = this.editInfoValue.serveArea ? true : false;
-      return this.formValidStatus.serveArea;
-  }
-
-  get conceptValid():boolean{
-      this.formValidStatus.concept = this.editInfoValue.concept ? true : false;
-      return this.formValidStatus.concept;
-  }
-
-  get experienceValid():boolean{
-      this.formValidStatus.experience = this.editInfoValue.experiences ? true : false;
-      return this.formValidStatus.experience;
-  }
-
-  get awardsValid():boolean{
-      this.formValidStatus.awards = this.editInfoValue.awards ? true : false ;
-      return this.formValidStatus.awards;
-  }
-
-  get seniorityYearValid():boolean{
-    this.formValidStatus.seniorityYear = this.editInfoValue.seniorityYear ? true  : false;
-    return this.formValidStatus.seniorityYear;
-  }
-
-  get seniorityMonthValid():boolean{
-    this.formValidStatus.seniorityMonth = this.editInfoValue.seniorityMonth ? true : false;
-    return this.formValidStatus.seniorityYear;
-  }
-
-  get communicationStyleValid():boolean{
-    this.formValidStatus.communicationStyle = this.editInfoValue.communicationStyle ? true : false;
-    return this.formValidStatus.seniorityMonth;
-  }
-
-  get expertValid():boolean{
-    this.formValidStatus.expert = this.editInfoValue.expert ? true : false;
-    return this.formValidStatus.expert;
-  }
-
   get isSubmitBtnDisabled(): boolean {
-            const isFormValid =  this.formValidStatus.name 
-                              && this.formValidStatus.title
-                              && this.formValidStatus.companyAddress
-                              && this.formValidStatus.serveArea
-                              && this.formValidStatus.concept
-                              && this.formValidStatus.experience
-                              && this.formValidStatus.awards
-                              && this.formValidStatus.seniorityYear
-                              && this.formValidStatus.seniorityMonth
-                              && this.formValidStatus.expert
-                              && this.formValidStatus.communicationStyle;
-            return !isFormValid
-        }
-  
-  
-  
-  editAgentInfoSetting(): void {
-            const editSettingInfo: any = {
-                agentNo           :this.agentInfo.agentNo,
-                name              : this.editInfoValue.name,    
-                expertise         : this.editInfoValue.expert,
-                title             : this.editInfoValue.title,
-                role              : this.agentInfo.role,
-                serveArea         : this.editInfoValue.serveArea,
-                gender            : this.agentInfo.gender,
-                phoneNumber       : this.agentInfo.phoneNumber,
-                companyAddress    : this.editInfoValue.companyAddress,
-                seniorityYear     : this.editInfoValue.seniorityYear,
-                seniorityMonth    : this.editInfoValue.seniorityMonth,
-                concept           : this.editInfoValue.concept,
-                experiences        : this.editInfoValue.experiences,
-                awards             : this.editInfoValue.awards,
-                communicationStyle: this.editInfoValue.communicationStyle.join(','),
-                photoBase64       : ''
-            }
+      const isFormValid =  this.editInfoValue.name
+                        && this.editInfoValue.title
+                        && this.editInfoValue.companyAddress
+                        && this.editInfoValue.serveArea
+                        && this.editInfoValue.concept
+                        && this.editInfoValue.experiences
+                        && this.editInfoValue.awards
+                        && this.editInfoValue.seniorityYear
+                        && this.editInfoValue.seniorityMonth
+                        && this.editInfoValue.expertise
+                        && this.editInfoValue.communicationStyle;
+      return !isFormValid
+  }
 
-            accountSettingService.editAgentInfoSetting(editSettingInfo).then((res: AgentInfoSetting) => {
-              console.log(editSettingInfo)
-            });
-        }
-  // handleRemove(file) {
-  //       console.log(file);
-  //     }
-  //     handlePictureCardPreview(file) {
-  //       this.photoBase64 = file.url;
-  //       this.dialogVisible = true;
-  //     }
-  //     handleDownload(file) {
-  //       console.log(file);
-  //     }
-    
+
+
+  editAgentInfoSetting(): void {
+    const editSettingInfo: any = {
+      ...this.editInfoValue,
+      communicationStyle: this.editInfoValue.communicationStyle.join('��'),
+      photoBase64       : '',
+    }
+
+    accountSettingService.editAgentInfoSetting(editSettingInfo).then((res: AgentInfoSetting) => {
+      console.log(editSettingInfo)
+    });
+  }
+
 }
 
 </script>
 
 <style lang="scss">
 .pam-icon {
-  font-size: 15px;
+  font-size    : 15px;
   padding-right: 8px;
-  color: $PRUDENTIAL_GREY;
+  color        : $PRUDENTIAL_GREY;
   &.icon--primary {
     color: $PRIMARY_RED;
   }
@@ -437,9 +324,9 @@
       font-size: 12px;
     }
     .pam-field__title {
-      font-size: 16px;
+      font-size  : 16px;
       font-weight: bold;
-      display: flex;
+      display    : flex;
       align-items: center;
     }
   }
@@ -458,13 +345,13 @@
 }
 
 .pam-field-experts {
-  display: flex;
+  display  : flex;
   flex-wrap: wrap;
 }
 
 .pam-progress__label {
   justify-content: space-between;
-  flex-wrap: wrap;
+  flex-wrap  : wrap;
   line-height: 24px;
 }
 .account-confirm{
@@ -473,8 +360,8 @@
 }
 
 .seniority-input{
-  width:50px;
+  width       : 50px;
   margin-right: 5px;
 }
 
-</style>
\ No newline at end of file
+</style>
diff --git a/PAMapp/shared/const/agent-communication-style-list.ts b/PAMapp/shared/const/agent-communication-style-list.ts
new file mode 100644
index 0000000..75c41a7
--- /dev/null
+++ b/PAMapp/shared/const/agent-communication-style-list.ts
@@ -0,0 +1 @@
+export const agentCommunicationStyleList = ['雓寞��祕', '��翰銝餃��', '���', '�隢◢頞�'];
diff --git a/PAMapp/shared/const/agent-expert-list.ts b/PAMapp/shared/const/agent-expert-list.ts
new file mode 100644
index 0000000..2926d45
--- /dev/null
+++ b/PAMapp/shared/const/agent-expert-list.ts
@@ -0,0 +1 @@
+export const agentExpertList = ['�摨瑁����', '摮戊��', '鞈閬��', '璅暑��隡�', '靽�瑼�/閬��', '����'];

--
Gitblit v1.8.0