12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Http\Controllers\Admin\System;
- use App\Http\Controllers\Controller;
- use App\Http\Models\Permission;
- use App\Http\Requests\System\PermissionSaveRequest;
- use Illuminate\Http\Request;
- class PermissionController extends Controller
- {
- protected $logic;
- public function __construct()
- {
- }
- public function index(Request $request)
- {
- if (!$request->ajax()) {
- $permissions = Permission::query()->where(['type' => 1])->select(['title as name', 'id', 'parent_id'])
- ->orderByDesc('sort')->get()->toArray();
- $trees = list_to_tree($permissions, 'id', 'parent_id', 'children');
- return view('admin/system/permission', ['trees' => $trees]);
- }
- $filter = [['type', '=', 2]];
- if ($request->input('parentId')) {
- $filter[] = ['parent_id', '=', $request->input('parentId')];
- }
- $records = Permission::query()->where($filter)->orderByDesc('sort')
- ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
- return response()->json([
- 'rows' => $records->items(),
- 'total' => $records->total()
- ]);
- }
- public function save(PermissionSaveRequest $request, $id)
- {
- if (!$request->ajax()) {
- $record = Permission::query()->find($id);
- return view('admin/system/permission_save', [
- 'data' => $record,
- 'type' => $request->input('type')
- ]);
- }
- $record = Permission::query()->updateOrCreate(['id' => $id], $request->validated());
- return response()->json(['message' => '操作成功', 'data' => $record]);
- }
- public function store(PermissionSaveRequest $request)
- {
- $validated = $request->validated();
- Permission::query()->create($validated);
- return response()->json(['message' => '操作成功']);
- }
- public function update(PermissionSaveRequest $request, $id)
- {
- $permission = Permission::query()->find($id);
- if (!$permission) return response()->json(['message' => '数据不存在']);
- $permission->update($request->validated());
- return response()->json(['message' => '操作成功']);
- }
- public function destroy($id)
- {
- $record = Permission::query()->where(['id' => $id])->first();
- if ($record) {
- if (Permission::query()->where(['parent_id' => $record->id])->exists()) {
- return response()->json(['message' => '请先删除子菜单'], 400);
- }
- $record->delete();
- }
- return response()->json(['message' => '操作成功']);
- }
- public function BatchDestroy(Request $request)
- {
- $ids = $request->input('ids');
- Permission::query()->whereIn('id', $ids)->where(['type' => 2])->delete();
- return response()->json(['message' => '操作成功']);
- }
- }
|