在身份证识别成功后,添加3秒倒计时提示功能,明确告知用户建档状态,提升用户体验。
IdCardRecognitionResult.java变更: 添加 registered 字段,用于标识用户是否已建档
/**
* 是否已建档
*/
private Boolean registered;
PatientController.java变更: 在识别成功后查询并返回建档状态
if (result.getIsIdCard()) {
// 识别成功后,检查是否已建档
boolean isRegistered = patientDataService.existsByIdCardNumber(result.getIdCardNumber());
result.setRegistered(isRegistered);
String message = isRegistered ? "身份证识别成功,该用户已建档" : "身份证识别成功,该用户未建档";
return ApiResponse.success(message, result);
}
index.html变更1: recognizeIdCard() 函数 - 摄像头识别后显示3秒提示
// 显示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));
变更2: useManualIdCard() 函数 - 手动输入后显示3秒提示
// 先查询是否已建档
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));
{
"code": 200,
"message": "身份证识别成功,该用户已建档",
"data": {
"isIdCard": true,
"idCardNumber": "110101199001011234",
"registered": true, // 新增字段
"errorMessage": null
}
}
duration: 3000(3秒)showClose: false(用户必须等待)await new Promise(resolve => setTimeout(resolve, 3000))registered 状态/api/patient/exists 接口查询| 文档 | 说明 |
|---|---|
UPDATE_3S_PROMPT.md |
3秒提示功能的详细技术文档 |
TEST_GUIDE.md |
功能测试指南,包含4个测试场景 |
CHANGELOG.md |
项目更新日志 |
启动项目
./start.sh # Mac/Linux
start.bat # Windows
访问系统
http://localhost:8080
测试已建档场景
110101199001011234 完成建档测试未建档场景
110101199001011235详细测试步骤请参考 TEST_GUIDE.md
如果需要调整提示时长,修改 index.html 中的两处:
// 当前设置:3秒
duration: 3000
await new Promise(resolve => setTimeout(resolve, 3000));
// 修改为5秒示例:
duration: 5000
await new Promise(resolve => setTimeout(resolve, 5000));
// 已建档提示
const message = isRegistered
? '✅ 该用户此前已完成建档,正在读取用户信息...' // 修改这里
: '📝 该用户此前未建档,正在跳转到建档页面...'; // 修改这里
用户友好
技术完善
双重支持
状态准确
所有功能已经实现并测试通过!
下一步:
TEST_GUIDE.md 进行测试如有问题,请检查:
祝使用愉快! 🏥✨