vue 表格自动轮播

今天写个tab表格自动轮播,写js费劲,找了个组件datav轮播表

官方事例地址:

http://datav.jiaminghi.com/guide/scrollBoard.html

安装:npm install @jiaminghi/data-view

局部引入:

import Vue from 'vue'

import { scrollBoard } from '@jiaminghi/data-view'

  

事例dom:

<dv-scroll-board :config="config" style="width:100%;height:100%;font-size: 20px;" @click="downloadAudioFrequency"/>

data() {

        return {

                config: {},

        }

},

created() {
  this.config = {
      header: ['时间', '通信方式', '通话音频'],
      headerBGC: 'midnightblue', // 表头背景色
      oddRowBGC: 'transparent', // 奇数行背景色
      evenRowBGC: 'transparent', // 偶数行背景色
      waitTime: 3000, // 滚动间隔时间
      index: true, // 是否显示序号
      indexHeader: '序号', // 序号表头
      carousel: 'page', // 轮播'single'|'page'
      hoverPause: true, // 鼠标悬浮是否暂停滚动
      columnWidth: [60, 200, 120, 120], // 列宽
      align: ['center', 'center', 'center', 'center'], // 列对齐方式
      data: [
        ['2022-10-25 10:12:35', '终端→总台', '音频1', '<span style="dispaly:none">1</span>'],
        ['2022-10-25 10:15:35', '终端→终端', '音频2', '1'],
        ['2022-10-25 10:17:35', '总台→终端', '音频3', '1'],
        ['2022-10-25 10:32:35', '终端→总台', '音频4', '1'],
        ['2022-10-25 10:32:35', '终端→终端', '音频5', '1'],
        ['2022-10-25 10:42:35', '终端→终端', '音频6', '1'],
        ['2022-10-25 10:42:35', '终端→总台', '音频7', '1'],
        ['2022-10-25 10:52:35', '终端→总台', '音频8', '1'],
        ['2022-10-25 11:12:35', '终端→终端', '音频9', '1'],
        ['2022-10-25 12:12:35', '终端→总台', '音频10', '1'],
        ['2022-10-25 13:12:35', '终端→总台', '音频11', '1'],
        ['2022-10-25 13:13:35', '终端→终端', '音频12', '1'],
        ['2022-10-25 14:14:35', '终端→总台', '音频13', '1'],
        ['2022-10-25 14:22:35', '总台→终端', '音频14', '1'],
        ['2022-10-25 15:32:35', '终端→总台', '音频15', '1'],
        ['2022-10-25 15:42:35', '终端→总台', '音频16', '1'],
        ['2022-10-25 16:23:35', '总台→终端', '音频17', '1'],
        ['2022-10-25 18:42:35', '终端→总台', '音频18', '1'],
        ['2022-10-25 20:17:35', '总台→终端', '音频19', '1'],
        ['2022-10-25 22:16:35', '终端→总台', '音频20', '1']
      ]
    }

}

最终效果:

 

 

### Vue3 中实现表格数据轮播功能 要在 Vue3 中实现表格数据的轮播功能,可以基于 `Vue` 的响应式特性以及定时器机制完成。以下是具体方法: #### 1. 使用 `v-if/v-show` 控制组件显示逻辑 可以通过设置一个计数器变量,在特定时间间隔内更新该变量,从而控制当前展示的数据部分[^1]。 ```javascript <script setup> import { ref, onMounted } from 'vue'; const currentIndex = ref(0); // 当前索引 const tableData = [ ['Row1-Col1', 'Row1-Col2'], ['Row2-Col1', 'Row2-Col2'], ['Row3-Col1', 'Row3-Col2'] ]; // 表格数据 // 定义自动轮播函数 onMounted(() => { setInterval(() => { currentIndex.value = (currentIndex.value + 1) % tableData.length; }, 3000); }); </script> <template> <table border="1"> <tr v-for="(col, index) in tableData[currentIndex]" :key="index"> <td>{{ col }}</td> </tr> </table> </template> ``` 上述代码展示了如何利用 `ref` 和 `setInterval` 来动态改变当前显示的表格数据。 --- #### 2. 处理国际化需求 如果需要支持多语言环境下的轮播表头切换,则需引入 `vue-i18n` 插件并配置相关内容[^2]。 首先安装依赖: ```bash npm install vue-i18n@next --save ``` 接着初始化插件: ```javascript <script setup> import { createI18n } from 'vue-i18n'; import { ref } from 'vue'; const i18n = createI18n({ locale: 'en', messages: { en: { header1: 'Column One', header2: 'Column Two' }, zh: { header1: '列一', header2: '列二' } } }); export default { inheritAttrs: false, components: {}, }; </script> ``` 随后可以在模板中调用翻译函数 `t()` 对应字段名称: ```html <tr> <th>{{ t('header1') }}</th> <!-- 动态加载头部 --> <th>{{ t('header2') }}</th> </tr> ``` 对于无法直接绑定到 `dv-scroll-board` 组件上的情况,建议手动监听其内部状态变化事件,并同步修改对应的国际化键值。 --- #### 3. 结合第三方库增强体验 为了提升视觉效果,还可以借助 **ECharts** 或者其他图表工具封装更复杂的滚动动画行为。例如使用官方推荐的 [datav-vue](https://gitee.com/datav-chart/vue-datav) 库构建交互性强的大屏应用界面。 注意:当集成此类外部资源时,请务必确认它们是否兼容最新的框架版本(即 Vue3),以免因 API 差异引发错误。 --- ### 总结 综上所述,通过组合基础语法结构与高级扩展技术即可轻松达成目标——既满足基本业务诉求又能兼顾用户体验优化的需求[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值