elementui表格数据加载即勾选

搜索关键字:elementui表格数据加载即勾选|elementui表格勾选

 1、关键点:

需要使用watch和nextTick,直接参考官方案例,在数据返回时候设置勾选不好使。

2、表格定义

            <el-table :height="570" :data="roleTableData" style="width: 100%" border stripe ref="msTable"

           >

3、data定义

    data() {

        return {

            queryInfo: {

                size:2,

                pageNow: 1

            },

            roleTableData: [],

            total: 0

        }

    },

4、生命周期调用

    created() {

        this.getRoleTableData();

    },

5、获取数据方法

getRoleTableData(pageNo,pageSize) {

            pageNo = pageNo ? pageNo : this.queryInfo.pageNow;

            pageSize = pageSize ? pageSize : this.queryInfo.size;

            this.$axios.get('/api/role/roles',{

                params: {

                    roleName: '',

                    page: pageNo,

                    size: pageSize

                }

            })

            .then( res => {

                console.log("角色列表数据",res.data);

                this.roleTableData =res.data.data;

                this.total = res.data.total;

                // 处理越界问题,后台已经设置从0开始,取记录数没有动

                if(this.total < ( this.queryInfo.pageNow - 1) * this.queryInfo.size) {

                    this.queryInfo.pageNow = 1;

                }

                // 不管用,在这是设置已分配的角色

                // this.setAssignedRoles(res.data.data);

            })

            .catch( function(error) {

                console.log(error);

            });

        },

6、watch用法

    watch: {

        roleTableData: function(data) {

            console.log("watch调用了",data);

            this.$nextTick( () => {

                this.setAssignedRoles(data);

            })

        }

    }

7、设置勾选,根据页面加载传递的参数

        setAssignedRoles(tableData) {

            let assignedRoles = this.$route.query.roleids;

            console.log("assignedRoles",assignedRoles);

            console.log("tableData",tableData);

            let rows = [];

            for(let r =0 ; r < tableData.length; r++) {

                for(let i = 0 ; i< assignedRoles.length;i++) {

                    if(tableData[r].id+'' === assignedRoles[i]) {

                        rows.push(tableData[r]);

                        break;

                    }

                }

            }

            console.log("rows",rows);

            for(let row=0; row < rows.length; row++) {

                this.$refs.msTable.toggleRowSelection(rows[row],true);

            }

        },

8、后台控制器

// 根据查询条件,返回符合条件的分页菜单

    // http://localhost:3000/role/roles

    @GetMapping("/roles")

    public JSONObject getRoles8RoleName(@RequestParam String roleName,@RequestParam Integer page,@RequestParam Integer size) {

        System.out.println("接收到前台roleName: "+roleName);

        System.out.println("接收到前台page: "+page);

        System.out.println("接收到前台size: "+size);

        JSONObject result = new JSONObject();

        R r = R.ok();

        try{



            Long total = roleMapper.getRoleCount8RoleName(roleName);

            // 处理越界

            int start = (page - 1) * size;

            if (total < start) {

                start = 0;

            }



            List<Role> ls = roleMapper.getRoles8RoleName(roleName,start,size);

            result.put("data",ls);

            result.put("total",total);

            r.setCode(ResultCode.CODE200);

            r.setMessage("获取角色成功");

            result.put("meta",r);

        }catch (Exception e) {

            e.printStackTrace();



            r.setCode(ResultCode.ERROR);

            r.setMessage("获取角色失败");

            result.put("meta",r);

        }

        return  result;

    }

9、接口定义

@Select("<script>"+ " select count(id) from tbl_role "+

        "<where>"+

        "<if test = 'roleName!=null and roleName.trim() != &quot;&quot; ' >"

        +"  Name like concat('%', #{roleName},'%')"

        +"</if>"+

        "</where>"+

"</script>")

Long getRoleCount8RoleName(String roleName );

@Select("<script>"+ " select * from tbl_role "+

        "<where>"+

        "<if test = 'roleName!=null and roleName.trim() != &quot;&quot; ' >"

        +"  Name like concat('%', #{roleName},'%')"

        +"</if>"+

        "</where>"+

        " order by display_no asc "+

        " LIMIT  #{page},#{size} "+

        "</script>")

List<Role> getRoles8RoleName(String roleName ,Integer page , Integer size);

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

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

相关文章

第一章 SpringBoot入门

1.SpringBoot简介 1.1.简介 Spring Boot来简化spring应用开发&#xff0c;约定大于配置去繁从简&#xff0c;just run就能创建一个独立的&#xff0c;产品级别的应用。 背景&#xff1a;J2EE笨重开发&#xff0c;繁多的配置、低下开发效率、复杂的部署流程、第三方技…

vue2.7如何使用vue-i18n

版本&#xff1a; vue&#xff1a;2.7.0 vue-i18n&#xff1a;8.28.2 一、下载 npm i vue-i18n8.28.2二、新建 新建一个文件&#xff0c;例如&#xff1a;lang&#xff0c;项目结构如下&#xff1a; index.js&#xff1a; import Vue from vue import VueI18n from vue-i18n…

用Python编写的小游戏:探索游戏世界的乐趣

探索开始 引言&#xff1a;第一部分&#xff1a;猜数字游戏代码案例1&#xff1a; 第二部分&#xff1a;石头剪刀布游戏代码案例2&#xff1a; 第三部分&#xff1a;迷宫游戏代码案例3&#xff1a; 总结&#xff1a; 引言&#xff1a; Python是一种简单易学的编程语言&#xf…

Linux 的基本使用

1、Linux 是什么 Linux 是一个操作系统. 和 Windows 是 "并列" 的关系 Linux 严格意义来说只是一个 "操作系统内核". 一个完整的操作系统 操作系统内核 配套的应用程序. CentOS 和 RedHat 的关系 RedHat一直都提供源代码的发行方式&#xff0c;Cent…

设计模式——六大设计原则详解

什么是设计模式 随着编程的发展&#xff0c;程序员们发现再解决一些普遍的问题的时候&#xff0c;所使用的解决方案是大体相同的。这些解决方法是众多程序员经过长时间的实践和试错最终总结出来了。所有就有人将它们总结起来形成了设计模式。设计模式出现的意义是为了重用代码&…

MyBatis操作数据库常用用法总结1

文章目录 1.单表查询1.1返回所有的表记录1.2根据id查找结果1.3根据名字查找结果 2.单表修改2.1修改密码 3.单表删除3.1根据id删除信息 4.单表增加&#xff08;根据业务情况返回&#xff09;4.1添加返回影响的行数4.2添加返回影响行数和id 5.多表查询&#xff08;多&#xff09;…

【容器化】Oceanbase镜像构建及使用

通过该篇文章可以在国产X86-64或ARM架构上构建商业版oceanbase&#xff0c;只需要替换pkg安装包即可。下面截图主要以国产X86-64安装为例&#xff0c;作为操作截图&#xff1a; 镜像构建目录说明 pkg:用来存放安装包及脚本&#xff0c;抛出rpm其他是脚步&#xff0c;这些rpm包…

伪原创神码ai怎么样【php源码】

这篇文章主要介绍了python汉化补丁包下载&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 火车头采集ai伪原创插件截图&#xff1a; ** Spyder汉化&#xff08;python汉化&…

解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路

前文介绍了滴滴自研的ES强一致性多活是如何实现的&#xff0c;其中也提到为了提升查询性能和解决查询毛刺问题&#xff0c;滴滴ES原地升级JDK17和ZGC&#xff0c;在这个过程中我们遇到了哪些问题&#xff0c;怎样解决的&#xff0c;以及最终上线效果如何&#xff0c;这篇文章就…

软考高级之系统架构师之数据通信与计算机网络

概念 OSPF 在划分区域之后&#xff0c;OSPF网络中的非主干区域中的路由器对于到外部网络的路由&#xff0c;一定要通过ABR(区域边界路由器)来转发&#xff0c;既然如此&#xff0c;对于区域内的路由器来说&#xff0c;就没有必要知道通往外部网络的详细路由&#xff0c;只要由…

[系统安全] 五十二.DataCon竞赛 (1)2020年Coremail钓鱼邮件识别及分类详解

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

MyCat配置rule.xml、server.xml讲解

1. rule.xml分片规则配置文件 rule.xml中配置的主要就是拆分表的规则&#xff0c;rule.xml中主要包含两类标签 tableRule 和Function。 tableRule标签里面主要配置我们的分片规则&#xff0c;Function里面涉及的是分片规则里面所涉及的java类&#xff0c;都是在function中配置…

学习笔记-JAVAJVM-JVM的基本结构及概念

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 什么是JVM 原文连接&#xff1a; 原文连接 JVM是J…

Unity游戏源码分享-精品即时战略游戏_官网60美刀素材

Unity游戏源码分享-精品即时战略游戏_官网60美刀素材 下载地址&#xff1a;https://download.csdn.net/download/Highning0007/88204017

2023年10款常用的Mac工具合集

Typora Typora 是一款由 Abner Lee 开发的轻量级 Markdown 编辑器&#xff0c;与其他 Markdown 编辑器不同的是&#xff0c;Typora 没有采用源代码和预览双栏显示的方式&#xff0c;而是采用所见即所得的编辑方式&#xff0c;实现了即时预览的功能&#xff0c;但也可切换至源代…

关于Postman如何配置随请求携带token

文章目录 一些吐槽实际应用 一些吐槽 首先吐槽一下 postman官网的文档说明&#xff0c;真是乱七八糟&#xff0c;一点都不清晰&#xff0c;能不能好好写用户手册啊&#xff08;比如把用户都当作初始小白&#xff09; 然后吐槽一下网上铺天盖地让我写js脚本应用全局access toke…

uniapp开发小程序-分包(微信错误码:800051)

在使用uniapp开发小程序时&#xff0c;上传的时候因为文件过大&#xff0c;显示上传失败。 以下是开发过程中遇到的问题及解决方法&#xff1a; 1. 问题一&#xff1a;因为文件过大&#xff0c;显示上传失败 ①尝试过把本地使用的图片压缩到最小&#xff1b; ②把图片转换为网…

火山引擎联合Forrester发布《中国云原生安全市场现状及趋势白皮书》,赋能企业构建云原生安全体系

国际权威研究咨询公司Forrester 预测&#xff0c;2023年全球超过40%的企业将会采用云原生优先战略。然而&#xff0c;云原生在改变企业上云及构建新一代基础设施的同时&#xff0c;也带来了一系列的新问题&#xff0c;针对涵盖云原生应用、容器、镜像、编排系统平台以及基础设施…

ThinkPHP6企业OA办公系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP6企业OA办公系统 一 介绍 勾股OA基于ThinkPHP6开发&#xff0c;前端Layui&#xff0c;数据库mysql&#xff0c;是一款实用的企业办公系统。可多角色登录&#xff0c;集成了系统设置、人事管理、消息管理、审批管理、日常办公、客户…

机器学习深度学习——常见循环神经网络结构(RNN、LSTM、GRU)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——RNN的从零开始实现与简洁实现 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章…