feat: new feat
This commit is contained in:
@@ -6,16 +6,21 @@ namespace Modules\Permissions\Http\Controllers;
|
||||
|
||||
use Catch\Base\CatchController as Controller;
|
||||
use Catch\Exceptions\FailedException;
|
||||
use Modules\Permissions\Enums\DataRange;
|
||||
use Modules\Permissions\Models\Roles;
|
||||
use Modules\Permissions\Http\Requests\RoleRequest;
|
||||
|
||||
class RolesController extends Controller
|
||||
{
|
||||
/**
|
||||
* @param Roles $model
|
||||
*/
|
||||
public function __construct(
|
||||
protected readonly Roles $model
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
@@ -28,31 +33,59 @@ class RolesController extends Controller
|
||||
})->getList();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param RoleRequest $request
|
||||
* @return bool
|
||||
*/
|
||||
public function store(RoleRequest $request)
|
||||
{
|
||||
if (! DataRange::Personal_Choose->assert($request->get('data_range'))) {
|
||||
$request['departments'] = [];
|
||||
}
|
||||
|
||||
return $this->model->storeBy($request->all());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param $id
|
||||
* @return \Illuminate\Database\Eloquent\Model|null
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$role = $this->model->firstBy($id);
|
||||
|
||||
$role->setAttribute('permissions', $role->permissions()->get()->toTree());
|
||||
|
||||
$role->setAttribute('departments', $role->departments()->get()->toTree());
|
||||
$role->setAttribute('departments', $role->departments()->pluck('id'));
|
||||
|
||||
return $role;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param $id
|
||||
* @param RoleRequest $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function update($id, RoleRequest $request)
|
||||
{
|
||||
if (! DataRange::Personal_Choose->assert($request->get('data_range'))) {
|
||||
$request['departments'] = [];
|
||||
}
|
||||
|
||||
return $this->model->updateBy($id, $request->all());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
* @return bool|null
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if ($this->model->where($this->model->getParentIdColumn(), $id)->first()) {
|
||||
throw new FailedException('请先删除子级');
|
||||
throw new FailedException('请先删除子角色');
|
||||
}
|
||||
|
||||
return $this->model->deleteBy($id);
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-form :model="formData" label-width="120px" ref="form" v-loading="loading" class="pr-6">
|
||||
<el-form-item label="上级角色" prop="parent_id">
|
||||
<el-form-item label="上级角色" prop="parent_id" v-if="!primary">
|
||||
<el-cascader
|
||||
:options="roles"
|
||||
name="parent_id"
|
||||
@@ -43,17 +43,27 @@
|
||||
<el-form-item label="数据权限" prop="data_range">
|
||||
<Select v-model="formData.data_range" name="data_range" clearable api="dataRange" class="w-full" />
|
||||
</el-form-item>
|
||||
<el-form-item label="自定义权限" prop="department_ids" v-if="showDepartments">
|
||||
<!--
|
||||
<el-cascader
|
||||
:options="departments"
|
||||
v-model="formData.departmetn_ids"
|
||||
:show-all-levels="false"
|
||||
clearable
|
||||
:props="{ value: 'id', label: 'department_name', emitPath: false, multiple: true }"
|
||||
<el-form-item
|
||||
label="自定义权限"
|
||||
prop="departments"
|
||||
v-if="showDepartments"
|
||||
:rules="[
|
||||
{
|
||||
required: true,
|
||||
message: '自定义权限必须选择',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<el-tree-select
|
||||
v-model="formData.departments"
|
||||
value-key="id"
|
||||
class="w-full"
|
||||
/>-->
|
||||
<el-tree-select v-model="formData.departmetn_ids" value-key="id" :data="departments" :render-after-expand="false" show-checkbox multiple :props="{ value: 'id', label: 'department_name' }" />
|
||||
:data="departments"
|
||||
:render-after-expand="false"
|
||||
show-checkbox
|
||||
multiple
|
||||
:props="{ value: 'id', label: 'department_name' }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色权限" prop="permissions">
|
||||
<el-tree
|
||||
|
Reference in New Issue
Block a user