diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ad1a62a..04092531 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - 岗位管理 部门参数错误 - 角色管理 菜单分配 节点独立下的回显及提交问题 - 租户管理 套餐管理 回显时候`已选中节点`数量为0 +- 用户管理 更新用户时打开drawer需要加载该部门下的岗位信息 **OTHERS** diff --git a/apps/web-antd/src/views/system/user/user-drawer.vue b/apps/web-antd/src/views/system/user/user-drawer.vue index 9a490cb5..0b37459a 100644 --- a/apps/web-antd/src/views/system/user/user-drawer.vue +++ b/apps/web-antd/src/views/system/user/user-drawer.vue @@ -60,6 +60,24 @@ function genRoleOptionlabel(role: Role) { ]); } +/** + * 岗位的加载 + */ +async function setupPostOptions(deptId: number | string) { + const postListResp = await postOptionSelect(deptId); + const options = postListResp.map((item) => ({ + label: item.postName, + value: item.postId, + })); + const placeholder = options.length > 0 ? '请选择' : '该部门下暂无岗位'; + formApi.updateSchema([ + { + componentProps: { options, placeholder }, + fieldName: 'postIds', + }, + ]); +} + /** * 初始化部门选择 */ @@ -80,22 +98,7 @@ async function setupDeptSelect() { getPopupContainer, async onSelect(deptId: number | string) { /** 根据部门ID加载岗位 */ - const postListResp = await postOptionSelect(deptId); - const options = postListResp.map((item) => ({ - label: item.postName, - value: item.postId, - })); - const placeholder = - options.length > 0 ? '请选择' : '该部门下暂无岗位'; - /** - * TODO: 可以考虑加上post编码 - */ - formApi.updateSchema([ - { - componentProps: { options, placeholder }, - fieldName: 'postIds', - }, - ]); + await setupPostOptions(deptId); /** 变化后需要重新选择岗位 */ formModel.postIds = []; }, @@ -185,6 +188,8 @@ const [BasicDrawer, drawerApi] = useVbenDrawer({ // 添加角色和岗位 formApi.setFieldValue('postIds', postIds), formApi.setFieldValue('roleIds', roleIds), + // 更新时不会触发onSelect 需要手动调用 + setupPostOptions(user.deptId), ]); } drawerApi.drawerLoading(false);