欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 三个一行的多选框组

三个一行的多选框组

2025/11/5 5:44:35 来源:https://blog.csdn.net/weixin_57166400/article/details/146099234  浏览:    关键词:三个一行的多选框组

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

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

 <el-checkbox-groupv-model="productGroups"><el-row :gutter="20"><el-colv-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-rowv-for="(childArr, index) in productGroup":key="index":gutter="20"><el-colv-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>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词