保誠-保戶業務員媒合平台
Tomas
2022-01-25 8b3eac27e27d437014ebbd308f0e7de24cf1fffa
PAMapp/pages/appointment/_appointmentId/close/index.vue
@@ -43,7 +43,7 @@
        <el-row
          type="flex"
          class="pam-paragraph">
          <UiField label="進件時間" :labelSize="20">
          <UiField label="進件時間" :labelSize="20" class="required">
            <DateTimePicker
              :defaultValue="appointmentCloseInfo.policyEntryDate"
              @changeDateTime="appointmentCloseDate = $event"></DateTimePicker>
@@ -196,8 +196,11 @@
        contactStatus    : this.contactStatus.CLOSE,
        remark           : this.appointmentCloseInfo.remark,
      }
      appointmentService.closeAppointment(toCloseAppointment).then((_) => this.updateAppointmentDetail(appointmentId));
      this.isShowSuccessAlert = true;
      appointmentService.closeAppointment(toCloseAppointment).then((_) => {
        this.updateAppointmentDetail(appointmentId);
        this.isShowSuccessAlert = true;
      });
    }
  }
@@ -205,6 +208,27 @@
    this.isShowSuccessAlert = false ;
    this.$router.push(`/myAppointmentList/contactedList`);
  }
  checkIdentityId (id) {
  const tab = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
  const A1 = [ 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3 ];
  const A2 = [ 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ];
  const Mx = [ 9,8,7,6,5,4,3,2,1,1 ];
  if ( id.length != 10 ) return false;
  let i = tab.indexOf( id.charAt(0) );
  if ( i == -1 ) return false;
  let sum = A1[i] + A2[i]*9;
  for ( i=1; i<10; i++ ) {
    const v = parseInt( id.charAt(i) );
    if ( isNaN(v) ) return false;
    sum = sum + v * Mx[i];
  }
  if ( sum % 10 != 0 ) return false;
  return true;
}
  get isSubmitBtnDisabled() {
    const {
@@ -216,7 +240,7 @@
      remark
    } = this.appointmentCloseInfo;
    if (selectCloseOption === this.contactStatus.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
    }
@@ -224,9 +248,8 @@
  }
  get identityIdValid() {
    const rule = /^[A-Z]\d{9}$/;
    const identityId = this.appointmentCloseInfo.policyholderIdentityId;
    return identityId ? rule.test(identityId) : true;
    return identityId ? this.checkIdentityId(identityId) : true;
  }
}
@@ -263,11 +286,11 @@
    &::before {
      content: '*';
      font-size: 20px;
      font-size: 15px;
      font-weight: bold;
      position: absolute;
      color: #FF0000;
      transform: translateX(-5px);
      transform: translateX(-2px);
      z-index: 5;
    }
  }