当前位置: 首页 > article >正文

三个一行的多选框组

公司需要实现三行一组的多选框,类似于底下的效果,这是我最初实现的,结果显而易见,被驳回了,理由就是我下面圈红框的部分,看着奇怪,不满足要求的三个一行

这种实现很简单,就使用了elmentui的布局组件,设置了每个宽度为三分之一,然后把数据做个遍历就行

 <el-checkbox-group
              v-model="productGroups"
            >
              <el-row :gutter="20">
                <el-col
                  v-for="item in productGroup"
                  :key="item.value"
                  :span="8"
                  ><div class="grid-content">
                    <el-checkbox :label="item.value">{{
                      item.label
                    }}</el-checkbox>
                  </div></el-col
                >
              </el-row>
            </el-checkbox-group>

这就是我上面最初版的代码,由于布局组件全部在一个el-row里的浮动会自动填充,但是我的高度不一定都是一样的,所以会出现下面这种效果。

有的人会不会想,既然是高度不一样,那你设置高度一样不就完了吗?

我刚开始也是这么想的,但是我又想到了,我们的项目是会国际化的,我不能保证其他语言的高度是多少,通过设置高度的思路不太现实,可能反而更复杂。

最终还是老老实实的,每一行都要有个el-row,然后把这些label数组改成一个二维数组,这样就保险了,

这是修改后的效果,上代码

数据处理成二维数组:

    // 产品组
    productGroup() {
      let arr = Dic.find('DIC040')
      arr = arr.map((item) => {
        return {
          label: item.value + item.label,
          value: item.value,
        }
      })
      // 将数组处理成二维数组,每个数组包含3个元素
      const result = []
      for (let i = 0; i < arr.length; i += 3) {
        result.push(arr.slice(i, i + 3))
      }
      return result
    },

HTML

   <el-checkbox-group v-model="productGroups">
              <el-row
                v-for="(childArr, index) in productGroup"
                :key="index"
                :gutter="20"
              >
                <el-col
                  v-for="item in childArr"
                  :key="item.value"
                  :span="8"
                  ><div class="grid-content">
                    <el-checkbox :label="item.value">{{
                      item.label
                    }}</el-checkbox>
                  </div></el-col
                >
              </el-row>
            </el-checkbox-group>


http://www.kler.cn/a/580323.html

相关文章:

  • 破局企业AI落地难题!迅易科技DeepSeek私有化部署全场景解决方案
  • Swagger笔记
  • C#中的【Obsolete】属性Attribute
  • MySQL初阶 | 库的操作
  • PostgreSQL 的登陆方式(本地和远程)
  • 《人月神话》:软件工程的成本寓言与生存法则
  • postgresql使用mysql_fdw连接mysql
  • 大白话如何使用 CSS 实现响应式布局?请列举一些常见的方法。
  • Vue3中如何实现单页应用(SPA)导航操作
  • HTML中的块元素与行内元素
  • P8700 [蓝桥杯 2019 国 B] 解谜游戏--string与cstring、memset()介绍
  • Unity Job系统详解原理和基础应用处理大量物体位置
  • 24.Harmonyos Next仿uv-ui 组件 NumberBox 步进器组件步长设置
  • Android GMS集成
  • pytorch下载速度慢?试试离线安装
  • Yashan DB 实例管理
  • 蓝桥备赛(12)- 顺序表和 vector(上)
  • 《C#上位机开发从门外到门内》2-1:串口通信(UART)
  • 【linux】【文件】文件权限基础
  • 03 2个路由器构造三个子网相互访问, 3个路由器构造5个子网相互访问