关于el-table表格组件中插槽scope.row的使用方式

目录
  • el-table表格组件中插槽scope.row使用
  • slot-scope和scope.row的用法
    • 实现效果
    • 解决

el-table表格组件中插槽scope.row使用

要实现点击查看显示后端返回的字段并以文字渲染到页面上,就要是使用到插槽

下图是要实现的:

 <el-table-column label="任职要求" width="100" align="center">
            <template slot-scope="scope">
              <el-popover placement="bottom" width="300" trigger="click">
                <div>
                  <div class="line">任职要求</div>
                  <div class="heighth">
                    工作年限:<span>{{ scope.row.worked_year }}</span>
                  </div>
                  //给学历定义一个edutype方法,通过scope.row传参
                  <div class="heighth">
                    学历:<span>{{ edutype(scope.row.education) }}</span>
                  </div>
                  <div class="heighth">
                    专业:<span>{{ scope.row.major }}</span>
                  </div>
                  <div class="heighth">
                    技能及经验:<span>{{ scope.row.experience_skills }}</span>
                  </div>
                </div>
                <el-button slot="reference" type="text">查看</el-button>
              </el-popover>
            </template>
          </el-table-column>
 methods: {
    //通过row接受参数
    edutype(row) {
      // console.log(row);
      if (row == "primary school") {
        return "小学";
      }
      if (row == "junior high school") {
        return "初中";
      }
      if (row == "senior high school") {
        return "高中";
      }
      if (row == "technical secondary school") {
        return "中专";
      }
      if (row == "junior college") {
        return "大专";
      }
      if (row == "undergraduate") {
        return "本科";
      }
      if (row == "graduate student") {
        return "研究生";
      }
      if (row == "unlimited") {
        return "不限";
      }
    }
  }

这样就实现啦。。。。。

slot-scope和scope.row的用法

实现效果

根据后端传来的mg_state的bool型数据来渲染开关状态,当为true时,开关打开;为false时关闭

解决

状态开关属于单元格,也属于一行,如果我们拿到这一行的数据,就可以.mg_state具体值,则可以按需渲染效果。所以想到用作用域插槽来渲染状态这一列

 <el-table :data="userlist"  border stripe>
			<el-table-column type="index"></el-table-column>
			<el-table-column label="姓名" prop="username"></el-table-column>
			<el-table-column label="邮箱" prop="email"></el-table-column>
			<el-table-column label="电话" prop="mobile"></el-table-column>
			<el-table-column label="角色" prop="role_name"></el-table-column>
			<el-table-column label="状态" >
				<template slot-scope="scope">
					<el-switch v-model="scope.row.mg_state"></el-switch>
				</template>
           </el-table-column>
           <el-table-column label="操作"> </el-table-column>
 </el-table>
  • data=“userList”
  • 表格绑定了用于存储数据的数组,里面每一个元素都是数据对象
  • 首先在状态这一列中定义了一个作用域插槽
  • 通过slot-scope="scope"来接收作用域插槽的数据(添加属性slot-scope,并且定义对象scope)
  • scope.row
  • scope有一个属性row(ElementUI文档),scope.row可以拿到对应行的数据
  • v-model=“scope.row.mg_state”
  • 需要把这个开关的状态绑定到scope.row.mg_state属性上

ElementUI文档

userList数据如下:

效果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue中的slot-scope及scope.row用法

    目录 slot-scope及scope.row的用法 vue项目中slot-scope="scope"报错scope is defined but never used 解决方法 slot-scope及scope.row的用法 最近在写后台管理系统 在写到修改的地方时 之前的思路是直接把当前对象传过去 然后在进行修改 现在vue提供了scope 以及 scope.row 可以让我们更方便的操作数据 slot-scope='scope' 作用域插槽中定义一个对象(这里对象被定义为scop

  • vue+element-ui表格封装tag标签使用插槽

    我们知道有很多系统都要求表格中添加各种各样的tag,来标记一些属性.在element-ui中添加tag很简单,最重要的就是用到了vue的插槽slot这个特性.首先了解什么是插槽. 插槽 省去官方的复杂讲解和代码,插槽的意思简单来说,就是在子组件的某个地方留一个占位符,当父组件使用这个子组件的时候,可以自定义这个占位符所占地方呈现的样子,可能是一个标题,一个按钮,甚至一个表格,一个表单. 为什么要插槽呢?我们抽离组件的原因就是因为可重复的代码太多了,当使用可复用的组件时,大大减少了复制粘贴.设想有

  • Element-UI中关于table表格的那些骚操作(小结)

    最近的项目中使用到element-ui组件库,由于做的是后台管理系统,所以经常需要操作表格,编辑样式的过程中遇到一些问题,官网针对table给出了很多的api,自己可以自定义,基本能满足产品需求,但是没有给出具体的案例,网上的资料也比较简略,这里简单整理下一些常用的操作,如果有类似的功能可以做一个参考. 具体的使用方法还是建议仔细阅读官网-table章节: https://element.eleme.cn/#/zh-CN/component/table#table-column-scoped-s

  • 使用 Element UI Table 的 slot-scope方法

    在 Element UI Table 的官网上,有一个"筛选"功能,里面可以利用 slot-scope,给表格记录打标签. 关键代码为: <template slot-scope="scope"> <el-tag :type="scope.row.tag === '家' ? 'primary' : 'success'" disable-transitions>{{scope.row.tag}}</el-tag>

  • 关于el-table表格组件中插槽scope.row的使用方式

    目录 el-table表格组件中插槽scope.row使用 slot-scope和scope.row的用法 实现效果 解决 el-table表格组件中插槽scope.row使用 要实现点击查看显示后端返回的字段并以文字渲染到页面上,就要是使用到插槽 下图是要实现的: <el-table-column label="任职要求" width="100" align="center"> <template slot-scope=&qu

  • 如何封装Vue Element的table表格组件

    在封装Vue组件时,我依旧会交叉使用函数式组件的方式来实现.关于函数式组件,我们可以把它想像成组件里的一个函数,入参是渲染上下文(render context),返回值是渲染好的HTML(VNode).它比较适用于外层组件仅仅是对内层组件的一次逻辑封装,而渲染的模板结构变化扩展不多的情况,且它一定是无状态.无实例的,无状态就意味着它没有created.mounted.updated等Vue的生命周期函数,无实例就意味着它没有响应式数据data和this上下文. 我们先来一个简单的Vue函数式组件

  • JS组件系列之Bootstrap table表格组件神器【终结篇】

    bootstrap table系列: JS表格组件神器bootstrap table详解(基础版) JS组件系列之Bootstrap table表格组件神器[终结篇] JS组件系列之Bootstrap table表格组件神器[二.父子表和行列调序] Bootstrap Table是轻量级的和功能丰富的以表格的形式显示的数据,支持单选,复选框,排序,分页,显示/隐藏列,固定标题滚动表,响应式设计,Ajax加载JSON数据,点击排序的列,卡片视图等.那么本文给大家介绍JS组件系列之Bootstrap

  • 封装Vue Element的table表格组件的示例详解

    在封装Vue组件时,我依旧会交叉使用函数式组件的方式来实现.关于函数式组件,我们可以把它想像成组件里的一个函数,入参是渲染上下文(render context),返回值是渲染好的HTML(VNode).它比较适用于外层组件仅仅是对内层组件的一次逻辑封装,而渲染的模板结构变化扩展不多的情况,且它一定是无状态.无实例的,无状态就意味着它没有created.mounted.updated等Vue的生命周期函数,无实例就意味着它没有响应式数据data和this上下文. 我们先来一个简单的Vue函数式组件

  • vxe-table vue table 表格组件功能

    一个功能更加强大的 Vue 表格组件 查看vxe-table 功能点 •基础 •尺寸 •斑马线条纹 •带边框 •单元格样式 •列宽拖动 •流体高度 •固定表头 •固定列 •固定表头和列 •表头分组 •序号 •单选 •多选 •排序 •筛选 •合并行或列 •表尾合计 •导出 CSV •显示/隐藏列 •加载中 •格式化内容 •自定义模板 •快捷菜单 •滚动渲染 •展开行 •树形表格 •可编辑表格 •数据校验 •全键盘操作 •Excel 表格 例子 <template> <div> <

  • Vue3 table表格组件的使用

    目录 一.Ant Design Vue 1.官网地址 2.怎么使用 3.将电子书表格进行展示 二.总结 一.Ant Design Vue 在大量数据需要展示时,我们一般都会以报表的形式展现,按照直觉习惯,肯定使用table表格来展示行列数据. 因此,我们要使用Ant Design Vue组件库中的table组件,来进行数据的绑定. 1.官网地址 官网地址:https://2x.antdv.com/components/table-cn#API 2.怎么使用 我们先对电子书管理页面改造,将布局进行

  • JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】

    Bootstrap Table是轻量级的和功能丰富的以表格的形式显示的数据,支持单选,复选框,排序,分页,显示/隐藏列,固定标题滚动表,响应式设计,Ajax加载JSON数据,点击排序的列,卡片视图等.今天就结合Bootstrap table的父子表和行列调序的用法再来介绍下它稍微高级点的用法. bootstrap table系列: JS表格组件神器bootstrap table详解(基础版) JS组件系列之Bootstrap table表格组件神器[终结篇] JS组件系列之Bootstrap t

  • element Table表格组件多字段(多列)排序方法

    目录 需求: 遇到的问题: 解决: 需求: element表格多列排序,点击日期的排序,然后再点击姓名的排序,将两个排序字段传给后端排序 遇到的问题: element的Table组件只支持单列排序,当你点击另一列的排序的时候,会自动取消上一个排序.网上搜了一下方法,这篇文章提出用:header-cell-class-name 和 @sort-change来处理多列排序的样式问题,我试了半天,发现这个sort-change事件在取消排序的时候会返回null,使我根本定位不到是哪一列取消了排序,总而

  • Element Plus组件Form表单Table表格二次封装的完整过程

    目录 前言 Form表单的封装 简述 正常的使用 开始封装① 开始封装② 开始封装③ 开始封装④ 完整封装代码⑤ 配置项类型文件 配置项文件 form表单组件文件 page-search组件文件 role页面组件文件 结语 Table表格的封装 简述 正常使用 开始封装① 开始封装② 开始封装③ 完整封装代码④ 配置项类型文件 配置项文件 table表单组件文件 page-table组件文件 user页面组件文件 结语 前言 直至今天,看了一下别人写的代码,才发现以前自己写的代码太垃圾,所以在这

  • JS表格组件神器bootstrap table使用指南详解

    bootstrap table详细使用指南分享,供大家参考,具体内容如下 1.bootstrap-table简介 1.1.bootstrap table简介及特征: Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能.目前在github上已经有2600多个Star,可见其受欢迎程度.其官方网站地址为:http://bootstrap-table.wenz

随机推荐