| | |
| | | return callback(); |
| | | } |
| | | const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/; |
| | | if (regex.test(value)) { |
| | | } else { |
| | | callback(new Error("身份证号码格式错误")); |
| | | // 2026-10-19:格式不合法立即早退。原来写成 if/else 但 else 里没有 return, |
| | | // 会继续往下走异步查重,导致 callback 被调用两次、"身份证号码格式错误"被后续结果覆盖。 |
| | | if (!regex.test(value)) { |
| | | return callback(new Error("身份证号码格式错误")); |
| | | } |
| | | |
| | | // 2. 调用后端接口进行重复性校验 |
| | |
| | | }, |
| | | |
| | | dialogrules: { |
| | | // 2026-10-19:账户名称(账户来源=从账户库 时的下拉)也是必输项 |
| | | accountname: [ |
| | | { required: true, message: "请选择账户名称", trigger: "change" } |
| | | ], |
| | | usertype: [ |
| | | { required: true, message: "请输入账户类型", trigger: "blur" } |
| | | ], |
| | |
| | | unitTaxNo: [{ required: true, message: "请输入税号", trigger: "blur" }], |
| | | idcardno: [ |
| | | { |
| | | // 2026-10-19:加 required 标记只为让 el-form-item 标出必输星号(Element 的 isRequired 只认 rule.required)。 |
| | | // 本规则带 validator,async-validator 的 getValidationMethod 会直接返回该 validator、跳过内建 required 检查, |
| | | // 所以校验行为与改动前完全一致;另外**不能加 message**,否则会覆盖下面自定义 validator 的报错文案。 |
| | | required: true, |
| | | // 账户类型选择"单位机构"时不需要身份证号 |
| | | validator: (rule, value, callback) => { |
| | | if (this.hasUserType(this.accountselectform.usertype, "org")) { |
| | |
| | | //专家/医疗机构/费用报销机构选择 |
| | | confirmSelectionDialog() { |
| | | this.$refs["accountselectform"].validate(valid => { |
| | | // 2026-10-19:原来没有判断 valid,校验失败也照样往下走、照样保存(星号/红字形同虚设) |
| | | if (!valid) { |
| | | return; |
| | | } |
| | | let tempIndex = this.accountselectform.index; |
| | | if (this.selectionType == "account") { |
| | | if (this.accountfrom == "1") { |