layui-实现上下表,父子表复选框加载事件

layui-实现上下表,父子表复选框加载事件

    • 实现效果说明
    • 代码
      • HTML代码
      • 表格数据加载
      • 监听复选框选择事件
      • 点击表格任意单元格,选中复选框和取消复选框选中
    • 效果图

实现效果说明

点击任意单元格,选中复选框,并加载子表数据,选择多条复选框,加载多个子表数据拼接

代码

HTML代码

//主表
<table class="layui-hide" id="OrderInfoTable" lay-filter="OrderInfoTable"></table>
//子表
<table class="layui-hide layui-tab" id="FileTable" lay-filter="FileTable"></table>

表格数据加载

一定要加 这个复选框 { field: 'checkbox', type: 'checkbox', checked: 'false', width: 30 },

  //主表-表格
table.render({
    id: 'orderTable',
    elem: '#orderTable',
    url: '/Order/GetOrderInfoList', //数据接口
    where: getParams(),  //获取查询参数
    page: true, //开启分页
    height: 450,
    limit: 10,
    toolbar: '#headbar',
    cols: [[ //表头
        { field: 'checkbox', type: 'checkbox', checked: 'false', width: 30 },
        { field: 'OD_ID', title: 'OD_ID', align: 'center', width: 120, hide: true },
        { field: 'OD_STATUE', title: WJ_Dic4Js('订单状态'), align: 'center', width: 150 },
        { field: 'OD_NO', title: WJ_Dic4Js('订单编号'), align: 'center', width: 240 },
        { field: 'OD_FREUGHT_RECEIVABLE', title: WJ_Dic4Js('应收运费'), align: 'center', width: 120 },
        //{ field: 'OD_DECLARE_NO', title: WJ_Dic4Js('报关单号'), align: 'center', width: 160 },
        { field: 'OD_TIME', title: WJ_Dic4Js('业务时间'), align: 'center', width: 160 },
        { field: 'OD_KH_NAME', title: WJ_Dic4Js('客户'), align: 'center', width: 140 },
        { field: 'OD_START_LAND', title: WJ_Dic4Js('始发地'), align: 'center', width: 240 },
        { field: 'OD_END_LAND', title: WJ_Dic4Js('目的地'), align: 'center', width: 240 },
        { field: 'OD_START_LAND_EG', title: WJ_Dic4Js('始发地英文名称'), align: 'center', width: 240 },
        { field: 'OD_END_LAND_EG', title: WJ_Dic4Js('目的地英文名称'), align: 'center', width: 240 },
        { field: 'OD_CAR_COUNT', title: WJ_Dic4Js('车量'), align: 'center', width: 300 },
        { field: 'OD_ISINSURANCE', title: WJ_Dic4Js('是否购买保险'), align: 'center', width: 120 },
        { field: 'OD_EXIT_WAREHOUSE', title: WJ_Dic4Js('出境库房'), align: 'center', width: 120 },
        { field: 'OD_VEHICLE_INSPECTION_DT', title: WJ_Dic4Js('验车时间'), align: 'center', width: 160 },
        { field: 'OD_STORAGE_DT', title: WJ_Dic4Js('入库时间'), align: 'center', width: 160 },
        { field: 'OD_EXITWAREHOUSE_DT', title: WJ_Dic4Js('进监管时间'), align: 'center', width: 160 },
        { field: 'REMARKS', title: WJ_Dic4Js('备注'), align: 'center', width: 100 },
        { field: 'CREATED', title: WJ_Dic4Js('创建时间'), align: 'center', width: 160 },
        { field: 'CREATOR', title: WJ_Dic4Js('创建人'), align: 'center', width: 140 }
    ]],
    parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
        return {
            "code": res.state, //解析接口状态
            "msg": res.message, //解析提示文本
            "count": res.data.total, //解析数据长度
            "data": res.data.rows //解析数据列表
        };
    }, done: function (res, curr, count) {
        WJ_DIC_CHANGE_INNER();

    }
});

//子表-表格
table.render({
    elem: '#OrderCarInfoTable',
    id: 'OrderCarInfoTable',
    page: true, //开启分页
    height: 300,
    limit: 9,
    toolbar: '#headbar1',
    cols: [[ //表头
        { field: 'ODC_ISCHECK', title: WJ_Dic4Js('是否验车'), align: 'center', width: 150 },
        { field: 'ODC_VIN', title: WJ_Dic4Js('车架号'), align: 'center', width: 150 },
        { field: 'ODC_CAR_TYPE', title: WJ_Dic4Js('汽车类型'), align: 'center', width: 180 },
        { field: 'ODC_KEY_TYPE', title: WJ_Dic4Js('汽车钥匙类型'), align: 'center', width: 180 },
        { field: 'ODC_KEY_NUMBER', title: WJ_Dic4Js('钥匙柜号'), align: 'center', width: 180 },
        { field: 'ODC_CAR_COLOUR', title: WJ_Dic4Js('车辆颜色'), align: 'center', width: 180 },
        { field: 'ODC_CAR_POWER', title: WJ_Dic4Js('车辆功率'), align: 'center', width: 180 },
        { field: 'ODC_CATEGORY', title: WJ_Dic4Js('汽车品类'), align: 'center', width: 180 },
        { field: 'ODC_CAR_ACCESSORY', title: WJ_Dic4Js('车辆配件'), align: 'center', width: 180 },

        { field: 'REMARKS', title: WJ_Dic4Js('备注'), align: 'center', width: 100 },
        { field: 'CREATED', title: WJ_Dic4Js('创建时间'), align: 'center', width: 160 },
        { field: 'CREATOR', title: WJ_Dic4Js('创建人'), align: 'center', width: 140 },
        { field: 'LASTMODIFIED', title: WJ_Dic4Js('操作时间'), align: 'center', width: 160 },
        { field: 'LASTMODIFIER', title: WJ_Dic4Js('操作人'), align: 'center', width: 140 },
        { title: WJ_Dic4Js('操作'), align: 'center', toolbar: '#rowsbar1', width: 280, fixed: 'right' }
    ]],
    parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
        return {
            "code": res.state, //解析接口状态
            "msg": res.message, //解析提示文本
            "count": res.data.total, //解析数据长度
            "data": res.data.rows //解析数据列表
        };
    }, done: function (res, curr, count) {
        WJ_DIC_CHANGE_INNER();

    }
});


监听复选框选择事件

table.on('checkbox(orderTable)', function (obj) {
    var check = table.checkStatus('orderTable');
    if (obj.checked == true) {
    	//改变当前tr背景颜色和字体颜色
        $(obj.tr.selector).attr({ "style": "background:#c2c2c2;" });

    } else {
        $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
    }
    var ids = "";
    for (var i = 0; i < check.data.length; i++) {
        ids += check.data[i].OD_ID + ',';
        quanju = ids;
        if (check.data[0].OD_STATUE != check.data[i].OD_STATUE) {
            fnLayui.alert('请选择相同状态的订单');
        }
    }
    if (ids != null && ids != '') {
        HttpGet("/Order/GetOrderCarInfoList", { orderId: ids }, function (res) {
            table.reload('OrderCarInfoTable', { data: res.data.rows });
        })

    } else {
        table.reload('OrderCarInfoTable', { data: [] });
    }

     obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
});

点击表格任意单元格,选中复选框和取消复选框选中

   //点击表格任一单元格,默认选中复选框
$(document).on("click", ".layui-table-body table.layui-table tbody tr", function (data) {
        var obj = event ? event.target : event.srcElement;
        var tag = obj.tagName;
        var checkbox = $(this).find("td div.laytable-cell-checkbox div.layui-form-checkbox I");
        if (checkbox.length != 0) {
            if (tag == 'DIV') {
                checkbox.click();
            }
        }
    });

    //取消选中
$(document).on("click", "td div.laytable-cell-checkbox div.layui-form-checkbox", function (e) {
        e.stopPropagation();
    });

效果图

选中一行
在这里插入图片描述
选中两行
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 20XX控制台程序鼠标点击阻塞问题

文章目录 方法一方法二 在Visual Studio 20xx编写的控制台程序中&#xff0c;当鼠标点击控制台时&#xff0c;会阻塞控制台程序运行&#xff0c;不按回车无法继续运行。 方法一 右击控制台标题栏&#xff0c;选择属性&#xff0c;去掉快速编辑模式(Q)的勾选&#xff0c;如&…

政安晨:政安晨:机器学习快速入门(三){pandas与scikit-learn} {模型验证及欠拟合与过拟合}

这一篇中&#xff0c;咱们使用Pandas与Scikit-liarn工具进行一下模型验证&#xff0c;之后再顺势了解一些过拟合与欠拟合&#xff0c;这是您逐渐深入机器学习的开始&#xff01; 模型验证 评估您的模型性能&#xff0c;以便测试和比较其他选择。 在上一篇中&#xff0c;您已经…

橘子学linux调优之工具包的安装

今天在公司无聊的弄服务器&#xff0c;想着有些常用的工具包安装一下&#xff0c;这里就简单记录一下。 一、sysstat的安装和使用 1、安装 我是通过源码的方式安装的&#xff0c;这样的好处在于可以自由选择你的版本&#xff0c;很直观。 直接去github上找到sysstat的地址&a…

P1131 [ZJOI2007] 时态同步

题目描述 小 Q 在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成&#xff0c;我们不妨称之为节点&#xff0c;并将其用数字 1,2,3⋯1,2,3⋯ 进行标号。电路板的各个节点由若干不相交的导线相连接&#xff0c;且对于电路板的任何两个节点&#xff0c;都存在且仅存…

回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | Matlab实现OOA-CNN-LSTM-Attention鱼鹰算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&…

若依整合mybatis-plus

文章目录 1.注释掉原本的MybatisConfig2. 将mybatis的配置文件改为mybatis-plus文件 ##前言 出先下列异常&#xff1a; 请求地址’/prod-api/user’,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.web.mapper.Us…

PHP客服系统-vue客服聊天系统

PHP-Vue客服聊天系统是一款高效、灵活的客户服务解决方案&#xff0c;基于ThinkPHP6、Vue3和Workerman(Gateworker)框架开发&#xff0c;专为单商户场景打造。 系统亮点&#xff1a; 分布式部署支持&#xff0c;轻松应对高并发场景&#xff1b;本地消息存储功能&#xff0c;确…

js中typeof 与 instanceof 的区别

文章目录 一、typeof二、instanceof三、区别 一、typeof typeof 操作符返回一个字符串&#xff0c;表示未经计算的操作数的类型 使用方法如下&#xff1a; typeof operand typeof(operand)operand表示对象或原始值的表达式&#xff0c;其类型将被返回 举个例子&#xff1a;…

网络爬虫,使用存放在C的谷歌驱动报错

月 06, 2024 11:43:40 上午 org.openqa.selenium.os.OsProcess checkForError 严重: org.apache.commons.exec.ExecuteException: Execution failed (Exit value: -559038737. Caused by java.io.IOException: Cannot run program "C:\chromedriver121.exe" (in dir…

nvm安装node后,npm无效

类似报这种问题&#xff0c;是因为去github下载npm时下载失败&#xff0c; Please visit https://github.com/npm/cli/releases/tag/v6.14.17 to download npm. 第一种方法&#xff1a;需要复制这里面的地址爬梯子去下载&#xff08;github有时不用梯子能直接下载&#xff0c;有…

远程主机可能不符合 glibc 和 libstdc++ Vs Code 服务器的先决条件

vscode连接远程主机报错&#xff0c;原因官方已经公布过了&#xff0c;需要远程主机 glibc>2.28&#xff0c;所以Ubuntu18及以下版本没法再远程连接了&#xff0c;其他Linux系统执行ldd --version查看glibc版本自行判断。 解决方案建议&#xff1a; 不要再想升级glibc了 问题…

完全背包理论基础 C++力扣题目518--零钱兑换II

动态规划&#xff1a;完全背包理论基础 本题力扣上没有原题&#xff0c;大家可以去卡码网第52题 (opens new window) #思路 #完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff0…

华为环网双机接入IPTV网络部署案例

环网双机接入IPTV网络部署案例 组网图形 图2 环网双机场景IPTV基本组网图 方案简介配置注意事项组网需求数据规划配置思路操作步骤配置文件 方案简介 随着IPTV业务的迅速发展&#xff0c;IPTV平台承载的用户也越来越多&#xff0c;用户对IPTV直播业务的可靠性要求越来越高。…

C++泛编程(4)

类模板高级&#xff08;1&#xff09; 1.类模板具体化部分具体化完全具体化 2.类模板与继承 1.类模板具体化 有了函数模板具体化的基础&#xff0c;学习类模板的具体化很简单。类模板具体化有两种方式&#xff0c;分别为部分具体化和完全具体化。假如有类模板&#xff1a; te…

ywtool inspect命令

一.巡检介绍 日巡检是通过定时任务每天凌晨2点30进行巡检周巡检时通过定时任务每周日的凌晨3点进行巡检日巡检内容: (1)系统信息检查(2)网络检查(3)CPU检查(4)内存检查(5)硬盘检查(6)服务检查(7)昨天登陆成功主机记录(8)JDK检查(9)NTP检查(10)syslog检查(11)SNMP检查(12)SSH检…

低代码与MES系统相结合

​低代码平台通常是指aPaaS平台&#xff0c;通过为开发者提供可视化的应用开发环境&#xff0c;降低或去除应用开发对原生代码编写的需求量&#xff0c;进而实现便捷构建应用程序的一种解决方案。 更加简单点的理解就是“拖拽&#xff01;搭建应用”。 一、低代码开发平台概述 …

使用 Python、Elasticsearch 和 Kibana 分析波士顿凯尔特人队

作者&#xff1a;来自 Jessica Garson 大约一年前&#xff0c;我经历了一段压力很大的时期&#xff0c;最后参加了一场篮球比赛。 在整个过程中&#xff0c;我可以以一种我以前无法做到的方式断开连接并找到焦点。 我加入的第一支球队是波士顿凯尔特人队。 波士顿凯尔特人队是…

【Web】小白也能看懂的BeginCTF个人wp(全)

纯萌新&#xff0c;贴出自己的wp&#xff0c;一起交流学习QWQ 目录 zupload zupload-pro zupload-pro-plus zupload-pro-plus-max zupload-pro-plus-max-ultra zupload-pro-plus-max-ultra-premium zupload-pro-revenge zupload-pro-plus-enhanced POPgadget sql教…

ant-design-vue表格嵌套子表格,实现子表格有数据才显示左侧加号图标

ant-design-vue表格嵌套子表格&#xff0c;实现子表格有数据才显示左侧加号图标 通过使用插槽的方式&#xff0c;以下为全部项目的代码&#xff0c;关键的代码就两块&#xff0c;看注释 <template><a-card><a-form class"kit_form" ref"formRef…

(已解决)vue+element-ui实现个人中心,仿照原神

差一个个人中心页面&#xff0c;看到了这个博主的个人中心&#xff0c;真的很不错 地址&#xff1a;vueelement仿原神实现好看的个人中心 最终效果&#xff1a;