若依框架 --- ruoyi 表格的设置

表格

字典值转换

(1) 方式1:使用字典枚举的方式

var isDownload = [[${@dict.getType('YES_OR_NO')}]];

{
    field : 'isDownload',
    title : '是否允许下载',
      formatter: function(value, row, index) {
        return $.table.selectDictLabel(isDownload, value);
      }
},

(2) 方式2:自定义方法处理,在自定义方法中根据输入值返回指定内容

{
    field: 'cacheSync',
    title: '缓存同步结果',
      formatter: function (value, row, index) {
        return cacheSyncLabel(value);
      }
},
  
function cacheSyncLabel(value){

    return xxx;
}

表格 设置单选/多选

单选/多选通过首列属性控制:

var options = {
    url: prefix + "/list",
    clickToSelect:true,		//行选中模式
    columns: [{
        radio: true		//单选
        //checkbox: true		//多选
    },{
        xxx
    }]
}

表格 添加 tooltips

表格自带 tooltips 功能,如下方式使用:

{
  field: 'aliasName',
  title: '别名',
  formatter:function(value,row,index){
    return $.table.tooltip(value);
  }
},

但是自带的 tooltips 显示可能存在下面的问题:

1.纯英文/纯数字 显示不全问题: gitee.com/y_project/R…

2.设置展示宽度:gitee.com/y_project/R…

3.无法换行:gitee.com/y_project/R…

表格 内容自动换行 

设置不自动换行:gitee.com/y_project/R…

表格 对特定内容行添加背景色

 在需要添加背景色的单元格上,添加如下代码即可。但是下面的代码只能控制单个单元格变色,如果想要整行都变色,则需要每个列上都添加。

{
    field : 'startTime',
    title : '开始时间',
    cellStyle: function(value, row, index) {
        var date = Date.now()
        if((row.startTime < date)){
            return {css:{"background-color": "#CAFFFF"}};
        }else{
            return {css:{"background-color": "#FFFFFF"}};
        }
    }
},

表格 获取选中行的整行数据

很奇怪的是,若依中没有提供获取整行数据的这个功能,不过可以自己修改源码,添加一个。参考:blog.csdn.net/qq_34854237…

在 ry-ui.js 源码中,自己添加方法如下:因为可能选中多行,所以返回的是 row[] 数组。

// 查询表格指定行
selectRow: function() {
  var rows = $.map($("#" + table.options.id).bootstrapTable('getSelections'), function (row) {
    return row;
  });
  return rows;
},

然后在代码中使用:

// 获取所有选中的行
var rows = $.table.selectRow();

表格 指定字段添加详情超链接

实现功能:直接点击标题即可以进入详情页。

代码如下:

{
    field : 'title',
    title : '标题',
    formatter: function (value, row, index) {
        var href = "";
        if (!!value) {
            href = '<a href="javascript:void(0);" onclick="openDetail('' + row.id + '')"';
             href += ' >';
             href += value;
             href += '</a>';
        }
        return href;
    }
},

当然了,点击方法 openDetail 还要自己去实现一下。

表格 字段值添加徽章

效果如下:

实现代码如下:手动进行判断

 {
     field : 'baseinfoUpadte',
     title : '内容更新状态',
     formatter: function(value, row, index) {
         if (value == 1) {   // 已更新
             return "<span class='badge badge-danger'>" + $.table.selectDictLabel(baseinfoUpadte, value) + "</span>";
         }
         return $.table.selectDictLabel(baseinfoUpadte, value);
     }
 },

 表格 默认查询添加查询条件

如下方式,给表格的列表查询添加额外查询条件。

var options = {
    url: prefix + "/list",
    queryParams: queryParams,
    ...
}
  
function queryParams(params) {
    var search = $.table.queryParams(params);
    search.columnId = $("#columnId").val();
    search.datasetId = $("#datasetId").val();
    return search;
}

表格 按指定字段排序

在需要排序的字段下添加 sortable: true 即可。

{
    field : 'startTime',
    title : '开始时间',
    sortable: true			// 该字段支持排序
},

这样,点击排序时,发送的请求会携带排序字段参数,进行查询,非常方便。

表格 表格行按条件默认选中 & 分页记录选中项

如果需要,表格项按条件默认选中,且存在分页,则需要如下处理:

1.全端使用 set 维护所有被选中的记录

// 所有已经选中的, 接收数据
var videoKeywordData = [[${checkVal}]]
// 所有已经选中的, eg: 1-43289, 2-43527
var set = new Set();
// 所有已经选中的影片名字
var nameSet = new Set();
if(!!videoKeywordData){
  var arr = videoKeywordData.split(",");
  for(var i = 0; i < arr.length; i++){
    set.add(arr[i]);
  }
}

2.表格上增加是否选中的判断,禁用全选

$(function() {
  var options = {
    url: prefix + "/videoList",
    modalName: "影片列表",
    clickToSelect:true,
    uniqueId: 'movieId', 
    rememberSelected: true,     // 分页记住所选项
    columns: [{
      field: 'state',     // 名字必须是这个
      checkbox: true,
      formatter: function (value, row, index) {
        // 自己根据条件判断是否需要被选中
        var key = row.vtype + "-" + row.movieNum;
        var flag = set.has(key);
        if(flag){
          nameSet.add(key + "," + row.movieTitle);
          return { checked : true };
        }
        return { checked : false };
      }
    },
    {
       field : 'movieNum',
       title : '影片编码'
    }]
  };
  $.table.init(options);

  // 禁止全选
  $("input[name='btSelectAll']").attr("type","hidden");	// 这种方式是不支持全选操作的,没办法处理全选,所以直接禁用
});

3.添加选中/取消选中事件

    // 取消选中
    $("#bootstrap-table").on("uncheck.bs.table uncheck-all.bs.table", function (e, rows) {
        if(rows.length > 0) {
            for (var index in rows) {
                var key = rows.vtype + "-" + rows.movieNum;
                set.delete(key);
                nameSet.delete(key + "," + rows.movieTitle);
            }
        } else {
            var key = rows.vtype + "-" + rows.movieNum;
            set.delete(key);
            nameSet.delete(key + "," + rows.movieTitle);
        }
    });
    
    // 选中
    $("#bootstrap-table").on("check.bs.table check-all.bs.table", function (e, rows) {
        if(rows.length > 0) {
            for (var index in rows) {
                var key = rows.vtype + "-" + rows.movieNum;
                set.add(key);
                nameSet.add(key + "," + rows.movieTitle);
            }
        } else {
            var key = rows.vtype + "-" + rows.movieNum;
            set.add(key);
            nameSet.add(key + "," + rows.movieTitle);
        }
    });

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

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

相关文章

Java正则表达式及Pattern与Matcher使用详解

文章目录一、正则表达式详解1、符号定义&#xff08;1&#xff09;基本书写符号&#xff08;2&#xff09;限定符&#xff08;3&#xff09;匹配字符集&#xff08;4&#xff09;分组构造&#xff08;5&#xff09;字符转义2、常用正则表达式举例3、Java中RegularExpressionVal…

flutter 输入时插入分隔符

每四位插入一个分隔符import package:flutter/services.dart;class DividerInputFormatter extends TextInputFormatter {final int rear; //第一个分割位数,后面分割位,,数final String pattern; //分割符DividerInputFormatter({this.rear 4, this.pattern });overrideTex…

【Linux】虚拟地址空间

进程地址空间一、引入二、虚拟地址与物理内存的联系三、为什么要有虚拟地址空间一、引入 对于C/C程序&#xff0c;我们眼中的内存是这样的&#xff1a; 我们利用这种对于与内存的理解看一下下面这段代码&#xff1a; 运行结果&#xff1a; 观察父子进程中 val 变量的值&…

uniapp中使用百度地图(初学者保姆式教学,持续更新)

uniapp中使用百度地图(保姆式教学&#xff0c;从零开始) 最近在写一个移动端的地图项目&#xff0c;也是首次完整的去了解百度地图api&#xff0c;这篇博客会手把手的教你如何使用百度地图api和一些常见问题&#xff0c;后续我也会继续更新完善此博客 1、百度地图api&#xf…

实验九 TSP问题

《算法设计与分析》实验报告 所在院系 计算机与信息工程学院 学生学号 学生姓名 年级专业 2020级计算机科学与技术 授课教师 彭绪富 学 期 2022-2023学年第一学期 提交时间 2022年10月26日 目 录 实验九-1&#xff1a;TSP问题 一、实验目的与要求 二…

html+css制作

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>校园官网</title><style type"text/css">*{padding: 0;margin: 0;}#logo{width:30%;float: left;}.nav{width: 100%;height: 100px;background-color…

mybatis如何解析常用的标签

通过这三行就解析好了一个mybatis配置文件&#xff0c;我们看看如何工作的&#xff1f; String resource "mybatis-config.xml"; Reader reader Resources.getResourceAsReader(resource); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().b…

【进阶C语言】qsort库函数(详解)

qsort库函数1. qsort到底是什么&#xff1f;2. qsort库函数的功能3. qosrt函数详解4. 冒泡排序的实现5. qsort库函数如何实现冒泡排序6. qsort库函数排序结构体数据7. 使用冒泡排序的思想来实现类似于qsort1. qsort到底是什么&#xff1f; qsort是C语言库函数里面的一种&#x…

【Flutter·学习实践·配置】认识配置文件pubspec.yaml

目录 简介 pubspec.yaml 添加Pub仓库 其他依赖方式 依赖本地包 依赖Git 简介 简单说就是包管理工具&#xff0c;类似于Android 提供了 Gradle 来管理依赖&#xff0c;iOS 用 Cocoapods 或 Carthage 来管理依赖&#xff0c;Node 中通过 npm 等。 让我们能很好的管理第三…

固定优先级仲裁器设计

前言仲裁器Arbiter是数字设计中非常常见的模块&#xff0c;应用也非常广泛。定义就是当有两个或两个以上的模块需要占用同一个资源的时候&#xff0c;我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源。一般来说&#xff0c;提出占有资源的模块要产生一个请求(request)&…

电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理

Hello 大家好&#xff0c; 我是元存储~ 主页&#xff1a;元存储的博客_CSDN博客 1. 硬盘数据丢失场景 我们在每天办公还是记录数据的时候&#xff0c;文件存储大多数都是通过硬盘进行存储的&#xff0c;因此&#xff0c;使用多了&#xff0c;各种问题就会出现&#xff0c;比如…

【C++初阶】五、内存管理

文章目录1. C/C内存分布2. C语言中动态内存管理3. C中动态内存管理方式new/delete操作内置类型new和delete操作自定义类型4.C和C在内存申请失败时处理方式的区别5. operator new与operator delete函数6. new和delete的实现原理内置类型自定义类型7. 定位new表达式(placement-ne…

【 Spark编程基础 】实验1

文章目录第1部分&#xff1a;虚拟机的准备工作1.1 下载安装虚拟机1.2 修改主机名1.3 主机ip映射安装SSH服务端SFTP连接&#xff0c;传输安装包安装Java环境第2部分 Hadoop安装2.1 安装Hadoop第3部分 配置集群环境第4部分 Spark安装第1部分&#xff1a;虚拟机的准备工作 1.1 下…

【设计模式-工厂方法】想象力和创造力:你考虑过自动化实现工厂吗?

无限思维-想象力和创造力&#xff1a;自动化实现工厂方法前言一、《大话设计模式》对应的Java版本工厂方法类图先行&#xff1a;代码实现&#xff1a;思考升华&#xff1a;二、想象力&#xff1a;创新型思维解决思路战略上&#xff1a;以无限思维的角度去想问题&#xff1a;部署…

SpringBoot整合数据可视化大屏使用

1 前言 DataV数据可视化是使用可视化应用的方式来分析并展示庞杂数据的产品。DataV旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求, 访问地址:h…

文件上传的多种利用方式

文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外&#xff0c;还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时&#xff0c;文件名肯定是会反显示在网页上&#xff0c;可以使用 XSS Payload做文件名尝试将其上传到…

upload—labs(9-12)

pass9直接查看的源码&#xff0c;得知是黑名单过滤&#xff0c;而且过滤也都很全通过查看wp&#xff0c;得知我们可以使用. .(点空格点)进行绕过利用bp抓包进行更改trim删除文件名末尾的点&#xff0c;得到shell.php.空格&#xff0c;然后进行首尾去空得到shell.php.,黑名单过滤…

Java并发高频面试题

分享50道Java并发高频面试题。 线程池 线程池&#xff1a;一个管理线程的池子。 为什么平时都是使用线程池创建线程&#xff0c;直接new一个线程不好吗&#xff1f; 嗯&#xff0c;手动创建线程有两个缺点 不受控风险频繁创建开销大 为什么不受控&#xff1f; 系统资源有…

【机器学习基础 3】 sklearn库

目录 一、sklearn库简介 二、sklearn库安装 三、关于机器学习 四、sklearn库在机器学习中的应用 1、数据预处理 2、特征提取 3、模型选择与评估 五、常用的sklearn函数 1、数据集划分 2、特征选择 3、特征缩放 4、模型训练 5、模型预测 一、sklearn库简介 Scikit-l…

基于卷积神经网络进行股价预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 CNN是一种人工神经网络&#xff0c;CNN的结构可以分为3层&#xff1a; 卷积层(Convolutional Layer) - 主要作用是提取特征。 …