Skip to content

InfiniteTable 无限滚动表格

赛博朋克风格的无限滚动表格组件,支持大数据量虚拟滚动、排序、选择等功能。

基本用法

ID
姓名
邮箱
角色
vue
<template>
  <cyber-infinite-table :data="tableData" :columns="columns" />
</template>

<script setup>
import { ref } from 'vue'

const columns = [
  { title: 'ID', field: 'id', width: '80px', align: 'center' },
  { title: '姓名', field: 'name', minWidth: '120px' },
  { title: '邮箱', field: 'email', minWidth: '200px' },
  { title: '角色', field: 'role', width: '120px', align: 'center' }
]

const tableData = ref([
  { id: 1, name: '张三', email: 'zhangsan@example.com', role: '管理员' },
  { id: 2, name: '李四', email: 'lisi@example.com', role: '编辑' },
  { id: 3, name: '王五', email: 'wangwu@example.com', role: '用户' },
  { id: 4, name: '赵六', email: 'zhaoliu@example.com', role: '用户' },
  { id: 5, name: '孙七', email: 'sunqi@example.com', role: '编辑' }
])
</script>

固定表头

ID
姓名
邮箱
角色
vue
<template>
  <cyber-infinite-table :data="tableData" :columns="columns" :row-num="3" />
</template>

选择功能

ID
姓名
邮箱
角色
vue
<template>
  <cyber-infinite-table :data="tableData" :columns="columns" :row-num="3" />
</template>

<script setup>
const handleSelectionChange = (selectedRows) => {
  console.log('选中的行:', selectedRows)
}
</script>

主题

支持四种赛博朋克主题:neonhologramterminalmatrix

ID
姓名
邮箱
角色
ID
姓名
邮箱
角色
ID
姓名
邮箱
角色
ID
姓名
邮箱
角色
vue
<template>
  <cyber-infinite-table :data="tableData" :columns="columns" theme="neon" :row-num="3" />
  <cyber-infinite-table :data="tableData" :columns="columns" theme="hologram" :row-num="3" />
  <cyber-infinite-table :data="tableData" :columns="columns" theme="terminal" :row-num="3" />
  <cyber-infinite-table :data="tableData" :columns="columns" theme="matrix" :row-num="3" />
</template>

排序功能

ID
姓名
年龄
vue
<template>
  <cyber-infinite-table :data="tableData" :columns="sortColumns" :row-num="3" />
</template>

<script setup>
const sortColumns = [
  { title: 'ID', field: 'id', width: '80px', align: 'center' },
  { title: '姓名', field: 'name', minWidth: '120px' },
  { title: '年龄', field: 'age', width: '80px', align: 'center' }
]

const handleSortChange = ({ prop, order }) => {
  console.log('排序字段:', prop, '排序方式:', order)
}
</script>

属性

属性名说明类型可选值默认值
data表格数据array-[]
columns列配置array-[]
theme主题样式stringneon / hologram / terminal / matrixneon
rowHeight行高number-40
rowNum显示行数number-5
autoScroll是否自动滚动boolean-true
scrollType滚动类型stringsingle / pagesingle
waitTime滚动等待时间(毫秒)number-2000
hoverPause鼠标悬停暂停boolean-true
showScanline是否显示扫描线boolean-true

列配置

属性说明类型默认值
title列标题string-
field字段名string-
width列宽度stringauto
minWidth最小宽度string100px
align对齐方式left / center / rightleft

事件

事件名说明回调参数
row-click行点击事件(row, column, event)

Relcased under the Mit Lincense.