vue+elementUI实现表格关键字筛选高亮

本文实例为大家分享了vue elementUI表格关键字筛选高亮的具体代码,供大家参考,具体内容如下

代码:

<template>
 <div class="">
  <div class="top">
  <!-- 筛选 -->
   <div class="screen">
    <div style="width:30%">筛选:</div>
    <el-input type="search" v-model="search" style="width:70%" placeholder="请输入关键字"></el-input>
   </div>
  </div>
  <!-- 表格 -->
  <div class="table">
   <el-table
    :data="tables"
    style="width: 100%"
    max-height=500>
   <!-- 地址 -->
    <el-table-column label="时间">
     <template slot-scope="scope">
      <span class="col-cont" v-html="showDate(scope.row.date)" ></span>
     </template>
    </el-table-column>
    <!-- 用户名 -->
    <el-table-column label="用户名">
     <template slot-scope="scope">
      <span class="col-cont" v-html="showDate(scope.row.name)" ></span>
     </template>
    </el-table-column>
    <!-- 地址 -->
    <el-table-column label="地址">
     <template slot-scope="scope">
      <span class="col-cont" v-html="showDate(scope.row.address)" ></span>
     </template>
    </el-table-column>
   </el-table>
  </div>
 </div>
</template>

<script>
 export default {
  data() {
   return {
    search: '',
    tableData: [{
     date: '2016-05-02',
     name: '张三',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-04',
     name: '李四',
     address: '上海市普陀区金沙江路 1517 弄'
    }, {
     date: '2016-05-01',
     name: '王五',
     address: '上海市普陀区金沙江路 1519 弄'
    }, {
     date: '2016-05-03',
     name: '赵六',
     address: '上海市普陀区金沙江路 1516 弄'
    }]
   }
  },
  components: {},
  computed: {
  // 实时监听表格
   tables: function() {
    const search = this.search
    if (search) {
     return this.tableData.filter(dataNews => {
      return Object.keys(dataNews).some(key => {
       return String(dataNews[key]).toLowerCase().indexOf(search) > -1
      })
     })
    }
    return this.tableData
   }
  },
  mounted() {},
  methods: {
   // 筛选变色
   showDate(val) {
    val = val + '';
    if (val.indexOf(this.search) !== -1 && this.search !== '') {
     return val.replace(this.search, '<font color="#409EFF">' + this.search + '</font>')
    } else {
     return val
    }
   }
  }
 }
</script>

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • vue2实现搜索结果中的搜索关键字高亮的代码

    具体代码如下所示: // 筛选变色 brightenKeyword(val, keyword) { val = val + ''; if (val.indexOf(keyword) !== -1 && keyword !== '') { return val.replace(keyword, '<font color="#409EFF">' + keyword + '</font>') } else { return val } } // 或者用

  • Vue实现搜索结果高亮显示关键字

    本文实例为大家分享了Vue实现搜索结果高亮显示关键字的具体代码,供大家参考,具体内容如下 1. 需要解决的问题 父组件将搜索的字段传到子组件 子组件接受数据,正则匹配,并替换字段 2. 具体代码 父组件代码 <template> <div> <div v-if="showMe"> <div class="re_search"> <svg @click="$router.go(-1)">

  • vue+elementUI实现表格关键字筛选高亮

    本文实例为大家分享了vue elementUI表格关键字筛选高亮的具体代码,供大家参考,具体内容如下 代码: <template> <div class=""> <div class="top"> <!-- 筛选 --> <div class="screen"> <div style="width:30%">筛选:</div> <el-i

  • vue+elementUI中表格高亮或字体颜色改变操作

    重点的代码: :row-style="setRowStyle"这个属性就是在table标签绑定的 :row-style="setRowStyle" // 这个方法直接加到methods里就好了,页面会自动调用的 setRowStyle(row) { if (row.row.isPart == true) { return 'color:blue;' } }, 具体代码: hmtl <el-table width="100%" :data=&

  • vue element-ui table表格滚动加载方法

    添加全局注册事件,用来监听滚动事件 window.Vue.directive('loadmore', { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body-wrapper') selectWrap.addEventListener('scroll', function() { let sign = 100 const scrollDistance = this.scrollHeight - this.

  • Vue+element-ui 实现表格的分页功能示例

    本文介绍了Vue+element-ui 实现表格的分页功能示例,分享给大家,具体如下: 实现效果如下图所示: template部分: <el-table :data="tempList" :header-cell-style="rowClass" stripe border style="margin-bottom:14px;" :empty-text="emptyText"> <el-table-colum

  • vue elementUI table表格数据 滚动懒加载的实现方法

    在项目中遇到了一个性能问题 vue+elementUI table表格展示数据,当数据很多的时候,不能一页显示完,同时一次请求数据量太大,会增加网页渲染的时间,影响体验, 这个时候常常有两种方法处理, 1.分页,如下 2.如果我不想分页,又想在一页显示全部数据呢?这个时候其实就可以用数据懒加载了 如下一开始表格只显示31行数据 当将滚动条拉到低的时候,就会再加载31条数据,如果剩下的数据不足31,那就加载剩下的 根据项目需求,这需要一页可以看到全部数据,所以我选择了第二中方式 那么第二种方式要怎

  • vue+elementUI配置表格的列显示与隐藏

    vue+elementUI配置表格的列显示与隐藏,供大家参考,具体内容如下 描述: 表格的列过多时,可以根据需要控制列的显示与隐藏,目前是采用Vue+elementUI(适配Vue3的Element Plus)实现的,具体效果与代码如下: 效果图: 完整代码: <template>   <div id="app">     <el-table :data="tableData" border style="width: 100

  • vue+elementui实现表格多级表头效果

    本文实例为大家分享了vue+elementui实现表格多级表头的具体代码,供大家参考,具体内容如下 table组件 <template>   <div class="tableCon" id="tableCon">     <el-table     :data="dataSource"     :height="tableHeight"     v-loading="loading&q

  • Vue element-ui中表格过长内容隐藏显示的实现方式

    目录 一.el-table表格 二.Popover 弹出框 总结 一.el-table表格 在使用VUE显示后台数据时,经常会遇到数据过长,显示出来的效果很难看,如下图所示: 上图中,红框框出的内容由于长度过长,占据了三行空间,如果内容更多的话,占据行数就更多了,表格中列数一多的话,显出出来的效果会很难看. 为了解决上述问题,我们可以利用<el-table-column>组件提供的一个属性::show-overflow-tooltip='true' 添加该属性,会将过长的部分内容隐藏起来,并且

  • vue+element-ui实现表格编辑的三种实现方式

    1.表格内部显示和编辑切换 这种方式就是利用两个标签显示隐藏来实现,我们这里用input和span,正常用span将数据显示,点击编辑时,将span隐藏,显示input进行编辑.选中当前行我们可以通过slot-scope中的index去实现,在控制显示隐藏的属性上绑定index就可以选中当前行了,如showEdit[index]. 页面结构代码: <el-table :data="tableData" tooltip-effect="dark" style=&

  • Vue+ElementUI table实现表格分页

    Vue+ElementUI table表格分页,供大家参考,具体内容如下 分页的两种方式.前端分页,后端分页.两种方式各有个的优缺点吧. 前端分页:后台只需将数据返回,不需要做过多处理,前端一次请求拿到所有数据后做分页处理.但数据量不能太大,因为前端是先一次性加载所有数据,然后在做分页处理.在数据量多的情况下,加载相对应的会变慢.所有在前端做分页时要先考虑一下后期的数据量. 后端分页:因为是后端分页,前端在每点击一次分页时,便向后台请求一次数据.其实就是避免前端一次性从数据库获取大量数据 一.在

随机推荐