当前位置: 首页 > news >正文

vben-admin 导入并使用基础版的vxe-table

1、框架中封装过的表格useVbenVxeGrid

<script lang="ts" setup>
import type { VxeGridListeners, VxeGridProps } from '#/adapter/vxe-table';import { Page } from '@vben/common-ui';import { Button, message } from 'ant-design-vue';import { useVbenVxeGrid } from '#/adapter/vxe-table';import DocButton from './doc-button.vue';
import { MOCK_TABLE_DATA } from './table-data';interface RowType {address: string;age: number;id: number;name: string;nickname: string;role: string;
}const gridOptions: VxeGridProps<RowType> = {columns: [{ title: '序号', type: 'seq', width: 50 },{ field: 'name', title: 'Name' },{ field: 'age', sortable: true, title: 'Age' },{ field: 'nickname', title: 'Nickname' },{ field: 'role', title: 'Role' },{ field: 'address', showOverflow: true, title: 'Address' },],data: MOCK_TABLE_DATA,pagerConfig: {enabled: false,},sortConfig: {multiple: true,},
};const gridEvents: VxeGridListeners<RowType> = {cellClick: ({ row }) => {message.info(`cell-click: ${row.name}`);},
};const [Grid, gridApi] = useVbenVxeGrid<RowType>({gridEvents,gridOptions,
});// 放开注释查看当前表格实例的类型
// gridApi.gridconst showBorder = gridApi.useStore((state) => state.gridOptions?.border);
const showStripe = gridApi.useStore((state) => state.gridOptions?.stripe);function changeBorder() {gridApi.setGridOptions({border: !showBorder.value,});
}function changeStripe() {gridApi.setGridOptions({stripe: !showStripe.value,});
}function changeLoading() {gridApi.setLoading(true);setTimeout(() => {gridApi.setLoading(false);}, 2000);
}
</script><template><Pagedescription="表格组件常用于快速开发数据展示与交互界面,示例数据为静态数据。该组件是对vxe-table进行简单的二次封装,大部分属性与方法与vxe-table保持一致。"title="表格基础示例"><template #extra><DocButton path="/components/common-ui/vben-vxe-table" /></template><Grid table-title="基础列表" table-title-help="提示"><!-- <template #toolbar-actions><Button class="mr-2" type="primary">左侧插槽</Button></template> --><template #toolbar-tools><Button class="mr-2" type="primary" @click="changeBorder">{{ showBorder ? '隐藏' : '显示' }}边框</Button><Button class="mr-2" type="primary" @click="changeLoading">显示loading</Button><Button type="primary" @click="changeStripe">{{ showStripe ? '隐藏' : '显示' }}斑马纹</Button></template></Grid></Page>
</template>

主要是封装在useVbenVxeGrid这个里面,然后封装在这段代码:

调用方法:

import { useVbenVxeGrid } from '#/adapter/vxe-table';

然后Grid在去处理就行。

以上就可以简单的使用表格了。

2、原生vxe-table的使用

pnpm add vxe-table --filter=web-xx
import type { VxeGridProps } from 'vxe-table';
import { VxeGrid } from 'vxe-table';

其中:web-xx要根据实际的apps下的项目名进行替换,也就是在当前app目录下安装依赖。

<script lang="ts" setup>interface RowVO {id: number;name: string;role: string;sex: string;age: number;address: string;}const gridOptions = reactive<VxeGridProps<RowVO>>({columns: [{ type: 'seq' },{ field: 'name', title: 'Name' },{ field: 'sex', title: 'Sex' },{ field: 'age', title: 'Age' },],data: [{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },{ id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10005, name: 'Test5', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10006, name: 'Test6', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10007, name: 'Test7', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },{ id: 10008, name: 'Test8', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },{ id: 10009, name: 'Test9', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },{ id: 10010, name: 'Test10', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10011, name: 'Test11', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },{ id: 10012, name: 'Test12', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' },],});</script>

这样表格就显示出来了,但是发现css好像不尽人意。

3、处理css问题

这个在bootstrap.ts中加入即可。

<template><div><Page><vxe-grid v-bind="gridOptions"></vxe-grid></Page></div>
</template>

4、再次运行效果

已经生效,并且运行正常。

http://www.dtcms.com/a/289072.html

相关文章:

  • 【LeetCode 热题 100】236. 二叉树的最近公共祖先——DFS
  • oracle 11g drop user 失败,报错ORA-00600
  • jxORM--编程指南
  • EXPLAIN:你的SQL性能优化透视镜
  • 【Docker-Day 7】揭秘 Dockerfile 启动指令:CMD、ENTRYPOINT、ENV、ARG 与 EXPOSE 详解
  • 软件测试-Bug
  • 最简单的 Android TV 项目示例
  • 【RK3576】【Android14】显示屏MIPI开发调试
  • USB 2.0 vs USB 3.0:全面技术对比与选择指南
  • HuggingFace基础知识和环境安装
  • 如何在 QGIS 中定义/更改坐标系?
  • 吴恩达《AI for everyone》第二周课程笔记
  • Redis 概率型数据结构实战指南
  • 浅谈 Vue 的双向数据绑定
  • 10-day07文本分类
  • 借助AI学习开源代码git0.7之四update-cache
  • 常用框架知识
  • 基于单片机的温湿度报警系统设计与实现
  • 神经网络:池化层
  • 数字图像处理(四:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • 41.FeignClient整合Sentinel
  • 7-20 关于mysql
  • C#.NET EFCore.BulkExtensions 扩展详解
  • 【机器学习工具】Weights Biases
  • C++string类用法
  • gradle微服务依赖模版
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 【成品设计】基于STM32的宠物检测系统
  • 状态管理与团队协作 - SRE 的核心关切
  • Flink2.0学习笔记:Table API SQL