var vm = new Vue({ el: '#app', data: function () { return { isLoading: false, userInfo: { "loginGuid": '', "loginAccount": '', }, formData: { id: "", releaseNo: "", createBy: "", createDate: "", lotNo: "", itemNo: "", billNo: "", fcovertQty: "", detailMem: "", taskNo: "", fcheckResu: "", boardModel: "", planQty: "", mocode: "", boardStyle: "" }, isShowTable: false, tableData: [],//返回的检验项目 jymxData: [],//展示的检验项目 okNum:'',//合格数 ngNum: '',//不合格数 ttrre: false, show: false, tableMxData: [], tabActive: 0, inputValue: '',//特征值输入 resultValue: '',//检验结果录入 showButton: false,//右上角菜单触发 okValue: '',//OK-数量 ngValue: ''//NG-数量 } }, mounted() { var that = this; this.userInfo = { loginGuid: this.GetLoginInfor().loginGuid, loginAccount: this.GetLoginInfor().loginAccount, }; this.formData.id = this.Request("id"), this.formData.releaseNo = this.Request("releaseNo"); this.formData.lotNo = this.Request("lotNo"); this.init(); }, methods: { // 输入过滤 handleNumberInput1(value) { // 去除非数字并确保首位不为0(除非是单独的0) this.okValue = value.replace(/[^\d]/g, '') // 去除非数字字符 .replace(/^0+(?!$)/, ''); // 去除开头的0,除非整个字符串是0 }, handleNumberInput2(value) { // 去除非数字并确保首位不为0(除非是单独的0) this.ngValue = value.replace(/[^\d]/g, '') // 去除非数字字符 .replace(/^0+(?!$)/, ''); // 去除开头的0,除非整个字符串是0 }, handleNumberInput3(value) { this.inputValue = value.replace(/[^\d.]/g, '') // 1. 去除非数字和小数点 .replace(/(\..*)\./g, '$1') // 2. 禁止多个小数点 .replace(/^\./g, ''); }, togglePopup(index) { // 切换指定索引的 popup 状态 var that = this; this.show = true; console.log(index); console.log(that.tableData[index].guid); var mxguid = that.tableData[index].guid; that.jymxData = that.tableData[index]; that.tabActive = index; that.AxiosHttp("post", 'MesQaItemsDetect01Manager/GetModel12', { parentGuid : "", guid : mxguid , }, true, 1).then(function (res1) { if (res1.rtnCode == 1) { that.tableMxData = res1.rtnData; // 统计合格数和不合格数 const list = res1.rtnData?.list || []; // 确保 list 是数组,避免 undefined 错误 const okNum = list.filter(item => item.fstand === '√').length; const ngNum = list.length - okNum; // 将结果保存到指定变量(如 that 的成员属性) that.okNum = okNum; that.ngNum = ngNum; } else { that.$toast.fail(res1.rtnMsg); } }).catch(function (error) { that.$toast.fail("网络错误,请重试!"); console.log(error); }); }, getInputOK() { var that = this; var jys = that.tableData[that.tabActive].checkQyt;//检验项目的检验数 if (jys < that.okValue) { that.$toast.fail("录入数量不能大于检验数!"); that.okValue = null; //that.$refs.okValue.focus(); return; } // 切换指定索引的 popup 状态 var resultValue = "OK-" + this.okValue; this.getInput(resultValue); that.okValue = null; }, getInputNG() { var that = this; var jys = that.tableData[that.tabActive].checkQyt;//检验项目的检验数 if (jys < that.ngValue) { that.$toast.fail("录入数量不能大于检验数!"); that.ngValue = null; //that.$refs.ngValue.focus(); return; } // 切换指定索引的 popup 状态 var resultValue = "NG-" + this.ngValue; this.getInput(resultValue); that.ngValue = null; }, getInput(resultValue) { // 切换指定索引的 popup 状态 var that = this; var guid1 = that.formData.guid;//主表id var mxguid = that.tableData[that.tabActive].guid;//检验项目的guid console.log(that.formData); var input = resultValue;//拼接检验值 that.AxiosHttp("post", 'MesQaItemsDetect01Manager/EdtModel12', { inOrderGuid1: guid1, inOrderGuid5: mxguid, inP1: input,//或者0k-19,或者ng-19 }, true, 1).then(function (res1) { if (res1.rtnCode == 1) { that.$notify({ type: 'success', message: res1.rtnMsg }); that.refreshJYItem();//刷新检验项目 //that.tableData = null; //that.$refs.inputValue.focus(); } else { that.$toast.fail(res1.rtnMsg); } }).catch(function (error) { that.$toast.fail("网络错误,请重试!"); console.log(error); }); }, getInputTZZ() { // 切换指定索引的 popup 状态 var that = this; var mxguid = that.tableData[that.tabActive].guid;//检验项目的guid var input = that.inputValue; that.AxiosHttp("post", 'MesQaItemsDetect01Manager/EditYangLi', { dt05Guid: mxguid, fSeq : "pda", fVal : input, }, true, 1).then(function (res1) { if (res1.rtnData.outSum == 1) { that.$notify({ type: 'success', message: res1.rtnMsg }); that.okValue = null; that.refreshJYItem();//刷新检验项目 //that.handleTabClick();//刷新检验明细面板 //that.$refs.inputValue.focus(); that.inputValue = null; } else { that.$toast.fail(res1.rtnMsg); that.inputValue = null; } }).catch(function (error) { that.$toast.fail("网络错误,请重试!"); that.inputValue = null; }); }, handleTabClick() { console.log(this.tabActive) this.togglePopup(this.tabActive); }, //检验明细刷新 refreshJYItem() { const that = this; return that.AxiosHttp("post", 'LLJ/getJYItem', { releaseNo: that.formData.releaseNo }, false).then(res1 => { const tableData = res1.data.tbBillList || []; that.tableData = tableData; that.handleTabClick();//刷新检验明细面板 }).catch(error => { that.$toast.fail("网络错误,请重试!"); console.error('Refresh error:', error); }); }, //主页面加载 init() { //alert(this.Request("id")); var that = this; that.showButton = false; that.AxiosHttp("post", 'LLJ/getPage', { id: that.Request("id"), pageIndex: 1, limit: 1, }, false) .then(function (res) { let data = res.data.tbBillList[0]; if (data) { that.formData = data; that.AxiosHttp("post", 'LLJ/getJYItem', { //id: that.formData.guid, releaseNo: that.formData.releaseNo }, false).then(function (res1) { let tableData = res1.data.tbBillList //当已检验个数都不为空时按照检测结构排序 tableData.sort((a, b) => { if (a.result === '未完成' && b.result === '合格') { return -1; } else if (a.result === '合格' && b.result === '未完成') { return 1; } else { return 0; } }); that.tableData = tableData; //if (that.tableData.length === 0) { // that.isShowTable = true; //} }).catch(function (error) { that.$toast.fail("网络错误,请重试!"); console.log(error); }); } }) .catch(function (error) { that.$toast.fail("网络错误,请重试!"); console.log(error); }); }, submit() { var that = this; //if (that.formdata.remarks == undefined && that.formdata.fcheckresu == "不合格") { // that.$toast.fail("检验结果为不合格时,需要填写不合格描述!"); // return; //} that.ttrre = true; //that.AxiosHttp("post", 'LLJ/IqcQaSubmit', { // userNo: this.userInfo.loginAccount, // releaseNo: this.formData.releaseNo //}, false).then(function (res1) { // if (res1.status == 1) { // that.$toast.fail(res1.message); // } else { // that.$notify({ type: 'success', message: '提交成功' }); // that.init(); // } // that.ttrre = false //}).catch(function (error) { // that.$toast.fail("网络错误,请重试!"); // that.ttrre = false // console.log(error); //}); that.AxiosHttp("post", 'MesQaItemsDetect01Manager/EditModelSubmit', { guid: that.formData.guid }, true, 1).then(function (res1) { if (res1.rtnCode == 1) { that.$notify({ type: 'success', message: '提交成功' }); that.init(); } else { that.$toast.fail(res1.rtnMsg); } that.ttrre = false }).catch(function (error) { that.$toast.fail("网络错误,请重试!"); that.ttrre = false console.log(error); }); }, removeXJ() { const that = this; // 添加确认弹窗 that.$dialog.confirm({ title: '操作确认', message: '确认要重新加载检验项目吗?', confirmButtonText: '确认', cancelButtonText: '取消' }).then(() => { // 确认回调 that.AxiosHttp("post", 'MesQaItemsDetect01Manager/ReloadModel5', { guid: that.formData.guid }, true, 1).then(res1 => { if (res1.rtnCode == 1) { that.$notify({ type: 'success', message: '重新加载成功' }); that.init(); } else { that.$toast.fail(res1.rtnMsg); } }).catch(error => { that.$toast.fail("网络错误,请重试!"); console.error('Reload error:', error); }); }).catch(() => { // 取消回调 that.$toast('已取消操作'); }); }, GetBack1() { window.history.back(); }, onClickRight() { }, } })