Helius
2021-06-16 5728be2af515b2200e782aa201ca5d4d67d9ea47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
layui.define([ 'form', 'laydate', 'table','roleApi'], function(exports) {
    var form = layui.form;
    var laydate = layui.laydate;
    var table = layui.table;
    var zTreeObj = null;
    var roleApi = layui.roleApi;
    var checkedRoleId=null;
    var view ={
        
        init:function(roleId){
            this.initFunctionTree();
            this.initSaveFunction();
            
        },
        initFunctionTree:function(){
            var that = this;
            $.post(Common.ctxPath + "/admin/function/tree.json", {}, function(response) {
                var zNodes = response.data;
                // select parent node does not affect the children node
                var setting  = {"check":{"chkStyle":"checkbox","enable":true, "chkboxType": { "Y": "p", "N": "p" }}};
                zTreeObj = $.fn.zTree.init($("#functionTree"), setting, zNodes);
                //功能树加载完毕后在初始化其他控件
                that.initFirstRole();
                that.initRoles();
            
            })
        },
        initSaveFunction:function(){
            
            $("#save").click(function(){
                var nodes = zTreeObj.getCheckedNodes(true);
                var ids = Common.concatBatchId(nodes,"id")
                roleApi.saveFunctions(checkedRoleId,ids)
                
            });
        },
        initRoles:function(){
            var that = this;
            form.on('radio(roleId)', function(data){
                 checkedRoleId = data.value; //被点击的radio的value值
                 that.loadFunctionByRole(checkedRoleId);
            })
            
        },
        initFirstRole:function(){
            var firstRole=$(".layui-form").find(":radio")[0]
            checkedRoleId= $(firstRole).val();
            this.loadFunctionByRole(checkedRoleId);
            $(firstRole).prop("checked",true);
            form.render();
            
        },
        loadFunctionByRole:function(roleId){
//            debugger;
            var nodes = zTreeObj.getCheckedNodes(true);
            for(var i=0;i<nodes.length;i++){
                zTreeObj.checkNode(nodes[i], false, true);
            }
            roleApi.queryFunctionByRole(roleId,function(fnIds){
                for(var i=0;i<fnIds.length;i++){
                    var node = zTreeObj.getNodesByParam("id",fnIds[i]);
                    zTreeObj.checkNode(node[0], true, true);
                }
            });
        }
        
    }
    
    
    
    
 
     exports('roleFn',view);
    
});