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

银川网站建设网络白天做彩票维护的网站

银川网站建设网络,白天做彩票维护的网站,威海网站建设公司哪家好,六安政务中心网站文章目录 前言一、遇到的交互场景el-tree 中 check-strictly 属性 二、处理父级的半选中以及选中交互el-treecheck#xff0c;check-change 事件编辑进来#xff0c;父级的半选状态处理 总结 前言 在开发后台管理系统的时候#xff0c;用户的权限控制是一个常见的需求。这里… 文章目录 前言一、遇到的交互场景el-tree 中 check-strictly 属性 二、处理父级的半选中以及选中交互el-treecheckcheck-change 事件编辑进来父级的半选状态处理 总结 前言 在开发后台管理系统的时候用户的权限控制是一个常见的需求。这里需要探讨下按钮的级别的权限控制以及实现中使用element-plus tree 组件的使用细节。 一、遇到的交互场景 基于原有的基础上实现按钮级别的权限控制原有的如下图每一个菜单都有一个唯一IDPID父级ID现在需要扩展的功能就是添加一个button按钮控制其中主要的细节交互 取消选中子级menu/button父级不关联取消选中/取消父级catalog/menu子级全部选中/取消选中/取消部分子级menu/button父级关联半选中状态indeterminatetrue 其中我用的是el-tree 组件我用button:xxx业务按钮这样的方式来命名后端也给了区分类型的字段typecatalog目录)menu菜单button按钮。 el-tree 中 check-strictly 属性 el-tree 中 check-strictly 属性为了实现取消选中子级menu/button父级不关联取消这里check-strictly设置为true设置后点击父级也不关联子级选中了用户用起来不方便这里就需要我们自己处理 二、处理父级的半选中以及选中交互 el-tree el-treereftreeRef:check-strictlytrue:datatreeDatashow-checkboxdefault-expand-allnode-keyidhighlight-current:default-checked-keysvariable.roleForm.featureIds:propsdefaultPropscheckhanleCheckcheck-changecheckChange/const defaultProps {children: children,label: function (treeData: any, treeNode: any) {return treeData?.name} }checkcheck-change 事件 这里主要用的事件 checkcheck-change const hanleCheck (data:any, node:any) {console.log(data, node);// 获取当前节点是否被选中const isChecked treeRef.value!.getNode(data).checked// 如果当前节点被选中则遍历下级子节点并选中如果当前节点取消选中则遍历下级节点并取消if (isChecked) {// 判断该节点是否有下级节点如果有那么遍历设置下级节点为选中data.children data.children.length 0 setChildreChecked(data.children, true)} else {// 如果节点取消选中则取消该节点下的子节点选中data.children data.children.length 0 setChildreChecked(data.children, false)}function setChildreChecked(node:any, isChecked:boolean) {node.forEach((item:any) {item.children item.children.length 0 setChildreChecked(item.children, isChecked)// // 修改勾选状态treeRef.value!.setChecked(item.id, isChecked,false)})} }const checkChange (data, checked, indeterminate) {// console.log(data, checked, indeterminate);// 选中全部子节点父节点也默认选中但是子节点再次取消勾选或者全部子节点取消勾选也不会影响父节点勾选状态let checkNode treeRef.value!.getNode(data)//获取当前节点// 勾选部分子节点父节点变为半选状态if (checkNode.parent checkNode.parent.childNodes.some(ele ele.checked)) {checkNode.parent.indeterminate true}// 勾选全部子节点父节点变为全选状态if (checkNode.parent checkNode.parent.childNodes.every(ele ele.checked)) {checkNode.parent.checked truecheckNode.parent.indeterminate false}// 如果取消所有第二节点的勾选状态则第一层父节点也取消勾选if (checkNode.level 2 checkNode.parent.childNodes.every(ele !ele.checked)) {checkNode.parent.checked falsecheckNode.parent.indeterminate false} } 其中上面用的 treeRef.value!.setChecked(item.id, isChecked,false)看文档说第三个属性是是否要递归我觉得是设置了true后应该帮我递归选中/取消关联的节点但没有生效所以还是自己递归下有大佬能指出是我的用法有问题吗劳烦指出 编辑进来父级的半选状态处理 上述方法实现后我们就可以实现上述交互了但这里要注意的一点就是点击编辑进入的父级的半选状态没有选中也就是说 checkNode.parent.indeterminate 这个没有被设置为true下面打个补丁。 const editRole async (row: any) {const { permissionIds} await detailApi({ id: row.id })await nextTick()setCheckedKeys(permissionIds) // 返回用户的权限id后根据id选中树节点permissionIds.forEach((id:any) {const nodeData treeRef.value!.getNode(id) // 根据权限id获取每个选中的树节点console.log(nodeData,nodeData)console.log(nodeData.parent?.id,nodeData.parent?.id)// 反显上面setCheckedKeys后如果父级没有选中则把半选状态设置trueif(nodeData?.parent?.id ! 0 !nodeData?.parent?.checked){nodeData.parent.indeterminate true}}); }总结 后台管理系统常见的权限控制需求这里讲button实现交互细节处理 取消选中子级menu/button父级不关联取消选中/取消父级catalog/menu子级全部选中/取消选中/取消部分子级menu/button父级关联半选中状态indeterminatetrue 下篇再补上button 的根据权限控制显示用vue3 的指令实现谢谢关注
http://www.dnsts.com.cn/news/85304.html

相关文章:

  • 做网站能设置关键词在百度中搜索到网站建设放什么会计科目
  • 网站 推广做网站必须要dreamever
  • 网站区域名怎么注册吗wordpress需要什么安装环境
  • 网站开发简历网站开发公司销售总监岗位要求
  • 网站底部代码下载企业对网站建设的发展
  • 自己如何做网站源码查一下红之易道学做的什么网站
  • 给人做logo的网站WordPress 斗鱼
  • php网站访问很慢adminlte wordpress
  • 做网站需要多大空间wordpress 宽屏
  • 移动营销做手机网站全球速卖通的信用评价分为哪两类
  • 怎样在网站上做外贸廊坊网站排名优化价格
  • 专业机票网站建设长沙网
  • 各大网站投稿方式青海媒体网站建设公司
  • 南昌住房和城乡建设部网站电话网站设计目的怎么写
  • 高端移动网站建设详情页模板哪个网站好
  • 网站改版的方式大致为网店推广的目的是什么
  • 开一个做网站的公司合肥企业建网站
  • 什么网站做蔬菜生鲜比较好腾讯网站建设费用
  • wordpress 安卓 源码网站建设优化建站
  • 做网站用go语言还是php北京vi设计哪家公司好
  • 上海做推广网站标小智logo设计官网
  • 网站建设提升医院信息化水平教育网站制作哪个好
  • 娱乐公司网站模板做代理需要交钱吗
  • 做网站模板和服务器是一样的吗网页制作基础教程第2版电子教材
  • 建设银行网盾进不去网站是怎么办东莞加工厂外发网
  • 国内知名网站建设排名返回json数据的网站
  • 网站域名购买后能修改吗无锡装修公司做网站
  • 如何在云服务器上开多几个网站做一家直播卖货的网站
  • 物流网站的建设广告创意设计模板
  • 山东网站开发制作桂林网站开发建设