|
|
@@ -1486,6 +1486,26 @@ function prescriptionDetail(realNo, orderNo, receiptNo, times, patientId, confir
|
|
|
validateAndAddTracCodg(lastCode, row, $element);
|
|
|
} else {
|
|
|
console.log('最后一个追溯码长度不正确,不进行验证:', lastCode.length);
|
|
|
+ // 添加报错提示
|
|
|
+ errorMesageSimaple('追溯码长度不正确,应为20位,当前为' + lastCode.length + '位');
|
|
|
+ // 去掉长度不正确的追溯码
|
|
|
+ codes.pop();
|
|
|
+ // 重新设置单元格内容
|
|
|
+ let newContent = codes.join('<br>');
|
|
|
+ if (newContent) {
|
|
|
+ newContent += '<br>';
|
|
|
+ }
|
|
|
+ $element.html(newContent);
|
|
|
+
|
|
|
+ // 保持焦点在单元格末尾,让用户可以继续扫码
|
|
|
+ $element.focus();
|
|
|
+ // 将光标移动到内容末尾
|
|
|
+ let range = document.createRange();
|
|
|
+ let selection = window.getSelection();
|
|
|
+ range.selectNodeContents($element[0]);
|
|
|
+ range.collapse(false); // false表示移动到末尾
|
|
|
+ selection.removeAllRanges();
|
|
|
+ selection.addRange(range);
|
|
|
}
|
|
|
} else {
|
|
|
console.log('没有找到有效的追溯码');
|
|
|
@@ -2933,15 +2953,57 @@ function validateAndAddTracCodg(tracCodg, rowData, $element) {
|
|
|
} else {
|
|
|
// 验证失败
|
|
|
errorMesage(res);
|
|
|
- // 验证失败时,保持焦点,让用户继续扫码
|
|
|
- $element.focus();
|
|
|
+ // 验证失败时,清理掉无效的追溯码
|
|
|
+ let currentContent = $element.html();
|
|
|
+ let codes = currentContent.split('<br>').filter(code => code.trim().length > 0);
|
|
|
+
|
|
|
+ // 去掉最后一个追溯码(无效的追溯码)
|
|
|
+ if (codes.length > 0) {
|
|
|
+ codes.pop();
|
|
|
+ // 重新设置单元格内容
|
|
|
+ let newContent = codes.join('<br>');
|
|
|
+ if (newContent) {
|
|
|
+ newContent += '<br>';
|
|
|
+ }
|
|
|
+ $element.html(newContent);
|
|
|
+
|
|
|
+ // 保持焦点在单元格末尾
|
|
|
+ $element.focus();
|
|
|
+ let range = document.createRange();
|
|
|
+ let selection = window.getSelection();
|
|
|
+ range.selectNodeContents($element[0]);
|
|
|
+ range.collapse(false);
|
|
|
+ selection.removeAllRanges();
|
|
|
+ selection.addRange(range);
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
error: function (xhr, status, error) {
|
|
|
console.error('验证请求失败:', error);
|
|
|
errorMesageSimaple("验证请求失败");
|
|
|
- // 错误时保持焦点,让用户继续扫码
|
|
|
- $element.focus();
|
|
|
+ // 错误时也清理掉无效的追溯码
|
|
|
+ let currentContent = $element.html();
|
|
|
+ let codes = currentContent.split('<br>').filter(code => code.trim().length > 0);
|
|
|
+
|
|
|
+ // 去掉最后一个追溯码(无效的追溯码)
|
|
|
+ if (codes.length > 0) {
|
|
|
+ codes.pop();
|
|
|
+ // 重新设置单元格内容
|
|
|
+ let newContent = codes.join('<br>');
|
|
|
+ if (newContent) {
|
|
|
+ newContent += '<br>';
|
|
|
+ }
|
|
|
+ $element.html(newContent);
|
|
|
+
|
|
|
+ // 保持焦点在单元格末尾
|
|
|
+ $element.focus();
|
|
|
+ let range = document.createRange();
|
|
|
+ let selection = window.getSelection();
|
|
|
+ range.selectNodeContents($element[0]);
|
|
|
+ range.collapse(false);
|
|
|
+ selection.removeAllRanges();
|
|
|
+ selection.addRange(range);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|