可信代码库-组织管理组织列表接口对接

This commit is contained in:
付民康
2025-04-01 09:28:21 +08:00
parent de237799c7
commit a81143c4c8
2 changed files with 115 additions and 3 deletions

View File

@@ -45,4 +45,10 @@ export function deleteOrganizationMemberApi(params: { groupId: number, username:
});
}
export function getGroupjoinedListApi(params: { groupId: number }): Promise<UnitRes<any>> {
return request({
url: `/api/v1/group/joined/list`,
method: 'get',
params,
});
}

View File

@@ -76,6 +76,52 @@
@page-size-change="pagerSizeChange"
/>
</d-card>
<d-card class="mb-[16px] bg-white" shadow="never">
<div class="font-bold text-[14px] mb-[12px]">组织管理</div>
<!-- <div class="flex mb-[12px]">-->
<!-- <d-button icon="add" variant="solid" class="mr-[8px]" @click="openInviteMemberModal">邀请成员</d-button>-->
<!-- <d-search v-model="memberListSearchParam" icon-position="left" class="w-[296px]" placeholder="请输入搜索内容" @search="handleSearch"-->
<!-- @keyup.enter="handleSearch"/>-->
<!-- </div>-->
<d-table
:data="orgTableData"
:show-loading="orgListSearchLoading"
class="w-full mb-[20px] organ-table"
:fix-header="orgTableData.length > 0"
header-bg
max-height="500px"
>
<d-column field="createUser" header="组织者" />
<d-column field="email" header="邮箱" >
<template #default="{ row }">
{{ normalizeEmailDomain(row.email) || '' }}
</template>
</d-column>
<d-column field="groupName" header="组织名称" />
<d-column field="groupDesc" header="组织简介" />
<d-column field="createTime" header="加入时间" />
<!-- <d-column header="操作">-->
<!-- <template #default="{ row }">-->
<!-- <d-button size="sm" variant="text" color="primary" class="p-0 justify-start" @click="openDeleteModal(row)">删除</d-button>-->
<!-- </template>-->
<!-- </d-column>-->
<template #empty>
<NoData />
</template>
</d-table>
<d-pagination
class="flex justify-end"
:total="orgPager.total"
v-model:pageSize="orgPager.pageSize"
v-model:pageIndex="orgPager.pageIndex"
:can-view-total="true"
:can-change-page-size="true"
:max-items="5"
@page-index-change="orgPagerIndexChange"
@page-size-change="orgPagerSizeChange"
/>
</d-card>
</div>
<div v-else>
@@ -135,7 +181,7 @@ import { Message } from 'vue-devui';
import NoData from '@/components/NoData/NoData.vue';
import {
createOrganizationApi,
deleteOrganizationMemberApi,
deleteOrganizationMemberApi, getGroupjoinedListApi,
getOrganizationMemberListApi,
inviteOrganizationMemberApi,
updateOrganizationInfoApi
@@ -186,12 +232,24 @@ const memberListSearchParam = ref('');
let originMemberList: OrganizationMemberItemType[] = [];
let filterMemberList: OrganizationMemberItemType[] = [];
const memberTableData = shallowRef<OrganizationMemberItemType[]>([]);
const pager = reactive({
pageSize: 10,
pageIndex: 1,
total: 0
});
const orgListSearchLoading = ref(false);
const orgListSearchParam = ref('');
let originOrgList = [];
let filterOrgList = [];
const orgTableData = shallowRef([]);
const orgPager = reactive({
pageSize: 10,
pageIndex: 1,
total: 0
});
const deleteRow = shallowRef<OrganizationMemberItemType>(null);
const deleteMemberModalCtrl = ref(false);
const deleteMemberLoading = ref(false);
@@ -242,6 +300,7 @@ async function queryUserInfo() {
organizationProfile: res.data?.data.data.groupDesc as string,
};
getMemberList();
getOrgList(res.data?.data.data.nickname);
} else {
hasOrganization.value = false;
}
@@ -367,6 +426,27 @@ async function getMemberList() {
memberListSearchLoading.value = false;
}
async function getOrgList(username) {
orgListSearchLoading.value = true;
originMemberList = [];
pager.total = 0;
try {
const res = await getGroupjoinedListApi({ username: 'hugaowei' });
if (res.data?.code === 200) {
originOrgList = res.data?.data.map(item => {
return { ...item, createTime: dayjs(item.createTime).format('YYYY-MM-DD HH:mm:ss') };
});
orgPager.total = originOrgList.length;
updateFilterOrgTableList();
} else {
Message.warning(res.data?.msg || '查询失败');
}
} catch (e) {
Message.error('接口错误,查询失败');
}
orgListSearchLoading.value = false;
}
// 搜索处理函数(带防抖)
const handleSearch = debounce(() => {
pager.pageIndex = 1; // 搜索时重置到第一页
@@ -376,7 +456,6 @@ const handleSearch = debounce(() => {
// 修改 updateFilterTableList 函数
function updateFilterTableList() {
const queryStr = memberListSearchParam.value.trim().toLowerCase();
debugger
filterMemberList = queryStr
? originMemberList.filter(item =>
@@ -388,10 +467,29 @@ function updateFilterTableList() {
updateCurrentPageTableList();
}
// 修改 updateFilterTableList 函数
function updateFilterOrgTableList() {
debugger
const queryStr = orgListSearchParam.value.trim().toLowerCase();
filterOrgList = queryStr
? originOrgList.filter(item =>
item.username.toLowerCase().includes(queryStr) ||
item.email.toLowerCase().includes(queryStr))
: [...originOrgList];
orgPager.total = filterOrgList.length;
updateCurrentPageOrgTableList();
}
function updateCurrentPageTableList() {
const endIndex = pager.pageIndex * pager.pageSize;
memberTableData.value = filterMemberList.slice(endIndex - pager.pageSize, endIndex);
}
function updateCurrentPageOrgTableList() {
const endIndex = orgPager.pageIndex * orgPager.pageSize;
orgTableData.value = filterOrgList.slice(endIndex - orgPager.pageSize, endIndex);
}
function pagerIndexChange() {
updateCurrentPageTableList();
@@ -401,6 +499,14 @@ function pagerSizeChange() {
pager.pageIndex = 1;
updateCurrentPageTableList();
}
function orgPagerIndexChange() {
updateCurrentPageOrgTableList();
}
function orgPagerSizeChange() {
orgPager.pageIndex = 1;
updateCurrentPageOrgTableList();
}
function openInviteMemberModal() {
inviteMemberModalCtrl.value = true;