companyAuthority.html 5.83 KB
<style>
    .cmpy-auth-card {
        width: 760px;
        background: #fff;
        margin: auto;
        padding: 15px;
        box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
    }

    .cmpy-auth-card .yunyin-company-panel:last-child {
        border-bottom: none;
        padding-bottom: 0px;
    }

    .yunyin-company-panel {
        border-bottom: 1px solid #e9e5e5;
        padding-bottom: 5px;

        user-select:none;
    }

    .yunyin-company-panel .company {
        font-size: 13px;
    }

    .yunyin-company-panel .sub-company {
        display: inline-block;
        text-align: center;
        padding: 5px 15px;
        border-radius: 5px !important;
        color: #5d5c5c;
        font-size: 13px;
        background: linear-gradient(to bottom, #fafafa, #eeeeee);
        cursor: pointer;
        border: 1px solid #eeeeee;
    }

    .yunyin-company-panel .sub-company.active {
        background: linear-gradient(to bottom, #2ab4c0, #229ea9);
        color: #fdfdfd;
    }
</style>

<div id="roleCompanyAuthority">

    <div class="page-head">
        <div class="page-title">
            <h1>模块配置</h1>
        </div>
    </div>

    <ul class="page-breadcrumb breadcrumb">
        <li><a href="/pages/home.html" data-pjax>首页</a> <i
                class="fa fa-circle"></i></li>
        <li><span class="active">权限管理</span> <i class="fa fa-circle"></i></li>
        <li><a href="list.html" data-pjax>角色管理</a> <i class="fa fa-circle"></i></li>
        <li><span class="active">分公司数据权限</span></li>
    </ul>

    <div class="cmpy-auth-card">

        <h4>角色信息</h4>
        <table class="table">
            <tr>
                <td>
                    代码:<span id="roleCode"></span>
                </td>
                <td>
                    名称:<span id="roleName"></span>
                </td>
            </tr>
        </table>
    </div>
    <br><br>
    <div class="cmpy-auth-card cmpy-list">
    </div>

    <div class="cmpy-auth-card" style="text-align: right;">
        <button type="button" class="btn btn-default">返回</button>&nbsp;
        <button type="button" class="btn btn-primary saveBtn" ><i class="fa fa-check"></i>保存</button>
    </div>

    <script id="role-company-authority-temp" type="text/html">
        {{each list as obj i}}
        <div class="yunyin-company-panel">
            <h5 class="company">{{obj.name}}</h5>
            {{each obj.childs as fgs i}}
            <div class="sub-company" data-company="{{obj.name}}" data-id="{{fgs.upCode}}_{{fgs.businessCode}}">{{fgs.businessName}}</div>
            {{/each}}
        </div>
        {{/each}}
    </script>

</div>

<script>
$(function () {
    var id = $.url().param('no')
            ,roleObj;

    if(!id){
        alert('缺少主键');
    }
    else{
        $.get('/role/'+id , function(obj){
            $('#roleCompanyAuthority #roleCode').text(obj.codeName);
            $('#roleCompanyAuthority #roleName').text(obj.roleName);
        });
    }


    $.get('/business/all', function (rs) {
        var baseCode;
        //找到跟节点
        $.each(rs, function () {
           if(this.upCode == 0){
               baseCode=this.businessCode;
               return false;
           }
        });
        if(!baseCode){
            alert('大爷找不到跟节点,数据有问题吧!!!');
            return;
        }
        //提取二级节点
        var secondMap={};
        $.each(rs, function () {
            if(this.upCode==baseCode){
                secondMap[this.businessCode] = {
                    name: this.businessName,
                    childs: []
                };
            }
        });
        //分公司节点
        $.each(rs, function () {
            if(secondMap[this.upCode])
                secondMap[this.upCode].childs.push(this);
        });

        //排序
        for(var sid in secondMap){
            secondMap[sid].childs.sort(naturalSort);
        }

        var htmlStr=template('role-company-authority-temp', {list: get_vals(secondMap)});
        $('#roleCompanyAuthority .cmpy-list').html(htmlStr);

        //查询公司权限信息
        $get('/companyAuthority/all', {roleId_eq: id}, function (rs) {
            //console.log(rs);
            var dataId;
            $.each(rs, function () {
                dataId=this.companyCode+'_'+this.subCompanyCode;
                $('.cmpy-list div.sub-company[data-id='+dataId+']').addClass('active');
            });
        });
    });

    $('#roleCompanyAuthority').on('click', '.cmpy-list .sub-company', function () {
        if($(this).hasClass('active'))
            $(this).removeClass('active');
        else
            $(this).addClass('active');
    });

    var get_vals = function(json) {
        var array = [];
        for (var key in json) {
            array.push(json[key]);
        }

        return array;
    }

    var naturalSort=function (a, b) {
        return a.businessCode.localeCompare(b.businessCode);
    }

    //保存
    $('#roleCompanyAuthority .saveBtn').on('click', function () {
        var ats=$('.cmpy-list div.sub-company.active', '#roleCompanyAuthority')
                ,data=[];
        var code;
        $.each(ats, function () {
            code = $(this).data('id').split('_');
            data.push({
                companyCode: code[0],
                subCompanyCode: code[1],
                companyName: $(this).data('company'),
                subCompanyName: $(this).text()
            });
        });

        $post('/companyAuthority/save', {roleId: id, authJsonStr: JSON.stringify(data)}, function (rs) {
            alert('保存成功!');
        })
    });
});
</script>