保誠-保戶業務員媒合平台
Mila
2022-01-20 ed4b2b7c67443b83abdc7aaf99e784a79d2e0a4f
Merge branch 'Phase3' of https://192.168.0.10:8443/r/pcalife/PAM into Phase3
修改6個檔案
99 ■■■■■ 已變更過的檔案
PAMapp/assets/scss/utilities/_icon.scss 6 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Interview/InterviewMsg.vue 23 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Ui/UiDatePicker.vue 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Ui/UiTimePicker.vue 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/appointment/_appointmentId/close/index.vue 63 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/recommendConsultant/index.vue 3 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
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;
    }