修改用户角色权限(Ztree)

1.修改权限

@{
    ViewBag.Title = "修改模块功能";
    Layout = "~/m_admin/views/shared/_Layout.cshtml";
    
}

@model SYS.Authority.Model.RoleInfo
@section Header{
    <link href="~/Content/Plug/zTree_v3/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <style>
        tr th {
            text-align: right;
        }
    </style>
}

<form method="post">
    <input type="hidden" name="roleid" value="@Model.Id"/>
    <input type="hidden" name="appid" value="@Model.AppId" />
    <table>
        <tr><th>名称:</th><td>@Model.Name</td></tr>
        <tr>
            <th>权限:</th>
            <td><ul class="ztree" id="treeDemo"></ul></td>
        </tr>
        <tr><td colspan="2" style="text-align:center"><button class="btn btn-primary" type="button" onclick="Edit()">确定</button></td></tr>
    </table>

</form>

@section Footer{

    <script src="~/Content/Plug/zTree_v3/js/jquery.ztree.all-3.5.js"></script>
    <script type="text/javascript">
        var setting = {
            view: { selectedMulti: false },
            check: { enable: true, chkboxType: { "Y": "p", "N": "s" } },
            data: { keep: { parent: true, leaf: true }, simpleData: { enable: true } },
            callback: {}
        };
        function Edit() {
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var node = treeObj.getCheckedNodes(true);
            var fIds = [];
            if (node.length) { $.each(node, function () { fIds.push(this.id); }); }

            artDialog.ajax({
                url: "/admin/role/EditFunc",
                data: { appId: $('[name="appid"]').val(), id: $('[name="roleid"]').val(), functionIds: fIds.join(',') },
                success: function (result) {
                    artDialog.tips(result.Message);
                    setTimeout(function () { art.artDialog.close(); }, 1000);
                }
            });
        }
        function SetSelect() {
            artDialog.ajax({
                url: "/admin/role/getrolefunction", data: { roleid: $('[name="roleid"]').val() },
                success: function (result) {
                    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
                    $.each(result.Data, function () {
                        var node = treeObj.getNodeByParam("id", this.Id);
                        if (node != null) { treeObj.checkNode(node, true, true); }
                    });
                }
            });
        }
        $(function () {
            $.ajax({
                async: false,
                cache: false,
                type: 'POST',
                dataType: "text",
                url: "/admin/function/getjson",
                error: function () { artDialog.alert(null, null, "请求失败"); },
                success: function (data) {
                    var zNodes = eval("(" + data + ")");
                    $.fn.zTree.init($("#treeDemo"), setting, zNodes);
                   SetSelect();
                }
            });

        });
    </script>
}

2.控制器

public Json GetJson()
{
     protected StringBuilder sb = new StringBuilder();
      public string FunctionGetJson()
      {
          sb.Clear();
          List<FunctionInfo> dv = Filter().Where(c => c.ParentId == 0).OrderBy(f => f.Sort).ToList();


          List<FunctionInfo> dvs = null;
          sb.Append("[");
          int count = dv.Count;
          for (int i = 0; i < dv.Count; i++)
          {
              var pid = dv[i].Id;
              sb.Append("{name:\"" + dv[i].Name + "\",pId:" + dv[i].ParentId + ",id:" + dv[i].Id + "");
              dvs = Filter().Where(c => c.ParentId == pid).OrderBy(f => f.Sort).ToList();
              if (dvs.Count > 0)
              {
                  sb.Append(",");
                  GetParent(dvs);
              }
              sb.Append("}");
              if (count > i + 1)
              {
                  sb.Append(",");
              }
          }
          sb.Append("]");
          return sb.ToString();
      }
      protected void GetParent(List<FunctionInfo> dv)
      {
          List<FunctionInfo> dvs = null;
          sb.Append("children:[");
          for (int i = 0; i < dv.Count; i++)
          {
              var pid = dv[i].Id;
              sb.Append("{name:\"" + dv[i].Name + "\",pId:" + dv[i].ParentId + ",id:" + dv[i].Id + "");
              dvs = Filter().Where(c => c.ParentId == pid).ToList();
              if (dvs.Count > 0)
              {
                  sb.Append(",");
                  GetParent(dvs);
              }
              sb.Append("}");
              if (dv.Count > i + 1)
              {
                  sb.Append(",");
              }
          }
          sb.Append("]");
      }
  
}


#region 该角色的权限(Ztree选中) +JsonResult GetRoleFunction(int roleId)
        /// <summary>
        /// 该角色的权限(Ztree选中)
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public JsonResult GetRoleFunction(int roleId)
        {
            var res = AuthorityManager.Instance(1001)
                 .roleFunctionManager.Filter(" and RoleId=@RoleId", new { RoleId = roleId })
                 .Select(m => new
                 {
                     Id = m.FunctionId
                 });
            return Json(new { Data = res });
        } 
        #endregion

 

转载于:https://www.cnblogs.com/renfushuai/p/5263016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值