feat: 🚀 69码非法验证

This commit is contained in:
2026-02-25 11:31:22 +08:00
parent 052d325d83
commit 4126129d43
8 changed files with 77 additions and 14 deletions

View File

@@ -1,8 +1,14 @@
//打印序列码 //打印序列码
import { getLodop } from "../print.js"; import { getLodop } from "../print.js";
import { codeSN, set69Code } from "./utils"; import { codeSN, set69Code, isInvalidEAN13 } from "./utils";
import { useMsg } from "@/hooks/useMsg";
export const numberCodePrint = async (list, callBack) => { export const numberCodePrint = async (list, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
let LODOP; //声明为全局变量 let LODOP; //声明为全局变量
LODOP = getLodop(); LODOP = getLodop();
LODOP.PRINT_INIT("打印序列码"); LODOP.PRINT_INIT("打印序列码");

View File

@@ -1,8 +1,13 @@
//打印序列码 //打印序列码
import { getLodop } from "../print.js"; import { getLodop } from "../print.js";
import { set69Code } from "./utils"; import { set69Code, isInvalidEAN13 } from "./utils";
import { useMsg } from "@/hooks/useMsg";
export const numberCodePrint = async (list, callBack) => { export const numberCodePrint = async (list, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
let LODOP; //声明为全局变量 let LODOP; //声明为全局变量
LODOP = getLodop(); LODOP = getLodop();
LODOP.PRINT_INIT("打印序列码"); LODOP.PRINT_INIT("打印序列码");

View File

@@ -1,10 +1,14 @@
//打印序列码 //打印序列码
import { getLodop } from "../print"; import { getLodop } from "../print";
import { codeSN, set69Code, dateCreate } from "./utils"; import { codeSN, set69Code, dateCreate, isInvalidEAN13 } from "./utils";
import { useMsg } from "@/hooks/useMsg";
export const oneCodePrint = (list, callBack) => { export const oneCodePrint = (list, callBack) => {
// let barCodeClone = "6954301173908"; // let barCodeClone = "6954301173908";
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
let code69Img = set69Code(list[0].barCode); //(list[0].barCode); let code69Img = set69Code(list[0].barCode); //(list[0].barCode);
let date = dateCreate(); let date = dateCreate();

View File

@@ -1,8 +1,14 @@
//打印序列码 //打印序列码
import { getLodop } from "../print"; import { getLodop } from "../print";
import { codeSN, set69Code } from "./utils"; import { codeSN, set69Code, isInvalidEAN13 } from "./utils";
import { useMsg } from "@/hooks/useMsg";
//dateCreate //dateCreate
export const oneNumberCodePrint = (list, callBack) => { export const oneNumberCodePrint = (list, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
// let barCodeClone = "6954301173908"; // let barCodeClone = "6954301173908";
let code69Img = set69Code(list[0].barCode); //(list[0].barCode); let code69Img = set69Code(list[0].barCode); //(list[0].barCode);
// let date = dateCreate(); // let date = dateCreate();

View File

@@ -1,9 +1,17 @@
//打印序列码 //打印序列
import { getLodop } from "../print"; import { getLodop } from "../print";
import { codeSN, set69Code, dateCreate } from "./utils"; import { codeSN, set69Code, dateCreate, isInvalidEAN13 } from "./utils";
import { useMsg } from "@/hooks/useMsg";
export const sequenceCodePrint = (list, callBack) => { export const sequenceCodePrint = (list, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
console.log(isInvalidEAN13(list[0].barCode), "==isInvalidEAN13(list[0].barCode)=");
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
//list[0].barCode
let code69Img = set69Code(list[0].barCode); let code69Img = set69Code(list[0].barCode);
let date = dateCreate(); let date = dateCreate();
let LODOP; //声明为全局变量 let LODOP; //声明为全局变量
LODOP = getLodop(); LODOP = getLodop();

View File

@@ -1,9 +1,16 @@
//打印序列码 //打印序列码
import { getLodop } from "../print"; import { getLodop } from "../print";
import { useMsg } from "@/hooks/useMsg";
//codeSN //codeSN
import { set69Code, dateCreate } from "./utils"; import { set69Code, dateCreate, isInvalidEAN13 } from "./utils";
import JsBarcode from "jsbarcode"; import JsBarcode from "jsbarcode";
export const sequenceCodePrint = (list, callBack) => { export const sequenceCodePrint = (list, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(list[0].barCode)) {
useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
let code69Img = set69Code(list[0].barCode); let code69Img = set69Code(list[0].barCode);
let date = dateCreate(); let date = dateCreate();
let LODOP; //声明为全局变量 let LODOP; //声明为全局变量

View File

@@ -1,9 +1,15 @@
//打印序列号 //打印序列号
import { getLodop } from "../print.js"; import { getLodop } from "../print.js";
import { useMsg } from "@/hooks/useMsg";
import { codeSN, dateCreate, set69Code } from "./utils"; import { codeSN, dateCreate, set69Code, isInvalidEAN13 } from "./utils";
export const twoCodePrint = async (printData, callBack) => { export const twoCodePrint = async (printData, callBack) => {
// 仅当69码存在且格式非法时弹窗并终止 "6942229761912"
if (isInvalidEAN13(printData[0].barCode)) {
useMsg("warning", `69码【${printData[0].barCode}】格式非法(校验码错误),无法打印!`);
return; // 终止后续打印逻辑
}
let LODOP; //声明为全局变量 let LODOP; //声明为全局变量
LODOP = getLodop(); LODOP = getLodop();
LODOP.PRINT_INIT("打印序列号"); LODOP.PRINT_INIT("打印序列号");

View File

@@ -70,3 +70,24 @@ export const set69Code = barCode => {
return null; return null;
} }
}; };
// EAN1369码非法校验函数仅校验有值但格式错的情况
export const isInvalidEAN13 = ean => {
// // 空值直接返回false不校验
if (!ean) return false;
if (ean === " ") return false;
// 过滤非数字检查是否为13位
const cleanEan = ean.toString().replace(/\D/g, "");
if (cleanEan.length !== 13) return true;
// 校验码计算
const digits = cleanEan.split("").map(Number);
const checkDigit = digits.pop();
let sum = 0;
digits.forEach((digit, index) => {
sum += digit * (index % 2 === 0 ? 1 : 3);
});
const calculatedCheckDigit = (10 - (sum % 10)) % 10;
// 校验码不一致则为非法
return calculatedCheckDigit !== checkDigit;
};