vxe-table 表格多选框回显

这篇具有很好参考价值的文章主要介绍了vxe-table 表格多选框回显。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.弹框表格结构

vxe-table 表格多选框回显

 文章来源地址https://www.toymoban.com/news/detail-460753.html

<a-modal

              v-if="visibleQuality"

              title="请选择需要提高的能力素质要求"

              :maskClosable="false"

              :visible="visibleQuality && switchStatus"

              @ok="handleOkQuality"

              @cancel="handleCancelQuality"

              cancelText="取消"

              okText="确定"

              width="600px"

            >

              <a-spin :spinning="quaLoading" tip="加载中...">

                <vxe-table

                  ref="qualityTable"

                  row-id="id"

                  :row-config="{ keyField: 'id', isHover: true }"

                  :data="rowsQuality"

                  :checkbox-config="checkboxConfig"

                  width="600px"

                  @checkbox-change="checkboxChange"

                  @checkbox-all="checkBoxAll"

                >

                  <vxe-column type="checkbox" width="60"></vxe-column>

                  <vxe-column

                    field="abilityContent"

                    title="能力素质要求"

                    width="240"

                  >

                    <template #header>

                      <span><span style="color: #f5222d">* </span> 能力素质要求</span>

                    </template>

                  </vxe-column>

                  <vxe-column

                    field="explain"

                    title="能力素质要求说明"

                    width="240"

                  ></vxe-column>

                </vxe-table>

              </a-spin>

            </a-modal>

2. 数据 

data() {

   return {

       checkboxConfig: {}, // 默认选中

     }

}

3. 实现方法,首先要异步处理,等待数据加载完毕,再去回显

3.1 第一种方法:

ps:(重要提示)设置checkboxConfig默认选中第一次有效,第二次无效,处理:请求数据点击人员时候提前请求拿到数据,给能力素质弹框加v-if重新创建

        let arr = []

        this.qualityRows.map(v => {

          arr.push(v.abilityCode)

        })

        this.$nextTick(() => {

          this.checkboxConfig = {

            checkRowKeys: arr

          }

          this.checkboxConfig.checkRowKeys = arr

          // this.$set(this.checkboxConfig, 'checkRowKeys', arr)

        })

3.2 第二种方法:

// 第二种方法过滤得到新数组arr

        let arr = []

        if (this.rowsQuality && this.qualityRows) {

          this.rowsQuality.map(v => {

            this.qualityRows.map(item => {

              if (item.abilityCode === v.id) {

                arr.push(v)

              }

            })

          })

        }

        this.$nextTick(() => {

          this.$refs.qualityTable.clearCheckboxRow()

          this.$refs.qualityTable.setCheckboxRow(arr, true)

        })

3.3  异步处理和回显完整方法:(try,catch 配合async,await 异步处理)

async addQuality () {

      this.visibleQuality = true

      this.rowsQuality = []

      // 放在点击人员时候请求,这里注释掉

      this.quaLoading = true

      try {

        let params = {

          userId: this.currentRow.userId

        }

        let w = await Api.getAbility(params)

        this.rowsQuality = w.data // 需要选择的能力项弹框的表格数据

        this.quaLoading = false

        this.$nextTick(() => {

          if (this.rowsQuality.length === 0) {

            this.demandPersonRows[this.currentRowIndex].improveAbility = false

          }

        })

      } catch (err) {

        this.quaLoading = false

      }

      if (this.rowsQuality.length === 0) {

        this.$message.warning('未设置能力素质信息请联系管理员!')

      } else {

        // 设置checkboxConfig默认选中第一次有效,第二次无效,处理:请求数据点击人员时候提前请求拿到数据,给能力素质弹框加v-if重新创建

        // let arr = []

        // this.qualityRows.map(v => {

        //   arr.push(v.abilityCode)

        // })

        // this.$nextTick(() => {

        //   this.checkboxConfig = {

        //     checkRowKeys: arr

        //   }

        //   this.checkboxConfig.checkRowKeys = arr

        //   // this.$set(this.checkboxConfig, 'checkRowKeys', arr)

        // })

        // rowsQuality:需要选择的能力项弹框的表格数据(id),qualityRows:第三个表格能力素质项表格数据(abilityCode)

        // 第一种方法过滤 得到条件item.abilityCode === v.id 为true 的新数组arr

        // let arr = this.rowsQuality.filter(v => {

        //   let flag = false

        //   this.qualityRows.map(item => {

        //     if (item.abilityCode === v.id) {

        //       return (flag = true)

        //     }

        //   });

        //   if (flag) {

        //     return true;

        //   }

        // })

        // 第二种方法过滤得到新数组arr

        let arr = []

        if (this.rowsQuality && this.qualityRows) {

          this.rowsQuality.map(v => {

            this.qualityRows.map(item => {

              if (item.abilityCode === v.id) {

                arr.push(v)

              }

            })

          })

        }

        this.$nextTick(() => {

          this.$refs.qualityTable.clearCheckboxRow()

          this.$refs.qualityTable.setCheckboxRow(arr, true)

        })

      }

    }

vxe-table 表格多选框回显

 

到了这里,关于vxe-table 表格多选框回显的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vxe-table实现表格行拖拽

    1.插件文档 vex-table:https://vxetable.cn/v3/#/table/base/basic sortablejs: http://www.sortablejs.com/ 2.引入插件 vxe-table: sortablejs: 3.核心拖拽函数 渲染问题解决方法链接:sortablejs拖拽列表渲染问题 4.全代码 全代码

    2024年02月16日
    浏览(48)
  • vue表格插件vxe-table导出 excel

    vxe-table 默认支持导出 CSV、HTML、XML、TXT格式的文件,不支持 xlsx 文件 要想导出 xlsx 文件,需要使用 vxe-table-plugin-export-xlsx 依赖  参考:https://cnpmjs.org/package/vxe-table-plugin-export-xlsx/v/2.1.0-beta 1.安装  例子: 如果用最新版的,依赖,这样使用就会报错 Uncaught (in promise) 亲测2.2.2版

    2024年01月22日
    浏览(48)
  • vxe-table表格合并单元格和编辑

    //这是在vue上面引用vxe-table插件实现的,主要方法都设置在table中,mergeCells,tableData都是在vue页面的data初使化数据, :footer-method=“footerMethod”:尾部数据,:merge-footer-items=“mergeCells”:尾部合并单元格。vxe-table网址:https://vxetable.cn/#/table/advanced/footerSpan

    2023年04月09日
    浏览(45)
  • vxe-table 小众但功能齐全的vue表格组件

    一个基于 vue 的 PC 端表格组件,除了一般表格支持的增删改查、排序、筛选、对比、树形结构、数据分页等,它还支持虚拟滚动、懒加载、打印导出、虚拟列表、虚拟滚动、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等,特别是能支持类似excel表格操作方式

    2024年02月08日
    浏览(48)
  • vxe-table中<vxe-grid>组件中表格数据排序问题sort-change

    问题描述,首先使用vxe-grid虚拟列表为了同时渲染大批量数据的,但是从iview ui里的table和element ui 里table都是只能渲染少量数据,达不到大批量数据渲染,所以改用vxe-grid。 但是有个排序的问题在iview ui和element ui 里table都不会存在排序混乱的问题,而vxe-grid里的排序会有问题,

    2024年02月16日
    浏览(54)
  • el-table(type=“selection“)多选框两种回显

    目录 一、前端数据回显(页面间数据展示) 1、图片帮助理解 2、描述: 3、代码 4、两个API,一个v-model 二、数据库数据回显  1、描述: 2、核心代码: 3、比较完整代码:(这是element ui官方文档上的) 4、改动过的,更加适应现实场景的代码:     几个注意点: 1、图片帮助理解

    2024年02月02日
    浏览(37)
  • el-table select 多选框如何实现选中数据回显

    现象描述: 将用户勾选的内容添加到表格,当页面还未关闭时,选项还是正常勾选,但是只要退出该页面,再进来就会发现勾选被取消了 需求描述: 已选择项默认勾选,且表格内容更改,勾选项也同步更改 效果如下:

    2024年02月14日
    浏览(45)
  • el-table 多个表格切换多选框显示bug

    今天写了个功能,点击左侧的树做判断,一级树节点显示系统页面,二级树节点显示数据库页面,三级树节点显示表页面。 数据库页面和表页面分别有2个el-table  ,上面的没有多选框,下面的有多选框  现在出现bug,在点击树节点,代码: // 点击节点     nodeClick(data) {    

    2024年02月11日
    浏览(40)
  • vxe-table中树形结构

    如图,同事让帮忙实现一个需求  从二级树节点开始,同时选中的只能有一个二级树节点,选中的二级树节点之下的子节点都可以被选中。否则不能被选中 直接上代码 需要注意的是,文中树状图传递的数据是打平的数据,设置代码是下图,而不是树状图!!  上述的这一点非常

    2024年02月10日
    浏览(43)
  • element-ui的el-table表格复选框只能单选,不可多选

    element的el-table表格复选框只能选中一条,选择下一条,上一条去掉勾选。使用文档中select方法,el-table绑定一个ref。具体代码实现如下 toggleRowSelection:用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) 

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包