最近在一个后台管理系统中用到AntD,其中对表格用的比较多;

表格使用中,有正常列表数据、有树形数据、有嵌套表格;

对常见的表格处理进行简要总结

  1. 列名显示

:row-selection="{
    selectedRowKeys: selectedRowKeys,
    onChange: onSelectChange,
    columnTitle:' '}"

其中

row-selection:选择功能;去掉row-selection配置,列表前面不显示勾选框

selectedRowKeys:指定选中项的 key 数组,需要和 onChange 进行配合;选中的数据;

onChange:选中项发生变化时的回调,可以在事件中获取当前选中的数据,比如当前id/name

columnTitle:自定义列表选择框标题;值为空时,可以去掉勾选框

  1. 冻结列

columns: [
        {
          title: "姓名",
          dataIndex: "name",
          width: 120,
          scopedSlots: { customRender: "name" },
          fixed: 'left',
        },
        {
          title: "用户名",
          dataIndex: "username",
          fixed: 'left',
        },
        {
          title: "手机号",
          dataIndex: "mobile",
          width: 100,
        },
        {
          title: "操作",
          dataIndex: "operation",
          width: 120,
          scopedSlots: { customRender: "operation" },
          fixed: 'right',
        },
      ]

直接在columns中定义fixed,其中left是冻结在左,right是冻结在右;

注意:a-table中定义横向滑动值,数值小的时候,显示列多数据较多,此时冻结后的样式会被撑开;

<a-table :scroll="{ x: 2222 }">
</a-table
  1. 表格分页

:pagination="{
              current: queryParam.pageNum,
              pageSize: queryParam.pageSize,
              total: total,
              showSizeChanger: true,
              showLessItems: true,
              showQuickJumper: true,
              showTotal: (total, range) =>
                `第 ${range[0]}-${range[1]} 条,总计 ${total} 条`,
              onChange: changeSize,
              onShowSizeChange: onShowSizeChange,
            }"

pagination:分页的配置项;没有此项的话,当前页面就没有分页功能;

  1. 其他

columns: [
        {
          title: "角色",
          dataIndex: "roleNames",
          customRender: (text, record, index) => {
            return text ? (text.includes(',') ? text.split(',').map(item => <a-tag color="blue">{item}</a-tag>) : <div><a-tag color="blue">{{ text }}</a-tag></div>) : (<div></div>)
          },
          width: 270,
        },
      ]

比如当前表格是用户信息,用户角色名称为“管理员、测试员”,使用a-tag分开显示角色名称,可用上述代码完成


持续更新中,未完待续

Logo

前往低代码交流专区

更多推荐