From eda3623f1355258ce0298c8d1cdf0847e744e42a Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期六, 05 八月 2023 17:41:10 +0800
Subject: [PATCH] Fixed: [弱掃] p12.2 Property access or function call before check for null or undefined

---
 PAMapp/pages/agentInfo/edit/_agentNo.vue |   68 ++++++++++++++++++++++------------
 1 files changed, 44 insertions(+), 24 deletions(-)

diff --git a/PAMapp/pages/agentInfo/edit/_agentNo.vue b/PAMapp/pages/agentInfo/edit/_agentNo.vue
index 2edb844..e4cb6f6 100644
--- a/PAMapp/pages/agentInfo/edit/_agentNo.vue
+++ b/PAMapp/pages/agentInfo/edit/_agentNo.vue
@@ -125,10 +125,12 @@
         <UiField :span="12" icon="time" label="��敺�����">
           {{ agentInfo.latestLoginTime | formatDate }}
         </UiField>
-        <UiField :span="12" icon="calender" label="������">
+        <UiField :span="12" icon="calender" label="������" class="pam-editInfo-date-picker">
           <UiDatePicker
+              :isFutureDateDisabled = true
+              id="el-date-picker"
               class="mt-10"
-              :defaultValue ="editInfoValue.entryDate"
+              :defaultValue ="agentInfo.entryDate"
               @changeDate="onChangeDate($event)"
           ></UiDatePicker>
         </UiField>
@@ -274,6 +276,7 @@
 import { agentCommunicationStyleList } from '~/shared/const/agent-communication-style-list';
 import { taiwanCities } from '~/shared/const/taiwan-cities';
 
+
 const localStorageTest = namespace('localStorage');
 const loginStore = namespace('login.store');
 
@@ -309,7 +312,7 @@
     photoBase64       : '',
     phoneNumber       : '',
     email             : '',
-    entryDate         : ','
+    entryDate         : '',
   };
 
   communicationStyleList: string[] = agentCommunicationStyleList;
@@ -371,36 +374,47 @@
   mounted(){
     this.setAgentInfo(this.agentInfo);
 
+    const bodyEl = document.querySelector('body');
+
+    bodyEl?.addEventListener('scroll', function() {
+      const elDatePickerEl = document.querySelector('#el-date-picker');
+      const elDatePickerPanelEl = document.querySelector('.el-picker-panel');
+      if (elDatePickerPanelEl) {
+        elDatePickerPanelEl['style']['z-index'] = 5;
+        const elDatePickerOffsetTop = elDatePickerEl!.getBoundingClientRect().top;
+        elDatePickerPanelEl!['style'].top = elDatePickerOffsetTop + 30 + 'px';
+      }
+    });
+
   }
 
   private setAgentInfo(agentInfo: AgentInfo): void {
-    // const [agentYear, _yearUnit , agentMonth, _monthUnit] =  agentInfo.seniority.split(" ");
     this.defaultAgentInfoSetting = {
-      agentNo           : agentInfo.agentNo||'',
-      name              : agentInfo.name || '',
-      expertise         : agentInfo.expertise || [],
-      title             : agentInfo.title || '',
-      role              : agentInfo.role||'',
-      serveArea         : agentInfo?.serveArea.split('��'),
-      gender            : agentInfo.gender||'',
-      phoneNumber       : agentInfo.phoneNumber||'',
-      companyAddress    : agentInfo.companyAddress || '',
-      concept           : agentInfo.concept || '',
-      experiences       : agentInfo.experiences  || '',
-      awards            : agentInfo.awards || '',
-      communicationStyle: agentInfo.communicationStyle || '',
-      photoBase64       : '',
-      email             : agentInfo.email || '',
-      entryDate         : agentInfo.entryDate || '',
+      agentNo: agentInfo?.agentNo || '',
+      name: agentInfo?.name || '',
+      expertise: agentInfo?.expertise || [],
+      title: agentInfo?.title || '',
+      role: agentInfo?.role || '',
+      serveArea: agentInfo?.serveArea?.split('��') || [],
+      gender: agentInfo?.gender || '',
+      phoneNumber: agentInfo?.phoneNumber || '',
+      companyAddress: agentInfo?.companyAddress || '',
+      concept: agentInfo?.concept || '',
+      experiences: agentInfo?.experiences || '',
+      awards: agentInfo?.awards || '',
+      communicationStyle: agentInfo?.communicationStyle || '',
+      photoBase64: '',
+      email: agentInfo?.email || '',
+      entryDate: agentInfo?.entryDate || '',
     };
 
     this.editInfoValue = {
       ...this.defaultAgentInfoSetting,
-      expertise          : _.cloneDeep(this.defaultAgentInfoSetting.expertise),
-      // TODO: 蝣箄��垢甇斗���垢���隞�" , "���� [Tomas, 2021/12/28]
-      communicationStyle : this.defaultAgentInfoSetting.communicationStyle.split('��'),
-    }
+      expertise: _.cloneDeep(this.defaultAgentInfoSetting.expertise),
+      communicationStyle: this.defaultAgentInfoSetting.communicationStyle?.split('��') || [],
+    };
   }
+
 
 
   //////////////////////////////////////////////////////////////////////
@@ -545,4 +559,10 @@
   padding-right: 20px;
 }
 
+.pam-editInfo-date-picker{
+  .pam-date.el-input {
+      width: 100%;
+  }
+}
+
 </style>

--
Gitblit v1.8.0