element-ui 递归出来的el-checkbox实现全选和反选
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
·
直接贴代码吧
<el-tree :data="formData.roleMenuList" class="zl-slot-tree" node-key="id" :props="defaultProps" :expand-on-click-node="false">
<div class="custom-tree-node" slot-scope="{ node, data }">
<div style="width: 195px;">
<span>{{ data.name }}</span>
<span class="menuCheck">
<el-checkbox v-model="data.isCheck" @change="((val) => { handleCheckAllChange(val, data) })">开启</el-checkbox>
</span>
</div>
<div class="funcList">
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
<el-checkbox v-for="item in data.roleFunctionList" :label="item.id" :key="item.id">{{ item.name }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</el-tree>
实现效果

要求点击开启时候,实现子数据的全选和反选。
原本的思路是,点击开启绑定个@change事件,但官网上checkbox的change事件,在事件中拿到的是选中后改变的状态,也就是true或者false,并且不接受其他传值。

后来百度了下,网友都是用手动递归,然后给el-checkbox-group绑定个v-model,v-model为选中checkbox的id集合,我嫌太麻烦。就想了个办法

利用es6语法,手动塞值, 这样我们在方法里既能拿到改变后的状态,又能拿到当前菜单的子数据。
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:2 个月前 )
c345bb45
1 年前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)