南骏 池
2025-05-29 c35b25fc7b3f039bb525b73b4f72e9e2abf8b5d9
H5/Js/IPQC_SJ/Add.js
@@ -2,6 +2,36 @@
    el: '#app',
    data: function () {
        return {
            tableData: [],      // 生成的表格数据
            formData: {         // 表单数据
            temperatureData: {} // 存储温度数据
            },
            headers: [],
            showZr: false,
            waterOptions: [
                { value: '常温水', text: '常温水' },
                { value: '0℃', text: '0℃' },
                { value: '5℃', text: '5℃' },
                { value: '15℃', text: '15℃' },
                { value: '35℃', text: '35℃' },
                { value: '55℃', text: '55℃' },
                { value: '75℃', text: '75℃' },
                { value: '100℃', text: '100℃' }
            ],
            flowOptions: [
                { value: '100ml', text: '100ml' },
                { value: '200ml', text: '200ml' },
                { value: '300ml', text: '300ml' },
                { value: '400ml', text: '400ml' },
                { value: '500ml', text: '500ml' },
                { value: '600ml', text: '600ml' },
                { value: '700ml', text: '700ml' },
                { value: '800ml', text: '800ml' },
                { value: '900ml', text: '900ml' },
                { value: '1000ml', text: '1000ml' }
            ],
            selectedWater: [],// 已选水温值
            selectedFlow: [],   // 已选流量值
            isLoading: false,
            userInfo: {
                "loginGuid": '',
@@ -40,6 +70,8 @@
            okValue: '',//OK-数量
            ngValue: '',//NG-数量
            showDialog: false,//不良表述输入框
            showDialogRzxx: false,//认证信息输入框
            rzxxValue: '',//认证信息输入值
            //图片上传框
            fileList: [
                //{
@@ -83,17 +115,31 @@
                .replace(/(\..*)\./g, '$1')               // 2. 禁止多个小数点
                .replace(/^\./g, '');    
        },
        //针对没有上下限值的数据,只需选择合格或不合格.按钮触发
        handleQualified(isQualified) {
            if (isQualified) {
                console.log('合格操作');
                // 执行合格相关逻辑
            } else {
                console.log('不合格操作');
                // 执行不合格相关逻辑
            }
        openZrPopup() {
            this.showZr = true;
        },
        closeZrPopup() {
            this.showZr = false;
            this.selectedWater = [];  // 关闭时清空选择
            this.selectedFlow = [];   // 关闭时清空选择
        },
        //针对没有上下限值的数据,只需选择合格或不合格.按钮触发
        handleQualified(isQualified) {
            var input = "";
            if (isQualified) {
                // 执行合格相关逻辑
                 input = "OK-1";
                this.addJyzIpqc(input);
            } else {
                // 执行不合格相关逻辑
                 input = "NG-1";
                this.addJyzIpqc(input);
            }
        },
        togglePopup(index) {
            // 切换指定索引的 popup 状态
            var that = this;
@@ -109,14 +155,6 @@
            }, 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);
@@ -125,105 +163,34 @@
                that.$toast.fail("网络错误,请重试!");
                console.log(error);
            });
        },
        getInputOK() {
            var that = this;
            var jys = that.tableData[that.tabActive].checkQyt;//检验项目的检验数
            if (!that.okValue) {
                this.$toast.fail("OK数不能为空");
                that.isLoading = false;
                return;
            }
            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 (!that.ngValue) {
                this.$toast.fail("NG数不能为空");
                that.isLoading = false;
                return;
            }
            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
            that.isLoading = true;
            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);
                }
                that.isLoading = false;
            }).catch(function (error) {
                that.$toast.fail("网络错误,请重试!");
                that.isLoading = false;
            });
        },
        getInputTZZ() {
        getInputJYZ() {
            // 切换指定索引的 popup 状态
            var that = this;
            if (!that.inputValue) {
                this.$toast.fail("特征值不能为空");
                this.$toast.fail("检验值不能为空");
                that.isLoading = false;
                return;
            }
            that.addJyzIpqc(that.inputValue);
        },
        addJyzIpqc(input) {
            var that = this;
            var guid1 = that.formData.guid;//主表id
            var mxguid = that.tableData[that.tabActive].guid;//检验项目的guid
            var input = that.inputValue;
            that.isLoading = true;
            that.AxiosHttp("post", 'MesQaItemsDetect01Manager/EditYangLi', {
                dt05Guid: mxguid,
                fSeq : "pda",
                fVal : input,
            that.AxiosHttp("post", 'PqcManager/AddIpqcJyz', {
                inOrderGuid1: guid1,
                inOrderGuid5: mxguid,
                inP1: input,//或者0k-19,或者ng-19,或实际检验值
            }, true, 1).then(function (res1) {
                if (res1.rtnData.outSum == 1) {
                if (res1.rtnCode > 0) {
                    that.$notify({
                        type: 'success', message: res1.rtnMsg
                    });
                    that.okValue = null;
                    that.refreshJYItem();//刷新检验项目
                    //that.handleTabClick();//刷新检验明细面板
                    //that.$refs.inputValue.focus();
@@ -247,7 +214,7 @@
        //检验明细刷新
        refreshJYItem() {
            const that = this;
            return that.AxiosHttp("post", 'LLJ/getJYItem', {
            return that.AxiosHttp("post", 'Ipqc/getJYItem', {
                releaseNo: that.formData.releaseNo
            }, false).then(res1 => {
                const tableData = res1.data.tbBillList || [];
@@ -264,7 +231,7 @@
            //alert(this.Request("id"));
            var that = this;
            that.showButton = false;
            that.AxiosHttp("post", 'LLJ/getPage', {
            that.AxiosHttp("post", 'Ipqc/getPageSj', {
                id: that.Request("id"),
                pageIndex: 1,
                limit: 1,
@@ -273,8 +240,8 @@
                    let data = res.data.tbBillList[0];
                    if (data) {
                        that.formData = data;
                        that.remarks = that.formData.remarks;
                        that.AxiosHttp("post", 'LLJ/getJYItem', {
                        that.remarks = that.formData.fnGDesc;
                        that.AxiosHttp("post", 'Ipqc/getJYItem', {
                            //id: that.formData.guid,
                            releaseNo: that.formData.releaseNo
                        }, false).then(function (res1) {
@@ -308,7 +275,7 @@
        submit() {
            var that = this;
            that.ttrre = true;
            that.AxiosHttp("post", 'MesQaItemsDetect01Manager/EditModelSubmit', {
            that.AxiosHttp("post", 'FqcManager/EditModelSubmit', {
                guid: that.formData.guid
            }, true, 1).then(function (res1) {
                if (res1.rtnData.outSum == 1) {
@@ -361,21 +328,30 @@
        updateRemarks(guid) {
            this.showDialog= true
        },
        deleteDetail13(guid13) {
        updateRzxx() {
            this.showDialogRzxx = true
        },
        deleteDetail13(guid12) {
            const that = this;
            var guid1 = that.formData.guid;//主表id
            var mxguid = that.tableData[that.tabActive].guid;//检验项目的guid
            // 添加确认弹窗
            that.$dialog.confirm({
                message: '确认要删除该样本值记录吗?',
                message: '确认要删除该检验值记录吗?',
                confirmButtonText: '确认',
                cancelButtonText: '取消'
            }).then(() => {  // 确认回调
                that.isLoading = true;
                that.AxiosHttp("post", 'Llj/deleteDetail13', {
                    id13: guid13
                }, true, 0).then(res1 => {
                    if (res1.status == 0) {
                        that.$notify({ type: 'success', message: '删除成功' });
                that.AxiosHttp("post", 'PqcManager/DeleteIpqcJyz', {
                    inOrderGuid1: guid1,
                    inOrderGuid5: mxguid,
                    inOrderGuid12: guid12
                }, true, 1).then(res1 => {
                    if (res1.rtnCode > 0) {
                        that.$notify({
                            type: 'success', message: res1.rtnMsg
                        });
                        that.refreshJYItem();//刷新检验项目
                    } else {
                        that.$toast.fail(res1.rtnMsg);
@@ -388,6 +364,32 @@
            }).catch(() => {  // 取消回调
                that.$toast('已取消操作');
                that.isLoading = false;
            });
        },
        rzxxConfirm() {
            var that = this;
            var guid1 = that.formData.guid;//主表id
            var mxguid = that.tableData[that.tabActive].guid;//检验项目的guid
            that.isLoading = true;
            that.AxiosHttp("post", 'Ipqc/updateIpqcRzxx', {
                gid: guid1,
                pid: mxguid,
                inRzxxValue: that.rzxxValue,//输入的认证信息
            }, true, 0).then(function (res) {
                var json = res;
                if (json.status == 0) {
                    that.$notify({ type: 'success', message: '输入成功' });
                    that.refreshJYItem();//刷新检验项目
                }
                else {
                    that.$toast.fail(json.message);
                }
                //that.$notify({ type: 'success', message: json.message });
                that.isLoading = false;
            }).catch(function (error) {
                that.$toast.fail("网络错误,请重试!");
                that.inRzxxValue = null;
                that.isLoading = false;
            });
        },
@@ -503,17 +505,60 @@
                }, true, 0).then(res1 => {
                    if (res1.status === 0) {
                        that.$notify({ type: 'success', message: '删除成功' });
                        that.init();//刷新检验项目
                    } else {
                        that.$toast.fail(res1.rtnMsg);
                    }
                    that.init();//刷新检验项目
                }).catch(error => {
                    that.$toast.fail("网络错误,请重试!");
                });
            }).catch(() => {
                // 取消操作
                that.init();//刷新检验项目
            })
        },
        createTb() {
            // 清空旧数据
            this.tableData = [];
            this.formData.temperatureData = {};
            // 校验选择
            if (this.selectedWater.length === 0 || this.selectedFlow.length === 0) {
                this.$toast.fail('请先选择水温和流量');
                return;
            }
            // 生成表头
            const headers = ['设定温度','实际温度', ...this.selectedFlow.sort().map(f => f )];
            this.headers = headers;
            // 生成行数据
            this.tableData = this.selectedWater.sort((a,b) => a - b).map(water => {
                const row = {
                    temperature: water === '常温水' ? water : water,
                    values: this.selectedFlow.map(flow => ({
                        flow: flow,
                        value: '' // 初始空值
                    }))
                };
                // 初始化表单数据
                this.formData.temperatureData[water] = {};
                this.selectedFlow.forEach(flow => {
                    this.formData.temperatureData[water][flow] = '';
                });
                return row;
            });
            // 自动滚动到表格区域
            setTimeout(() => {
                const tableEl = document.getElementById('temperature-table');
                if (tableEl) tableEl.scrollIntoView({ behavior: 'smooth' });
            }, 100);
        },
    }
})
})