Files
ProxyPanel/resources/views/admin/role/info.blade.php
兔姬桑 c3dbcb19f4 使用whenFilled优化代码筛选 & 页面代码适量简化
针对管理页面中筛选行为使用whenFilled属性进行重写简化&规范化修正;
同时对页面搜索代码进行适量简化;
2021-03-16 13:13:42 -04:00

126 lines
5.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@extends('admin.layouts')
@section('css')
<link href="/assets/global/vendor/multi-select/multi-select.min.css" rel="stylesheet">
<style>
.ms-container {
width: auto;
}
</style>
@endsection
@section('content')
<div class="page-content container">
<div class="panel">
<div class="panel-heading">
<h2 class="panel-title">@isset($role)编辑@else添加@endisset角色</h2>
<div class="panel-actions">
<a href="{{route('admin.role.index')}}" class="btn btn-danger"> </a>
</div>
</div>
@if (Session::has('successMsg'))
<x-alert type="success" :message="Session::get('successMsg')"/>
@endif
@if($errors->any())
<x-alert type="danger" :message="$errors->all()"/>
@endif
<div class="panel-body">
<form action="@isset($role){{route('admin.role.update',$role)}}@else{{route('admin.role.store')}}@endisset"
method="POST" enctype="multipart/form-data" class="form-horizontal">
@isset($role)@method('PUT')@endisset
@csrf
<div class="form-group row">
<label class="col-md-2 col-sm-3 col-form-label" for="name">名称</label>
<div class="col-md-5 col-sm-9">
<input type="text" class="form-control" name="name" id="name" required/>
<span class="text-help"> 唯一标识名称例如Administrator </span>
</div>
</div>
<div class="form-group row">
<label class="col-md-2 col-sm-3 col-form-label" for="description">描述名称</label>
<div class="col-md-5 col-sm-9">
<input type="text" class="form-control" name="description" id="description" required/>
<span class="text-help"> 面板显示名称,例如:管理员 </span>
</div>
</div>
<div class="form-group row">
<label class="col-md-2 col-sm-3 col-form-label" for="permissions">选择权限</label>
<div class="col-md-9 col-sm-9">
<div class="btn-group mb-20">
<button type="button" class="btn btn-primary" id="select-all"> </button>
<button type="button" class="btn btn-danger" id="deselect-all"> </button>
</div>
<select class="form-control mx-auto w-p100" name="permissions[]" id="permissions" data-plugin="multiSelect" multiple>
@foreach($permissions as $key => $description)
<option value="{{ $key }}">{{ $description .' - '. $key }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-actions text-right">
<button type="submit" class="btn btn-success"> </button>
</div>
</form>
</div>
</div>
</div>
@endsection
@section('javascript')
<script src="/assets/global/vendor/multi-select/jquery.multi-select.min.js"></script>
<script src="/assets/global/js/Plugin/multi-select.js"></script>
<script src="/assets/custom/jquery.quicksearch.min.js"></script>
<script>
@isset($role)
$(document).ready(function() {
$('#description').val('{{$role->description}}');
$('#name').val('{{$role->name}}');
$('#permissions').multiSelect('select',@json($role->permissions->pluck('name')));
});
@endisset
// 权限列表
$('#permissions').multiSelect({
selectableHeader: '<input type=\'text\' class=\'search-input form-control\' autocomplete=\'off\' placeholder=\'待分配规则,此处可搜索\'>',
selectionHeader: '<input type=\'text\' class=\'search-input form-control\' autocomplete=\'off\' placeholder=\'已分配规则,此处可搜索\'>',
afterInit: function() {
const that = this,
$selectableSearch = that.$selectableUl.prev(),
$selectionSearch = that.$selectionUl.prev(),
selectableSearchString = '#' + that.$container.attr('id') + ' .ms-elem-selectable:not(.ms-selected)',
selectionSearchString = '#' + that.$container.attr('id') + ' .ms-elem-selection.ms-selected';
that.qs1 = $selectableSearch.quicksearch(selectableSearchString).on('keydown', function(e) {
if (e.which === 40) {
that.$selectableUl.focus();
return false;
}
});
that.qs2 = $selectionSearch.quicksearch(selectionSearchString).on('keydown', function(e) {
if (e.which === 40) {
that.$selectionUl.focus();
return false;
}
});
},
afterSelect: function() {
this.qs1.cache();
this.qs2.cache();
},
afterDeselect: function() {
this.qs1.cache();
this.qs2.cache();
},
});
// 全选
$('#select-all').click(function() {
$('#permissions').multiSelect('select_all');
return false;
});
// 反选
$('#deselect-all').click(function() {
$('#permissions').multiSelect('deselect_all');
return false;
});
</script>
@endsection