From 9f4918cc14064ea625f75dc616c7a1dc07815b42 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期六, 16 五月 2020 18:39:30 +0800 Subject: [PATCH] 修改上级部门(选择项排除本身和下级) --- ruoyi-ui/src/api/system/dept.js | 8 ++++++++ ruoyi-ui/src/views/system/dept/index.vue | 16 +++++++--------- ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java | 23 +++++++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/ruoyi-ui/src/api/system/dept.js b/ruoyi-ui/src/api/system/dept.js index 2debf5a..0535e8a 100644 --- a/ruoyi-ui/src/api/system/dept.js +++ b/ruoyi-ui/src/api/system/dept.js @@ -9,6 +9,14 @@ }) } +// 查询部门列表(排除节点) +export function listDeptExcludeChild(deptId) { + return request({ + url: '/system/dept/list/exclude/' + deptId, + method: 'get' + }) +} + // 查询部门详细 export function getDept(deptId) { return request({ diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue index ad6b971..ac6d663 100644 --- a/ruoyi-ui/src/views/system/dept/index.vue +++ b/ruoyi-ui/src/views/system/dept/index.vue @@ -138,7 +138,7 @@ </template> <script> -import { listDept, getDept, delDept, addDept, updateDept } from "@/api/system/dept"; +import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -220,12 +220,6 @@ children: node.children }; }, - /** 查询部门下拉树结构 */ - getTreeselect() { - listDept().then(response => { - this.deptOptions = this.handleTree(response.data, "deptId"); - }); - }, // 字典状态字典翻译 statusFormat(row, column) { return this.selectDictLabel(this.statusOptions, row.status); @@ -256,22 +250,26 @@ /** 新增按钮操作 */ handleAdd(row) { this.reset(); - this.getTreeselect(); if (row != undefined) { this.form.parentId = row.deptId; } this.open = true; this.title = "添加部门"; + listDept().then(response => { + this.deptOptions = this.handleTree(response.data, "deptId"); + }); }, /** 修改按钮操作 */ handleUpdate(row) { this.reset(); - this.getTreeselect(); getDept(row.deptId).then(response => { this.form = response.data; this.open = true; this.title = "修改部门"; }); + listDeptExcludeChild(row.deptId).then(response => { + this.deptOptions = this.handleTree(response.data, "deptId"); + }); }, /** 提交按钮 */ submitForm: function() { diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java index 21b0576..e549a43 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java @@ -1,6 +1,8 @@ package com.ruoyi.project.system.controller; +import java.util.Iterator; import java.util.List; +import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -46,6 +48,27 @@ } /** + * 查询部门列表(排除节点) + */ + @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/list/exclude/{deptId}") + public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) + { + List<SysDept> depts = deptService.selectDeptList(new SysDept()); + Iterator<SysDept> it = depts.iterator(); + while (it.hasNext()) + { + SysDept d = (SysDept) it.next(); + if (d.getDeptId().intValue() == deptId + || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")) + { + it.remove(); + } + } + return AjaxResult.success(depts); + } + + /** * 根据部门编号获取详细信息 */ @PreAuthorize("@ss.hasPermi('system:dept:query')") -- Gitblit v1.9.2