From 6bbdd6be7af431d53aab521cfc257d46e1ed2f48 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期五, 21 一月 2022 22:41:03 +0800 Subject: [PATCH] Fixed#134590 修正 [ 顧問管理流程 ] 約訪中 : 新增約訪紀錄時,輸入的文字過小 --- PAMapp/pages/agentInfo/edit/_agentNo.vue | 181 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 143 insertions(+), 38 deletions(-) diff --git a/PAMapp/pages/agentInfo/edit/_agentNo.vue b/PAMapp/pages/agentInfo/edit/_agentNo.vue index 73029bf..93b4dce 100644 --- a/PAMapp/pages/agentInfo/edit/_agentNo.vue +++ b/PAMapp/pages/agentInfo/edit/_agentNo.vue @@ -1,12 +1,11 @@ <template> - <div> + <div class="edit-agent-info-page"> <el-row type="flex" justify="center"> - <UiAvatar - :size="150" - :agentNo="agentInfo.agentNo"> - </UiAvatar> + <EditConsultantAvatar + :agentNo="agentInfo.agentNo" + :photoBase64.sync="editInfoValue.photoBase64"/> </el-row> <el-row type="flex" @@ -20,10 +19,33 @@ <el-row type="flex" - class="pt-10" + class="pam-paragraph" justify="center"> <el-input class="mdTxt" v-model="editInfoValue.name"></el-input> </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-phone" + ></i>����Ⅳ + <span class="hint text--bold" v-show="!phoneValid">����Ⅳ�撘�炊</span> + <span class="hint text--bold" v-show="editInfoValue.phoneNumber.length === 0">����Ⅳ�敹‵</span> + </div> + </div> + <el-input + v-model="editInfoValue.phoneNumber" + :class="{'is-invalid': !phoneValid}" + maxlength="10" + minlength="10"></el-input> + </div> + </el-col> + </el-row> + <el-row type="flex" @@ -92,26 +114,42 @@ <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-col :span="24" class="pam-field"> + <div class="pam-field__label pam-progress__label"> + <div> + <div class="pam-field__title"> + <i class="pam-icon icon-flag" + ></i>皞�◢� <span class="hint text--bold">(�銴,��憭�2���)</span> + </div> + </div> + <MultiSelectBtn class="mt-30" + :mutiSelect.sync="editInfoValue.communicationStyle" + :options="agentCommunicationStyleList" + :maxLength="2" + > + </MultiSelectBtn> + </div> + </el-col> </el-row> + <el-row type="flex" class="pam-paragraph"> - <UiField icon="flag" label="撠����"> - <el-checkbox - v-model="editInfoValue.expertise" - :label="expert" - :key="index" - v-for="(expert, index) in expertList"> - </el-checkbox> - </UiField> + <el-col :span="24" class="pam-field"> + <div class="pam-field__label pam-progress__label"> + <div> + <div class="pam-field__title"> + <i class="pam-icon icon-flag" + ></i>撠���� <span class="hint text--bold">(�銴)</span> + </div> + </div> + <MultiSelectBtn class="mt-30" + :mutiSelect.sync="editInfoValue.expertise" + :options="agentExpertList" + > + </MultiSelectBtn> + </div> + </el-col> </el-row> <el-row @@ -174,7 +212,7 @@ <script lang="ts"> import { Context } from '@nuxt/types'; import { namespace } from 'nuxt-property-decorator'; -import { Vue, Component } from 'vue-property-decorator'; +import { Vue, Component, Prop } from 'vue-property-decorator'; import * as _ from "lodash"; import myConsultantService from '~/shared/services/my-consultant.service'; @@ -184,15 +222,14 @@ import { hideReviews } from '~/shared/const/hide-reviews'; 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 localStorageTest = namespace('localStorage'); @Component export default class AgentInfoComponent extends Vue { - @localStorage.State('current_role') + @localStorageTest.State('current_role') currentRole!:string | null; _agentInfoSetting!: AgentInfoSetting; @@ -217,11 +254,55 @@ awards : '', communicationStyle: [] as string[], photoBase64 : '', + phoneNumber : '' }; - + communicationStyleList: string[] = agentCommunicationStyleList; - expertList: string[] = agentExpertList; role = Role; + + agentExpertList = [ + { + title:'�摨瑁����', + label:'�摨瑁����' + }, + { + title:'摮戊��', + label:'摮戊��' + }, + { + title:'鞈閬��', + label:'鞈閬��' + }, + { + title:'璅暑��隡�', + label:'璅暑��隡�' + }, + { + title:'靽�瑼�/閬��', + label:'靽�瑼�/閬��' + }, + { + title:'����', + label:'����' + }]; + + agentCommunicationStyleList = [ + { + title:'雓寞��祕', + label:'雓寞��祕' + }, + { + title:'��翰銝餃��', + label:'��翰銝餃��' + }, + { + title:'���', + label:'���' + }, + { + title:'�隢◢頞�', + label:'�隢◢頞�' + }]; ////////////////////////////////////////////////////////////////////// @@ -235,8 +316,7 @@ mounted(){ this.setAgentInfo(this.agentInfo); } - - ///////////////////////////////////////////////////////////////////////////// + private setAgentInfo(agentInfo: AgentInfo): void { const [agentYear, _yearUnit , agentMonth, _monthUnit] = agentInfo.seniority.split(" "); this._agentInfoSetting = { @@ -267,21 +347,28 @@ } ////////////////////////////////////////////////////////////////////// + editAgentInfoSetting(): void { const editSettingInfo: any = { ...this.editInfoValue, communicationStyle: this.editInfoValue.communicationStyle.join('��'), } accountSettingService.editAgentInfoSetting(editSettingInfo).then((res: AgentInfoSetting) => { - console.log(editSettingInfo) + this.isInfoUpdate = true; }); - this.isInfoUpdate = true; } backToInfo() { this.isInfoUpdate = false this.$router.push(`/agentInfo/${this.agentInfo.agentNo}`); - } + } + + selectCommunicationStyles(): void { + if (this.editInfoValue.communicationStyle.length > 2) { + this.editInfoValue.communicationStyle.shift(); + } + } + alertFieldInfo(field: string): void { this.isAlertFieldInfo = true; switch(field) { @@ -296,6 +383,13 @@ } } //////////////////////////////////////////////////////////// + get phoneValid(): boolean { + const rule = /^09[0-9]{8}$/; + return this.editInfoValue.phoneNumber + ? rule.test(this.editInfoValue.phoneNumber) && _.isEqual(this.editInfoValue.phoneNumber.length,10) + : true; + } + get isSubmitBtnDisabled(): boolean { const isFormValid = this.editInfoValue.name && this.editInfoValue.title @@ -303,18 +397,22 @@ && this.editInfoValue.serveArea && this.editInfoValue.concept && this.editInfoValue.experiences - && this.editInfoValue.awards + && this.editInfoValue.phoneNumber.length && this.editInfoValue.seniorityYear - && this.editInfoValue.seniorityMonth - && this.editInfoValue.expertise - && this.editInfoValue.communicationStyle; + && this.editInfoValue.expertise.length + && this.editInfoValue.communicationStyle.length; return !isFormValid } } </script> -<style lang="scss"> +<style lang="scss" > +.edit-agent-info-page{ + .el-textarea__inner{ + font-size: 15px; +} +} .pam-icon { font-size : 15px; padding-right: 8px; @@ -372,4 +470,11 @@ width : 50px; margin-right: 5px; } +.el-input--suffix .el-input__inner { + padding-right: 20px; +} + +.el-textarea__inner{ + font-size: 18px; +} </style> -- Gitblit v1.8.0