umy-ui —— table检索字段自动滚到指定位置并高亮

这篇具有很好参考价值的文章主要介绍了umy-ui —— table检索字段自动滚到指定位置并高亮。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:

umy-ui table,vue,vue.js,前端,javascript

 通过input输入框,输入要查找的数据字段,点击确定可以定位到查找的那行数据、并把改行显示高亮。

 

实现思路:

安装 umy-ui 和 babel插件:(el-table可直接忽略不安装)

npm install umy-ui
npm install babel-plugin-component -D

main.js中引入:

import 'umy-ui/lib/theme-chalk/index.css'
import { UTableColumn, UTable, UxGrid, UxTableColumn } from 'umy-ui' // 按需引入组件
Vue.use(UTableColumn)
Vue.use(UTable)
Vue.use(UxGrid)
Vue.use(UxTableColumn)

babel.config.js中添加:

'plugins': [
    [
      'component',
      {
        'libraryName': 'umy-ui',
        'styleLibraryName': 'theme-chalk'
      }
    ]
  ]

vue代码实现:

umy-ui table,vue,vue.js,前端,javascript

 

 首先:

u-table中必须添加的属性:


1.use-virtual  使用虚拟表格

2.:row-height="30"    设置每个table行的行高(这里一定要与后面寻找行所乘的倍数一一对应)

3.:height="600"    设置u-table表格高度

4.ref="stuList"   

以上1、2、3 同时调价表示使用虚拟列。

然后:

 思路:存放table表格的数据是stuList集合,查找某一个学号的位置,实际上是查找该条数据在stuList的index索引是多少,也就是该条数据在stuList集合中是第几条数据。然后通过scrollTop向上滑动指定高度,也就是先了数据定位功能。

 其次:(看代码)

umy-ui table,vue,vue.js,前端,javascript

 this.$refs.stuList.$refs.singleTable.$refs.bodyWrapper.scrollTop = this.input * 30

 这句标红的代码,需要你查看自己项目中具体是什么样的:

查找思路:

通过u-table绑定的@row-click="selectRow"事件:

在selectRow方法中打出this

umy-ui table,vue,vue.js,前端,javascript

 页面上表格数据随便点击某一行,控制台直接打出

umy-ui table,vue,vue.js,前端,javascript

 找到table表格中 ref="stuList"绑定的bodyWrapper,然后找到下面的scrollTop

然后拼接出来 等于 查找元素index × 表格绑定的row-height 就可以定位到数据的位置。

最后:

给改行加上高亮样式:

u-table 属性: row-style="selectedHighlight"

umy-ui table,vue,vue.js,前端,javascript

较完整参考代码:

<template>
  <div class="app-container">
    <el-row :gutter="18">
    <el-dialog
        title="test"
        visible="true"
        width="30%"
        center
      >
        <el-row>
          <el-col :span="12">
            <el-input v-model="input" style="width:250px" placeholder="请输入内容" />
          </el-col>
          <el-col :span="4">
            <el-button @click="selectRowwwwww">定位</el-button>
          </el-col>
          <el-col :span="4">
            <el-button>下一个</el-button>
          </el-col>
          <el-col :span="4">
            <el-button>上一个</el-button>
          </el-col>
        </el-row>

        <u-table
          ref="stuList"
          v-loading="loading"
          :data="stuList"
          use-virtual
          :row-style="selectedHighlight"
          :row-height="30"
          :height="600"
          @row-click="selectRow"
        >
          <u-table-column type="selection" width="45" align="center" fixed="left" />
          <u-table-column label="序号" width="480px" align="center" fixed="left">
            <template slot-scope="scope">
              <span>{{ scope.row.idserial }}</span>
            </template>
          </u-table-column>
        </u-table>
      </el-dialog>
</el-row>
  </div>
</template>
<script>
import {getStuTest} from '@/api'
export default {
  name: 'Student',
  data() {
    return {
      attr: [],
      input: 0,
      stuList: []
    },
mounted() {
    this.getStuTest()
},
methods: {
// *******************************************************
    selectRowwwwww() {
      this.attr = []
      for (var i = 0; i < this.stuList.length; i++) {
        if (this.stuList[i].idserial === this.input) {
          this.attr.push(i)
        }
      }

      this.$refs.stuList.$refs.singleTable.$refs.bodyWrapper.scrollTop = this.input * 30
    },
    // *******************************************************


    // *******************************************************
    selectedHighlight({ row, rowIndex }) {
      if (this.attr.length > 0 && rowIndex === this.attr[0]) {
        console.log('************添加高亮样式***************')
        this.$refs.stuList.$refs.singleTable.setCurrentRow(row)
        return { 'background-color': '#67c23a', 'color': '#fff' }
      }
    },
    // *******************************************************

    // *******************************************************
    selectRow(row, col, event) {
      console.log('+++++>', this)
    },
    // *******************************************************

    getStuTest() {
      getStuTest().then(response => {
        this.stuList = response.data
      })
    }
  }
}
</script>
<style>
.el-table .warning-row {
    background: oldlace;
  }

  .el-table .success-row {
    background: #f0f9eb;
  }
.el-dialog__body {
  padding: 0px 20px!important;
}
</style>

 文章来源地址https://www.toymoban.com/news/detail-659448.html

到了这里,关于umy-ui —— table检索字段自动滚到指定位置并高亮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java查询es数据,根据指定id检索(in查询),sql权限过滤,多字段匹配检索,数据排序

    Java集成Elasticsearch,进行索引数据查询,并进行sql权限过滤,指定id检索(in查询),多字段匹配检索,数据排序。由于权限过滤是根据sql语句判断当前用户或其部门可查询的数据,所以采用以下方法: 1.通过sql过滤出当前用户可查询的数据id集合idsList; 2.将当前用户可查询的

    2024年02月22日
    浏览(66)
  • git 回滚到指定版本

    git 回退到指定版本步骤: 把你想回退的版本的commit id和最新版本的commit id记下来 然后用命令git reset --hard 老版本的commit id 再git reset --mix 最新版本的commit id 再push 就ok了 记住当前版本 和 要回滚的旧版本号 执行命令 进行本地回滚 并提交代码到 远程 再执行操作 push 到远程即

    2024年02月11日
    浏览(62)
  • element-ui table 设置表格滚动条位置

    场景: 在切换不同页面时(被 keep-alive 缓存的组件间切换),页面中的element-ui table的滚动条位置没有停留在原来的位置。目前需要切换不同的页面返回来后,滚动条保持在原来的位置。 代码:

    2024年02月11日
    浏览(58)
  • element-ui table 指定单元格动态字体颜色设置

    element-ui table 指定单元格动态字体颜色设置 根据后端返回的值,动态的自动变更element-ui table 指定单元格的字体的颜色或者整行的颜色值 显示效果 去掉:  columnIndex === 4 即不指定某个单元格

    2024年02月16日
    浏览(46)
  • Unity开发笔记:截取指定位置含有UI的场景截图并输出

    学习记录整理,自用,也希望能帮助到有相同需求的人。 如果直接截全图: 截取指定位置含有UI的场景截图: 例如这种情况下只想要中间的: UI所在的Canvas设置为RenderMode.ScreenSpaceCamera并挂载相机,然后设置该相机的渲染RenderTexture并开始render,注意这里渲染是从屏幕中心扩展

    2024年02月13日
    浏览(39)
  • 如何使用js自动点击电脑屏幕指定位置

    可以使用 JavaScript 模拟鼠标点击事件来实现自动点击屏幕指定位置。 你可以使用 document.createEvent() 方法创建一个 \\\"MouseEvents\\\" 事件对象,然后使用 dispatchEvent() 方法将该事件分派到文档中的元素上。 下面是一个简单的示例,展示了如何在屏幕上的 (100, 100) 位置自动点击一次。

    2024年02月11日
    浏览(41)
  • QChart实现ui界面上指定位置饼状图、圆环图的绘制

    近期开发遇上了绘制饼图的需求,笔者前期使用QCustomPlot图形库进行一些图形组件的开发是非常方便的,但是这个库没有实现饼图的绘制,所以后面是使用QChart来实现饼状图的开发。本文主要讲述了使用Qt下的Charts 模块来进行饼图的绘制,并结合Qt Creator里面的示例,在这里编

    2024年02月08日
    浏览(90)
  • Unity虚拟相机Cinemachine-实现相机自动移动到指定位置

    介绍两种方法, 第一种使用虚拟相机自带DollyCart和DollyTrack进行设置; 第二种使用时间线Timeline和DollyTrack进行设置 1.首先添加图中三个虚拟相机 2.点击 DollyTrack,添加点,设置轨道 3.调整点的位置,使轨道在相机移动的起点和终点保持平滑 4.设置Dolly Cart,将轨道拖拽到Dolly

    2024年01月25日
    浏览(47)
  • git 从一个commit节点拉出一个分支,当前分支代码回滚到指定commit节点

    1.从一个commit节点拉出一个分支 a.切到commit_id b. 创建新分支 c. 推送到远程 2.当前分支代码回滚到指定commit节点 a.本地代码回滚到指定提交节点 b.提交到仓库

    2024年02月11日
    浏览(73)
  • vue2在element UI的table中给指定列添加圆点标志,鼠标悬浮出提示信息

    要求在列表数据给指定数据添加一些标志,鼠标悬浮提示指定数据.左侧为标志截图.右侧为悬浮提示截图. 在template中 想要添加标志的那一列 添加圆点和悬浮提示信息两个节点,并添加单元格进入 退出事件两个事件. 具体使用时样式细微处自行调节 给单元格移入事件设

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包