| | |
| | | <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> |
| | | |
| | |
| | | </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"> |
| | |
| | | |
| | | 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 { |
| | |
| | | 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 : '', |
| | |
| | | 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; |
| | | |
| | | ////////////////////////////////////////////////////////////////////// |
| | | |
| | |
| | | } |
| | | |
| | | 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('ã') |
| | | } |
| | | } |
| | | |
| | | ////////////////////////////////////////////////////////////////////// |
| | |
| | | |
| | | //////////////////////////////////////////////////////////// |
| | | |
| | | 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; |
| | | } |
| | |
| | | font-size: 12px; |
| | | } |
| | | .pam-field__title { |
| | | font-size: 16px; |
| | | font-size : 16px; |
| | | font-weight: bold; |
| | | display: flex; |
| | | display : flex; |
| | | align-items: center; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .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{ |
| | |
| | | } |
| | | |
| | | .seniority-input{ |
| | | width:50px; |
| | | width : 50px; |
| | | margin-right: 5px; |
| | | } |
| | | |
| | | </style> |
| | | </style> |