From 1bbaf00e4949b56bfce7b3b816cffc5bdfbbe0a0 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期一, 25 四月 2022 14:24:55 +0800 Subject: [PATCH] Fixed#138093 顧問端-個人資訊修改 => 到職日期不可選未來日 --- PAMapp/pages/agentInfo/edit/_agentNo.vue | 95 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 72 insertions(+), 23 deletions(-) diff --git a/PAMapp/pages/agentInfo/edit/_agentNo.vue b/PAMapp/pages/agentInfo/edit/_agentNo.vue index ae47457..7dd07d0 100644 --- a/PAMapp/pages/agentInfo/edit/_agentNo.vue +++ b/PAMapp/pages/agentInfo/edit/_agentNo.vue @@ -1,5 +1,5 @@ <template> - <div class="edit-agent-info-page"> + <div class="edit-agent-info-page" v-if="!!agentInfo"> <el-row type="flex" @@ -68,6 +68,27 @@ </el-col> </el-row> + <el-row + type="flex" + class="pam-paragraph"> + <el-col :span="24" class="pam-field"> + <div class="pam-field__label pam-progress__label"> + <div> + <div class="pam-field__title mb-10"> + <i class="pam-icon icon-comment" + ></i>靽∠拳 + <span class="hint text--bold" v-show="!emailValid">靽∠拳�撘�炊</span> + <span class="hint text--bold" v-show="editInfoValue.email.length === 0">靽∠拳�敹‵</span> + </div> + </div> + <el-input + v-model="editInfoValue.email" + :class="{'is-invalid': !emailValid}" + ></el-input> + </div> + </el-col> + </el-row> + <el-row type="flex" @@ -104,18 +125,14 @@ <UiField :span="12" icon="time" label="��敺�����"> {{ agentInfo.latestLoginTime | formatDate }} </UiField> - <UiField :span="12" icon="calender" label="����風"> - <div class="mt-10" style="display: flex; align-items: center"> - <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 - 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>��� - </div> + <UiField :span="12" icon="calender" label="������" class="pam-editInfo-date-picker"> + <UiDatePicker + :isFutureDateDisabled = true + id="el-date-picker" + class="mt-10" + :defaultValue ="agentInfo.entryDate" + @changeDate="onChangeDate($event)" + ></UiDatePicker> </UiField> </el-row> @@ -259,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'); @@ -287,14 +305,14 @@ title : '', serveArea : [] as string[], companyAddress : '', - seniorityYear : 1, - seniorityMonth : 0, concept : '', experiences : '', awards : '', communicationStyle: [] as string[], photoBase64 : '', - phoneNumber : '' + phoneNumber : '', + email : '', + entryDate : '', }; communicationStyleList: string[] = agentCommunicationStyleList; @@ -355,10 +373,23 @@ 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(" "); + // const [agentYear, _yearUnit , agentMonth, _monthUnit] = agentInfo.seniority.split(" "); this.defaultAgentInfoSetting = { agentNo : agentInfo.agentNo||'', name : agentInfo.name || '', @@ -369,13 +400,13 @@ 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 : '' + photoBase64 : '', + email : agentInfo.email || '', + entryDate : agentInfo.entryDate || '', }; this.editInfoValue = { @@ -386,6 +417,7 @@ } } + ////////////////////////////////////////////////////////////////////// editAgentInfoSetting(): void { @@ -393,11 +425,16 @@ ...this.editInfoValue, communicationStyle: this.editInfoValue.communicationStyle.join('��'), serveArea: this.editInfoValue.serveArea.join('��'), - } + }; + accountSettingService.editAgentInfoSetting(editSettingInfo).then((res: AgentInfoSetting) => { this.isInfoUpdate = true; this.updateConsultantDetail(editSettingInfo.agentNo); }); + } + + onChangeDate(date: any): void { + this.editInfoValue.entryDate = date; } backToInfo() { @@ -437,6 +474,11 @@ : true; } + get emailValid() { + const rule = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; + return this.editInfoValue.email ? rule.test(this.editInfoValue.email) : true; + } + get isSubmitBtnDisabled(): boolean { const isFormValid = this.editInfoValue.name && this.editInfoValue.title @@ -445,9 +487,10 @@ && this.editInfoValue.concept && this.editInfoValue.experiences && this.editInfoValue.phoneNumber.length - && this.editInfoValue.seniorityYear + && this.editInfoValue.entryDate && this.editInfoValue.expertise.length - && this.editInfoValue.communicationStyle.length; + && this.editInfoValue.communicationStyle.length + && this.editInfoValue.email.length; return !isFormValid } } @@ -517,4 +560,10 @@ padding-right: 20px; } +.pam-editInfo-date-picker{ + .pam-date.el-input { + width: 100%; + } +} + </style> -- Gitblit v1.8.0