🐛 司机档案住址与出生年月口径对齐小程序

- 住址只读态直接显示区划名称串,不再用级联反解(改名后会退化成灰字 placeholder)
- 身份证号联动改为失焦触发,且只在出生年月/性别为空时补,不覆盖手填值
- 认证审核页标签改为「住址」「详细地址」
- 详细地址 placeholder 补明采集范围,空住址提示改为「请选择省/市/区」
This commit is contained in:
2026-10-22 00:17:55 +08:00
parent d3af455374
commit 6384e80758
2 changed files with 20 additions and 14 deletions
+2 -2
View File
@@ -107,8 +107,8 @@ const CERT_SNAPSHOT_GROUPS = {
{ key: 'realName', label: '真实姓名' },
{ key: 'idCardNo', label: '身份证号' },
{ key: 'birthday', label: '出生年月', type: TYPE_DATE },
{ key: 'addressRegion', label: '住址-区划' },
{ key: 'address', label: '住址-详细地址' },
{ key: 'addressRegion', label: '住址' },
{ key: 'address', label: '详细地址' },
{ key: 'idCardFrontUrl', label: '身份证正面照', type: TYPE_IMAGE },
{ key: 'idCardBackUrl', label: '身份证反面照', type: TYPE_IMAGE },
{ key: 'idCardValidStart', label: '身份证有效期起', type: TYPE_DATE },
+18 -12
View File
@@ -143,7 +143,7 @@
maxlength="18"
show-word-limit
placeholder="请输入"
@input="handleIdCardInput"
@blur="handleIdCardBlur"
/>
</el-form-item>
</el-col>
@@ -153,7 +153,7 @@
v-model="driverForm.birthday"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
placeholder="请选择出生年月"
/>
</el-form-item>
</el-col>
@@ -201,12 +201,16 @@
</el-col>
<el-col :span="6">
<el-form-item label="住址" prop="addressRegion">
<!-- 只读直接显示库里那串区划名称:级联要先按名称反解 path,区划改名后反解不出来,
同一串文字就会在灰字 placeholder 与黑字标签之间摇摆 -->
<el-input v-if="readonly" :model-value="driverForm.addressRegion || '—'" readonly />
<el-cascader
v-else
ref="addressRegionCascader"
v-model="driverForm.addressRegionPath"
:options="regionOptions"
:props="regionCascaderProps"
:placeholder="driverForm.addressRegion || '请选择'"
:placeholder="driverForm.addressRegion || '请选择省/市/区'"
clearable
filterable
@change="handleAddressRegionChange"
@@ -219,7 +223,7 @@
v-model="driverForm.address"
maxlength="200"
show-word-limit
placeholder="请输入"
placeholder="请输入详细地址(街道、门牌号)"
/>
</el-form-item>
</el-col>
@@ -1122,19 +1126,21 @@ export default {
removeDigits(value = '') {
return String(value).replace(/\d/g, '');
},
handleIdCardInput(value) {
const idCardNo = String(value || '').toUpperCase();
/**
* 身份证号失焦后补出生年月与性别,与小程序 person.vue 的 onIdCardNoChange 同口径:
* 只在字段还空着时补——用户手改过的值不被他随后修改身份证号的动作冲掉。
* 不回写空值:18 位不合法时清空生日会把已选日期当垃圾丢掉。
* OCR 识别结果仍直接覆盖(见 applyIdCardRecognition),那是「重新采一次证件」,与手输联动不是一回事。
*/
handleIdCardBlur() {
const idCardNo = String(this.driverForm.idCardNo || '').toUpperCase();
this.driverForm.idCardNo = idCardNo;
const idCardInfo = this.parseIdCardInfo(idCardNo);
if (idCardInfo.birthday) {
if (!this.driverForm.birthday && idCardInfo.birthday) {
this.driverForm.birthday = idCardInfo.birthday;
} else {
this.driverForm.birthday = '';
}
if (idCardInfo.gender) {
if (!this.driverForm.gender && idCardInfo.gender) {
this.driverForm.gender = idCardInfo.gender;
} else {
this.driverForm.gender = '';
}
if (this.submitAttempted) {
this.$nextTick(() => {