基于Ant Design of Vue中table组件二次封装(Vue项目+antd)

一、代码简洁,HTML一行代码(如下),具体属性看后面

 <t-ant-layout-table
        title="样品列表"  // 列表title(在表格左侧)
        isCustomScroll // 开启自定义横向滚动条
        columnSetting // 显示设置(隐藏/显示列)
        name="columnSetting" // 隐藏/显示列唯一性
        :pagination="pageOpt" // 分页器
        @paginationChange="handleTableChange" // 获取当前选择页
        @showSizeChange="showSizeChange" // 每页显示总条数时触发
        :columns="columns"  // 表头
        :dataSource="sourceData" // 数据源
        :tableOpt="{rowSelection: {selectedRowKeys: selectedRowKeys, onChange: onSelectChange}}" <!--添加Antd table属性 -->
      >
        <!-- 表格外操作————在表格右侧 -->
        <template #btn>
          <a-button type="primary" icon="plus" @click="creat">新增</a-button>
          <a-button type="primary" @click="anew" :disabled="selectedRowKeys.length === 0 ">重新处理</a-button>
          <a-button type="primary" @click="toVoids" :disabled="selectedRowKeys.length === 0 ">作废</a-button>
        </template>
      </t-ant-layout-table>

二、组件集成了以下功能

1、常规表格
2、内置分页器————配置pagination属性
3、自定义渲染列数据————配置columns下的customRender
4、内置表格内外操作按钮(表格外使用插槽btn,表格内配置columns下的customRender)
5、表格复选框——+配置tableOpt属性rowSelection: {selectedRowKeys: selectedRowKeys, onChange: onSelectChange}
6、内置调整表格列宽————配置tableOpt属性bordered:true
7、某列自定义插槽显示————配置columns属性scopedSlots: { customRender: '自定义插槽名' }
8、动态显示隐藏拖动排序列(表头)————配置column-setting/name属性(确保唯一值)
9、自定义横向滚动条始终在可视区域下面————配置isCustomScroll属性
10、固定列之类的都可在tableOpt属性中配置(即集成了antd的属性)

三、参数配置

配置参数(Attributes)

参数说明类型默认值
title左上侧标题string,slot
btn右上侧按钮组插槽slot
columnstable 列描述,详细见下方配置说明。array
dataSourcetable 数据源array
tableOptantd table 配置{}
pagination分页器配置{current: number, pageSize: number, total: number,paginationOpt:{antd pagination 配置}}object
table报表内容插槽,当使用该插槽时,默认 table 将不渲染slot
isCustomScroll是否开启自定义横向滚动条Booleanfalse
columnSetting是否显示设置(隐藏/显示列)Booleanfalse
name组件唯一标记,类似 Key 值,用于缓存表头数据String

columns 配置参数(columns Attributes)

参数说明类型默认值
title列头显示文字string
dataIndex列数据在数据项中对应的 keystring
width列宽度number
scopedSlots某列插槽显示{customRender:‘自定义插槽’}当前 dataIndex 值
customRender自定义渲染{comps: comp[]}

comp 配置参数(customRender Attributes)

参数说明类型默认值
isShow组件渲染条件,返回 true 渲染,反之不渲染(scope) => {return true}
comp组件名称,可直接指定 element 或其他全局注册的组件如:‘el-input’,也可引入非全局组件后直接指向如:Buttonstring ,component
text渲染时组件设置组件文本string
bind渲染时组件会调用 v-text 指定设置该配置更新元素的属性object
event设置组件监听的事件,渲染时组件会调用 v-event 指定设置该配置更新元素的事件(scope) => ({[propName: eventName]: () => {}})
slot指定插入的插槽string
child支持子组件配置,参数与上方一致array

pagination 配置参数(pagination Attributes)

参数说明类型默认值
current分页器当前页number1
total数据量总数,用于计算分页器总页数number0
pageSize每一页的数据量number10
paginationOptantd pagination 属性配置object

事件(events)

事件名说明回调参数
paginationChange分页器页码发生变化时触发Function(current: number)
showSizeChange分页器选择每页显示总条数时触发Function(current: number,pageSize:number)

四、最终效果图

在这里插入图片描述

最后

gitHub组件地址

gitee码云组件地址

相关文章


基于ElementUi再次封装基础组件文档


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wocwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值