提交 fa62ace6 编写于 作者: 公众号-芋道源码's avatar 公众号-芋道源码

【修复】修复不支持根部门的问题

上级 95bb9744
......@@ -20,8 +20,7 @@ public class DeptBaseVO {
@Size(max = 30, message = "部门名称长度不能超过30个字符")
private String name;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
@NotNull(message = "父菜单 ID 不能为空")
@ApiModelProperty(value = "父菜单 ID", example = "1024")
private Long parentId;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
......
......@@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
......@@ -71,6 +72,10 @@ public class DeptServiceImpl implements DeptService {
@Resource
private DeptProducer deptProducer;
@Resource
@Lazy // 注入自己,所以延迟加载
private DeptService self;
@Override
@PostConstruct
@TenantIgnore // 初始化缓存,无需租户过滤
......@@ -97,7 +102,7 @@ public class DeptServiceImpl implements DeptService {
@Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
public void schedulePeriodicRefresh() {
initLocalCache();
self.initLocalCache();
}
/**
......@@ -124,6 +129,9 @@ public class DeptServiceImpl implements DeptService {
@Override
public Long createDept(DeptCreateReqVO reqVO) {
// 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(null, reqVO.getParentId(), reqVO.getName());
// 插入部门
DeptDO dept = DeptConvert.INSTANCE.convert(reqVO);
......@@ -136,6 +144,9 @@ public class DeptServiceImpl implements DeptService {
@Override
public void updateDept(DeptUpdateReqVO reqVO) {
// 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(reqVO.getId(), reqVO.getParentId(), reqVO.getName());
// 更新部门
DeptDO updateObj = DeptConvert.INSTANCE.convert(reqVO);
......
......@@ -57,7 +57,7 @@
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24" v-if="form.parentId !== 0">
<el-col :span="24">
<el-form-item label="上级部门" prop="parentId">
<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
</el-form-item>
......@@ -152,9 +152,6 @@ export default {
form: {},
// 表单校验
rules: {
parentId: [
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "部门名称不能为空", trigger: "blur" }
],
......@@ -278,6 +275,9 @@ export default {
this.reset();
getDept(row.id).then(response => {
this.form = response.data;
if (this.form.parentId === 0) { // 无父部门时,标记为 undefined,避免展示为 Unknown
this.form.parentId = undefined;
}
this.open = true;
this.title = "修改部门";
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册