可信代码库-组织管理组织列表接口对接
This commit is contained in:
@@ -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,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user