From 6f8648346181d9bbcefa769f0b0be2e1c0402695 Mon Sep 17 00:00:00 2001 From: baiqi Date: Mon, 8 Jul 2024 14:20:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=82=AE=E7=AE=B1=E9=82=80=E8=AF=B7):=20?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E9=82=80=E8=AF=B7=E9=87=8D=E5=A4=8D=E6=8F=90?= =?UTF-8?q?=E7=A4=BA&=E7=BB=84=E7=BB=87/=E9=A1=B9=E7=9B=AE=E6=88=90?= =?UTF-8?q?=E5=91=98=E9=82=AE=E7=AE=B1=E9=82=80=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/http/index.ts | 4 +- .../project-management/projectMember.ts | 15 +++- frontend/src/api/modules/setting/member.ts | 13 ++- frontend/src/api/modules/setting/user.ts | 2 +- .../project-management/projectMember.ts | 2 + frontend/src/api/requrls/setting/member.ts | 5 +- .../src/components/business/ms-menu/index.vue | 4 +- .../projectManagement/projectAndPermission.ts | 7 ++ frontend/src/models/setting/member.ts | 6 ++ .../member/components/memberTable.vue | 8 ++ .../setting/organization/member/index.vue | 23 ++++- .../organization/usergroup/orgUserGroup.vue | 16 +--- .../{user => }/components/inviteModal.vue | 85 ++++++++++++++++--- .../src/views/setting/system/user/index.vue | 5 +- 14 files changed, 158 insertions(+), 37 deletions(-) rename frontend/src/views/setting/system/{user => }/components/inviteModal.vue (55%) diff --git a/frontend/src/api/http/index.ts b/frontend/src/api/http/index.ts index b263dc5132..078c5f1a19 100644 --- a/frontend/src/api/http/index.ts +++ b/frontend/src/api/http/index.ts @@ -171,7 +171,9 @@ const transform: AxiosTransform = { throw new Error(e as unknown as string); } checkStatus(response?.status, msg, response?.data?.code, errorMessageMode); - return Promise.reject(response?.data?.message || error); + return Promise.reject( + response?.config?.requestOptions?.isReturnNativeResponse ? response?.data : response?.data?.message || error + ); }, }; diff --git a/frontend/src/api/modules/project-management/projectMember.ts b/frontend/src/api/modules/project-management/projectMember.ts index 9060b6db73..37c98dd7f6 100644 --- a/frontend/src/api/modules/project-management/projectMember.ts +++ b/frontend/src/api/modules/project-management/projectMember.ts @@ -6,6 +6,7 @@ import { EditProjectMemberUrl, GetProjectMemberListUrl, ProjectMemberCommentOptions, + ProjectMemberInviteUrl, ProjectMemberList, ProjectMemberOptions, ProjectUserGroupUrl, @@ -14,7 +15,12 @@ import { import { ReviewUserItem } from '@/models/caseManagement/caseReview'; import type { CommonList, TableQueryParams } from '@/models/common'; -import type { ActionProjectMember, ProjectMemberItem } from '@/models/projectManagement/projectAndPermission'; +import type { + ActionProjectMember, + InviteMemberParams, + ProjectMemberItem, + ProjectUserOption, +} from '@/models/projectManagement/projectAndPermission'; // 获取项目成员列表 export function getProjectMemberList(data: TableQueryParams) { @@ -46,7 +52,7 @@ export function removeProjectMember(projectId: string, userId: string) { // 获取用户组下拉 export function getProjectUserGroup(projectId: string) { - return MSR.get({ url: ProjectUserGroupUrl, params: projectId }); + return MSR.get({ url: ProjectUserGroupUrl, params: projectId }); } // 项目成员下拉选项 @@ -65,3 +71,8 @@ export function getProjectMemberCommentOptions(projectId: string, keyword?: stri params: { keyword }, }); } + +// 邀请成员 +export function inviteMember(data: InviteMemberParams) { + return MSR.post({ url: ProjectMemberInviteUrl, data }, { isReturnNativeResponse: true }); +} diff --git a/frontend/src/api/modules/setting/member.ts b/frontend/src/api/modules/setting/member.ts index 90fe21175b..09ede9d890 100644 --- a/frontend/src/api/modules/setting/member.ts +++ b/frontend/src/api/modules/setting/member.ts @@ -8,11 +8,18 @@ import { getProjectListUrl, getUserGroupList, getUserList, + inviteOrgMemberUrl, UpdateMemberUrl, } from '@/api/requrls/setting/member'; import type { CommonList, TableQueryParams } from '@/models/common'; -import type { AddOrUpdateMemberModel, BatchAddProjectModel, LinkItem, MemberItem } from '@/models/setting/member'; +import type { + AddOrUpdateMemberModel, + BatchAddProjectModel, + InviteOrgMemberParams, + LinkItem, + MemberItem, +} from '@/models/setting/member'; // 获取成员列表 export function getMemberList(data: TableQueryParams) { return MSR.post>({ url: GetMemberListUrl, data }); @@ -48,3 +55,7 @@ export function getUser(organizationId: string, keyword: string) { export function getProjectList(organizationId: string, keyword?: string) { return MSR.get({ url: `${getProjectListUrl}/${organizationId}`, params: { keyword } }); } +// 添加到用户组 +export function inviteOrgMember(data: InviteOrgMemberParams) { + return MSR.post({ url: inviteOrgMemberUrl, data }, { isReturnNativeResponse: true }); +} diff --git a/frontend/src/api/modules/setting/user.ts b/frontend/src/api/modules/setting/user.ts index 0972c8aab4..446b461716 100644 --- a/frontend/src/api/modules/setting/user.ts +++ b/frontend/src/api/modules/setting/user.ts @@ -112,7 +112,7 @@ export function getSystemProjects() { // 邀请用户 export function inviteUser(data: InviteUserParams) { - return MSR.post({ url: InviteUserUrl, data }); + return MSR.post({ url: InviteUserUrl, data }, { isReturnNativeResponse: true }); } // 用户注册 diff --git a/frontend/src/api/requrls/project-management/projectMember.ts b/frontend/src/api/requrls/project-management/projectMember.ts index 3ca3e6b7c2..eb24548196 100644 --- a/frontend/src/api/requrls/project-management/projectMember.ts +++ b/frontend/src/api/requrls/project-management/projectMember.ts @@ -8,3 +8,5 @@ export const ProjectUserGroupUrl = '/project/member/get-role/option'; export const ProjectMemberOptions = '/project/member/get-member/option'; export const ProjectMemberList = '/project/get-member/option'; export const ProjectMemberCommentOptions = '/project/member/comment/user-option'; // 项目成员-@成员下拉列表 +// 项目成员-邀请成员 +export const ProjectMemberInviteUrl = '/project/member/invite'; diff --git a/frontend/src/api/requrls/setting/member.ts b/frontend/src/api/requrls/setting/member.ts index b8784eb22e..dcdb5638b1 100644 --- a/frontend/src/api/requrls/setting/member.ts +++ b/frontend/src/api/requrls/setting/member.ts @@ -12,4 +12,7 @@ export const getUserGroupList = '/organization/user/role/list'; export const getUserList = '/organization/not-exist/user/list'; // 获取弹窗里边的穿梭项目列表 export const getProjectListUrl = '/organization/project/list'; -export const getSystemProjectListUrl = '/system/project/list'; // 获取系统项目列表 +// 获取系统项目列表 +export const getSystemProjectListUrl = '/system/project/list'; +// 邀请组织成员 +export const inviteOrgMemberUrl = '/organization/user/invite'; diff --git a/frontend/src/components/business/ms-menu/index.vue b/frontend/src/components/business/ms-menu/index.vue index db6dd7c8fe..ba9d0cd1b3 100644 --- a/frontend/src/components/business/ms-menu/index.vue +++ b/frontend/src/components/business/ms-menu/index.vue @@ -180,7 +180,7 @@ label: t('personal.switchOrg'), icon: () => ( ), @@ -434,7 +434,7 @@ clearTimeout(mouseEnterTimer); }} > - + )) : ''} diff --git a/frontend/src/models/projectManagement/projectAndPermission.ts b/frontend/src/models/projectManagement/projectAndPermission.ts index 3e4446623b..dd831217c4 100644 --- a/frontend/src/models/projectManagement/projectAndPermission.ts +++ b/frontend/src/models/projectManagement/projectAndPermission.ts @@ -61,3 +61,10 @@ export interface AddProjectMember { userIds: string[] | string; roleIds: string[] | string; } + +export interface InviteMemberParams { + inviteEmails: string[]; + userRoleIds: string[]; + organizationId: string; + projectId: string; +} diff --git a/frontend/src/models/setting/member.ts b/frontend/src/models/setting/member.ts index baf534d76b..b367303127 100644 --- a/frontend/src/models/setting/member.ts +++ b/frontend/src/models/setting/member.ts @@ -58,3 +58,9 @@ export interface LinkItem { disabled?: boolean; } export type LinkList = LinkItem[]; + +export interface InviteOrgMemberParams { + inviteEmails: string[]; + userRoleIds: string[]; + organizationId: string; +} diff --git a/frontend/src/views/project-management/projectAndPermission/member/components/memberTable.vue b/frontend/src/views/project-management/projectAndPermission/member/components/memberTable.vue index ca160851f5..8eb81401c3 100644 --- a/frontend/src/views/project-management/projectAndPermission/member/components/memberTable.vue +++ b/frontend/src/views/project-management/projectAndPermission/member/components/memberTable.vue @@ -5,6 +5,9 @@ {{ t('project.member.addMember') }} + + {{ t('system.user.emailInvite') }} +
@@ -90,6 +93,7 @@ :current-select-count="batchParams.currentSelectCount" @add-user-group="addUserGroup" /> +