jQuery MiniUI

 找回密码
 立即注册
查看: 4770|回复: 3
打印 上一主题 下一主题

权限树中的functions怎么关联其权限表的以下各行能否说明下 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-12-3 19:55:08 |只看该作者 |倒序浏览
   mini.parse();
    var tree = mini.get("treegrid1");
    tree.setUrl("/SYS/ymdesoa_qx_data.aspx?method=LoadTree");
    tree.load();
    function ondrawcell(e) {
        var tree = e.sender,
            record = e.record,            
            column = e.column,
            field = e.field,
            id = record[tree.getIdField()],
            funs = record.functions;
        function createCheckboxs(funs) {
            if (!funs) return "";
            var html = "";
            for (var i = 0, l = funs.length; i < l; i++) {
                var fn = funs[i];
                var clickFn = 'checkFunc(\'' + id + '\',\'' + fn.action + '\', this.checked)';
                var checked = fn.checked ? 'checked' : '';
                html += '<label class="function-item"><input ' + checked + ' type="checkbox" name="'
                        + fn.action + '" hideFocus/>' + fn.name + '</label>';
            }
            return html;
        }
        if (field == 'functions') {
            e.cellHtml = createCheckboxs(funs);
        }
    }
    function getFuns() {
        var data = tree.getData();
        var json = mini.encode(data);
        alert(json);
    }
    function checkFunc(id, action, checked) {
        var record = tree.getRecord(id);
        
        if(!record) return;
        var funs = record.functions;
        if (!funs) return;
        function getAction(action) {
            for (var i = 0, l = funs.length; i < l; i++) {
                var o = funs[i];
                if (o.action == action) return o;
            }
        }
        var obj = getAction(action);
        if (!obj) return;
        obj.checked = checked;
    }

Rank: 8Rank: 8

沙发
发表于 2013-12-4 09:28:23 |只看该作者
1.根据数据用ondrawcell在单元格上绘制出一些权限的checkbox,并且根据数据的checked状态,决定是否给check设置checked选中,并且加上onclick事件,check的id为行id,以便后面通过点击事件获取到行

2.每当点击check,都会进入到checkFunc()里面,会通过传过来的当前点击的check的id来获取到行,如果该check的点击是属于选中,那么就把这行的的这个check对应的权限值的checked改为true.

3.由于是ondrawcell绘制到单元格上的,所以他不属于表格的单元格编辑器,无法通过getchanges()获取,所以只能获取全部的数据,然后发送到后台,逐条更新该数据在数据库中的数据

Rank: 2

板凳
发表于 2013-12-8 17:11:17 |只看该作者
http://miniui.com/demo/#src=treegrid/functiontree.html
请据此示例参照如图效果,看怎么实现?


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 9Rank: 9Rank: 9

地板
发表于 2013-12-9 09:49:35 |只看该作者
模板与模板之间其实是不存在父子选中关系的。
一个系统有N个模块,一个模板有N个权限。
你现在是将模板有N多关系,模板与权限又有联动选择关系,是把系统设计过于复杂了。
参考:http://miniui.com/demo/#src=treegrid/functiontree.html
这个就是很标准的模板权限分配方式。

Archiver|普加软件

GMT+8, 2025-7-14 01:32 , Processed in 1.048030 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部