PAMapp/assets/scss/utilities/_icon.scss | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/components/Interview/InterviewMsg.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/components/Ui/UiDatePicker.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/components/Ui/UiTimePicker.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/pages/appointment/_appointmentId/close/index.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/pages/recommendConsultant/index.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 |
PAMapp/assets/scss/utilities/_icon.scss
@@ -9,3 +9,9 @@ color: $YELLOW; } } .down-icon { color: #ED1B2E; font-size: 25px; align-self: center; } PAMapp/components/Interview/InterviewMsg.vue
@@ -17,16 +17,18 @@ :autosize="true" placeholder="約訪通知" resize="none" v-model="isInterviewTxt"> v-model="interviewTxt"> </el-input> <div class="mdTxt mt-30 mb-10">預計約訪時段</div> <DateTimePicker @changeDateTime="interviewTime = $event" ></DateTimePicker> <div v-if="client.phone"> <div class="mdTxt mt-30 mb-10">預計約訪時段</div> <DateTimePicker @changeDateTime="interviewTime = $event" ></DateTimePicker> </div> <div class="msg-dialog-btn"> <el-button @click="addInterview" :disabled="!interviewTime">傳送</el-button> <el-button @click="addInterview" :disabled="isBtnDisabled">傳送</el-button> </div> </el-dialog> @@ -82,6 +84,10 @@ interviewTime = ''; ////////////////////////////////////////////////////////////////////// mounted() { this.interviewTxt = "您好!我是保誠媒合平台的保險顧問" + this.loginConsultant.name + ",感謝您的預約!我預計會在下述的時間與您聯繫"+"\n"+"以下是我的電話號碼/Email:"+"\n" + this.loginConsultant.phoneNumber + "\n" + this.loginConsultant.email + "\n"+"若此時間不方便,請與我聯繫!謝謝!" } addInterview() { const appointmentInformation: ToInformAppointment = { appointmentId: this.client.id, @@ -102,8 +108,9 @@ this.storeMyAppointmentList(); } get isInterviewTxt() : string{ return this.interviewTxt = "您好!我是保誠媒合平台的保險顧問" + this.loginConsultant?.name + ",感謝您的預約!我預計會在下述的時間與您聯繫"+"\n"+"以下是我的電話號碼/Email:"+"\n" + this.loginConsultant?.phoneNumber + "\n" + this.loginConsultant?.email + "\n"+"若此時間不方便,請與我聯繫!謝謝!" get isBtnDisabled() :Boolean { const isFormValid = this.client.phone ? this.interviewTxt && this.interviewTime :this.interviewTxt return !isFormValid } } PAMapp/components/Ui/UiDatePicker.vue
@@ -7,7 +7,7 @@ type="date" format="yyyy/MM/dd" placeholder="選擇日期" prefix-icon="icon-down" prefix-icon="icon-down down-icon" @change="changeDate" > </el-date-picker> PAMapp/components/Ui/UiTimePicker.vue
@@ -6,7 +6,7 @@ :clearable="false" :picker-options="pickerOptions" placeholder="選擇時間" prefix-icon="icon-down" prefix-icon="icon-down down-icon" value-format="timestamp" @change="changeTime" > PAMapp/pages/appointment/_appointmentId/close/index.vue
@@ -15,7 +15,7 @@ <el-row type="flex" class="pam-paragraph" style="flex-direction: column"> <UiField label="保戶身分證字號" :labelSize="20"> <UiField label="保戶身分證字號" :labelSize="20" class="required"> <input class="appointment-client-detail-close__input" :class="{'is-invalid':!identityIdValid}" @@ -31,7 +31,7 @@ <el-row type="flex" class="pam-paragraph"> <UiField label="商品代碼Plan Code" :labelSize="20"> <UiField label="商品代碼Plan Code" :labelSize="20" class="required"> <input class="appointment-client-detail-close__input" v-model="appointmentCloseInfo.planCode" @@ -43,7 +43,7 @@ <el-row type="flex" class="pam-paragraph"> <UiField label="進件時間" :labelSize="20"> <UiField label="進件時間" :labelSize="20" class="required"> <DateTimePicker @changeDateTime="appointmentCloseDate = $event"></DateTimePicker> </UiField> </el-row> @@ -52,8 +52,9 @@ <template v-if="appointmentCloseInfo.selectCloseOption === 'close'"> <el-row class="pam-paragraph"> <UiField label="未成交原因" :labelSize="20"> <UiField label="未成交原因" :labelSize="20" class="required"> </UiField> <div class="appointment-client-detail-close__selectbox"> <select class="appointment-client-detail-close__select" name="closedReason" id="closedReason" v-model="appointmentCloseInfo.closedReason"> @@ -61,17 +62,18 @@ {{ failReason.key }} </option> </select> <i class="icon-down down-icon"></i> </div> <div style="display: flex" class="mt-10"> <div style="display: flex" class="mt-10"> <input v-if="appointmentCloseInfo.closedReason === 'other' || appointmentCloseInfo.closedReason === 'no_suitable_commodity'" class="appointment-client-detail-close__input" v-model="appointmentCloseInfo.closedOtherReason" placeholder="請輸入原因,限50字。" type="text"> </div> <input v-if="appointmentCloseInfo.closedReason === 'other' || appointmentCloseInfo.closedReason === 'no_suitable_commodity'" class="appointment-client-detail-close__input" v-model="appointmentCloseInfo.closedOtherReason" placeholder="請輸入原因,限50字。" type="text"> </div> </el-row> </template> @@ -221,17 +223,16 @@ selectCloseOption, policyholderIdentityId, planCode, remark, closedReason, closedOtherReason } = this.appointmentCloseInfo; // this.appointmentCloseInfo.policyEntryDate 並沒有辦法取值到 this.appointmentCloseDate if (selectCloseOption === 'done') { return !policyholderIdentityId || !this.identityIdValid || !planCode || !this.appointmentCloseDate || !remark return !policyholderIdentityId || !this.identityIdValid || !planCode || !this.appointmentCloseDate } else if (closedReason === 'other' || closedReason === 'no_suitable_commodity') { return !closedOtherReason || !remark return !closedOtherReason } return !remark return false } get identityIdValid() { @@ -252,11 +253,24 @@ font-size: 20px; padding : 10px 20px; width : 100%; box-sizing: border-box; &::placeholder { color: $MID_GREY; } &.is-invalid { border-color: $PRIMARY_RED !important; } } .appointment-client-detail-close__selectbox { position: relative; & .appointment-client-detail-close__select{ appearance: none; } & .down-icon { position: absolute; right: 7px; bottom: 10px; } } .invite-review{ @@ -269,4 +283,17 @@ @extend .text--primary; height: 16px; } .required { position: relative; &::before { content: '*'; font-size: 20px; font-weight: bold; position: absolute; color: #FF0000; transform: translateX(-5px); z-index: 5; } } </style> PAMapp/pages/recommendConsultant/index.vue
@@ -338,9 +338,6 @@ } .down-icon { color: #ED1B2E; font-size: 25px; align-self: center; margin-right: 15px; }