info.blade.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/multi-select/multi-select.min.css" rel="stylesheet">
  4. <style>
  5. .ms-container {
  6. width: auto;
  7. }
  8. </style>
  9. @endsection
  10. @section('content')
  11. <div class="page-content container">
  12. <div class="panel">
  13. <div class="panel-heading">
  14. <h2 class="panel-title">@isset($role)编辑@else添加@endisset角色</h2>
  15. <div class="panel-actions">
  16. <a href="{{route('admin.role.index')}}" class="btn btn-danger">返 回</a>
  17. </div>
  18. </div>
  19. @if (Session::has('successMsg'))
  20. <x-alert type="success" :message="Session::get('successMsg')"/>
  21. @endif
  22. @if($errors->any())
  23. <x-alert type="danger" :message="$errors->all()"/>
  24. @endif
  25. <div class="panel-body">
  26. <form action="@isset($role){{route('admin.role.update',$role)}}@else{{route('admin.role.store')}}@endisset"
  27. method="POST" enctype="multipart/form-data" class="form-horizontal">
  28. @isset($role)@method('PUT')@endisset
  29. @csrf
  30. <div class="form-group row">
  31. <label class="col-md-2 col-sm-3 col-form-label" for="description">显示名称</label>
  32. <div class="col-md-5 col-sm-9">
  33. <input type="text" class="form-control" name="description" id="description" required/>
  34. <span class="text-help"> 名称,例如:管理员 </span>
  35. </div>
  36. </div>
  37. <div class="form-group row">
  38. <label class="col-md-2 col-sm-3 col-form-label" for="name">内部名称</label>
  39. <div class="col-md-5 col-sm-9">
  40. <input type="text" class="form-control" name="name" id="name" required/>
  41. <span class="text-help"> 名称,例如:Administrator </span>
  42. </div>
  43. </div>
  44. <div class="form-group row">
  45. <label class="col-md-2 col-sm-3 col-form-label" for="permissions">选择权限</label>
  46. <div class="col-md-9 col-sm-9">
  47. <div class="btn-group mb-20">
  48. <button type="button" class="btn btn-primary" id="select-all">全 选</button>
  49. <button type="button" class="btn btn-danger" id="deselect-all">清 空</button>
  50. </div>
  51. <select class="form-control mx-auto w-p100" name="permissions[]" id="permissions" data-plugin="multiSelect" multiple>
  52. @foreach($permissions as $key => $description)
  53. <option value="{{ $key }}">{{ $description .' - '. $key }}</option>
  54. @endforeach
  55. </select>
  56. </div>
  57. </div>
  58. <div class="form-actions text-right">
  59. <button type="submit" class="btn btn-success">提 交</button>
  60. </div>
  61. </form>
  62. </div>
  63. </div>
  64. </div>
  65. @endsection
  66. @section('javascript')
  67. <script src="/assets/global/vendor/multi-select/jquery.multi-select.min.js"></script>
  68. <script src="/assets/global/js/Plugin/multi-select.js"></script>
  69. <script src="/assets/custom/jquery.quicksearch.min.js"></script>
  70. <script>
  71. @isset($role)
  72. $(document).ready(function() {
  73. $('#description').val('{{$role->description}}');
  74. $('#name').val('{{$role->name}}');
  75. $('#permissions').multiSelect('select',@json($role->permissions->pluck('name')));
  76. });
  77. @endisset
  78. // 权限列表
  79. $('#permissions').multiSelect({
  80. selectableHeader: '<input type=\'text\' class=\'search-input form-control\' autocomplete=\'off\' placeholder=\'待分配规则,此处可搜索\'>',
  81. selectionHeader: '<input type=\'text\' class=\'search-input form-control\' autocomplete=\'off\' placeholder=\'已分配规则,此处可搜索\'>',
  82. afterInit: function() {
  83. const that = this,
  84. $selectableSearch = that.$selectableUl.prev(),
  85. $selectionSearch = that.$selectionUl.prev(),
  86. selectableSearchString = '#' + that.$container.attr('id') + ' .ms-elem-selectable:not(.ms-selected)',
  87. selectionSearchString = '#' + that.$container.attr('id') + ' .ms-elem-selection.ms-selected';
  88. that.qs1 = $selectableSearch.quicksearch(selectableSearchString).on('keydown', function(e) {
  89. if (e.which === 40) {
  90. that.$selectableUl.focus();
  91. return false;
  92. }
  93. });
  94. that.qs2 = $selectionSearch.quicksearch(selectionSearchString).on('keydown', function(e) {
  95. if (e.which === 40) {
  96. that.$selectionUl.focus();
  97. return false;
  98. }
  99. });
  100. },
  101. afterSelect: function() {
  102. this.qs1.cache();
  103. this.qs2.cache();
  104. },
  105. afterDeselect: function() {
  106. this.qs1.cache();
  107. this.qs2.cache();
  108. },
  109. });
  110. // 全选
  111. $('#select-all').click(function() {
  112. $('#permissions').multiSelect('select_all');
  113. return false;
  114. });
  115. // 反选
  116. $('#deselect-all').click(function() {
  117. $('#permissions').multiSelect('deselect_all');
  118. return false;
  119. });
  120. </script>
  121. @endsection