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.
147 lines
5.2 KiB
147 lines
5.2 KiB
@extends("admin.layouts.layout")
|
|
|
|
@php
|
|
$pageTitle = $modelName;
|
|
@endphp
|
|
|
|
@section("content")
|
|
<div class="row">
|
|
<div class="col-sm-12 col-md-8">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<div class="mb-3"><a class="btn btn-primary" href="javascript:;" onclick="create(0)">
|
|
@lang("icons.action_create") 新增{{$modelName}}
|
|
</a></div>
|
|
<table class="table table-bordered treetable" id="data-table">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
{{$modelName}}
|
|
</th>
|
|
<th>菜单路径</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ($data as $row)
|
|
<tr role="row" data-id="{{$row['id']}}" data-tt-id="{{$row['id']}}"
|
|
@if($row['pid'] > 0) data-tt-parent-id="{{$row['pid']}}" @endif>
|
|
<td>
|
|
<span
|
|
class='@if(count($row['children']) > 0) folder @else file @endif'>@if($row["icon"]){!! "<i class='{$row["icon"]}'></i>" !!} @endif {{ $row["name"] }}</span>
|
|
</td>
|
|
<td>
|
|
{{$row["url"]}}
|
|
</td>
|
|
<td>
|
|
<a class="btn btn-sm btn-success"
|
|
href="javascript:;"
|
|
onclick="create({{$row['id']}})"><i class="uil-corner-down-right"></i> 子菜单</a>
|
|
<a class="btn btn-primary btn-sm"
|
|
href="javascript:;"
|
|
onclick="edit({{$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>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-12 col-md-4" id="form-box">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
@include("public._form")
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@include("public._delete")
|
|
@include("plugins.treetable")
|
|
@endsection
|
|
|
|
@push("footer")
|
|
<script>
|
|
var permissions = {!! json_encode(array_by_key($data,"id")) !!};
|
|
var form_original_top = $("#form-box").offset().top;
|
|
|
|
$(function () {
|
|
$(".btn-save").click(save);
|
|
setFormPosition();
|
|
$(document).scroll(function () {
|
|
setFormPosition();
|
|
});
|
|
});
|
|
|
|
function setFormPosition() {
|
|
if ($(document).scrollTop() > 50) {
|
|
$("#form-box").css({
|
|
marginTop: $(document).scrollTop() - 50
|
|
});
|
|
} else {
|
|
$("#form-box").css({
|
|
marginTop: 0
|
|
});
|
|
}
|
|
}
|
|
|
|
function create(pid) {
|
|
$("#fm")[0].reset();
|
|
var data = {
|
|
id: "",
|
|
pid: pid
|
|
};
|
|
if (data["pid"]) {
|
|
data.pname = permissions[data["pid"]].name;
|
|
} else {
|
|
data.pname = "根菜单";
|
|
}
|
|
$("#fm").autofill(data);
|
|
$("#data-table tbody tr").removeClass("bg-light").removeClass("bg-warning");
|
|
$("#data-table tbody tr[data-id=" + pid + "]").addClass("bg-light");
|
|
}
|
|
|
|
function edit(id) {
|
|
var data = permissions[id];
|
|
if (data["pid"]) {
|
|
data.pname = permissions[data["pid"]].name;
|
|
} else {
|
|
data.pname = "根菜单";
|
|
}
|
|
|
|
$("#fm").autofill(data);
|
|
$("#data-table tbody tr").removeClass("bg-light").removeClass("bg-warning");
|
|
$("#data-table tbody tr[data-id=" + id + "]").addClass("bg-warning");
|
|
}
|
|
|
|
function save() {
|
|
if (!$("#fm").valid()) {
|
|
return false;
|
|
}
|
|
|
|
var id = $("#fm input[name=id]").val();
|
|
if (id == "" || id == undefined) {
|
|
var url = "{{url($urlPrefix.'/store')}}";
|
|
} else {
|
|
var url = "{{url($urlPrefix.'/update')}}";
|
|
}
|
|
var data = $("#fm").serializeArray();
|
|
$.post(url, data, function (result) {
|
|
if (result.status) {
|
|
alertSuccess(result.msg, function () {
|
|
window.location.reload();
|
|
});
|
|
} else {
|
|
alertError(result.msg);
|
|
}
|
|
})
|
|
}
|
|
</script>
|
|
@endpush
|