首页 > 其他分享 >element-ui table中使用type=‘selection‘ 实现禁用,勾选,默认选中不可修改 三种状态显示问题

element-ui table中使用type=‘selection‘ 实现禁用,勾选,默认选中不可修改 三种状态显示问题

时间:2024-10-29 10:42:51浏览次数:5  
标签:status selection element 勾选 选中 table CheckOk row

element-ui table中使用type=‘selection’ 实现禁用,勾选,默认选中不可修改 三种状态显示问题
实现效果

 

 

 

需求
1.status=‘CheckOk' 时 勾选框默认选中但不可修改勾选状态
2.status=‘CheckFail' 时 勾选框禁用
3.status=‘' 时 勾选框可以勾选

实现思路
采用el-table表格自带的勾选框type=‘selection’ 实现

实现 1.status=‘CheckOk' 时 勾选框默认选中但不可修改勾选状态

首先要实现默认选中
toggleRowSelection: 有两个参数(row, selected)
用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)

methods:{
        // status=‘CheckOk' 默认选中
     defaultChecked() {
            var that = this;
            that.$nextTick(() => {
                this.tableData.forEach((v, i) => {
                    if (v.status == 'CheckOk') {
                        this.$refs.table.toggleRowSelection(v, true);
                    }
                });

            });
           } 
   },

 

将表格列的type类型设置为selection,添加:selectable='方法名’

<el-table-column type="selection" width="50" :selectable="selectable" />
methods: {
     //判断勾选
        selectable(row, index) {
            if (row.status == 'CheckFail' || row.status == 'CheckOk') {
                return false;
            } else {
                return true;
            }
        },
}

完整代码

 <el-table ref="table" 
               :header-cell-style="{ color: '#FFF', background: '#333' }" 
               :data="tableData"
               style="width: 100%" :row-key="getRowKey" 
               :row-style="tableRowStyle"
               @selection-change="handleSelectionChange">
        <template slot="empty">
            <span style="color: #969799">{{ $t("NeoLight.empty") }}</span>
        </template>
        <el-table-column type="selection" width="50" :selectable="selectable" />
        <el-table-column prop="ri" :label="$t('outSideShelf.ri')" />
        <el-table-column prop="needNum" :label="$t('outSideShelf.needNum')" />
        <el-table-column prop="status" :label="$t('outSideShelf.status')" />
</el-table>
mounted(){
this.defaultChecked() // 该方法可以在拿到表格数据后进行调用
}
methods: {
    // status=‘CheckOk' 默认选中
     defaultChecked() {
            var that = this;
            that.$nextTick(() => {
                this.tableData.forEach((v, i) => {
                    if (v.status == 'CheckOk') {
                        this.$refs.table.toggleRowSelection(v, true);
                    }
                });
            });
          } 
     //判断勾选
        selectable(row, index) {
            if (row.status == 'CheckFail' || row.status == 'CheckOk') {
                return false; // 禁用
            } else {
                return true; //不禁用
            }
        },
        // status=‘CheckFail' 该行背景为灰色
         tableRowStyle({ row, rowIndex }) {
            let rowBackground = {};
            if (row.status == 'CheckFail') {
                rowBackground.background = '#6d6d6d';
                rowBackground.color = "#fff";
            } else {
                rowBackground.background = "#333";
                rowBackground.color = "#fff";
            }
            return rowBackground;
        },
}

————————————————

原文链接:https://blog.csdn.net/Maxueyingying/article/details/132475408

标签:status,selection,element,勾选,选中,table,CheckOk,row
From: https://www.cnblogs.com/Ao-min/p/18512456

相关文章

  • 解决elementui中el-radio报错:Blocked aria-hidden on an element because its descend
    今天在使用elment中el-radio的时候发现控制台报错最开始以为是自己哪里写错了,但是后面上网查找的时候发现是浏览器的原因现在来说下解决办法1、可以使用这么一种组合来解决/deep/input[aria-hidden="true"]{display:none!important;}/deep/.el-radio:focus:no......
  • vue使用element ui绘制界面
    vue使用elementui绘制界面搭建Vue脚手架的过程主要依赖于VueCLI(命令行工具)。下面是一个简单的步骤指南,帮助你快速搭建一个Vue项目。步骤1:安装Node.js确保你的系统上已安装Node.js。你可以在Node.js官网下载并安装它。安装完成后,可以在终端中运行以下命令检......
  • 1、前端项目创建(vue3 + vite + element-plus)
    vue3+vite+element-plus项目创建:1、npmcreatevite@latestdata-relationship----templatevue2、npminstall  安装依赖3、npmielement-plus 安装element-plus4、修改main.jsimport{createApp}from'vue'importAppfrom'./App.vue'importElemen......
  • vue后台element,routes实现动态路由控制权限管理
    前言整体流程大概说下,在登陆成功之后,需要后端把角色权限的路由返给我们,我们再根据角色权限把后端给的路由在本地存储,在router/index的路由控制页面用beforeEach钩子函数中做动态路由的处理,把角色权限渲染到页面中。一、login页面处理登陆成功之后需要把拿到的路由固定js......
  • 其实在构建神经网络或训练神经网络的时候,还有另一个隐藏的前提假设,那就是当你选择sigm
    最大熵原理确实与选择激活函数(如sigmoid或softmax)有关。以下是一些相关的要点:最大熵原理:最大熵原理是一种统计推断的方法,旨在在已知信息的情况下,选择最不偏见的概率分布。换句话说,当我们对某个系统的知识有限时,选择熵最大的分布可以避免引入不必要的假设。激活函数与概率分......
  • element-ui 时间组件date-picker 去掉“此刻”二字
    用element-ui的时间组件时,想去掉“此刻”二字官方文档没有提供去掉这个的属性,网上查了一下,主要是通过给这个标签添加css属性,display:none,来隐藏。但是我在组件内的<el-col:span="span"><el-form-item:label="$t('historicalDataRetransmission.taskBeginTime')......
  • (系列九)使用Vue3+Element Plus创建前端框架(附源码)
    说明  该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。   该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。   说明:OverallAuth2.0是一个简单、易懂、功能强大的权限+可视化流程管理系统。友情提醒:本篇文章是属于系......
  • cannot bind non-const lvalue reference of type ‘QDomElement&’ to an rvalue of
    /mnt/hgfs/SharedFolders/KingKongNano/YiKingStudio/TopoConfig/topoconfigwindow.cpp:2079:error:cannotbindnon-constlvaluereferenceoftype‘QDomElement&’toanrvalueoftype‘QDomElement’FreshPdoandVarIndex(TopologyVarFileDocDemo->document......
  • element-ui中,使用this.$message.success(“登录成功“),如何修改文字的样式呢?
    在element-ui中使用this.$message.success(“注册成功”);时,直接修改文字样式并没有暴露出很方便的接口,因为ElementUI的消息提示组件Message是通过JavaScript动态创建的。但是你可以通过以下方法自定义消息的样式:方法1:使用customClass属性ElementUI的Me......
  • el-table回显默认勾选-弹窗
    要使用nextTick()方法+element表格中的toggleRowSelection()方法记得在table标签中添加ref <el-table:data="list"ref="multipleTableRef"><el-table-columntype="selection"width="55"></el-table-column>......