From bea89c4f287a2df2fabe9592948e7d183749c864 Mon Sep 17 00:00:00 2001 From: teukkk Date: Fri, 13 Sep 2024 15:01:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE):=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F&=E7=BB=84=E7=BB=87-=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=88=90=E5=91=98=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96-?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/modules/setting/member.ts | 5 + .../modules/setting/organizationAndProject.ts | 4 + frontend/src/api/requrls/setting/member.ts | 2 + .../requrls/setting/organizationAndProject.ts | 4 +- .../components/pure/ms-table/select-all.vue | 5 +- .../src/components/pure/ms-table/useTable.ts | 6 +- frontend/src/models/setting/systemOrg.ts | 1 + .../project/components/addUserModal.vue | 115 -------- .../project/components/userDrawer.vue | 19 +- .../organization/project/orgProject.vue | 23 +- .../components/addUserModal.vue | 255 +++++++++++++----- .../components/systemOrganization.vue | 10 +- .../components/systemProject.vue | 10 +- .../components/userDrawer.vue | 14 +- 14 files changed, 237 insertions(+), 236 deletions(-) delete mode 100644 frontend/src/views/setting/organization/project/components/addUserModal.vue diff --git a/frontend/src/api/modules/setting/member.ts b/frontend/src/api/modules/setting/member.ts index b8c426fc4e..81c283da16 100644 --- a/frontend/src/api/modules/setting/member.ts +++ b/frontend/src/api/modules/setting/member.ts @@ -5,6 +5,7 @@ import { BatchAddUserGroupUrl, DeleteMemberUrl, GetMemberListUrl, + GetOrganizationMemberListPageUrl, getProjectListUrl, getUserGroupList, getUserList, @@ -64,3 +65,7 @@ export function getProjectList(organizationId: string, keyword?: string) { export function inviteOrgMember(data: InviteOrgMemberParams) { return MSR.post({ url: inviteOrgMemberUrl, data }, { isReturnNativeResponse: true }); } +// 系统设置-组织-项目-分页获取成员列表 +export function getOrganizationMemberListPage(data: TableQueryParams) { + return MSR.post({ url: GetOrganizationMemberListPageUrl, data }); +} diff --git a/frontend/src/api/modules/setting/organizationAndProject.ts b/frontend/src/api/modules/setting/organizationAndProject.ts index 49193fd820..b019b06eb8 100644 --- a/frontend/src/api/modules/setting/organizationAndProject.ts +++ b/frontend/src/api/modules/setting/organizationAndProject.ts @@ -85,6 +85,10 @@ export function addUserToOrgOrProject(data: AddUserToOrgOrProjectParams) { export function getUserByOrganizationOrProject(sourceId: string, keyword: string) { return MSR.get({ url: `${orgUrl.getUserByOrgOrProjectUrl}${sourceId}`, params: { keyword } }); } +// 系统设置-系统-组织与项目-获取添加成员列表 +export function getSystemMemberListPage(data: TableQueryParams) { + return MSR.post({ url: orgUrl.getMemberListPageUrl, data }); +} // 系统-获取管理员下拉选项 export function getAdminByOrganizationOrProject(keyword: string) { diff --git a/frontend/src/api/requrls/setting/member.ts b/frontend/src/api/requrls/setting/member.ts index 814e7b84ee..a32da13e16 100644 --- a/frontend/src/api/requrls/setting/member.ts +++ b/frontend/src/api/requrls/setting/member.ts @@ -18,3 +18,5 @@ export const getSystemProjectListUrl = '/system/project/list'; export const inviteOrgMemberUrl = '/organization/user/invite'; // 系统设置-系统-组织与项目-组织-成员-更新成员用户组 export const UpdateSystemOrganizationMemberUrl = '/system/organization/update-member'; +// 系统设置-组织-项目-分页获取成员列表 +export const GetOrganizationMemberListPageUrl = '/organization/project/user-list'; diff --git a/frontend/src/api/requrls/setting/organizationAndProject.ts b/frontend/src/api/requrls/setting/organizationAndProject.ts index c85eed225b..e7db5de268 100644 --- a/frontend/src/api/requrls/setting/organizationAndProject.ts +++ b/frontend/src/api/requrls/setting/organizationAndProject.ts @@ -27,6 +27,8 @@ export const getDisableOrgUrl = '/system/organization/disable/'; export const getDeleteOrgUrl = '/system/organization/delete/'; // 获取系统默认组织 export const getOrgDefaultUrl = '/system/organization/default'; +// 系统设置-系统-组织与项目-获取添加成员列表 +export const getMemberListPageUrl = '/system/organization/member-list'; // 系统-项目 // 更新项目信息 @@ -74,8 +76,6 @@ export const postModifyProjectNameByOrgUrl = '/organization/project/rename'; export const postAddProjectByOrgUrl = '/organization/project/add'; // 添加项目成员 export const postAddProjectMemberByOrgUrl = '/organization/project/add-members'; -// 获取用户列表 -export const getUserTableByOrgIdOrProjectIdUrl = '/organization/project/user-list/'; // 恢复项目 export const getRecoverProjectByOrgUrl = '/organization/project/revoke/'; // 移除项目成员 diff --git a/frontend/src/components/pure/ms-table/select-all.vue b/frontend/src/components/pure/ms-table/select-all.vue index 60472eb230..48973c6888 100644 --- a/frontend/src/components/pure/ms-table/select-all.vue +++ b/frontend/src/components/pure/ms-table/select-all.vue @@ -141,7 +141,10 @@ if (item.children && item.children.length > 0 && !props.rowSelectionDisabledConfig?.disabledChildren) { return hasUnselectedChildren(item.children, selectedKeys, rowKey); } - return !selectedKeys.has(item[rowKey]); + return ( + !selectedKeys.has(item[rowKey]) && + !(props?.rowSelectionDisabledConfig?.disabledKey && item[props?.rowSelectionDisabledConfig?.disabledKey]) + ); }); } diff --git a/frontend/src/components/pure/ms-table/useTable.ts b/frontend/src/components/pure/ms-table/useTable.ts index e01533c88b..d7b9878bc4 100644 --- a/frontend/src/components/pure/ms-table/useTable.ts +++ b/frontend/src/components/pure/ms-table/useTable.ts @@ -365,7 +365,11 @@ export default function useTableProps( }; const collectIds = (data: MsTableDataItem[], rowKey: string) => { data.forEach((item: MsTableDataItem) => { - if (item[rowKey] && !propsRes.value.selectedKeys.has(item[rowKey])) { + if ( + item[rowKey] && + !propsRes.value.selectedKeys.has(item[rowKey]) && + !(props?.rowSelectionDisabledConfig?.disabledKey && item[props?.rowSelectionDisabledConfig?.disabledKey]) + ) { propsRes.value.selectedKeys.add(item[rowKey]); propsRes.value.excludeKeys.delete(item[rowKey]); } diff --git a/frontend/src/models/setting/systemOrg.ts b/frontend/src/models/setting/systemOrg.ts index c6f5f0c74d..13911a6b22 100644 --- a/frontend/src/models/setting/systemOrg.ts +++ b/frontend/src/models/setting/systemOrg.ts @@ -4,4 +4,5 @@ export interface AddUserToOrgOrProjectParams { projectId?: string; // 等待接口改动 将要废弃,以后用userIds memberIds?: string[]; + userRoleIds?: string[]; } diff --git a/frontend/src/views/setting/organization/project/components/addUserModal.vue b/frontend/src/views/setting/organization/project/components/addUserModal.vue deleted file mode 100644 index 58cd12983c..0000000000 --- a/frontend/src/views/setting/organization/project/components/addUserModal.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/frontend/src/views/setting/organization/project/components/userDrawer.vue b/frontend/src/views/setting/organization/project/components/userDrawer.vue index 626d85aabe..ffb4a7f522 100644 --- a/frontend/src/views/setting/organization/project/components/userDrawer.vue +++ b/frontend/src/views/setting/organization/project/components/userDrawer.vue @@ -41,6 +41,7 @@ :tag-list="record.userRoleList" type="primary" theme="outline" + allow-edit @click="handleTagClick(record)" /> @@ -96,7 +99,7 @@ import MsTagGroup from '@/components/pure/ms-tag/ms-tag-group.vue'; import MsRemoveButton from '@/components/business/ms-remove-button/MsRemoveButton.vue'; import MsSelect from '@/components/business/ms-select'; - import AddUserModal from './addUserModal.vue'; + import AddUserModal from '@/views/setting/system/organizationAndProject/components/addUserModal.vue'; import { getProjectUserGroup, updateProjectMember } from '@/api/modules/project-management/projectMember'; import { deleteProjectMemberByOrg, postProjectMemberByProjectId } from '@/api/modules/setting/organizationAndProject'; @@ -139,6 +142,7 @@ title: 'system.user.tableColumnUserGroup', dataIndex: 'userRoleList', slotName: 'userGroup', + allowEditTag: true, isTag: true, width: 300, }, @@ -235,12 +239,9 @@ userVisible.value = true; }; - const handleHideUserModal = (shouldSearch: boolean) => { - userVisible.value = false; - if (shouldSearch) { - fetchData(); - emit('requestFetchData'); - } + const handleAddMemberSubmit = () => { + fetchData(); + emit('requestFetchData'); }; const handleRemove = async (record: TableData) => { diff --git a/frontend/src/views/setting/organization/project/orgProject.vue b/frontend/src/views/setting/organization/project/orgProject.vue index 4c35ead9f5..53fc8b8a16 100644 --- a/frontend/src/views/setting/organization/project/orgProject.vue +++ b/frontend/src/views/setting/organization/project/orgProject.vue @@ -89,8 +89,19 @@ :current-project="currentUpdateProject" @cancel="handleAddProjectModalCancel" /> - - + + @@ -111,8 +122,8 @@ import type { ActionsItem } from '@/components/pure/ms-table-more-action/types'; import MsUserAdminDiv from '@/components/pure/ms-user-admin-div/index.vue'; import AddProjectModal from './components/addProjectModal.vue'; - import AddUserModal from './components/addUserModal.vue'; import UserDrawer from './components/userDrawer.vue'; + import AddUserModal from '@/views/setting/system/organizationAndProject/components/addUserModal.vue'; import { deleteProjectByOrg, @@ -332,12 +343,6 @@ currentUserDrawer.visible = false; }; - const handleAddUserModalCancel = (shouldSearch: boolean) => { - userVisible.value = false; - if (shouldSearch) { - fetchData(); - } - }; const handleAddProjectModalCancel = (shouldSearch: boolean) => { addProjectVisible.value = false; currentUpdateProject.value = undefined; diff --git a/frontend/src/views/setting/system/organizationAndProject/components/addUserModal.vue b/frontend/src/views/setting/system/organizationAndProject/components/addUserModal.vue index 3621d33626..23d88977dd 100644 --- a/frontend/src/views/setting/system/organizationAndProject/components/addUserModal.vue +++ b/frontend/src/views/setting/system/organizationAndProject/components/addUserModal.vue @@ -1,114 +1,223 @@ diff --git a/frontend/src/views/setting/system/organizationAndProject/components/systemOrganization.vue b/frontend/src/views/setting/system/organizationAndProject/components/systemOrganization.vue index 9f86f9880e..71d287b2fd 100644 --- a/frontend/src/views/setting/system/organizationAndProject/components/systemOrganization.vue +++ b/frontend/src/views/setting/system/organizationAndProject/components/systemOrganization.vue @@ -79,12 +79,7 @@ :visible="orgVisible" @cancel="handleAddOrgModalCancel" /> - + @@ -334,9 +329,6 @@ currentUserDrawer.visible = false; }; - const handleAddUserModalCancel = () => { - userVisible.value = false; - }; const handleAddOrgModalCancel = (shouldSearch: boolean) => { orgVisible.value = false; if (shouldSearch) { diff --git a/frontend/src/views/setting/system/organizationAndProject/components/systemProject.vue b/frontend/src/views/setting/system/organizationAndProject/components/systemProject.vue index a20bbdd68c..574009d576 100644 --- a/frontend/src/views/setting/system/organizationAndProject/components/systemProject.vue +++ b/frontend/src/views/setting/system/organizationAndProject/components/systemProject.vue @@ -64,12 +64,7 @@ :visible="addProjectVisible" @cancel="handleAddProjectModalCancel" /> - + @@ -301,9 +296,6 @@ currentUserDrawer.currentName = ''; }; - const handleAddUserModalCancel = () => { - userVisible.value = false; - }; const handleAddProjectModalCancel = (shouldSearch: boolean) => { if (shouldSearch) { fetchData(); diff --git a/frontend/src/views/setting/system/organizationAndProject/components/userDrawer.vue b/frontend/src/views/setting/system/organizationAndProject/components/userDrawer.vue index dbc33206ec..c2012126e3 100644 --- a/frontend/src/views/setting/system/organizationAndProject/components/userDrawer.vue +++ b/frontend/src/views/setting/system/organizationAndProject/components/userDrawer.vue @@ -42,6 +42,7 @@ :tag-list="record.userRoleList" type="primary" theme="outline" + allow-edit @click="handleTagClick(record)" /> @@ -152,6 +153,7 @@ title: 'system.user.tableColumnUserGroup', dataIndex: 'userRoleList', slotName: 'userGroup', + allowEditTag: true, isTag: true, width: 300, }, @@ -255,15 +257,11 @@ const handleAddMember = () => { userVisible.value = true; }; - const handleAddMembeSubmit = () => { + const handleAddMemberSubmit = () => { fetchData(); emit('requestFetchData'); }; - const handleHideUserModal = () => { - userVisible.value = false; - }; - const handleRemove = async (record: TableData) => { try { if (props.organizationId) {