数据权限查询
This commit is contained in:
Binary file not shown.
@@ -181,6 +181,27 @@
|
||||
<param name="dept"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.DeptController.Add(Yi.Framework.Model.Models.DeptEntity)">
|
||||
<summary>
|
||||
添加
|
||||
</summary>
|
||||
<param name="entity"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.DeptController.Update(Yi.Framework.Model.Models.DeptEntity)">
|
||||
<summary>
|
||||
更新
|
||||
</summary>
|
||||
<param name="entity"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.DeptController.GetListByRoleId(System.Int64)">
|
||||
<summary>
|
||||
根据角色id获取该角色下全部部门
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.DictionaryController.PageList(Yi.Framework.Model.Models.DictionaryEntity,Yi.Framework.Common.Models.PageParModel)">
|
||||
<summary>
|
||||
动态条件分页查询
|
||||
|
||||
@@ -37,15 +37,36 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
public override async Task<Result> Add(DeptEntity entity)
|
||||
{
|
||||
return await base.Add(entity);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
public override async Task<Result> Update(DeptEntity entity)
|
||||
{
|
||||
return await base.Update(entity);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据角色id获取该角色下全部部门
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("{id}")]
|
||||
public async Task<Result> GetListByRoleId(long id)
|
||||
{
|
||||
return Result.Success().SetData(await _iDeptService.GetListByRoleId(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,5 +87,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
return Result.Success().SetData(await _iRoleService._repository.UpdateIgnoreNullAsync(new RoleEntity() { Id = roleId, IsDeleted = isDel }));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -14,5 +14,13 @@ namespace Yi.Framework.Interface
|
||||
/// <param name="dept"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<DeptEntity>> SelctGetList(DeptEntity dept);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据角色id获取该角色的部门权限
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<DeptEntity>> GetListByRoleId(long roleId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,11 @@ namespace Yi.Framework.Model.Models
|
||||
|
||||
public partial class RoleEntity
|
||||
{
|
||||
//[Navigate(typeof(UserRoleEntity), nameof(UserRoleEntity.RoleId), nameof(UserRoleEntity.UserId))]
|
||||
//public List<UserEntity> Users { get; set; }
|
||||
|
||||
[Navigate(typeof(RoleMenuEntity),nameof(RoleMenuEntity.RoleId),nameof(RoleMenuEntity.MenuId))]
|
||||
public List<MenuEntity> Menus { get; set; }
|
||||
|
||||
[Navigate(typeof(RoleDeptEntity), nameof(RoleDeptEntity.RoleId), nameof(RoleDeptEntity.DeptId))]
|
||||
public List<DeptEntity> Depts { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,5 +21,10 @@ namespace Yi.Framework.Service
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public async Task<List<DeptEntity>> GetListByRoleId(long roleId)
|
||||
{
|
||||
return (await _repository._Db.Queryable<RoleEntity>().Includes(r => r.Depts).SingleAsync(r => r.Id == roleId)).Depts;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,4 +54,13 @@ export function delDept(deptId) {
|
||||
method: 'delete',
|
||||
data:deptId
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 根据角色ID查询菜单下拉树结构
|
||||
export function roleDeptTreeselect(roleId) {
|
||||
return request({
|
||||
url: '/dept/getListByRoleId/' + roleId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
@@ -113,12 +113,12 @@ export function authUserSelectAll(data) {
|
||||
}
|
||||
|
||||
// 根据角色ID查询部门树结构
|
||||
export function deptTreeSelect(roleId) {
|
||||
return request({
|
||||
url: '/system/role/deptTree/' + roleId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// export function deptTreeSelect(roleId) {
|
||||
// return request({
|
||||
// url: '/system/role/deptTree/' + roleId,
|
||||
// method: 'get'
|
||||
// })
|
||||
// }
|
||||
// 获取角色选择框列表
|
||||
export function roleOptionselect() {
|
||||
return request({
|
||||
|
||||
@@ -137,18 +137,18 @@
|
||||
<el-dialog :title="title" v-model="openDataScope" width="500px" append-to-body>
|
||||
<el-form :model="form" label-width="80px">
|
||||
<el-form-item label="角色名称">
|
||||
<el-input v-model="form.role.roleName" :disabled="true" />
|
||||
<el-input v-model="form.roleName" :disabled="true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="权限字符">
|
||||
<el-input v-model="form.role.roleCode" :disabled="true" />
|
||||
<el-input v-model="form.roleCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
<el-form-item label="权限范围">
|
||||
<el-select v-model="form.role.dataScope" @change="dataScopeSelectChange">
|
||||
<el-select v-model="form.dataScope" @change="dataScopeSelectChange">
|
||||
<el-option v-for="item in dataScopeOptions" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="数据权限" v-show="form.role.dataScope == 2">
|
||||
<el-form-item label="数据权限" v-show="form.dataScope == 1">
|
||||
<el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
|
||||
<el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
|
||||
<el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动
|
||||
@@ -165,13 +165,14 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Role">
|
||||
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
|
||||
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole } from "@/api/system/role";
|
||||
import { roleMenuTreeselect, treeselect as menuTreeselect, listMenu } from "@/api/system/menu";
|
||||
|
||||
import { listDept,roleDeptTreeselect } from "@/api/system/dept";
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
||||
@@ -198,11 +199,11 @@ const deptRef = ref(null);
|
||||
|
||||
/** 数据范围选项*/
|
||||
const dataScopeOptions = ref([
|
||||
{ value: "1", label: "全部数据权限" },
|
||||
{ value: "2", label: "自定数据权限" },
|
||||
{ value: "3", label: "本部门数据权限" },
|
||||
{ value: "4", label: "本部门及以下数据权限" },
|
||||
{ value: "5", label: "仅本人数据权限" }
|
||||
{ value: 0, label: "全部数据权限" },
|
||||
{ value: 1, label: "自定数据权限" },
|
||||
{ value: 2, label: "本部门数据权限" },
|
||||
{ value: 3, label: "本部门及以下数据权限" },
|
||||
{ value: 4, label: "仅本人数据权限" }
|
||||
]);
|
||||
|
||||
const data = reactive({
|
||||
@@ -330,7 +331,8 @@ function reset() {
|
||||
IsDeleted: false,
|
||||
menuCheckStrictly: false,
|
||||
deptCheckStrictly: false,
|
||||
remark: undefined
|
||||
remark: undefined,
|
||||
dataScope:0
|
||||
},
|
||||
menuIds: [],
|
||||
deptIds: []
|
||||
@@ -370,7 +372,6 @@ function getRoleMenuTreeselect(roleId) {
|
||||
response.data.forEach(m => {
|
||||
menuIds.push(m.id)
|
||||
})
|
||||
|
||||
menuIds.forEach((v) => {
|
||||
nextTick(() => {
|
||||
menuRef.value.setChecked(v, true, false);
|
||||
@@ -384,9 +385,30 @@ function getRoleMenuTreeselect(roleId) {
|
||||
}
|
||||
/** 根据角色ID查询部门树结构 */
|
||||
function getDeptTree(roleId) {
|
||||
return deptTreeSelect(roleId).then(response => {
|
||||
deptOptions.value = response.depts;
|
||||
return response;
|
||||
return listDept().then(response => {
|
||||
|
||||
const selectList = [];
|
||||
response.data.forEach(res => {
|
||||
selectList.push({ id: res.id, label: res.deptName, parentId: res.parentId, orderNum: res.orderNum, children: [] })
|
||||
}
|
||||
|
||||
)
|
||||
deptOptions.value = proxy.handleTree(selectList, "id");
|
||||
|
||||
const deptIds=[];
|
||||
roleDeptTreeselect(roleId).then(response=>{
|
||||
response.data.forEach(d=>{
|
||||
|
||||
deptIds.push(d.id)
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
nextTick(() => {
|
||||
if (deptRef.value) {
|
||||
deptRef.value.setCheckedKeys(deptIds);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
/** 树权限(展开/折叠)*/
|
||||
@@ -464,19 +486,10 @@ function dataScopeSelectChange(value) {
|
||||
/** 分配数据权限操作 */
|
||||
function handleDataScope(row) {
|
||||
reset();
|
||||
const deptTreeSelect = getDeptTree(row.id);
|
||||
getDeptTree(row.id);
|
||||
getRole(row.id).then(response => {
|
||||
form.value = response.data;
|
||||
openDataScope.value = true;
|
||||
nextTick(() => {
|
||||
deptTreeSelect.then(res => {
|
||||
nextTick(() => {
|
||||
if (deptRef.value) {
|
||||
deptRef.value.setCheckedKeys(res.checkedKeys);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
openDataScope.value = true;
|
||||
title.value = "分配数据权限";
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user