Vxe UI vue vxe-table 常用功能使用分享

Vxe UI vue vxe-table 常用功能使用分享

表格需求

如果你需要的是一个能够渲染简单场景的表格,那么使用主流 UI 库就够了,例如element ui自带的表格等。
如果你需要是一个能同时满足简单场景以及各类复杂场景、大数量的全功能表格,那么推荐 vxe-table 就是首选。无论是基础表格还是大数量表格,功能强大和渲染性能也很不错。

介绍

Vxe UI 是 vxe-table 配套的组件库,如果表格中需要用到一些组件,比如:弹框、抽屉、页签等,可以选择第三方的组件库,也可以使用配置的 UI 库,安装后就能直接使用。

// ...
import VxeUI from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'

import VxeUITable from 'vxe-table'
import 'vxe-table/lib/style.css'

// ...
createApp(App).use(VxeUI).use(VxeUITable).mount('#app')

组件 table 和 grid 哪个好用

无需考虑,直接选 vxe-grid,vxe-grid 是 vxe-table 的配置式版本,table 能做的 grid 也能做,table不支持的,grid 也能支持。

单选

在这里插入图片描述

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

<script setup>
import {
   
    reactive } from 'vue'
const gridOptions = reactive({
   
   
  border: true,
  height: 300,
  rowConfig: {
   
   
    isHover: true
  },
  radioConfig: {
   
   
    labelField: 'name',
    highlight: true
  },
  columns: [
    {
   
    type: 'radio', title: 'Name', width: 300 },
    {
   
    field: 'id', title: 'ID' },
    {
   
    field: 'age', title: 'Age' },
    {
   
    field: 'address', title: 'Address', showOverflow: true }
  ],
  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: 23, address: 'test abc' },
    {
   
    id: 10005, name: 'Test5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' }
  ]
})
</script>

多选

在这里插入图片描述

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

<script setup>
import {
   
    reactive } from 'vue'
const gridOptions = reactive({
   
   
  border: true,
  height: 500,
  rowConfig: {
   
   
    isHover: true
  },
  checkboxConfig: {
   
   
    labelField: 'name',
    highlight: true
  },
  columns: [
    {
   
    type: 'checkbox', title: 'Name', width: 300 },
    {
   
    field: 'id', title: 'ID' },
    {
   
    field: 'age', title: 'Age' },
    {
   
    field: 'address', title: 'Address', showOverflow: true }
  ],
  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: 23, address: 'test abc' },
    {
   
    id: 10005, name: 'Test5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' }
  ]
})
</script>

表位合计

在这里插入图片描述

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

<script setup>
import {
   
    reactive } from 'vue'
const gridOptions = reactive({
   
   
  border: true,
  showFooter: true,
  height: 300,
  columns: [
    {
   
    field: 'seq', type: 'seq', width: 70 },
    {
   
    field: 'name', title: 'Name' },
    {
   
    field: 'sex', title: 'Sex' },
    {
   
   
      field: 'num',
      title: 'Num',
      footerFormatter ({
    
     itemValue }) {
   
   
        return `${
     
     itemValue}`
      }
    },
    {
   
    field: 'address', title: 'Address', showOverflow: true }
  ],
  data: [
    {
   
    id: '10001', name: 'Test1', role: 'Develop', sex: 'Man', num: '28', address: 'test abc' },
    {
   
    id: '10002', name: 'Test2', role: 'Test', sex: 'Women', num: '22', address: 'Guangzhou' },
    {
   
    id: '10003', name: 'Test3', role: 'PM', sex: 'Man', num: '32', address: 'Shanghai' },
    {
   
    id: '10004', name: 'Test4', role: 'Designer', sex: 'Women', num: '24', address: 'Shanghai' },
    {
   
    id: '10005', name: 'Test5', role: 'Develop', sex: 'Man', num: '42', address: 'Guangzhou' },
    {
   
    id: '10006', name: 'Test6', role: 'Test', sex: 'Women', num: '39', address: 'Shanghai' },
    {
   
    id: '10007', name: 'Test7', role: 'Develop', sex: 'Man', num: '46', address: 'Shanghai' },
    {
   
    id: '10008', name: 'Test8', role: 'PM', sex: 'Women', num: '49', address: 'Guangzhou' }
  ],
  footerData: [
    {
   
    seq: '合计', num: '282' }
  ]
})
</script>

右键菜单

支持表头、单元格、表尾等各种右键菜单的配置,功能太多,这里只简单说明一下基本使用
在这里插入图片描述

<template>
  <div>
    <vxe-grid ref="gridRef" v-bind="gridOptions" v-on="gridEvents"></vxe-grid>
  </div>
</template>

<script setup>
import {
   
    ref, reactive } from 'vue'
import {
   
    VxeUI } from 'vxe-table'
const gridRef = ref()
const gridOptions = reactive({
   
   
  border: true,
  showFooter: true,
  rowConfig: {
   
   
    isCurrent: true
  },
  columnConfig: {
   
   
    resizable: true
  },
  columns: [
    {
   
    field: 'checkbox', type: 'checkbox', width: 50 },
    {
   
    type: 'seq', width: 70 },
    {
   
    field: 'name', title: 'Name' },
    {
   
    field: 'nickname', title: 'Nickname' },
    {
   
    field: 'age', title: 'Age' },
    {
   
    field: 'role', title: 'Role' },
    {
   
    field: 'address', title: 'Address', showOverflow: true }
  ],
  data: [
    {
   
    id: 10001, name: 'Test1', nickname: 'T1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' },
    {
   
    id: 10002, name: 'Test2', nickname: 'T2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
    {
   
    id: 10003, name: 'Test3', nickname: 'T3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
    {
   
    id: 10004, name: 'Test4', nickname: 'T4', role: 'Designer', sex: 'Women', age: 23, address: 'Shenzhen' },
    {
   
    id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值