laravel-cms角色管理界面和控制器

资讯头条评论48阅读模式

角色添加界面显示菜单:

更改role.blade.php如下:

@extends('admin.common')
@section('content')
<button type="button" class="btn btn-primary" style="margin:10px auto;" onclick="onShowAdd()">添加</button>
      <table class="table table-hover table-bordered">
        <thead>
          <tr>
            <th scope="col">ID</th>
            <th scope="col">名称</th>
            <th scope="col">操作</th>
          </tr>
        </thead>
        <tbody>
          @foreach ($roles as $k=>$v)
          <tr>
            <th scope="row">{{$v['id']}}</th>
            <td>{{$v['role_name']}}</td>
            <td>
              <button type="button" class="btn btn-outline-primary" onclick='editAdmin("{{route("role.detail",array("id"=>$v["id"]))}}")'>编辑</button>
              <button type="button" class="btn btn-outline-danger" onclick="deleteAdmin({{$v['id']}})">删除</button>  
            </td>
          </tr>
          @endforeach
        </tbody>
      </table>
      <nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center">
          @if($roles->currentPage()!=1)
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page=1'}}">首页</a></li>
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page='.($roles->currentPage()-1)}}">上一页</a></li>
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page='.($roles->currentPage()-1)}}"> {{$roles->currentPage()-1}}</a></li>
          @endif
          <li class="page-item">
            <a class="page-link" href="{{route('role.index').'?page='.($roles->currentPage())}}" style="background:black;color:white">
              {{$roles->currentPage()}}
            </a>
          </li>
          
          @if($roles->currentPage()!=$roles->lastPage())
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page='.($roles->currentPage()+1)}}">
            {{$roles->currentPage()+1}}</a>
          </li>
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page='.($roles->currentPage()+1)}}">下一页</a></li>
          <li class="page-item"><a class="page-link" href="{{route('role.index').'?page='.$roles->lastPage()}}">末页</a></li>
          @endif
        </ul>
      </nav>

      <!-- 添加弹框 -->
      <div class="modal fade" id="addModel" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title" id="exampleModalLabel">添加角色</h5>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">×</span>
              </button>
            </div>
            <div class="modal-body">
              <div class="form-group">
                <label for="username_id">角色名称</label>
                <input type="username" class="form-control" id="username_id" aria-describedby="emailHelp">
                <small id='username_err_id'></small>
              </div>
              <div class="form-group">
                <label for="passwd_id">密码</label>
                <input type="password" class="form-control" id="password_id">
                <small id='password_err_id'></small>
              </div>
              <div class="form-group">
                <label for="passwd_id">权限设置</label>
                <div class='check-container-cla'>
                  @foreach ($menus as $k=>$v)
                    <div class='check-mod'>{{$v['menuName']}}</div>
                    @if($v['sub'])
                      @foreach ($v['sub'] as $subk=>$subv)
                        <div class='check-menu'>{{$subv['menuName']}}</div>
                        @php
                          $subs = explode(",",$subv['act'])
                        @endphp
                        <div class='act-container'>
                        @foreach ($subs as $sk=>$sv)
                          @php
                            $acts = explode('_',$sv);
                          @endphp
                          <div class="form-check form-check-inline">
                            <input class="form-check-input" type="checkbox" value="{{$v['menuId'].'_'.$subv['menuId'].'_'.$acts[0]}}" id="check_{{$acts[0]}}">
                            <label class="form-check-label" for="check7_{{$acts[0]}}">
                              {{$acts[1]}}
                            </label>
                          </div>
                        @endforeach
                        </div>
                      @endforeach
                    @endif
                  @endforeach
                </div>
              </div>
            </div>
            <input type="hidden" id="admin_id">
            <div class="modal-footer">
              <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
              <button id="submit_id" type="button" class="btn btn-primary">确定</button>
            </div>
          </div>
        </div>
      </div>
      <style>
        #password_err_id,#username_err_id{
          color:red;
        }
      </style>
@endsection

@section('javascript')
    <script type="text/javascript">
      var menus = {!! json_encode($menus,true) !!};
      console.log(menus);
      function onShowAdd(){
        $('#addModel').modal('show');
        $('#username_id').val();
        $('#password_id').val();
        $('#admin_id').val();
      }
      $('#submit_id').click(function(){
        var checkContainer = $('.check-container-cla');
        debugger;
        var username = $('#username_id').val();
        var password = $('#password_id').val();
        var adminId = $('#admin_id').val();
        var reqUrl = '';
        var datas = {username,password,_token:"{{csrf_token()}}"};
        if(!adminId)
        {
          // 是添加
          reqUrl = "{{route('admin.store')}}";
        }else{
          // 是更改
          reqUrl = "{{route('admin.update',['admin'=>'my_id'])}}";
          reqUrl = reqUrl.replace(/my_id/,adminId);
          // datas.id = adminId;
          datas._method ='put';
        }
        
        datas = JSON.stringify(datas);
        $.ajax({
          type:"post",
          url:reqUrl,
          data:datas,
          dataType:"json",
          contentType:"application/json",
          success:function(data){
            $('#username_err_id').text('');
            $('#password_err_id').text('');
            if(data.code == 200)
            {
              window.location.reload();
            }else{
              if(data.code==1000)
              {
                data.msg.username && $('#username_err_id').text(data.msg.username[0]);
                data.msg.password && $('#password_err_id').text(data.msg.password[0]);
              }
            }
          },
          error:function(err){
          }
        });
      });
      function editAdmin(url)
      {
        $('#addModel').modal('show');
        $.ajax({
          type:"get",
          url:url,
          dataType:"json",
          contentType:"application/json",
          success:function(data){
            $('#username_err_id').text('');
            $('#password_err_id').text('');
            $('#admin_id').val();
            if(data.code == 200)
            {
              $('#username_id').val(data.info.username);
              $('#admin_id').val(data.info.id);
            }else{
            }
          },
          error:function(err){
          }
        });
      };
      function deleteAdmin(id)
      {
        var reqUrl = "{{route('admin.destroy',['admin'=>'my_id'])}}";
        reqUrl = reqUrl.replace(/my_id/,id);
        $.ajax({
          headers: { 'X-CSRF-TOKEN' : '{{ csrf_token() }}' },
          type:"delete",
          url:reqUrl,
          dataType:"json",
          contentType:"application/json",
          success:function(data){
            if(data.code == 200)
            {
              window.location.reload();
            }else{
              if(data.code==1000)
              {
              }
            }
          },
          error:function(err){
          }
        });

      }
    </script>
    @endsection
    

注:

在这里我主要是在前端添加的界面中,对于菜单进行了切分处理,并显示出来;

在js中获取了菜单的数组信息。

因为在添加角色的时候,同时需要把角色所具有的操作的菜单权限进行添加上去。

懂站帝
  • 本文由 发表于 2022年7月15日 23:29:37
  • 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至395045033@qq.com举报,一经查实,本站将立刻删除。
抖音100万个赞多少钱?抖音赚钱的方式有哪些? 资讯头条

抖音100万个赞多少钱?抖音赚钱的方式有哪些?

相信现在已经有很多人,都知道做抖音可以赚钱,自己也想通过抖音赚钱,但又不知道做什么,自己可以做得来,还比较容易赚到钱?应该从哪里开始做?怎么做才能够赚到更多的钱?最近有很多粉丝,都会问我这个问题,我现...
抖音海洋发生了什么(抖音网红海洋怎么了) 资讯头条

抖音海洋发生了什么(抖音网红海洋怎么了)

近日,在某短视频平台上坐拥千万粉丝的知名网红海扬曝光了一则消息,自己在拍摄短视频后,加入公司遭受到了公司的欺骗,相信了公司给自己画的大饼,结果在解约后什么都没有落下,这些年挣的钱几乎没有落到自己的手中...
广告也精彩
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定