南骏 池
2025-04-14 84073105b42601bf08a45b58a3781580c922199f
H5/Js/Cpbdsj.js
@@ -9,12 +9,14 @@
            },
            KbBar: "",//卡板条码
            LsBar: "",//后盖流水条码
            XBar: "",//箱条码
            UserName: Cookies.get('loginName'),//用户名称
            KbBarInfo: [],
            KbBarMxInfo: [],
            GX: "G007:核对送检",
            Xvalue:4,
            ItemDetail:[],
            XbarInfo: [],
            DAA001: [],
        }
    },
    mounted() {
@@ -35,10 +37,12 @@
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.$refs.LsBar.focus();
                        that.KbBarInfo = json.data.tbBillList.kbBarInfo[0];
                        that.DAA001 = that.KbBarInfo.daA001;
                        that.KbBarMxInfo = json.data.tbBillList.kbBarMxInfo;
                        that.$refs.XBar.focus();
                        that.XbarInfo = [];
                        that.XBar = "";
                    }
                    else {
                        that.$toast.fail(json.message);
@@ -50,8 +54,66 @@
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                    that.$refs.KbBar.focus();
                    that.KbBar = "";
                });
        },
        getXBarInfo() {
            var that = this;
            if (that.KbBar.length <= 0) {
                that.$toast.fail("卡板条码不能为空!");
                that.$refs.KbBar.focus();
                that.XBar = "";
                return;
            }
            if (that.DAA001.length <= 0) {
                that.$toast.fail("指令工单不能为空!");
                that.$refs.KbBar.focus();
                that.XBar = "";
                return;
            }
            // 检查是否超过装箱数
            if (that.XbarInfo.length >= that.Xvalue) {
                that.$toast.fail(`已达到装箱数限制(${that.Xvalue})`);
                that.XBar = "";
                return;
            }
            // 检查条码是否已存在
            const isExist = that.XbarInfo.some(item => item.iteM_BARCODE === that.XBar);
            if (isExist) {
                that.$toast.fail("该箱条码已存在,请勿重复扫描");
                that.XBar = "";
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/getXBarInfo', {
                Kbbarcode: that.KbBar,
                DAA001: that.DAA001,
                Xbarcode: that.XBar
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.XbarInfo.push(json.data.tbBillList.xBarInfo[0]);
                        that.$refs.XBar.focus();
                        that.XBar = "";
                    }
                    else {
                        that.$toast.fail(json.message);
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                });
        },
        productBinding() {
            var that = this;
            if (that.ZsBar.length <= 0) {
@@ -111,5 +173,107 @@
        //onPrinterSelected(value) {
        //    console.log('当前选中的打印机编号:', value);
        //},
        checkProductBarcode() {
            var that = this;
            if (!that.LsBar) {
                that.$toast.fail("请输入产品条码");
                return;
            }
            // 在XbarInfo中查找匹配的条码
            const matchedItem = that.XbarInfo.find(item =>
                item.iteM_BARCODE === that.LsBar
            );
            if (matchedItem) {
                if (matchedItem.is_hedui === "1") {
                    that.$toast("已核对");
                } else {
                    that.$set(matchedItem, 'is_hedui', "1");
                    that.$notify({ type: 'success', message: "核对成功" });
                    that.LsBar = "";
                    // 检查是否所有行都已核对
                    const allChecked = that.XbarInfo.every(item => item.is_hedui === "1");
                    if (allChecked && that.XbarInfo.length > 0) {
                        that.submitAllChecked();
                    }
                }
            } else {
                that.$toast.fail("未找到匹配的箱条码");
            }
            that.LsBar = ""; // 清空输入框
        },
        // 新增方法:提交所有已核对的数据
        submitAllChecked() {
            var that = this;
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/submitAllChecked', {
                XbarInfo: that.XbarInfo,
                KbBar: that.KbBar,
                userName: that.userInfo.loginAccount
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.$notify({ type: 'success', message: json.message });
                        that.getKbBarInfo();
                    } else {
                        that.$toast.fail(json.message);
                        that.XbarInfo = [];
                        that.XBar = "";
                        that.LsBar = "";
                        that.$refs.XBar.focus();
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("绑定失败,请重试!");
                });
        },
        handleSubmit() {
            var that = this;
            if (!that.KbBar) {
                that.$toast.fail("请先扫描卡板条码");
                return;
            }
            // 计算可装数和已装数
            const oldqty = +(that.KbBarInfo.oldqty ?? 0);
            const ySum = +(that.KbBarInfo.ySum ?? 0);
            if (oldqty !== ySum) {
                that.$toast.fail(`装板未完成,待装数:${oldqty - ySum}`);
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/submitInspection', {
                KbBar: that.KbBar,
                userAccount: that.userInfo.loginAccount
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.$notify({ type: 'success', message: json.tbBillList.message });
                        // 清空数据
                        that.KbBar = "";
                        that.XbarInfo = [];
                        that.KbBarInfo = [];
                        that.$refs.KbBar.focus();
                    } else {
                        that.$toast.fail(json.message);
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("提交失败,请重试!");
                    that.$refs.KbBar.focus();
                });
        },
    }
})