| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | <?phpnamespace 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' => '操作成功']);    }}
 |