【vxe-table】vxe-table渲染表头的两种方式

方式一:使用:columns属性绑定变量

<vxe-table
	:columns="tableColumns"
>
</vxe-table>
const tableColumns = computed(() => {
	return [
		{
			field: '',
			title: '',
			align: '',
		}
	]
})

上述那样远远是不够的,表头死都不渲染。还要写个<vxe-column>标签,以及使用loadColumn()方法加载表头

<vxe-table
    ref="table"
    :data="props.tableData"
    :column="columns"
>
    <vxe-column v-if="columns.length > 0" />
</vxe-table>
<script lang="ts" setup>
import type { VxeTableInstance } from 'vxe-table'

// 加载表头
const table = ref({} as VxeTableInstance)
const initTableColumn = (columns: any) => {
  nextTick(() => {
    const $table = table.value
    if ($table) $table.loadColumn(columns)
  })
}

const tableColumns = computed(() => {
	return [
		{
			field: '',
			title: '',
			align: '',
		}
	]
})

initTableColumn(tableColumns.value)
</script>

方法二跟element-ui一样,把column写在table标签里面

<vxe-table
  ref="fundNetValue"
  border
  show-overflow
  :column-config="{resizable: true}"
  :table-config="{ column: { defaults: { align: 'center' } } }"
  :edit-config="{trigger: 'click', mode: 'cell'}"
   @edit-closed="handleEditClosed"
   :data="tableData"
  auto-resize
  keep-source
  row-id="id"
  height="auto"
  size="mini"
  :header-cell-style="{ 'text-align': 'center', height: '36px' }"
  :loading="tableLoading"
  :row-config="{ isHover: true, height: 34 }"
  :scroll-y="{ mode: 'wheel' }"
  :empty-render="{ name: 'NotData' }"
>
  <vxe-column type="checkbox" align="center" width="60" />
  <vxe-column field="name" title="1" align="center" :edit-render="{ name: 'input' }">
    <template #edit="{ row }">
      <vxe-input v-model="row.name" type="date" placeholder="请选择1" transfer></vxe-input>
    </template>
  </vxe-column>
  <vxe-column field="nickname" title="2" align="center" :edit-render="{ name: 'input' }">
    <template #edit="{ row }">
      <vxe-input v-model="row.nickname" type="number" placeholder="请输入2" transfer></vxe-input>
    </template>
  </vxe-column>
  <vxe-column field="role" title="3" align="center" :edit-render="{ name: 'input' }">
    <template #edit="{ row }">
      <vxe-input v-model="row.role" type="number" placeholder="请输入3值" transfer></vxe-input>
    </template>
  </vxe-column>
  <vxe-column field="sex2" title="4" />
  <vxe-column field="sex" title="5" />
</vxe-table> 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vxe-tablevxe-column是基于Vue.js的表格组件,可以实现多级表头。下面是一个示例代码,演示了如何使用vxe-tablevxe-column实现多级表头: ```vue <template> <vxe-table :data="tableData" border show-header> <vxe-column type="index" title="序号"></vxe-column> <vxe-column title="基本信息"> <vxe-column title="姓名" field="name"></vxe-column> <vxe-column title="年龄" field="age"></vxe-column> </vxe-column> <vxe-column title="联系方式"> <vxe-column title="电话" field="phone"></vxe-column> <vxe-column title="邮箱" field="email"></vxe-column> </vxe-column> <vxe-column title="操作"> <vxe-column title="编辑" :render-header="renderEditHeader"></vxe-column> <vxe-column title="删除" :render-header="renderDeleteHeader"></vxe-column> </vxe-column> </vxe-table> </template> <script> import 'vxe-table/lib/style.css'; import { VXETable } from 'vxe-table'; export default { data() { return { tableData: [ { name: '张三', age: 20, phone: '123456789', email: 'zhangsan@example.com' }, { name: '李四', age: 25, phone: '987654321', email: 'lisi@example.com' }, ], }; }, methods: { renderEditHeader({ column }) { return <span>{column.title}(编辑)</span>; }, renderDeleteHeader({ column }) { return <span>{column.title}(删除)</span>; }, }, mounted() { VXETable.setup({ size: 'mini', }); }, }; </script> ``` 在上面的代码中,我们使用了vxe-tablevxe-column组件来创建一个表格。通过嵌套vxe-column组件,我们可以实现多级表头。每个vxe-column组件都代表一个表头列,可以设置title属性来定义列的标题,field属性来指定列对应的数据字段。 在示例中,我们创建了一个基本的表格,包含了基本信息和联系方式两个多级表头。每个表头列都可以自定义渲染,通过render-header属性来指定渲染函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值