feat: roles

This commit is contained in:
JaguarJack 2023-01-02 18:36:07 +08:00
parent 91da01551f
commit d8b4c7d37d
3 changed files with 8 additions and 4 deletions

View File

@ -39,6 +39,8 @@ class RolesController extends Controller
$role->setAttribute('permissions', $role->permissions()->get()->toTree()); $role->setAttribute('permissions', $role->permissions()->get()->toTree());
$role->setAttribute('departments', $role->departments()->get()->toTree());
return $role; return $role;
} }

View File

@ -37,7 +37,7 @@ class Roles extends Model
*/ */
protected array $form = ['role_name','identify','parent_id','description','data_range']; protected array $form = ['role_name','identify','parent_id','description','data_range'];
protected array $formRelations = ['permissions']; protected array $formRelations = ['permissions', 'departments'];
/** /**
* @var bool * @var bool

View File

@ -44,15 +44,16 @@
<Select v-model="formData.data_range" name="data_range" clearable api="dataRange" class="w-full" /> <Select v-model="formData.data_range" name="data_range" clearable api="dataRange" class="w-full" />
</el-form-item> </el-form-item>
<el-form-item label="自定义权限" prop="department_ids" v-if="showDepartments"> <el-form-item label="自定义权限" prop="department_ids" v-if="showDepartments">
<!--
<el-cascader <el-cascader
:options="departments" :options="departments"
name="parent_id"
v-model="formData.departmetn_ids" v-model="formData.departmetn_ids"
:show-all-levels="false" :show-all-levels="false"
clearable clearable
:props="{ value: 'id', label: 'department_name', checkStrictly: true, multiple: true }" :props="{ value: 'id', label: 'department_name', emitPath: false, multiple: true }"
class="w-full" 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' }" />
</el-form-item> </el-form-item>
<el-form-item label="角色权限" prop="permissions"> <el-form-item label="角色权限" prop="permissions">
<el-tree <el-tree
@ -158,6 +159,7 @@ onMounted(() => {
watch( watch(
formData, formData,
function (value) { function (value) {
//
showDepartments.value = value.data_range === 2 showDepartments.value = value.data_range === 2
}, },
{ deep: true }, { deep: true },