基于 vxe-table 表格的适配插件,用于兼容 element-plus 组件库
npm install xe-utils@3 vxe-table@next vxe-table-plugin-element@next element-plus@next
// ...
import VXETable from 'vxe-table'
import VXETablePluginElement from 'vxe-table-plugin-element'
import 'vxe-table-plugin-element/dist/style.css'
// ...
VXETable.use(VXETablePluginElement)
属性 | 描述 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
nativeEvents | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
属性 | 描述 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSelect, ElCascader, ElTimeSelect, ElTimePicker, ElDatePicker, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
nativeEvents | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
属性 | 描述 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider | — |
attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
nativeEvents | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
属性 | 描述 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider, ElRadio, ElCheckbox, ElButton, ElButtons | — |
attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
nativeEvents | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
<vxe-table
height="600"
:data="tableData"
:edit-config="{trigger: 'click', mode: 'cell'}">
<vxe-column field="name" title="ElInput" min-width="140" :edit-render="{name: 'ElInput'}"></vxe-column>
<vxe-column field="age" title="ElInputNumber" width="160" :edit-render="{name: 'ElInputNumber', props: {max: 35, min: 18}}"></vxe-column>
<vxe-column field="sex" title="ElSelect" width="140" :edit-render="{name: 'ElSelect', options: sexList}"></vxe-column>
<vxe-column field="region" title="ElCascader" width="200" :edit-render="{name: 'ElCascader', props: {options: regionList}}"></vxe-column>
<vxe-column field="date" title="ElDatePicker" width="200" :edit-render="{name: 'ElDatePicker', props: {type: 'date', format: 'yyyy/MM/dd'}}"></vxe-column>
<vxe-column field="date1" title="DateTimePicker" width="220" :edit-render="{name: 'ElDatePicker', props: {type: 'datetime', format: 'yyyy-MM-dd HH:mm:ss'}}"></vxe-column>
<vxe-column field="date2" title="ElTimeSelect" width="200" :edit-render="{name: 'ElTimeSelect', props: {pickerOptions: {start: '08:30', step: '00:15', end: '18:30'}}}"></vxe-column>
<vxe-column field="rate" title="ElRate" width="200" :edit-render="{name: 'ElRate', type: 'visible'}"></vxe-column>
<vxe-column field="flag" title="ElSwitch" width="100" :edit-render="{name: 'ElSwitch', type: 'visible'}"></vxe-column>
</vxe-table>
export default {
data () {
return {
tableData: [
{ id: 100, name: 'test0', age: 28, sex: '1', region: ['shenzhen'], date: null, date1: null, date2: null, rate: 2, flag: true },
{ id: 101, name: 'test1', age: 32, sex: '0', region: ['guangzhou'], date: null, date1: null, date2: null, rate: 2, flag: true },
{ id: 102, name: 'test2', age: 36, sex: '1', region: ['shenzhen'], date: null, date1: null, date2: null, rate: 2, flag: true }
],
sexList: [
{ label: '男', value: '1' },
{ label: '女', value: '0' }
],
regionList: [
{ label: '深圳', value: 'shenzhen' },
{ label: '广州', value: 'guangzhou' }
]
}
}
}
<vxe-table
border
height="600"
:data="tableData">
<vxe-column field="name" title="Name"></vxe-column>
<vxe-column field="age" title="Age"></vxe-column>
<vxe-column field="date" title="Date" :filters="[{data: []}]" :filter-render="{name: 'ElDatePicker', props: {type: 'daterange'}}"></vxe-column>
</vxe-table>
import { defineComponent } from 'vue'
export default defineComponent({
setup () {
return {
tableData: [
{ id: 100, name: 'test0', age: 28, date: null },
{ id: 101, name: 'test1', age: 32, date: null },
{ id: 102, name: 'test2', age: 36, date: null }
]
}
}
})
MIT © 2019-present, Xu Liangzhan