ant-design中a-table的插槽简单整理

导入ant-design之后,使用a-table

a-table配置为:

<a-table
    :data-source="dataSource"
    :scroll="{ x: '100%' }"
    :columns="columns"
    :pagination="{
         current: pagination.current,
         total: pagination.total,
         showSizeChanger: true,
         pageSizeOptions: ['10'],
         buildOptionText: (pageSizeOptions) => `${pageSizeOptions.value}条/页`,
         showTotal: (total) => `共 ${total} 条`,
         onShowSizeChange: onShowSizeChange,
         onChange: handleTableChange,
     }"
     :rowClassName="rowClassName"
     @change="onShowSizeChange"
     rowKey="id"
>

 pagination在data中设置为:

pagination: {
        current: 1, //当前第几分页
        pageSize: 10, //一次展示多少数据
        total: 0, //总共多少数据
        pageSizeOptions: ["10"], //可选择展示多少数据
        showTotal: (total) => `共${total}条`,
        showSizeChanger: true, //是否展示切换器
        showQuickJumper: true, //是否可以快速调整至某页
      },

dataSource在需要动态添加时设置为空就可。

改变页码实现分页查的变化:

onShowSizeChange(pagination) {
      this.pagination.current = pagination.current;
      this.pagination.pageSize = pagination.pageSize;
      this.getList(this.pagination.current);//分页查
    },

在data的columns中给要添加插槽的表头写成:

columns:[
{
    title: "序号",
    dataIndex: "idx",
    scopedSlots: { customRender: "idx" },
},
{
    title: "title",
    dataIndex: "dataIndex",
    scopedSlots: { customRender: "dataIndex" },
},
{
    title:"title2",
    dataIndex:"dataIndex2",//无需插槽
}]

简单说明几种情况:

当需要在表格中添加序号时:

<span slot="idx" slot-scope="text, record, index">
    {{
        (pagination.current - 1) * pagination.pageSize +parseInt(index) +1}}
</span>

当需要根据返回的内容显示不同的颜色时:

<span slot="status" slot-scope="status">
          <div style="color: green" v-if="status == '同意'">
            {{ status }}
          </div>
          <div style="color: red" v-else-if="status == '驳回'">
            {{ status }}
          </div>
          <div style="color: orange" v-else-if="status == '审批中'">
            {{ status }}
          </div>
          <div style="color: orange" v-else>--</div>
        </span>

当需要鼠标悬浮显示提示框时:

<span slot="stockYjNewPartsName" slot-scope="text, record">
          <a-tooltip>
            <template slot="title">
              {{ text }}
            </template>
            {{ text }}
          </a-tooltip>
        </span>

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue 3使用TypeScript和JSX语法编写Ant DesignTable组件可以按照以下步骤进行: 1. 首先,确保你已经安装了Ant Design Vue和TypeScript依赖: ```bash npm install ant-design-vue npm install --save-dev @types/ant-design-vue ``` 2. 在你的Vue组件引入Table组件和相关的类型定义: ```tsx import { defineComponent } from 'vue'; import { Table } from 'ant-design-vue'; export default defineComponent({ components: { Table }, // ... }); ``` 3. 在Vue组件的template使用Table组件,并使用JSX语法编写插槽内容: ```tsx <template> <Table :columns="columns" :dataSource="data"> <template #name="{ text }"> <strong>{{ text }}</strong> </template> </Table> </template> ``` 在上述示例,我们使用了`#name`插槽,它会渲染表格`name`列的内容。通过`{ text }`参数,我们可以获取到每一行的数据,并在插槽使用。 4. 在Vue组件的`data`选项定义表格的列和数据源: ```tsx export default defineComponent({ // ... data() { return { columns: [ { title: 'Name', dataIndex: 'name', key: 'name', }, // ... ], data: [ { key: '1', name: 'John Doe', }, // ... ], }; }, }); ``` 在上述示例,我们定义了一个`columns`数组来描述表格的列,每个列都有`title`、`dataIndex`和`key`属性。我们也定义了一个`data`数组,来表示表格的数据源。 这样,你就可以在Vue 3的TSX语法使用Ant DesignTable组件,并使用插槽来自定义表格的内容了。记得在组件引入样式文件,以正确渲染Ant Design的样式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值