按不同时间渲染表格数据

在这里插入图片描述

{
  "result" : 1,
  "msg" : "操作成功!",
  "data" : {
    "chart" : [ {
      "temp_stamp" : "2022-04-16 09:41:12",
      "temp_face" : 1,
      "temp_battery" : 11,
      "temp_a" : 0.0,
      "temp_line" : 1,
      "temp_b" : 0.0,
      "device_id" : 103,
      "temp_well" : 105,
      "temp_envir" : 1,
      "temp_c" : 0.0
    }, {
      "temp_stamp" : "2022-04-16 10:15:10",
      "temp_face" : 1,
      "temp_battery" : 1,
      "temp_a" : 0.0,
      "temp_line" : 1,
      "temp_b" : 0.0,
      "device_id" : 103,
      "temp_well" : 105,
      "temp_envir" : 1,
      "temp_c" : 0.0
    } ]
  }
}
<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="title" label="设备名称" width="150"></el-table-column>
    <el-table-column label="温度">
      <template v-for="i in tableColumns">
        <el-table-column :prop="i" :label="i" border></el-table-column>
      </template>
    </el-table-column>
  </el-table>
</template>
export default {
  props: ['device_id'],
  name: 'charts',
  data() {
    return {
      chart: null,
      tableData: [],
      tableColumns: []
    }
  },

  beforeMount() {
    this.getConnectionCharts()
  },

  methods: {
    //获取信息
    getConnectionCharts() {
      getConnectionCharts({
        device_id: 422,
        // 查询全部数据
        type: 5
      }).then(res => {
        console.log(res, 'res')
        const [list, columns] = this.formatTableData(res.data.chart)
        this.tableData = list
        this.tableColumns = columns
      }).catch(err => {
        this.tableData = []
      })
    },
    formatTableData(data) {
      const keys = {
        temp_face: '表皮温度',
        temp_battery: '电池温度',
        temp_line: '线芯温度',
        temp_a: 'a相温度',
        temp_b: 'b相温度',
        temp_c: 'c相温度',
        temp_envir: '环境温度'
      }
      const result = Object.keys(keys).map(i => ({ title: keys[i], key: i }))
      console.log(keys, 'keys')

      result.forEach(item => {

        data.forEach(i => {
          const k = i.temp_stamp.split(' ')[1].substring(0, 5)
          item[k] = i[item.key]
        })
      })
      const tableColumns = data.map(i => i.temp_stamp.split(' ')[1].substring(0, 5))
      return [result, tableColumns]
    }
  }
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: el-table 是 Vue.js 中的一个组件,用于渲染大量数据的列表。要支持大数据量的渲染,可以使用一些优化技术来提高渲染的效率。具体来说,可以使用以下方法: 1. 开启表格的虚拟滚动功能,可以通过设置 `virtual-scroll` 属性为 `true` 来开启。虚拟滚动功能可以避免同时渲染所有数据,只渲染当前可见区域的数据,可以大幅提升渲染性能。 2. 使用缓存策略,可以通过设置 `data` 属性的第二个参数(缓存策略)来控制缓存的行数。当行数较多时,可以通过设置缓存策略为 `keep-alive` 或 `session` 来缓存一部分数据,避免频繁地渲染所有数据。 3. 使用分页功能,可以通过设置 `pagination` 属性为 `true` 来启用分页功能。分页功能可以将数据分成多个页,每次只渲染当前页的数据,可以有效减少渲染数据的数量。 4. 使用高级绑定,可以通过设置 `lazy` 属性为 `true` 来启用高级绑定。高级绑定可以在数据发生变化时自动更新表 ### 回答2: el-table组件可以通过以下几种方式来支持大数据量的渲染: 1. 虚拟滚动:el-table可以使用虚拟滚动来渲染数据量。通过设置表格的高度和设置属性`:virtual-scroll`为true,可以启用虚拟滚动功能。这样只会渲染当前可见区域的数据,大大提高了渲染的效率。 2. 分页加载:对于大数据量的表格,可以分页加载数据。通过设置`pagination`属性来启用分页,并且可以定义每页显示的数据条数,例如每页显示10条数据,这样可以减少一次性渲染大量数据的压力。 3. 异步加载数据:如果数据量非常大,可以考虑使用异步加载数据的方式。可以通过监听表格的滚动事件或者分页切换事件,当滚动到可见区域的边缘或者切换到下一页时,通过发送异步请求来获取数据渲染表格中。这样可以避免一次性加载大量数据造成的性能问题。 4. 数据过滤和排序:el-table提供了数据过滤和排序的功能,可以根据需要对大数据进行筛选和排序,这样可以提高用户查找数据的效率。 总的来说,el-table可以通过虚拟滚动、分页加载、异步加载数据数据过滤排序等方式来支持大数据量的渲染,从而提高渲染效率和用户体验。 ### 回答3: el-table是Element UI中的一种表格组件,可以很方便地展示和处理数据。对于大数据量的渲染,可以通过以下几种方式来提高渲染性能和减少内存占用。 1. 虚拟滚动:el-table提供了一种虚拟滚动的方式来支持大数据量的渲染。虚拟滚动只会渲染可视区域内的数据,而不会将所有数据渲染到页面上。这样可以大大减少页面渲染时间和内存占用。 2. 分页加载:将大数据集分页加载可以有效减少页面的渲染负担。el-table组件可以通过配置分页参数来实现分页加载数据,每次只加载当前页的数据,而不会一次性加载所有数据。 3. 后端数据加载:对于大数据量的渲染,推荐使用后端分页加载的方式。即每次只向后端请求当前页的数据,减少前端数据处理的压力。 4. 动态渲染:el-table组件提供了"lazy"属性,可以实现渲染某个区域的数据时,只渲染当前可见区域之前和之后的一定数量的数据,而不是渲染整个数据集。这样可以提高页面加载速度和渲染性能。 5. 使用slot:el-table还提供了自定义列的功能,可以通过使用slot来渲染行或列的内容,减少不必要的渲染。只渲染需要展示的数据,而不是将所有数据渲染到页面上。 综上所述,el-table可以通过虚拟滚动、分页加载、后端数据加载、动态渲染和使用slot等方式来支持大数据量的渲染,提高渲染性能和减少内存占用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值