vue2中动态生成插槽

遍历数据动态生成插槽。

完整代码

<template>
	<baseTable
        :columns="listData.columns"
        :tableData="listData.tableData"
        :total="listData.total"
        :queryParams="listData.queryParams"
        @getList="getList(listData.listMethod)"
      >
      	 <!-- 
          根据数据中slot字段来确定是否生成插槽
          infoFlag字段标识是否有详情,如果有详情则可点击当前单元格查看详情,若没有详情则展示文本内容
          -->
        <template
          v-for="item in listData.columns"
          v-if="item.slot"
          :slot="item.slot"
          slot-scope="scope"
        >
          <u v-if="infoFlag && scope.row[item.key]">
            <a @click="getInfo(listData.infoMethod, scope)">
              {{ scope.row[item.key] }}
            </a>
          </u>
          <span v-else>
            {{ scope.row[item.key] }}
          </span>
        </template>
     </baseTable>
</template>

<script>
export default {
	data() {
		listData: {
        title: "分布区间",
        tableData: [],
        total: 0,
        // table列
        columns: [
          {
            label: "名称",
            key: "name",
            minWidth: 100,
            slot: "name",
          },
          {
            label: "<14数量",
            key: "lessThanFourteen",
            minWidth: 100,
            slot: "lessThanFourteen",
          },
          {
            label: "14-18数量",
            key: "fourteenToEighteen",
            minWidth: 100,
            slot: "fourteenToEighteen",
          },
          {
            label: "18-20数量",
            key: "eighteenToTwenty",
            minWidth: 100,
            slot: "eighteenToTwenty",
          },
          {
            label: "20-22数量",
            key: "twentyToTwentyTwo",
            minWidth: 100,
            slot: "twentyToTwentyTwo",
          },
          {
            label: "22-24数量",
            key: "twentyTwoToTwentyFour",
            minWidth: 100,
            slot: "twentyTwoToTwentyFour",
          },
          {
            label: ">=24数量",
            key: "greaterThanTwentyFour",
            minWidth: 100,
            slot: "greaterThanTwentyFour",
          },
        ],
        queryParams: {
          pageNum: 1,
          pageSize: 15,
        },
        listMethod: "getRangeList",
        infoMethod: "getRangeInfo", // 获取详情的方法
      }
	}
}
</script>

上述代码中:

  1. :slot="item.slot" 动态绑定插槽名称
  2. slot-scope="scope" slot-scope 属性指定一个变量名(我这里为scope),给作用域插槽提供数据
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值