南骏 池
2025-05-30 0b3b3c54a8a6e4012cea104f1c63965215daeff2
H5/Js/IPQC_SJ/Add.js
@@ -6,6 +6,7 @@
            formTbData: {         // 表单数据
            temperatureData: {} // 存储的实际温度、实际流量数据
            },
            indexZrxx:0,//制热性能index
            headers: [],
            showZr: false,
            waterOptions: [
@@ -39,8 +40,8 @@
                { value: '550ml', text: '550ml' },
                { value: '750ml', text: '750ml' },
                { value: '999ml', text: '999ml' },
                { value: '1min', text: '一分钟流量' },
                { value: '3min', text: '三分钟流量' }
                { value: '一分钟流量', text: '一分钟流量' },
                { value: '三分钟流量', text: '三分钟流量' }
            ],//流量选项
            selectedWater: [],// 已选水温值
            selectedFlow: [],   // 已选流量值
@@ -129,16 +130,16 @@
        },
        openZrPopup() {
        openZrPopup(index) {
            this.showZr = true;
            this.indexZrxx = this.tabActive;
            this.loadTableConfig();
        },
        closeZrPopup() {
            this.showZr = false;
            this.selectedWater = [];  // 关闭时清空选择
            this.selectedFlow = [];   // 关闭时清空选择
            // this.selectedWater = [];  // 关闭时清空选择
            // this.selectedFlow = [];   // 关闭时清空选择
        },
        //针对没有上下限值的数据,只需选择合格或不合格.按钮触发
        handleQualified(isQualified) {
            var input = "";
@@ -548,7 +549,7 @@
            const headers = [
                '设定温度', 
                '实际温度(℃)', 
                ...this.selectedFlow.sort().map(f => `流量${f}`)
                ...this.selectedFlow.sort().map(f => `${f}`)
            ];
            this.headers = headers;
            console.log(this.headers);
@@ -580,5 +581,90 @@
            }, 100);
            console.log(this.formTbData);
        },
        // 新增保存配置方法
        saveTableConfig() {
            const that = this;
            that.isLoading = true;
            that.AxiosHttp("post", 'Ipqc/SaveTableConfig', {
                selectedWater: (that.selectedWater),
                selectedFlow: (that.selectedFlow),
                tableData: (that.formTbData.temperatureData),
                mxguid: that.tableData[that.indexZrxx].guid // 使用主表ID关联
            }, true).then(res1 => {
                if (res1.status === 0) {
                    that.$notify({ type: 'success', message: '配置保存成功' });
                } else {
                    that.$toast.fail(res1.rtnMsg);
                }
                that.isLoading = false;
            }).catch(error => {
                that.$toast.fail("网络错误,请重试!");
                that.isLoading = false;
            });
        },
        // 新增加载配置方法
        loadTableConfig() {
            const that = this;
            that.isLoading = true;
            var mxguid =  that.tableData[that.indexZrxx].guid;
            that.AxiosHttp("post", 'Ipqc/GetTableConfig', {
                mxguid: mxguid,
            }, true).then(res1 => {
                if (res1.status === 0 && res1.data) {
                    // 解析存储的数据
                    that.selectedWater = JSON.parse(res1.data.selectedWater || '[]');
                    that.selectedFlow = JSON.parse(res1.data.selectedFlow || '[]');
                    that.formTbData.temperatureData = JSON.parse(res1.data.tableData || '{}');
                    // 调用新的渲染方法
                    this.renderExistingTable();
                }
                that.isLoading = false;
            }).catch(error => {
                that.isLoading = false;
                that.$toast.fail("加载配置失败");
            });
        },
        // 新增渲染已有数据表格的方法
        renderExistingTable() {
            const that = this;
            console.log(that.formTbData.temperatureData);
            // 从现有数据反向推导选择项
            const existingWaters = Object.keys(that.formTbData.temperatureData);
            const existingFlows = existingWaters.length > 0
                ? Object.keys(that.formTbData.temperatureData[existingWaters[0]])
                    .filter(k => k !== 'temp')
                : [];
            // 生成表头(保留原始createTb的格式)
            that.headers = [
                '设定温度',
                '实际温度(℃)',
                ...existingFlows.map(f => `${f}`)
            ];
            // 生成行数据(保留原始结构)
            that.tableTbData = existingWaters.map(water => {
                const values = that.formTbData.temperatureData[water];
                return {
                    temperature: water,
                    values: Object.fromEntries([
                        ['temp', values.temp || ''],
                        ...existingFlows.map(flow => [flow, values[flow] || ''])
                    ])
                };
            });
            console.log(that.formTbData.temperatureData);
            // 保留原始滚动逻辑
            setTimeout(() => {
                const tableEl = document.getElementById('temperature-table');
                if (tableEl) tableEl.scrollIntoView({ behavior: 'smooth' });
            }, 100);
            console.log(that.formTbData.temperatureData);
        },
    }
})