From 4126129d43e9d5af591e610651a2c499ce0069c6 Mon Sep 17 00:00:00 2001 From: yangchunlong <292345300@qq.com> Date: Wed, 25 Feb 2026 11:31:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=9A=80=2069=E7=A0=81=E9=9D=9E?= =?UTF-8?q?=E6=B3=95=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/print/barCode/numberCodePrint.js | 10 +++++++-- src/utils/print/barCode/numberCodePrint1.js | 9 ++++++-- src/utils/print/barCode/oneCodePrint.js | 10 ++++++--- src/utils/print/barCode/oneNumberCodePrint.js | 8 ++++++- src/utils/print/barCode/sequenceCodePrint.js | 14 ++++++++++--- src/utils/print/barCode/sequenceCodePrint1.js | 9 +++++++- src/utils/print/barCode/twoCodePrint.js | 10 +++++++-- src/utils/print/barCode/utils.js | 21 +++++++++++++++++++ 8 files changed, 77 insertions(+), 14 deletions(-) diff --git a/src/utils/print/barCode/numberCodePrint.js b/src/utils/print/barCode/numberCodePrint.js index b9fed79..15a37e7 100644 --- a/src/utils/print/barCode/numberCodePrint.js +++ b/src/utils/print/barCode/numberCodePrint.js @@ -1,8 +1,14 @@ //打印序列码 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) => { + // 仅当69码存在且格式非法时,弹窗并终止 "6942229761912" + if (isInvalidEAN13(list[0].barCode)) { + useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`); + return; // 终止后续打印逻辑 + } + let LODOP; //声明为全局变量 LODOP = getLodop(); LODOP.PRINT_INIT("打印序列码"); diff --git a/src/utils/print/barCode/numberCodePrint1.js b/src/utils/print/barCode/numberCodePrint1.js index 1c3d03f..c38ee74 100644 --- a/src/utils/print/barCode/numberCodePrint1.js +++ b/src/utils/print/barCode/numberCodePrint1.js @@ -1,8 +1,13 @@ //打印序列码 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) => { + // 仅当69码存在且格式非法时,弹窗并终止 "6942229761912" + if (isInvalidEAN13(list[0].barCode)) { + useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`); + return; // 终止后续打印逻辑 + } let LODOP; //声明为全局变量 LODOP = getLodop(); LODOP.PRINT_INIT("打印序列码"); diff --git a/src/utils/print/barCode/oneCodePrint.js b/src/utils/print/barCode/oneCodePrint.js index 0c41469..1753bf1 100644 --- a/src/utils/print/barCode/oneCodePrint.js +++ b/src/utils/print/barCode/oneCodePrint.js @@ -1,10 +1,14 @@ //打印序列码 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) => { // 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 date = dateCreate(); diff --git a/src/utils/print/barCode/oneNumberCodePrint.js b/src/utils/print/barCode/oneNumberCodePrint.js index 98ea32f..d06d930 100644 --- a/src/utils/print/barCode/oneNumberCodePrint.js +++ b/src/utils/print/barCode/oneNumberCodePrint.js @@ -1,8 +1,14 @@ //打印序列码 import { getLodop } from "../print"; -import { codeSN, set69Code } from "./utils"; +import { codeSN, set69Code, isInvalidEAN13 } from "./utils"; +import { useMsg } from "@/hooks/useMsg"; //dateCreate export const oneNumberCodePrint = (list, callBack) => { + // 仅当69码存在且格式非法时,弹窗并终止 "6942229761912" + if (isInvalidEAN13(list[0].barCode)) { + useMsg("warning", `69码【${list[0].barCode}】格式非法(校验码错误),无法打印!`); + return; // 终止后续打印逻辑 + } // let barCodeClone = "6954301173908"; let code69Img = set69Code(list[0].barCode); //(list[0].barCode); // let date = dateCreate(); diff --git a/src/utils/print/barCode/sequenceCodePrint.js b/src/utils/print/barCode/sequenceCodePrint.js index 95e442f..d44d8cf 100644 --- a/src/utils/print/barCode/sequenceCodePrint.js +++ b/src/utils/print/barCode/sequenceCodePrint.js @@ -1,9 +1,17 @@ -//打印序列码 +//打印序列条码 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) => { + // 仅当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 date = dateCreate(); let LODOP; //声明为全局变量 LODOP = getLodop(); diff --git a/src/utils/print/barCode/sequenceCodePrint1.js b/src/utils/print/barCode/sequenceCodePrint1.js index 4849349..d16b2fa 100644 --- a/src/utils/print/barCode/sequenceCodePrint1.js +++ b/src/utils/print/barCode/sequenceCodePrint1.js @@ -1,9 +1,16 @@ //打印序列码 import { getLodop } from "../print"; +import { useMsg } from "@/hooks/useMsg"; //codeSN -import { set69Code, dateCreate } from "./utils"; +import { set69Code, dateCreate, isInvalidEAN13 } from "./utils"; import JsBarcode from "jsbarcode"; 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 date = dateCreate(); let LODOP; //声明为全局变量 diff --git a/src/utils/print/barCode/twoCodePrint.js b/src/utils/print/barCode/twoCodePrint.js index e1aa8c1..7a3d843 100644 --- a/src/utils/print/barCode/twoCodePrint.js +++ b/src/utils/print/barCode/twoCodePrint.js @@ -1,9 +1,15 @@ //打印序列号 import { getLodop } from "../print.js"; - -import { codeSN, dateCreate, set69Code } from "./utils"; +import { useMsg } from "@/hooks/useMsg"; +import { codeSN, dateCreate, set69Code, isInvalidEAN13 } from "./utils"; export const twoCodePrint = async (printData, callBack) => { + // 仅当69码存在且格式非法时,弹窗并终止 "6942229761912" + if (isInvalidEAN13(printData[0].barCode)) { + useMsg("warning", `69码【${printData[0].barCode}】格式非法(校验码错误),无法打印!`); + return; // 终止后续打印逻辑 + } + let LODOP; //声明为全局变量 LODOP = getLodop(); LODOP.PRINT_INIT("打印序列号"); diff --git a/src/utils/print/barCode/utils.js b/src/utils/print/barCode/utils.js index f8dea88..9130109 100644 --- a/src/utils/print/barCode/utils.js +++ b/src/utils/print/barCode/utils.js @@ -70,3 +70,24 @@ export const set69Code = barCode => { return null; } }; +// EAN13(69码)非法校验函数(仅校验有值但格式错的情况) +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; +};