广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >element中el-table局部刷新的实现示例
  • 198
分享到

element中el-table局部刷新的实现示例

element el-table局部刷新element 局部刷新 2023-05-18 08:05:25 198人浏览 安东尼
摘要

介绍:有一个简单的需求,一个表格点击一个单元格的按钮后,按钮变成进度条。 问题:如果只是用一个变量,然后配合v-if使用,一整列都会变成进度条。 想法:把那个变量渲染进去列表的每一行

介绍:有一个简单的需求,一个表格点击一个单元格的按钮后,按钮变成进度条。

问题:如果只是用一个变量,然后配合v-if使用,一整列都会变成进度条。

想法:把那个变量渲染进去列表的每一行。但是…问题又出现了,值变了,但是表格没有被重新渲染。

重点:this.$set(this.tableData, index, row),更新表格这一行的值。理解这句代码的意思,后面的可以不看。

随便放点前端代码就很长了,不放又清除概况,简单看看吧。直接看el-progress那个标签的附近的,其他的瞅一下知道大概就好。

<el-table
              ref="theTable"
              :data="tableData.filter(data => !search || data.id.toLowerCase().includes(search.toLowerCase()))"
              class="content-datasheet-table"
              :cell-style="columnStyle"
            >
              <el-table-column label="开关名称" prop="name" width="100px" align="center"> </el-table-column>
              <el-table-column label="开关ID" prop="sensorId" width="100px" align="center"> </el-table-column>
              <el-table-column label="电压值(V)" prop="voltage" width="100px" align="center"> </el-table-column>
              <el-table-column label="电流值(A)" prop="current" width="100px" align="center"> </el-table-column>
              <el-table-column label="功率值(W)" prop="power" width="100px" align="center"> </el-table-column>
              <el-table-column label="状态图" align="center">
                <!-- eslint-disable-next-line -->
                <template slot-scope="scope">
                  <viewer style="transfORM:rotate(-90deg)" rotateTo="-90">
                    <img :src="viewPicture(scope.row)" min-width="70" height="70" :key="scope.$index" />
                  </viewer>
                </template>
              </el-table-column>
              <el-table-column label="刷新时间" prop="statusTime" width="160px" align="center"> </el-table-column>
              <el-table-column label="操作" align="center">
                <template slot-scope="scope">
                  <el-progress
                    v-if="scope.row.progressBar"
                    :text-inside="true"
                    :stroke-width="18"
                    :percentage="scope.row.speed"
                    status="success"
                  ></el-progress>
                  <el-button size="mini" v-else @click="updateConfirm(scope.$index, scope.row)">获取最新状态</el-button>
                </template>
              </el-table-column>
              <el-table-column align="right">
                <!-- eslint-disable-next-line -->
                <template slot="header" slot-scope="scope">
                  <el-input v-model="search" size="medium" clearable placeholder="输入开关ID搜索" />
                </template>
                <template slot-scope="scope">
                  <el-switch
                    v-model="scope.row.status"
                    active-color="#2d8cf0"
                    nactive-color="#ff4949"
                    :active-value="true"
                    :inactive-value="false"
                    active-text="闭合"
                    inactive-text="断开"
                    @change="switchConfirm(scope.row.status, scope.row.sensorId)"
                  />
                </template>
              </el-table-column>
            </el-table>

前端页面显示图:点击获取最新状态之后,获取变成进度条,开始跑进度。

    // 更新当前某个开关的最新状态
    handlePicture(index, row) {
      let params = "sensor_id=" + row.sensorId;
      this.progressSpeed(index, row);
      newestStatus(params).then(res => {
        row.speed = 100;
        this.$set(this.tableData, index, row);
        setTimeout(() => {
          row.progressBar = false;
          this.switchData();
        }, 3000);
      });
    },
    // 进度条刷新
    progressSpeed(index, row) {
      row.speed = 0;
      row.progressBar = true;
      const sp = setInterval(() => {
        console.log();
        if (row.speed >= 99 ) {
          clearInterval(sp);
        } else {
         row.speed++; 
        }
        this.$set(this.tableData, index, row);
      }, 600);
    },

按钮变成进度条,获取最新数据,进度条到99的时候就卡住,信息返回后,进度条不管跑了都少都变成100,3S后变回原来的样子。

到此这篇关于element中el-table局部刷新的实现示例的文章就介绍到这了,更多相关element el-table局部刷新内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: element中el-table局部刷新的实现示例

本文链接: https://www.lsjlt.com/news/211863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • element中el-table局部刷新的实现示例
    介绍:有一个简单的需求,一个表格点击一个单元格的按钮后,按钮变成进度条。 问题:如果只是用一个变量,然后配合v-if使用,一整列都会变成进度条。 想法:把那个变量渲染进去列表的每一行...
    99+
    2023-05-18
    element el-table局部刷新 element 局部刷新
  • el-tree懒加载的实现以及局部刷新方式
    目录el-tree懒加载的实现及局部刷新整个树结构如下新增第一级节点的弹窗右侧悬浮显示操作按钮在第一级右侧点击按钮新增第二级节点的弹窗树节点新增编辑操作弹窗总结el-tree懒加载的...
    99+
    2023-05-17
    el-tree懒加载 局部刷新 el-tree局部刷新
  • FlutterStatefulBuilder实现局部刷新实例详解
    目录前言页面的全量刷新StatefulBuilder简介StatefulBuilder的实际应用总结前言 flutter项目中,在页面数据较多的情况下使用全量刷新对性能消耗较大且容易...
    99+
    2022-11-13
  • Vue3实现刷新页面局部内容的示例代码
    目录第一步:定义状态标识第二步、借用v-if 指令让dom节点重新渲染第三步、修改isRouterAlive 值,实现dom的重新渲染想要实现页面的局部刷新,我们只需要实现局部组件(...
    99+
    2022-09-27
  • Flutter StreamBuilder实现局部刷新实例详解
    目录前言StreamBuilder 简介StreamBuilder的实际应用总结前言 在flutter项目中,页面内直接调用setState方法会使得页面重新执行build方法,导致...
    99+
    2022-11-13
  • ajax局部和整体刷新的示例分析
    本篇文章为大家展示了ajax局部和整体刷新的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先我先来来说一下方案。$p.load(url,data,func...
    99+
    2022-10-19
  • vue中实现页面刷新以及局部刷新的方法
    目录一.全页面刷新二、局部刷新三、应用场景总结一.全页面刷新 1.修改 App.vue,代码如下: <template> <div id="app"> ...
    99+
    2022-11-12
  • vue中如何实现页面刷新以及局部刷新
    vue中如何实现页面刷新以及局部刷新,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.全页面刷新修改 App.vue,代码如下:<template> &n...
    99+
    2023-06-26
  • JQuery中如何实现ajax局部刷新
    这篇文章给大家分享的是有关JQuery中如何实现ajax局部刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JQuery 再谈ajax局部刷新。案例: 描述: 1. 点击登...
    99+
    2022-10-19
  • Vue实现页面的局部刷新(router-view页面刷新)
    利用Vue里面的provide+inject组合 首先需要修改App.vue。 <template> <!-- 公司管理 --> <di...
    99+
    2022-11-12
  • element UI中el-dialog实现拖拽功能示例代码
    element UI中dialog组件经常会用到,如果能让其任意拖拽放到不同的位置就更好了,实现方法如下: dialogDraggable.js代码: import Vue from...
    99+
    2022-12-29
    elementui dialog可拖拽 el-dialog el-dialog可拖动拖拽功能
  • Vue如何实现页面的局部刷新
    本篇文章给大家分享的是有关Vue如何实现页面的局部刷新,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。利用Vue里面的provide+inject组合首先需要修改App.vue。...
    99+
    2023-06-22
  • Ajax如何实现局部刷新的方法
    本篇内容主要讲解“Ajax如何实现局部刷新的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax如何实现局部刷新的方法”吧!前言最近复习了一下jQuery的一些内容,特此整理一下一些能用的...
    99+
    2023-06-08
  • el-table表头添加勾选框的实现示例
    目录嘚吧嘚具体要求如下:实现嘚吧嘚 table的行勾选是比较常规的操作,但是有的时候就有各种奇葩的需求蹦出来。比如最近有一个需求,不仅需要勾选行,还需要勾选列,其实我心中有了一万头可...
    99+
    2023-01-28
    el-table表头添加勾选框 el-table 勾选框
  • element中table操作按钮展示与折叠的实现示例
    目录先来看实现效果。1.遇到问题2.解决思路3.用法4.实例先来看实现效果。 1.遇到问题 因为随着功能的增多,table操作栏中的功能按钮增多,操作列长度就增长,导致不是很美观。...
    99+
    2022-11-13
  • layui中使用checbox怎么实现在Ajax局部刷新
    本篇文章给大家分享的是有关layui中使用checbox怎么实现在Ajax局部刷新,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.需要添加一行代码(渲染后的checkbox代...
    99+
    2023-06-08
  • element多个table实现同步滚动的示例代码
    element ui 实现多个table同时滚动,横向纵向滚动 代码如下: <script src="//unpkg.com/vue/dist/vue.js">...
    99+
    2022-11-12
  • ajax中怎么通过异步加载实现局部刷新
    这篇文章给大家介绍ajax中怎么通过异步加载实现局部刷新,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。[html] view plain copy <sc...
    99+
    2022-10-19
  • vue中实现全页面或局部刷新的方法是什么
    今天就跟大家聊聊有关vue中实现全页面或局部刷新的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。vue中怎么实现页面刷新一.全页面刷新修改 App.vue,代码如下:<...
    99+
    2023-06-22
  • ajax实现无刷新分页的示例分析
    这篇文章给大家分享的是有关ajax实现无刷新分页的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作