Commit 33ab2e96333472c2b022754bd756b4bea03af8b4
1 parent
2809254a
【修改】修改部门负责人,从 String 字符串,调整成和后台用户的用户编号绑定
Showing
12 changed files
with
112 additions
and
19 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dept/vo/dept/SysDeptBaseVO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept; | 1 | package cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | ||
| 3 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 4 | import lombok.Data; | 6 | import lombok.Data; |
| 5 | 7 | ||
| @@ -28,8 +30,8 @@ public class SysDeptBaseVO { | @@ -28,8 +30,8 @@ public class SysDeptBaseVO { | ||
| 28 | @NotNull(message = "显示顺序不能为空") | 30 | @NotNull(message = "显示顺序不能为空") |
| 29 | private Integer sort; | 31 | private Integer sort; |
| 30 | 32 | ||
| 31 | - @ApiModelProperty(value = "负责人", example = "芋道") | ||
| 32 | - private String leader; | 33 | + @ApiModelProperty(value = "负责人的用户编号", example = "2048") |
| 34 | + private Long leaderUserId; | ||
| 33 | 35 | ||
| 34 | @ApiModelProperty(value = "联系电话", example = "15601691000") | 36 | @ApiModelProperty(value = "联系电话", example = "15601691000") |
| 35 | @Size(max = 11, message = "联系电话长度不能超过11个字符") | 37 | @Size(max = 11, message = "联系电话长度不能超过11个字符") |
| @@ -42,7 +44,7 @@ public class SysDeptBaseVO { | @@ -42,7 +44,7 @@ public class SysDeptBaseVO { | ||
| 42 | 44 | ||
| 43 | @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 SysCommonStatusEnum 枚举") | 45 | @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 SysCommonStatusEnum 枚举") |
| 44 | @NotNull(message = "状态不能为空") | 46 | @NotNull(message = "状态不能为空") |
| 45 | -// @InEnum(value = SysCommonStatusEnum.class, message = "修改状态必须是 {value}") | 47 | +// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") |
| 46 | private Integer status; | 48 | private Integer status; |
| 47 | 49 | ||
| 48 | } | 50 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/SysUserController.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.controller.user; | 1 | package cn.iocoder.yudao.adminserver.modules.system.controller.user; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | +import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO; | ||
| 5 | +import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptSimpleRespVO; | ||
| 4 | import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*; | 6 | import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*; |
| 7 | +import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysDeptConvert; | ||
| 5 | import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert; | 8 | import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert; |
| 6 | import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; | 9 | import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; |
| 7 | import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; | 10 | import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; |
| @@ -32,6 +35,8 @@ import java.io.IOException; | @@ -32,6 +35,8 @@ import java.io.IOException; | ||
| 32 | import java.util.*; | 35 | import java.util.*; |
| 33 | 36 | ||
| 34 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 37 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 38 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | ||
| 39 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||
| 35 | import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; | 40 | import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; |
| 36 | 41 | ||
| 37 | @Api(tags = "用户") | 42 | @Api(tags = "用户") |
| @@ -99,7 +104,7 @@ public class SysUserController { | @@ -99,7 +104,7 @@ public class SysUserController { | ||
| 99 | } | 104 | } |
| 100 | 105 | ||
| 101 | // 获得拼接需要的数据 | 106 | // 获得拼接需要的数据 |
| 102 | - Collection<Long> deptIds = CollectionUtils.convertList(pageResult.getList(), SysUserDO::getDeptId); | 107 | + Collection<Long> deptIds = convertList(pageResult.getList(), SysUserDO::getDeptId); |
| 103 | Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds); | 108 | Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds); |
| 104 | // 拼接结果返回 | 109 | // 拼接结果返回 |
| 105 | List<SysUserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size()); | 110 | List<SysUserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size()); |
| @@ -111,6 +116,15 @@ public class SysUserController { | @@ -111,6 +116,15 @@ public class SysUserController { | ||
| 111 | return success(new PageResult<>(userList, pageResult.getTotal())); | 116 | return success(new PageResult<>(userList, pageResult.getTotal())); |
| 112 | } | 117 | } |
| 113 | 118 | ||
| 119 | + @GetMapping("/list-all-simple") | ||
| 120 | + @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项") | ||
| 121 | + public CommonResult<List<SysUserSimpleRespVO>> getSimpleUsers() { | ||
| 122 | + // 获用户门列表,只要开启状态的 | ||
| 123 | + List<SysUserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 124 | + // 排序后,返回给前端 | ||
| 125 | + return success(SysUserConvert.INSTANCE.convertList04(list)); | ||
| 126 | + } | ||
| 127 | + | ||
| 114 | @GetMapping("/get") | 128 | @GetMapping("/get") |
| 115 | @ApiOperation("获得用户详情") | 129 | @ApiOperation("获得用户详情") |
| 116 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | 130 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) |
| @@ -129,15 +143,19 @@ public class SysUserController { | @@ -129,15 +143,19 @@ public class SysUserController { | ||
| 129 | List<SysUserDO> users = userService.getUsers(reqVO); | 143 | List<SysUserDO> users = userService.getUsers(reqVO); |
| 130 | 144 | ||
| 131 | // 获得拼接需要的数据 | 145 | // 获得拼接需要的数据 |
| 132 | - Collection<Long> deptIds = CollectionUtils.convertList(users, SysUserDO::getDeptId); | 146 | + Collection<Long> deptIds = convertList(users, SysUserDO::getDeptId); |
| 133 | Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds); | 147 | Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds); |
| 148 | + Map<Long, SysUserDO> deptLeaderUserMap = userService.getUserMap(convertSet(deptMap.values(), SysDeptDO::getLeaderUserId)); | ||
| 134 | // 拼接数据 | 149 | // 拼接数据 |
| 135 | List<SysUserExcelVO> excelUsers = new ArrayList<>(users.size()); | 150 | List<SysUserExcelVO> excelUsers = new ArrayList<>(users.size()); |
| 136 | users.forEach(user -> { | 151 | users.forEach(user -> { |
| 137 | SysUserExcelVO excelVO = SysUserConvert.INSTANCE.convert02(user); | 152 | SysUserExcelVO excelVO = SysUserConvert.INSTANCE.convert02(user); |
| 153 | + // 设置部门 | ||
| 138 | MapUtils.findAndThen(deptMap, user.getDeptId(), dept -> { | 154 | MapUtils.findAndThen(deptMap, user.getDeptId(), dept -> { |
| 139 | excelVO.setDeptName(dept.getName()); | 155 | excelVO.setDeptName(dept.getName()); |
| 140 | - excelVO.setDeptLeader(dept.getLeader()); | 156 | + // 设置部门负责人的名字 |
| 157 | + MapUtils.findAndThen(deptLeaderUserMap, dept.getLeaderUserId(), | ||
| 158 | + deptLeaderUser -> excelVO.setDeptLeaderNickname(deptLeaderUser.getNickname())); | ||
| 141 | }); | 159 | }); |
| 142 | excelUsers.add(excelVO); | 160 | excelUsers.add(excelVO); |
| 143 | }); | 161 | }); |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/vo/user/SysUserExcelVO.java
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/vo/user/SysUserSimpleRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.AllArgsConstructor; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.NoArgsConstructor; | ||
| 8 | + | ||
| 9 | +@ApiModel("用户精简信息 Response VO") | ||
| 10 | +@Data | ||
| 11 | +@NoArgsConstructor | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public class SysUserSimpleRespVO { | ||
| 14 | + | ||
| 15 | + @ApiModelProperty(value = "用户编号", required = true, example = "1024") | ||
| 16 | + private Long id; | ||
| 17 | + | ||
| 18 | + @ApiModelProperty(value = "用户昵称", required = true, example = "芋道") | ||
| 19 | + private String nickname; | ||
| 20 | + | ||
| 21 | +} |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/user/SysUserConvert.java
| @@ -45,4 +45,5 @@ public interface SysUserConvert { | @@ -45,4 +45,5 @@ public interface SysUserConvert { | ||
| 45 | 45 | ||
| 46 | List<SysUserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list); | 46 | List<SysUserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list); |
| 47 | 47 | ||
| 48 | + List<SysUserSimpleRespVO> convertList04(List<SysUserDO> list); | ||
| 48 | } | 49 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/dept/SysDeptDO.java
| 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; | 1 | package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; | 5 | import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; |
| 5 | import com.baomidou.mybatisplus.annotation.TableId; | 6 | import com.baomidou.mybatisplus.annotation.TableId; |
| @@ -38,8 +39,10 @@ public class SysDeptDO extends TenantBaseDO { | @@ -38,8 +39,10 @@ public class SysDeptDO extends TenantBaseDO { | ||
| 38 | private Integer sort; | 39 | private Integer sort; |
| 39 | /** | 40 | /** |
| 40 | * 负责人 | 41 | * 负责人 |
| 42 | + * | ||
| 43 | + * 关联 {@link SysUserDO#getId()} | ||
| 41 | */ | 44 | */ |
| 42 | - private String leader; | 45 | + private Long leaderUserId; |
| 43 | /** | 46 | /** |
| 44 | * 联系电话 | 47 | * 联系电话 |
| 45 | */ | 48 | */ |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/user/SysUserMapper.java
| @@ -55,7 +55,7 @@ public interface SysUserMapper extends BaseMapperX<SysUserDO> { | @@ -55,7 +55,7 @@ public interface SysUserMapper extends BaseMapperX<SysUserDO> { | ||
| 55 | return selectList(new QueryWrapperX<SysUserDO>().like("username", username)); | 55 | return selectList(new QueryWrapperX<SysUserDO>().like("username", username)); |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | - | 58 | + // TODO 芋艿:可废弃该方法 |
| 59 | default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) { | 59 | default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) { |
| 60 | return selectList(new QueryWrapperX<SysUserDO>() | 60 | return selectList(new QueryWrapperX<SysUserDO>() |
| 61 | .eq("status", CommonStatusEnum.ENABLE.getStatus()) | 61 | .eq("status", CommonStatusEnum.ENABLE.getStatus()) |
| @@ -64,5 +64,9 @@ public interface SysUserMapper extends BaseMapperX<SysUserDO> { | @@ -64,5 +64,9 @@ public interface SysUserMapper extends BaseMapperX<SysUserDO> { | ||
| 64 | .likeIfPresent("post_ids", Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse(""))); | 64 | .likeIfPresent("post_ids", Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse(""))); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | + default List<SysUserDO> selectListByStatus(Integer status) { | ||
| 68 | + return selectList("status", status); | ||
| 69 | + } | ||
| 70 | + | ||
| 67 | } | 71 | } |
| 68 | 72 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/SysUserService.java
| @@ -169,4 +169,12 @@ public interface SysUserService { | @@ -169,4 +169,12 @@ public interface SysUserService { | ||
| 169 | */ | 169 | */ |
| 170 | SysUserImportRespVO importUsers(List<SysUserImportExcelVO> importUsers, boolean isUpdateSupport); | 170 | SysUserImportRespVO importUsers(List<SysUserImportExcelVO> importUsers, boolean isUpdateSupport); |
| 171 | 171 | ||
| 172 | + /** | ||
| 173 | + * 获得指定状态的用户们 | ||
| 174 | + * | ||
| 175 | + * @param status 状态 | ||
| 176 | + * @return 用户们 | ||
| 177 | + */ | ||
| 178 | + List<SysUserDO> getUsersByStatus(Integer status); | ||
| 179 | + | ||
| 172 | } | 180 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/impl/SysUserServiceImpl.java
| @@ -379,4 +379,9 @@ public class SysUserServiceImpl implements SysUserService { | @@ -379,4 +379,9 @@ public class SysUserServiceImpl implements SysUserService { | ||
| 379 | return respVO; | 379 | return respVO; |
| 380 | } | 380 | } |
| 381 | 381 | ||
| 382 | + @Override | ||
| 383 | + public List<SysUserDO> getUsersByStatus(Integer status) { | ||
| 384 | + return userMapper.selectListByStatus(status); | ||
| 385 | + } | ||
| 386 | + | ||
| 382 | } | 387 | } |
yudao-admin-ui/src/api/system/user.js
| @@ -10,6 +10,14 @@ export function listUser(query) { | @@ -10,6 +10,14 @@ export function listUser(query) { | ||
| 10 | }) | 10 | }) |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | +// 获取用户精简信息列表 | ||
| 14 | +export function listSimpleUsers() { | ||
| 15 | + return request({ | ||
| 16 | + url: '/system/user/list-all-simple', | ||
| 17 | + method: 'get' | ||
| 18 | + }) | ||
| 19 | +} | ||
| 20 | + | ||
| 13 | // 查询用户详细 | 21 | // 查询用户详细 |
| 14 | export function getUser(userId) { | 22 | export function getUser(userId) { |
| 15 | return request({ | 23 | return request({ |
yudao-admin-ui/src/views/system/dept/index.vue
| @@ -25,8 +25,9 @@ | @@ -25,8 +25,9 @@ | ||
| 25 | <el-table v-loading="loading" :data="deptList" row-key="id" default-expand-all | 25 | <el-table v-loading="loading" :data="deptList" row-key="id" default-expand-all |
| 26 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> | 26 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| 27 | <el-table-column prop="name" label="部门名称" width="260"></el-table-column> | 27 | <el-table-column prop="name" label="部门名称" width="260"></el-table-column> |
| 28 | + <el-table-column prop="status" label="负责人" :formatter="userNicknameFormat" width="120"/> | ||
| 28 | <el-table-column prop="sort" label="排序" width="200"></el-table-column> | 29 | <el-table-column prop="sort" label="排序" width="200"></el-table-column> |
| 29 | - <el-table-column prop="status" label="状态" :formatter="statusFormat" width="100"></el-table-column> | 30 | + <el-table-column prop="status" label="状态" :formatter="statusFormat" width="100"/> |
| 30 | <el-table-column label="创建时间" align="center" prop="createTime" width="200"> | 31 | <el-table-column label="创建时间" align="center" prop="createTime" width="200"> |
| 31 | <template slot-scope="scope"> | 32 | <template slot-scope="scope"> |
| 32 | <span>{{ parseTime(scope.row.createTime) }}</span> | 33 | <span>{{ parseTime(scope.row.createTime) }}</span> |
| @@ -64,8 +65,10 @@ | @@ -64,8 +65,10 @@ | ||
| 64 | </el-form-item> | 65 | </el-form-item> |
| 65 | </el-col> | 66 | </el-col> |
| 66 | <el-col :span="12"> | 67 | <el-col :span="12"> |
| 67 | - <el-form-item label="负责人" prop="leader"> | ||
| 68 | - <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" /> | 68 | + <el-form-item label="负责人" prop="leaderUserId"> |
| 69 | + <el-select v-model="form.leaderUserId" placeholder="请输入负责人" clearable style="width: 100%"> | ||
| 70 | + <el-option v-for="item in users" :key="parseInt(item.id)" :label="item.nickname" :value="parseInt(item.id)" /> | ||
| 71 | + </el-select> | ||
| 69 | </el-form-item> | 72 | </el-form-item> |
| 70 | </el-col> | 73 | </el-col> |
| 71 | <el-col :span="12"> | 74 | <el-col :span="12"> |
| @@ -103,6 +106,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | @@ -103,6 +106,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | ||
| 103 | 106 | ||
| 104 | import {SysCommonStatusEnum} from '@/utils/constants' | 107 | import {SysCommonStatusEnum} from '@/utils/constants' |
| 105 | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | 108 | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' |
| 109 | +import {listSimpleUsers} from "@/api/system/user"; | ||
| 106 | 110 | ||
| 107 | export default { | 111 | export default { |
| 108 | name: "Dept", | 112 | name: "Dept", |
| @@ -117,6 +121,8 @@ export default { | @@ -117,6 +121,8 @@ export default { | ||
| 117 | deptList: [], | 121 | deptList: [], |
| 118 | // 部门树选项 | 122 | // 部门树选项 |
| 119 | deptOptions: [], | 123 | deptOptions: [], |
| 124 | + // 用户下拉列表 | ||
| 125 | + users: [], | ||
| 120 | // 弹出层标题 | 126 | // 弹出层标题 |
| 121 | title: "", | 127 | title: "", |
| 122 | // 是否显示弹出层 | 128 | // 是否显示弹出层 |
| @@ -168,6 +174,10 @@ export default { | @@ -168,6 +174,10 @@ export default { | ||
| 168 | }, | 174 | }, |
| 169 | created() { | 175 | created() { |
| 170 | this.getList(); | 176 | this.getList(); |
| 177 | + // 获得用户列表 | ||
| 178 | + listSimpleUsers().then(response => { | ||
| 179 | + this.users = response.data; | ||
| 180 | + }); | ||
| 171 | }, | 181 | }, |
| 172 | methods: { | 182 | methods: { |
| 173 | /** 查询部门列表 */ | 183 | /** 查询部门列表 */ |
| @@ -193,6 +203,18 @@ export default { | @@ -193,6 +203,18 @@ export default { | ||
| 193 | statusFormat(row, column) { | 203 | statusFormat(row, column) { |
| 194 | return getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, row.status) | 204 | return getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, row.status) |
| 195 | }, | 205 | }, |
| 206 | + // 用户昵称展示 | ||
| 207 | + userNicknameFormat(row, column) { | ||
| 208 | + if (!row.leaderUserId) { | ||
| 209 | + return '未设置'; | ||
| 210 | + } | ||
| 211 | + for (const user of this.users) { | ||
| 212 | + if (row.leaderUserId === user.id) { | ||
| 213 | + return user.nickname; | ||
| 214 | + } | ||
| 215 | + } | ||
| 216 | + return '未知【' + row.leaderUserId + '】'; | ||
| 217 | + }, | ||
| 196 | // 取消按钮 | 218 | // 取消按钮 |
| 197 | cancel() { | 219 | cancel() { |
| 198 | this.open = false; | 220 | this.open = false; |
| @@ -205,7 +227,7 @@ export default { | @@ -205,7 +227,7 @@ export default { | ||
| 205 | parentId: undefined, | 227 | parentId: undefined, |
| 206 | name: undefined, | 228 | name: undefined, |
| 207 | sort: undefined, | 229 | sort: undefined, |
| 208 | - leader: undefined, | 230 | + leaderUserId: undefined, |
| 209 | phone: undefined, | 231 | phone: undefined, |
| 210 | email: undefined, | 232 | email: undefined, |
| 211 | status: SysCommonStatusEnum.ENABLE, | 233 | status: SysCommonStatusEnum.ENABLE, |
更新日志.md
| @@ -20,6 +20,12 @@ | @@ -20,6 +20,12 @@ | ||
| 20 | 5. 流程结束 | 20 | 5. 流程结束 |
| 21 | * 我的请假中,可以查询本人的请假申请, 和进度 | 21 | * 我的请假中,可以查询本人的请假申请, 和进度 |
| 22 | 22 | ||
| 23 | +### 📝 TODO | ||
| 24 | + | ||
| 25 | +* 支付 | ||
| 26 | +* 用户前台的社交登陆 | ||
| 27 | +* 用户前台的修改手机、修改密码、忘记密码 | ||
| 28 | + | ||
| 23 | ## [v1.3.0] 进行中 | 29 | ## [v1.3.0] 进行中 |
| 24 | 30 | ||
| 25 | ### ⚠️ Warning | 31 | ### ⚠️ Warning |
| @@ -33,6 +39,7 @@ | @@ -33,6 +39,7 @@ | ||
| 33 | * 【新增】待办任务的管理,支持任务的审批通过与不通过 | 39 | * 【新增】待办任务的管理,支持任务的审批通过与不通过 |
| 34 | * 【新增】已办任务的管理,支持详情的查看 | 40 | * 【新增】已办任务的管理,支持详情的查看 |
| 35 | * 【新增】引入 bpmn-process-designer 0.0.1 版本,提供流程设计器的能力 | 41 | * 【新增】引入 bpmn-process-designer 0.0.1 版本,提供流程设计器的能力 |
| 42 | +* 【修改】修改部门负责人,从 String 字符串,调整成和后台用户的用户编号绑定 | ||
| 36 | 43 | ||
| 37 | ### 🐞 Bug Fixes | 44 | ### 🐞 Bug Fixes |
| 38 | 45 | ||
| @@ -45,12 +52,6 @@ | @@ -45,12 +52,6 @@ | ||
| 45 | * 【升级】druid from 1.2.4 to 1.2.8,提升数据库连接池的稳定性 | 52 | * 【升级】druid from 1.2.4 to 1.2.8,提升数据库连接池的稳定性 |
| 46 | * 【升级】dynamic-datasource from 3.3.2 to 3.5.0,修复动态数据源切换的问题 | 53 | * 【升级】dynamic-datasource from 3.3.2 to 3.5.0,修复动态数据源切换的问题 |
| 47 | 54 | ||
| 48 | -### 📝 TODO | ||
| 49 | - | ||
| 50 | -* 支付 | ||
| 51 | -* 用户前台的社交登陆 | ||
| 52 | -* 用户前台的修改手机、修改密码、忘记密码 | ||
| 53 | - | ||
| 54 | ## [v1.2.0] | 55 | ## [v1.2.0] |
| 55 | 56 | ||
| 56 | ### ⚠️ Warning | 57 | ### ⚠️ Warning |