注意!!!,此项目为针对特定项目场景做了代码去除以提高性能,可能导致部分功能失效,不要当公用组件随意使用
一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟树、列拖拽、懒加载、快捷菜单、数据校验、导入/导出/打印、表单渲染、自定义模板、渲染器、JSON 配置式...
-
设计理念
- 面向现代浏览器,高效的简洁 API 设计
- 模块化表格、按需加载
- 为单行编辑表格而设计,支持增删改查及更多扩展,强大的功能的同时兼具性能
-
计划
- [x]
v1.0 基于 vue2.6,支持所有主流的浏览器,实现表格的一切实用的功能 - [x]
v2.0 基于 vue2.6,支持所有主流的浏览器,同时兼具功能与性能 - [x] v3.0 基于 vue2.6+,支持现代浏览器并保留兼容 IE11
- [ ] v3.9 基于 vue2.6+,重构拆分组件,分为 Vxe table 和 Vxe UI,将支持可视化组件
- [x] v4.0 基于 vue3.2+,只支持现代浏览器,不支持 IE
- [x] v4.7 基于 vue3.2+,重构拆分组件,分为 Vxe table 和 Vxe UI,将支持可视化组件
- [ ] 下一阶段:sticky 渲染模式、将虚拟滚动提升到极致、虚拟滚动动态行高、数据图表可视化
- [x]
80+ ✔ | 80+ ✔ | 90+ ✔ | 75+ ✔ | 10+ ✔ |
- [x] 基础表格
- [x] 配置式表格
- [x] 斑马线条纹
- [x] 多种边框
- [x] 单元格样式
- [x] 列宽拖动
- [x] 最小/最大高度
- [x] 自适应宽高
- [x] 固定列
- [x] 多级表头
- [x] 表尾数据
- [x] 高亮行或列
- [x] 序号
- [x] 单选框
- [x] 复选框
- [x] 排序
- [x] 多字段排序
- [x] 筛选
- [x] 合并单元格
- [x] 合并表尾
- [x] 导入/导出/打印
- [x] 显示/隐藏列
- [x] 拖拽/自定义列排序
- [x] 加载中
- [x] 格式化内容
- [x] 自定义插槽 - 模板
- [x] 快捷菜单
- [x] 展开行
- [x] 工具栏
- [x] 虚拟树
- [x] 增删改查
- [x] 数据校验
- [x] 数据代理
- [x] 键盘导航
- [x] 渲染器
- [x] 虚拟滚动
- [x] 虚拟合并
- [x] CSS 变量主题
- [x] (企业版) 单元格区域选取
- [x] (企业版) 单元格复制/粘贴
- [x] (企业版) 单元格查找和替换
- [x] (企业版) 全键盘操作
版本:vue 3.x
npm install vxe-table@next
// ...
import VxeTable from 'vxe-table'
import 'vxe-table/lib/style.css'
// ...
createApp(App).use(VxeTable).mount('#app')
// ...
import VxeTable from 'vxe-table'
import 'vxe-table/lib/style.css'
// ...
import VxeUI from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'
// ...
createApp(App).use(VxeUI).use(VxeTable).mount('#app')
使用第三方 CDN 方式记得锁定版本号,避免受到非兼容性更新的影响
不建议将第三方的 CDN 地址用于正式环境,因为该连接随时都可能会失效
<!-- style -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-pc-ui/lib/style.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-table@next/lib/style.css">
<!-- vue -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- table -->
<script src="https://cdn.jsdelivr.net/npm/xe-utils"></script>
<script src="https://cdn.jsdelivr.net/npm/vxe-pc-ui"></script>
<script src="https://cdn.jsdelivr.net/npm/vxe-table@next"></script>
<template>
<div>
<vxe-table :data="tableData">
<vxe-column type="seq" title="Seq" width="60"></vxe-column>
<vxe-column field="name" title="Name"></vxe-column>
<vxe-column field="role" title="Role"></vxe-column>
<vxe-colgroup title="Group1">
<vxe-column field="sex" title="Sex"></vxe-column>
<vxe-column field="address" title="Address"></vxe-column>
</vxe-colgroup>
</vxe-table>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const tableData = ref([
{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', address: 'Shenzhen' },
{ id: 10002, name: 'Test2', role: 'Test', sex: 'Man', address: 'Guangzhou' },
{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', address: 'Shanghai' }
])
</script>
该群供大家交流問題,如果群人数已满,将会不定期剔除不活跃的。
安装依赖
npm run update
启动本地调试
npm run serve
编译打包,生成编译后的目录:es,lib
npm run lib
Thank you to everyone who contributed to this project.
MIT © 2019-present, Xu Liangzhan