有关权限树的问题。高分请教!

有关权限树的问题。高分请教!,第1张

首先,确定下。 你是不是每个角色下面的 功能列表是一样!就是不同的角色他的功能前面的checkbox数量是一样的,就是选中的数量不是一样? 如果这样的话,在你的点击展开的那个【事件】中遍历每个角色的权限!这里你的时间中 要求点击的时候的到一个角色ID(即roleid),然后根据你这个ID进行遍历取出一个dataset (即角色表的functionid)(不知道和JAVA 里面的LIST 差不多吧)然后就用你的值和checkbox的Value比较,如果相等就让checkbox处于选中状态!(这里也就是一个 for循环,遍历dataset 中的functionid,然后你最好提前将treefunctions中的数据也放到一个dataset 中,这里在你循环dataset 时候就可以比较,强烈建议用Map保存treefunctions,使用键值对来得到functionid!) !还有你的checkbox也绝对是根据一个集合来动态添加的,他的value 就是functionid,text就是你的functionName !!大约思路 ,我表达能力不行!

首先打开树控件的属性对话框,添加单击事件如下图 *** 作,

,以上 *** 作会自动向工程中添加单击处理函数如下:

void CXXXXXX::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)

{

// TODO: 在此添加控件通知处理程序代码

CPoint Pos

::GetCursorPos(&Pos)  //获取鼠标点击的位置坐标

CPoint pt(Pos)

m_Treectrol.ScreenToClient(&pt)  //有屏幕坐标转成  控件坐标(树控件的客户区坐标)

HTREEITEM hSelItem = m_Treectrol.HitTest(pt)  //通过HitTest获取单击的子项

CRect rec

m_treeTaskRule.GetItemRect(hSelItem, &rec, TRUE)

if (hSelItem != 0 )//&& rec.PtInRect(pt)         //判断是否单击到子项(注释掉的代码为是否点击到子项区域一般是其文字显示区域)

{

m_Treectrol.SelectItem(hSelItem) //选中点击项

// add your  code

}

*pResult = 0

}

右键菜单: 选中子节点全被选中)... layui里面没有给到右键菜单,所以,我自己把源码改了一下: 找到layui文件夹里modules下的tree.js 用以上代码,替换以下代码 当i.which等于3,是右键事件,等于1是左键。 所以,左键响应的事件,还是可以在tree的属性设置的时候的click属性里写自己的左键事件,如 tree.render({ elem: '#test1' ,click: function(obj){ console.log(obj.data)//得到当前点击的节点数据 console.log(obj.state)//得到当前节点的展开状态:open、close、normal console.log(obj.elem)//得到当前节点元素 console.log(obj.data.children)//当前节点下是否有子节点 } })右键就在上面选中代码里if分支,i.swich=3的地方搞事情,菜单的话,就是自己写个菜单,然后根据鼠标点击位置显示和隐藏就好了。 二、父节点选中子节点全被选中 一个树形组件,比如到权限管理的时候,回显的时候,父节点被设置为选中,所有改节点的子节点都被设置为选中,但我们需要的可能是这 样的回显: 1、所以,要么,只获取所有已经拥有的权限的最末端的id,然后用 tree.setChecked('demoId', 1)//单个勾选 id 为 1 的节点 tree.setChecked('demoId', [2, 3])//批量勾选 id 为 2、3 的节点 去设置,这样,当子节点被一个选中,改节点的父节点也会被设置为选中,就可以得到需要的样子。 2、不然,就要把数据按照需要的样子做好,再重载实例 tree.reload('demoId', { //新的参数 data:newdata})数据怎么做呢?

查看更多


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11616327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存