中后台系统总结之角色管理(1)

72 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情juejin.cn/post/714765…

  • 今天写项目的时候,写到了角色管理
  • 主要用到了antd的Card组件和Tree组件,最开始的时候,所有人的数据都是自己向服务器发送请求回来的,并渲染到表格中。
  • 最初始的时候,创建角色部分是可操作的,而设置角色权限部分是disabled的,当点击了某一个人的信息的时候,就去掉disabled属性,会弹一个Card组件,Card组件中包含了Tree组件,给大家上图看一下:

4.png

下面的图是弹框

1.png

  • 最初始打开的时候,首页是被勾选了的,当想要进行修改权限时,发现修改不了,原来是我在设置<Tree/>组件的时候,把checkedKeys={role.menus}的属性设置成了固定的值,这个值是我从服务器请求回来的menus属性,正常应该是把它设置成动态的。
  • 上面的Tree内容是通过递归函数渲染出来的,以前不太会用递归函数,但是用了以后感觉真香,但是现在用起来有时候也没有思路,觉得很难。给大家看一下我写的递归: 微信图片_20221003230342.png
  • 具体是怎么解决的,给大家上代码: 2.png<Tree/>组件里有一个onCheck事件,该事件是在当我们选中radio(就是上面第一张图的单选按钮)的时候调用的函数,把该事件也给大家上图:

3.png 该函数接收两个参数,第一个参数所有menus的集合,在该函数体里更新checkdKeys的状态,使组件重新渲染。所以在最终的时候<Tree/>组件的checkedKeys={role.menus}属性应该改写成checkedKeys={checkedKeys},因为单选按钮被默认选中就是根据checkedKeys属性进行设置的。

我写的不太好,如果大家有更好的一些解决方法,可以留言哦!!!