IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ant design vue 表格table 默认选择几项getCheckboxProps -> 正文阅读

[JavaScript知识库]ant design vue 表格table 默认选择几项getCheckboxProps

首先我们看一下场景在table组件里默认选择第一项,如下图所示:
在这里插入图片描述
查看table文档后发现只有getCheckboxProps或许能修改checkbox
在这里插入图片描述
文档说是一个函数,然后就写一个方法,有一个默认的形参record
但是文档并没有解释怎么用,无奈继续在网上大浪淘沙,终于找到有一个defaultChecked属性
table里点击 checkbox 会触发onChange , 从而得到selectedRowKeys,selectedRowKeys就是选中的 key 数组。

 onChange: (selectedRowKeys, selectedRows) => {
    console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
  },

默认禁用disable 某项时,官方文档给出了例子:

    rowSelection() {
      const { selectedRowKeys } = this;
      return {
        onChange: (selectedRowKeys, selectedRows) => {
          console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
        },
        getCheckboxProps: record => ({
          props: {
            disabled: record.name === 'Disabled User', // Column configuration not to be checked
            name: record.name,
          }
        }),
      }
    }

主要是getCheckboxProps 里面的disabled 属性控制的。

默认选中某项时,需要 getCheckboxProps 里面的defaultChecked 属性控制:
业务场景:默认选择第一项,这时候就用到了默认勾选的属性

下面是我的核心代码
核心代码defaultChecked:record == this.gpuInfoList[0].

<a-table
          v-if="selectedKeyFlag"
          :bordered="false"
          :row-key="record => record.id"
          :loading="loadingGpu"
          :columns="columns"
          :data-source="gpuInfoList"
          :pagination="false"
          style="width: 850px"
          :row-selection="rowSelection"
          :locale="{ emptyText: '暂无可选服务器' }"
        >
          <span slot="gpuProductName" slot-scope="text">
            <ellipsis :length="32" tooltip>{{ text }}</ellipsis>
          </span>
          <span slot="cpuSize" slot-scope="text">
            <ellipsis :length="18" tooltip>{{ text + 'CPU' }}</ellipsis>
          </span>
          <span slot="memorySize" slot-scope="text">
            <ellipsis :length="18" tooltip>{{ text + 'GB' }}</ellipsis>
          </span>
          <span slot="price" slot-scope="text">
            <ellipsis :length="26" tooltip>{{ priceUnitFilter(text) }}</ellipsis>
          </span>
        </a-table>
computed: {
  rowSelection() {
      return {
        type: 'radio',
        onChange: this.onSelectChange,
        getCheckboxProps: this.getCheckboxProps
      }
    }
   },
 methods: {
       getCheckboxProps(record) {
      if (record == this.gpuInfoList[0]) {
        this.onSelectChange(null, [this.gpuInfoList[0]])
      }
      这也是业务,具体怎么写看你的业务情况
      return {
        props: {
          defaultChecked: record == this.gpuInfoList[0]
        }
      }
    },
 onSelectChange(selectedRowKeys, selectedRows) {
 	console.log(selectedRowKeys, selectedRows)
 	下面是我项目中的业务逻辑可以省略掉...
      const that = this
      that.selectedRows = selectedRows[0]
      this.$emit('handleConfigureBase', selectedRows[0])
      // 查询出具体的资源池,拿到存储类型
      if (selectedRows[0] && selectedRows[0].id) {
        const configId = selectedRows[0].id
        // console.log(configId, '-----------------')
        specConfigId({ specConfigId: configId }).then(res => {
          that.storageType =
            res && res.data && res.data.storageType !== null && res.data.storageType !== undefined
              ? res.data.storageType
              : null
          const storageItem = { id: res.data.storageType || null, name: res.data.storageTypeName || null }
          that.$emit('handleStorageType', storageItem)
          that.$emit('handleStorageSize', that.storageSize)
        })
      }
    },

基于此,我的需求实现了,你的呢?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:41:41  更:2021-10-15 11:44:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 14:44:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码