LIJU преди 3 месеца
родител
ревизия
7adbd9d971
променени са 1 файла, в които са добавени 66 реда и са изтрити 4 реда
  1. 66 4
      src/main/resources/static/js/mz/west_pharmacy_send.js

+ 66 - 4
src/main/resources/static/js/mz/west_pharmacy_send.js

@@ -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);
+            }
         }
     });
 }