DataTables.js综合应用开发(ajax筛选查询、同列数据汇总、环比数据)

news2025/3/9 21:27:41

在这里插入图片描述

筛选数据

    <!--筛选数据-->
    <div class="layui-card" style="margin-bottom: 50px;">
        <div class="layui-row">
            <form class="layui-form layui-col-md12" style="margin: 10px;">
                <div class="demoTable" style="width: 100%;">
                    <div class="layui-input-inline">
                        <select name="sensorStatusVal" id="sensorStatusVal" class="layui-input">
                            <option value="">运行状态</option>
                            <option value="正常">正常</option>
                            <option value="告警">告警</option>
                            <option value="离线">离线</option>
                        </select></div>
                    <div class="layui-input-inline">
                        <input type="text" class="layui-input" placeholder="区域" id="sub_region" autocomplete="off">
                    </div>
                    <div class="layui-input-inline">
                        <input type="text" class="layui-input" placeholder="班级名称" id="device" autocomplete="off">
                    </div>
                    <a class="layui-btn layui-btn-normal" id="searchBtn"><i class="layui-icon layui-icon-search"></i> 查询</a>
                    <a class="layui-btn" id="reload"><i class="layui-icon layui-icon-refresh-1"></i> 刷新</a>
                </div>
            </form>
        </div>
    </div>

Table构建

<!--数据表格-->
    <table id="example" class="display panel" role="grid" aria-describedby="example_info" style="width: 98%;border: 1px #b1b1b1 solid;">
        <thead>
        <tr align="center">
            <td class="tablebg1" colspan="3">电能数据分析表</td>
            <td colspan="7" class="tablebg2">月电量 <span style="color: #e60000;font-size: 10px;"> kW·h</span></td>
            <td colspan="4" class="tablebg1">年电量 <span style="color: #e60000;font-size: 10px;"> kW·h</span></td>
            <td colspan="3" class="tablebg2">电流 <span style="color: #e60000;font-size: 10px;">A</span></td>
            <td class="tablebg1">功率<span style="color: #e60000;font-size: 10px;"> kW</span></td>
            <td class="tablebg2"></td>
            <td class="tablebg1"></td>
        </tr>
        <tr align="center" style="font-weight: bold;">
            <td class="tablebg2" colspan="3">合计</td>
            <td class="tablebg1" id="mt0"></td>
            <td class="tablebg2" id="mt1"></td>
            <td class="tablebg2" id="mt2"></td>
            <td class="tablebg2" id="mt_diff"></td>
            <td class="tablebg1" id="mt3"></td>
            <td class="tablebg2" id="mt4"></td>
            <td class="tablebg1" id="mt5"></td>
            <td class="tablebg2" id="yt0"></td>
            <td class="tablebg1" id="yt1"></td>
            <td class="tablebg1" id="yt2"></td>
            <td class="tablebg1" id="yt_diff"></td>
            <td class="tablebg2"></td>
            <td class="tablebg2"></td>
            <td class="tablebg2"></td>
            <td class="tablebg1"></td>
            <td class="tablebg2"></td>
            <td class="tablebg1"></td>
        </tr>
        <tr align="center">
            <td class="tablebg1">序号</td>
            <td class="tablebg1">位置</td>
            <td class="tablebg2">区域</td>
            <td class="tablebg1">2023.09</td>
            <td class="tablebg2">2023.08</td>
            <td class="tablebg2">2023.07</td>
            <td class="tablebg2">月环比</td>
            <td class="tablebg1">2023.06</td>
            <td class="tablebg2">2023.05</td>
            <td class="tablebg1">2023.04</td>
            <td class="tablebg2">2023年</td>
            <td class="tablebg1">2022年</td>
            <td class="tablebg1">2021年</td>
            <td class="tablebg1">年环比</td>
            <td class="tablebg2">A相</td>
            <td class="tablebg2">B相</td>
            <td class="tablebg2">C相</td>
            <td class="tablebg1">电功率</td>
            <td class="tablebg2">数据时间</td>
            <td class="tablebg1">详情</td>
        </tr>
        </thead>
        <tbody></tbody>
    </table>

筛选事件

        //筛选加载
        $("#searchBtn").click(function () {
            $('#example').dataTable().fnClearTable();
            $('#example').dataTable().fnDestroy();
            var device = $("#device").val();
            var sub_region = $("#sub_region").val();
            var sensorStatusVal = $("#sensorStatusVal").val();

            //console.log(device, sub_region, sensorStatusVal);
            //加载数据;
            getTables(device, sub_region, sensorStatusVal);
        });

        //默认加载表格
        getTables('', '', '');
    });

汇总计算并赋值

 //02.求和并赋值;
                    var mt0 = calculateSum(json, "prev_0_month_val_diff")
                    var mt1 = calculateSum(json, "prev_1_month_val_diff");
                    var mt2 = calculateSum(json, "prev_2_month_val_diff");
                    var mt3 = calculateSum(json, "prev_3_month_val_diff");
                    var mt4 = calculateSum(json, "prev_4_month_val_diff");
                    var mt5 = calculateSum(json, "prev_5_month_val_diff");
                    //console.log(sum1);
                    $("#mt0").html(keepDecimal(mt0, 2));
                    $("#mt1").html(keepDecimal(mt1, 2));
                    $("#mt2").html(keepDecimal(mt2, 2));
                    $("#mt_diff").html(checkDifference(mt1, mt2, ""));
                    $("#mt3").html(keepDecimal(mt3, 2));
                    $("#mt4").html(keepDecimal(mt4, 2));
                    $("#mt5").html(keepDecimal(mt5, 2));

                    var yt0 = calculateSum(json, "prev_0_yeal_val_diff")
                    var yt1 = calculateSum(json, "prev_1_yeal_val_diff");
                    var yt2 = calculateSum(json, "prev_2_yeal_val_diff");
                    //console.log(sum1);
                    $("#yt0").html(keepDecimal(yt0, 2));
                    $("#yt1").html(keepDecimal(yt1, 2));
                    $("#yt2").html(keepDecimal(yt2, 2));
                    $("#yt_diff").html(checkDifference(yt1, yt2, ""));

表格渲染

   //03.渲染表格
                    $('#example').DataTable({
                        dom: '<"searchBox"l>t<"dtPage"i>p',//控件位置f
                        //scrollX: true,
                        bFilter: true,//过滤搜索
                        pagingType: "first_last_numbers",//分页样式
                        pageLength: 15,//默认显示条数;
                        bPaginate: true,//分页总开关
                        //destroy: true,
                        lengthMenu: [15, 25, 50, 75, 100, 200],
                        language: {
                            emptyTable: '没有数据',
                            loadingRecords: '加载中...',
                            processing: '查询中...',
                            search: '搜索:',
                            lengthMenu: '每页 _MENU_ 条数据',
                            zeroRecords: '没有数据',
                            paginate: {
                                'first': '首页',
                                'last': '尾页',
                                'next': '下一页',
                                'previous': '上一页'
                            },
                            info: '共计:_TOTAL_ 条数据',
                            infoEmpty: '没有数据',
                            infoFiltered: '(过滤 _MAX_ 条)',
                        }
                    });

皮坑指南

DataTable 的实例一旦创建,就不能重新初始化

  1. 检查DataTable的初始化代码:确保你正确地初始化了DataTable,并且传递了正确的参数。你可以查看DataTable.js的文档或示例代码,以确保你按照正确的方式进行初始化。
  2. 检查数据格式:确保你提供给DataTable的数据格式是正确的。DataTable.js通常要求数据以特定的格式进行传递,例如JSON格式。你可以检查数据是否按照正确的格式进行组织。
  3. 检查依赖项:确保你已经包含了DataTable.js所需的所有依赖项。在某些情况下,DataTable.js可能需要其他库或插件来正常工作。你可以查看DataTable.js的文档,了解它所需的依赖项,并确保你已经正确地加载了它们。
  4. 代码是在DataTable.js 1.10.21版本测试通过,但是有时候更新到最新版本可能会解决一些问题。尝试升级DataTable.js到最新版本,并查看是否有任何改进。
  5. 检查浏览器兼容性:确保你使用的浏览器支持DataTable.js库。某些旧版本的浏览器可能不支持一些JavaScript特性或库。尝试在不同的浏览器中测试你的代码,以确定是否存在兼容性问题。

@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百望云蝉联2023「Cloud 100 China 」榜单 综合实力再获认可

9月7日&#xff0c;2023 Cloud 100 China 榜单于上海中心正式发布&#xff0c;榜单由靖亚资本与崔牛会联合推出&#xff0c;百望云凭借着过硬的综合实力与卓越的技术创新能力&#xff0c;再次荣登榜单&#xff0c;位居第六位。 本届评选&#xff0c;Top 100 企业的数据指标的权…

EMC滤波器对DC电源模块影响有多大?

BOSHIDA EMC滤波器对DC电源模块影响有多大&#xff1f; 随着电子设备的广泛应用&#xff0c;EMC&#xff08;电磁兼容性&#xff09;问题越来越受到关注。而EMC滤波器作为一种常见的电路器件&#xff0c;其作用在于抑制电源的干扰和防止外界干扰的影响。在DC电源模块的设计中&…

直击永悦科技半年报:双轮驱动下的“增长曲线”

詹姆斯卡斯的著作《有限与无限的游戏》中&#xff0c;传递出这样一种观点&#xff1a; “有限的游戏&#xff0c;其目的在于赢得胜利&#xff1b;无限的游戏&#xff0c;却旨在让游戏永远进行下去。有限的游戏在边界内玩&#xff0c;无限的游戏玩的就是边界。” 企业要实现持…

ME21N 采购订单新增页签增强

1、实现效果 根据客制化需求&#xff0c;要在采购订单中新增大量字段&#xff0c;所以要在界面上添加一个单独的页签。效果如下&#xff1a; 2、增强实现 2.1、增强结构 因为是在抬头上边添加&#xff0c;所以增强CI_EKKODB结构 2.2、函数组 仿照Function Group MEPOBADIEX…

vue 项目npm 打包遇到的一些bug记录

问题场景 &#xff1a;npm 的版本正确&#xff0c;nodejs 的版本也是正常的&#xff0c;之前npm run build 打包都正常没问题&#xff0c;但是因为其他原因电脑重装了&#xff0c;环境重新配置了。npm run dev 跑没问题,打包就报错了&#xff0c;信息如下&#xff1a; rc/util…

Java从入门到精通-数组(三)

0. 数组 1. 数组概述 练习1&#xff1a; 创建一个整数数组&#xff0c;存储喜欢的5个数字&#xff0c;并编写代码打印出这些数字。 创建一个整数数组 public class Main {public static void main(String[] args) {// 创建一个整数数组&#xff0c;存储5个喜欢的数字int[] f…

G4学术期刊《中学教学参考》简介及投稿要求

G4学术期刊《中学教学参考》简介及投稿要求 《中学教学参考》为广西教育学院杂志社主办的国内外公开发行刊物&#xff0c;坚持为基础教育服务的宗旨&#xff0c;竭诚为全国教育工作者服务&#xff0c;提供最新教改信息和教育理论成果&#xff0c;为广大教育工作者交流经验、发…

python系列:requests库+BS4库及综合实例

仅供学习、交流使用&#xff0c;不具有任何商业用途&#xff0c;如有问题请及时联系我们以作处理。 文章目录 前言requests安装使用第一种 requests.request("请求方式", ...)第二种 requests.请求方式(参数)URL中传递参数 paramsxx响应内容 r.text二进制响应内容 r.…

从零开始的PICO教程(1)Pico游戏开发项目配置

从零开始的PICO教程&#xff08;1&#xff09;Pico游戏开发项目配置 文章目录 从零开始的PICO教程&#xff08;1&#xff09;Pico游戏开发项目配置一、前言1、大纲 二、成为Pico开发者1、注册 PICO 开发者帐号2、创建组织3、创建应用 三、导入PICO的SDK1、PICO设备开启 “开发者…

一文了解数据科学Notebook

编者按&#xff1a; 主要介绍什么是Notebook&#xff0c;Notebook在数据科学领域的应用的重要性与优势&#xff0c;以及数据科学家/算法团队在选择Notebook时需考虑哪些关键因素。同时&#xff0c;基于Notebook的筛选考量维度&#xff0c;对常见的Notebook进初步对比分析&#…

volatile、ReentrantLock和synchronized保证线程可见性原理

主存、工作内存 在了解什么是线程可见性前&#xff0c;我们先来简单了解下 Java内存模型 的主存、工作内存抽象概念 主存&#xff1a; 存储的是一些共享资源的存储位置&#xff08;例如静态变量等&#xff09; 工作内存&#xff1a; 每个线程对应的栈内存对应的私有局部…

JAVASE 游戏

朴素的拼图游戏&#xff0c;通过WASD移动&#xff0c;我自己都不太会&#xff0c;可以通过篡改内部代码来取得想要的成功彩蛋 代码&#xff1a; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.…

如何使用autotools制作Makefile

本文将通过一个例子介绍如何使用autotools制作Makefile&#xff0c;最终运行可执行文件。 本例子中使用的源代码a.c如下。 #include "stdio.h" void main() {int a,b;int c;printf("请输入两个数&#xff1a;\n");scanf("%d %d",&a,&b)…

大数据课程L3——网站流量项目的系统搭建

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的运行环境; ⚪ 了解网站流量项目的日志采集系统搭建; ⚪ 了解网站流量项目的离线业务系统搭建; ⚪ 了解网站流量项目的Hive做离线数据处理; ⚪ 了解网站流量项目的…

盲打键盘的正确指法指南

简介 很多打字初学者&#xff0c;并不了解打字的正确指法规范&#xff0c;很容易出现只用两根手指交替按压键盘的“二指禅”情况。虽然这样也能实现打字&#xff0c;但是效率极低。本文将简单介绍盲打键盘的正确指法&#xff0c;以便大家在后续的学习和工作中能够提高工作效率…

Nacos安装及在项目中的使用

目录 概要一、安装 Nacos1、下载 Nacos2、解压3、启动 Nacos 服务器4、自定义Nacos启动脚本5、访问Nacos Web控制台 二、Nacos----服务注册与发现1、添加 Nacos 依赖2、配置 Nacos 服务器地址3、使用 Nacos 注册服务4、启动服务 三、Nacos----配置管理1、创建配置数据2、从 Nac…

技师学院物联网实训室建建设方案

一、概述 1.1专业背景 物联网&#xff08;Internet of Things&#xff09;被称为继计算机、互联网之后世界信息产业第三次浪潮&#xff0c;它并非一个全新的技术领域&#xff0c;而是现代信息技术发展到一定阶段后出现的一种聚合性应用与技术提升&#xff0c;是随着传感网、通…

深圳站WOT全球技术创新大会2023,精彩即将开启!

前几天刷屏的“中国大模型顶流群聊笔记”想必很多人都看到了&#xff0c;包括百川智能创始人&CEO王小川&#xff0c;创新工场董事长、零一万物创始人李开复&#xff0c;澜舟科技CEO周明在内的20多位中国大模型领域模型层、工具层、应用层的“顶流”们&#xff0c;在西溪湿地…

【校招VIP】专业课考点之死锁

考点介绍&#xff1a; 在两个或者多个并发进程中&#xff0c;如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源&#xff0c;在未改变这种状态之前都不能向前推进&#xff0c;称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的…

使用Python和BeautifulSoup提取网页数据的实用技巧

在数据驱动的时代&#xff0c;获取网页数据并进行分析和处理是一项重要的任务。Python作为一门强大的编程语言&#xff0c;在处理网页数据的领域也表现出色。本文将分享使用Python和BeautifulSoup库提取网页数据的实用技巧&#xff0c;帮助你更高效地获取和处理网页数据。 1、了…