var vm = new Vue({ el: '#app', data: function () { return { isLoading: false, userInfo: { "loginGuid": '', "loginAccount": '', }, KbBar: "",//卡板条码 LsBar: "",//后盖流水条码 XBar: "",//箱条码 UserName: Cookies.get('loginName'),//用户名称 KbBarInfo: [], KbBarMxInfo: [], GX: "G007:核对送检", Xvalue:4, XbarInfo: [ //{ // iteM_BARCODE: "", // 条码 // item_no: "", // 物料编号 // item_name: "", // 物料名称 // item_model: "", // 规格型号 // quantity: 0, // 数量 // is_hedui: "0", // 是否核对(1:已核对 0:未核对), // weight: "" // 产品重量 //} ], DAA001: [], } }, mounted() { var that = this; this.userInfo = { loginGuid: this.GetLoginInfor().loginGuid, loginAccount: this.GetLoginInfor().loginAccount, }; }, methods: { getKbBarInfo() { var that = this; that.isLoading = true; that.AxiosHttp("post", 'Womdaa/getKbBarInfo', { Xt: that.GX, Kbbarcode: that.KbBar }, false) .then(function (res) { var json = res; if (json.status == 0) { 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.$playSound('error'); that.$toast.fail(json.message); that.$refs.KbBar.focus(); that.KbBar = ""; } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$playSound('error'); that.$toast.fail("网络错误,请重试!"); that.$refs.KbBar.focus(); that.KbBar = ""; }); }, getXBarInfo() { var that = this; if (that.KbBar.length <= 0) { that.$playSound('error'); that.$toast.fail("卡板条码不能为空!"); that.$refs.KbBar.focus(); that.XBar = ""; return; } if (that.DAA001.length <= 0) { that.$playSound('error'); that.$toast.fail("指令工单不能为空!"); that.$refs.KbBar.focus(); that.XBar = ""; return; } // 检查是否超过装箱数 if (that.XbarInfo.length >= that.Xvalue) { that.$playSound('error'); that.$toast.fail(`已达到装箱数限制(${that.Xvalue})`); that.XBar = ""; return; } //待装数 var Dvalue = (that.KbBarInfo.oldqty || 0) - +(that.KbBarInfo.ySum || 0) // 检查是否超过装箱数 if (that.Xvalue > Dvalue) { that.$playSound('error'); that.$toast.fail(`装箱数(${that.Xvalue}) 不能大于 卡板待装数(${Dvalue})`); that.XBar = ""; return; } // 检查条码是否已存在 const isExist = that.XbarInfo.some(item => item.iteM_BARCODE === that.XBar); if (isExist) { that.$playSound('error'); that.$toast.fail("该箱条码已存在,请勿重复扫描"); that.XBar = ""; return; } that.isLoading = true; that.AxiosHttp("post", 'Womdaa/getXBarInfo', { KbBar: that.KbBar, DAA001: that.DAA001, userName: that.userInfo.loginAccount, 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.$playSound('error'); that.$toast.fail(json.message); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$playSound('error'); that.$toast.fail("网络错误,请重试!"); }); }, productBinding() { if (this.isLoading) { return; } var that = this; if (that.ZsBar.length <= 0) { that.$playSound('error'); that.$toast.fail("追溯码不能为空!"); return; } if (that.LsBar.length <= 0) { that.$playSound('error'); that.$toast.fail("后盖码不能为空!"); return; } that.isLoading = true; that.AxiosHttp("post", 'Womdaa/ProductBinding', { ZsBar: that.ZsBar, LsBar: that.LsBar, userName: that.userInfo.loginAccount, }, false) .then(function (res) { var json = res; if (json.status == 0) { // that.scanInfo = json.data.tbBillList; that.$playSound('success'); that.$notify({ type: 'success', message: json.message }); that.$refs.ZsBar.focus(); that.ZsBar = null; that.ZsBar = null; } else { that.$playSound('error'); that.$toast.fail(json.message); that.$refs.ZsBar.focus(); that.ZsBar = null; that.ZsBar = null; } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$playSound('error'); that.$toast.fail("网络错误,请重试!"); that.$refs.ZsBar.focus(); that.ZsBar = null; that.ZsBar = null; }); }, checkProductBarcode() { var that = this; if (!that.LsBar) { that.$playSound('error'); 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.AxiosHttp("post", 'Womdaa/GetWeightByXt', { LsBar: that.LsBar, userName: that.userInfo.loginAccount }, false) .then(function (res) { var json = res; if (json.status == 0) { var weigth = json.data.tbBillList.weight; that.$set(matchedItem, 'is_hedui', "1"); that.$set(matchedItem, 'weight', weigth); that.$playSound('success'); that.$notify({ type: 'success', message: "核对成功" }); that.LsBar = ""; // 检查是否所有行都已核对 const allChecked = that.XbarInfo.every(item => item.is_hedui === "1"); if (allChecked && that.XbarInfo.length > 0 && that.XbarInfo.length === that.Xvalue) { that.submitAllChecked(); } } else { that.$playSound('error'); that.$toast.fail(json.message); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$playSound('error'); that.$toast.fail("网络错误,请重试!"); }); } } else { that.$playSound('error'); that.$toast.fail("未找到匹配的箱条码"); } that.LsBar = ""; // 清空输入框 }, GetWeightByXt() { }, // 新增方法:提交所有已核对的数据 submitAllChecked() { if (this.isLoading) { return; } 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.$playSound('success'); that.$notify({ type: 'success', message: json.message }); that.getKbBarInfo(); } else { that.$playSound('error'); 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.$playSound('error'); that.$toast.fail("绑定失败,请重试!"); }); }, handleSubmit() { if (this.isLoading) { return; } var that = this; if (!that.KbBar) { that.$playSound('error'); that.$toast.fail("请先扫描卡板条码"); return; } // 计算可装数和已装数 const oldqty = +(that.KbBarInfo.oldqty || 0); const ySum = +(that.KbBarInfo.ySum || 0); if (oldqty !== ySum) { that.$playSound('error'); 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.$playSound('success'); that.$notify({ type: 'success', message: json.message }); // 清空数据 that.KbBar = ""; that.XbarInfo = []; that.KbBarInfo = []; that.$refs.KbBar.focus(); } else { that.$playSound('error'); that.$toast.fail(json.message); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$playSound('error'); that.$toast.fail("提交失败,请重试!"); that.$refs.KbBar.focus(); }); }, } })