2026-01-08 16:50
在身份证识别成功后,添加3秒倒计时提示功能,提升用户体验。
提示内容: ✅ 该用户此前已完成建档,正在读取用户信息...
行为:
提示内容: 📝 该用户此前未建档,正在跳转到建档页面...
行为:
添加 registered 字段:
/**
* 是否已建档
*/
private Boolean registered;
在识别成功后查询建档状态:
if (result.getIsIdCard()) {
// 识别成功后,检查是否已建档
boolean isRegistered = patientDataService.existsByIdCardNumber(result.getIdCardNumber());
result.setRegistered(isRegistered);
String message = isRegistered ? "身份证识别成功,该用户已建档" : "身份证识别成功,该用户未建档";
return ApiResponse.success(message, result);
}
if (res.data.code === 200) {
patientInfo.idCardNumber = res.data.data.idCardNumber;
// 显示3秒倒计时提示
const isRegistered = res.data.data.registered;
const message = isRegistered
? '✅ 该用户此前已完成建档,正在读取用户信息...'
: '📝 该用户此前未建档,正在跳转到建档页面...';
ElMessage({
message: message,
type: 'success',
duration: 3000,
showClose: false // 禁止手动关闭
});
// 等待3秒后再进入下一步
await new Promise(resolve => setTimeout(resolve, 3000));
await checkPatientExists();
}
// 先查询是否已建档
const isRegistered = await axios.get('/api/patient/exists', {
params: { idCardNumber: patientInfo.idCardNumber }
}).then(res => res.data.code === 200 ? res.data.data : false);
// 显示3秒倒计时提示
const message = isRegistered
? '✅ 该用户此前已完成建档,正在读取用户信息...'
: '📝 该用户此前未建档,正在跳转到建档页面...';
ElMessage({
message: message,
type: 'success',
duration: 3000,
showClose: false
});
// 等待3秒后再进入下一步
await new Promise(resolve => setTimeout(resolve, 3000));
# 1. 先创建一个测试用户
# 启动项目后访问 http://localhost:8080
# 手动输入身份证号:110101199001011234
# 填写完整信息并提交
# 2. 测试识别功能
# 使用相同的身份证号进行识别
# 观察提示信息:✅ 该用户此前已完成建档,正在读取用户信息...
# 等待3秒
# 验证表单信息是否正确填充
# 1. 使用新的身份证号(如:110101199001011235)
# 进行识别或手动输入
# 2. 观察提示信息:📝 该用户此前未建档,正在跳转到建档页面...
# 等待3秒
# 验证身份证号是否已填充,其他字段为空
IdCardRecognitionResult.java - 添加 registered 字段PatientController.java - 识别成功后查询建档状态index.html - recognizeIdCard() 函数添加3秒提示index.html - useManualIdCard() 函数添加3秒提示showClose: false 确保用户必须等待await new Promise(resolve => setTimeout(resolve, 3000)) 实现精确等待/api/patient/exists 接口更新完成! 🎉