You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
6.5 KiB
122 lines
6.5 KiB
@extends("admin.layouts.layout")
|
|
|
|
@section("content")
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<div class="mb-3">
|
|
<a class="btn btn-primary" href="{{url($urlPrefix.'/create')}}">
|
|
@lang("icons.action_create") @lang('actions.create'){{$modelName}}
|
|
</a>
|
|
</div>
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
{{$modelName}}
|
|
</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ($data as $row)
|
|
<tr>
|
|
<td>
|
|
{{ $row->name }}
|
|
</td>
|
|
<td>
|
|
<a class="btn btn-sm btn-success"
|
|
href="javascript:;" onclick="toggleAuthorize(this)"><i
|
|
class="mdi mdi-shield-check-outline"></i> 授权</a>
|
|
<a class="btn btn-sm btn-primary"
|
|
href="{{url("{$urlPrefix}/edit?id={$row->id}")}}">@lang("icons.action_edit") @lang("actions.edit")</a>
|
|
<a class="btn btn-sm btn-danger btn-delete" data-id="{{$row->id}}"
|
|
href="javascript:;">@lang("icons.action_delete") @lang("actions.delete")</a>
|
|
</td>
|
|
</tr>
|
|
<tr class="authorize-box" style="display: none;">
|
|
<td colspan="2">
|
|
<form>
|
|
@csrf
|
|
<input type="hidden" value="{{$row->id}}" name="id">
|
|
<div class="row">
|
|
@foreach($permissions as $permission)
|
|
<?php
|
|
$checked = in_array($permission["id"], array_column($row->permissions->toArray(), "id")) ? true : false;
|
|
?>
|
|
<div class="col-md-3 col-sm-6 col-lg-2 mb-3">
|
|
<div class="custom-control custom-checkbox">
|
|
<input type="checkbox" class="custom-control-input"
|
|
id="permission-{{$row->id}}-{{$permission["id"]}}"
|
|
value="{{$permission['id']}}" name="permission_id[]"
|
|
{{ $checked ? "checked" : "" }}>
|
|
<label class="custom-control-label"
|
|
for="permission-{{$row->id}}-{{$permission['id']}}">{{$permission['name']}}</label>
|
|
</div>
|
|
@foreach($permission["children"] as $child)
|
|
<?php
|
|
$checked = in_array($child["id"], array_column($row->permissions->toArray(), "id")) ? true : false;
|
|
?>
|
|
|
|
<div class="custom-control custom-checkbox">
|
|
<input type="checkbox" class="custom-control-input"
|
|
id="permission-{{$row->id}}-{{$child["id"]}}"
|
|
value="{{$child['id']}}" name="permission_id[]"
|
|
{{ $checked ? "checked" : "" }}>
|
|
<label class="custom-control-label"
|
|
style="font-weight: normal;"
|
|
for="permission-{{$row->id}}-{{$child['id']}}">├ {{$child['name']}}</label>
|
|
</div>
|
|
|
|
|
|
@endforeach
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
<hr>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<button type="button" class="btn btn-success btn-sm"
|
|
onclick="authorize(this)"><i class="mdi mdi-check"></i>
|
|
确认授权
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
|
|
@include("public._pages")
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@include("public._delete")
|
|
@endsection
|
|
|
|
@push("footer")
|
|
<script>
|
|
function toggleAuthorize(obj) {
|
|
$(obj).closest("tr").next(".authorize-box").toggle();
|
|
}
|
|
|
|
function authorize(obj) {
|
|
var url = "{{url($urlPrefix."/set-permissions")}}";
|
|
var data = $(obj).closest("form").serializeArray();
|
|
$.post(url, data, function (result) {
|
|
if (result.status) {
|
|
alertSuccess(result.msg);
|
|
} else {
|
|
alertError(result.msg);
|
|
$(obj).closest("form")[0].reset();
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
@endpush
|