| | |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row |
| | | type="flex" |
| | | class="pam-paragraph"> |
| | | <UiField icon="flag" label="溝通風格"> |
| | | <el-checkbox |
| | | v-model="editInfoValue.communicationStyle" |
| | | :label="communicateStyle" |
| | | :key="index" |
| | | v-for="(communicateStyle, index) in communicationStyleList"> |
| | | </el-checkbox> |
| | | </UiField> |
| | | |
| | | </el-row> |
| | | <el-row |
| | |
| | | class="pam-paragraph"> |
| | | <UiField icon="flag" label="專長領域"> |
| | | <el-checkbox |
| | | v-model="editInfoValue.expert" |
| | | :label="item.name" |
| | | :key="item.id" |
| | | v-for="item in expertList"> |
| | | 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 { |
| | |
| | | |
| | | _agentInfoSetting!: AgentInfoSetting; |
| | | agentInfo!:AgentInfo |
| | | role = Role; |
| | | isAlertFieldInfo = false; |
| | | fieldInfoTitle = ''; |
| | | fieldInfoDesc = ''; |
| | | hideReviews = hideReviews ; |
| | | 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); |
| | | } |
| | | |
| | | ////////////////////////////////////////////////////////////////////// |
| | | |
| | | alertFieldInfo(field: string): void { |
| | | this.isAlertFieldInfo = true; |
| | | switch(field) { |
| | | case 'suitability': |
| | | this.fieldInfoTitle = '匹配度'; |
| | | this.fieldInfoDesc = '匹配度是透過嚴選配對或快速篩選後,將每一位保險顧問資料進行比對後排序推薦給您的媒合數值,您可以作為選擇適合顧問的參考值。'; |
| | | break; |
| | | case 'evaluation': |
| | | this.fieldInfoTitle = '諮詢度表現'; |
| | | this.fieldInfoDesc = '諮詢度表現是將每一位保險顧問近一個月回覆諮詢數量進行比對後排序推薦給您的媒合數值。'; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //////////////////////////////////////////////////////////// |
| | | |
| | | private setAgentInfo(agentInfo: AgentInfo): void { |
| | | const [agentYear, _yearUnit , agentMonth, _monthUnit] = agentInfo.seniority.split(" "); |
| | |
| | | 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(','); |
| | | |
| | | this.editInfoValue = { |
| | | ...this._agentInfoSetting, |
| | | expertise : _.cloneDeep(this._agentInfoSetting.expertise), |
| | | // TODO: 確認後端此欄位後端應改為以" , "隔開 [Tomas, 2021/12/28] |
| | | communicationStyle : this._agentInfoSetting.communicationStyle.split('、') |
| | | } |
| | | } |
| | | |
| | | get nameValid():boolean { |
| | | this.formValidStatus.name = this.editInfoValue.name ? true : false; |
| | | return this.formValidStatus.name; |
| | | ////////////////////////////////////////////////////////////////////// |
| | | |
| | | alertFieldInfo(field: string): void { |
| | | this.isAlertFieldInfo = true; |
| | | switch(field) { |
| | | case 'suitability': |
| | | this.fieldInfoTitle = '匹配度'; |
| | | this.fieldInfoDesc = '匹配度是透過嚴選配對或快速篩選後,將每一位保險顧問資料進行比對後排序推薦給您的媒合數值,您可以作為選擇適合顧問的參考值。'; |
| | | break; |
| | | case 'evaluation': |
| | | this.fieldInfoTitle = '諮詢度表現'; |
| | | this.fieldInfoDesc = '諮詢度表現是將每一位保險顧問近一個月回覆諮詢數量進行比對後排序推薦給您的媒合數值。'; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | 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; |
| | | 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 |
| | | } |
| | | |
| | |
| | | |
| | | 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 : '' |
| | | ...this.editInfoValue, |
| | | communicationStyle: this.editInfoValue.communicationStyle.join('、'), |
| | | photoBase64 : '', |
| | | } |
| | | |
| | | 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); |
| | | // } |
| | | |
| | | } |
| | | |