可信代码库-组织管理组织列表接口对接
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"
|
@page-size-change="pagerSizeChange"
|
||||||
/>
|
/>
|
||||||
</d-card>
|
</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>
|
||||||
|
|
||||||
<div v-else>
|
<div v-else>
|
||||||
@@ -135,7 +181,7 @@ import { Message } from 'vue-devui';
|
|||||||
import NoData from '@/components/NoData/NoData.vue';
|
import NoData from '@/components/NoData/NoData.vue';
|
||||||
import {
|
import {
|
||||||
createOrganizationApi,
|
createOrganizationApi,
|
||||||
deleteOrganizationMemberApi,
|
deleteOrganizationMemberApi, getGroupjoinedListApi,
|
||||||
getOrganizationMemberListApi,
|
getOrganizationMemberListApi,
|
||||||
inviteOrganizationMemberApi,
|
inviteOrganizationMemberApi,
|
||||||
updateOrganizationInfoApi
|
updateOrganizationInfoApi
|
||||||
@@ -186,12 +232,24 @@ const memberListSearchParam = ref('');
|
|||||||
let originMemberList: OrganizationMemberItemType[] = [];
|
let originMemberList: OrganizationMemberItemType[] = [];
|
||||||
let filterMemberList: OrganizationMemberItemType[] = [];
|
let filterMemberList: OrganizationMemberItemType[] = [];
|
||||||
const memberTableData = shallowRef<OrganizationMemberItemType[]>([]);
|
const memberTableData = shallowRef<OrganizationMemberItemType[]>([]);
|
||||||
|
|
||||||
const pager = reactive({
|
const pager = reactive({
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
pageIndex: 1,
|
pageIndex: 1,
|
||||||
total: 0
|
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 deleteRow = shallowRef<OrganizationMemberItemType>(null);
|
||||||
const deleteMemberModalCtrl = ref(false);
|
const deleteMemberModalCtrl = ref(false);
|
||||||
const deleteMemberLoading = ref(false);
|
const deleteMemberLoading = ref(false);
|
||||||
@@ -242,6 +300,7 @@ async function queryUserInfo() {
|
|||||||
organizationProfile: res.data?.data.data.groupDesc as string,
|
organizationProfile: res.data?.data.data.groupDesc as string,
|
||||||
};
|
};
|
||||||
getMemberList();
|
getMemberList();
|
||||||
|
getOrgList(res.data?.data.data.nickname);
|
||||||
} else {
|
} else {
|
||||||
hasOrganization.value = false;
|
hasOrganization.value = false;
|
||||||
}
|
}
|
||||||
@@ -367,6 +426,27 @@ async function getMemberList() {
|
|||||||
memberListSearchLoading.value = false;
|
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(() => {
|
const handleSearch = debounce(() => {
|
||||||
pager.pageIndex = 1; // 搜索时重置到第一页
|
pager.pageIndex = 1; // 搜索时重置到第一页
|
||||||
@@ -376,7 +456,6 @@ const handleSearch = debounce(() => {
|
|||||||
// 修改 updateFilterTableList 函数
|
// 修改 updateFilterTableList 函数
|
||||||
function updateFilterTableList() {
|
function updateFilterTableList() {
|
||||||
const queryStr = memberListSearchParam.value.trim().toLowerCase();
|
const queryStr = memberListSearchParam.value.trim().toLowerCase();
|
||||||
debugger
|
|
||||||
|
|
||||||
filterMemberList = queryStr
|
filterMemberList = queryStr
|
||||||
? originMemberList.filter(item =>
|
? originMemberList.filter(item =>
|
||||||
@@ -388,10 +467,29 @@ function updateFilterTableList() {
|
|||||||
updateCurrentPageTableList();
|
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() {
|
function updateCurrentPageTableList() {
|
||||||
const endIndex = pager.pageIndex * pager.pageSize;
|
const endIndex = pager.pageIndex * pager.pageSize;
|
||||||
memberTableData.value = filterMemberList.slice(endIndex - pager.pageSize, endIndex);
|
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() {
|
function pagerIndexChange() {
|
||||||
updateCurrentPageTableList();
|
updateCurrentPageTableList();
|
||||||
@@ -401,6 +499,14 @@ function pagerSizeChange() {
|
|||||||
pager.pageIndex = 1;
|
pager.pageIndex = 1;
|
||||||
updateCurrentPageTableList();
|
updateCurrentPageTableList();
|
||||||
}
|
}
|
||||||
|
function orgPagerIndexChange() {
|
||||||
|
updateCurrentPageOrgTableList();
|
||||||
|
}
|
||||||
|
|
||||||
|
function orgPagerSizeChange() {
|
||||||
|
orgPager.pageIndex = 1;
|
||||||
|
updateCurrentPageOrgTableList();
|
||||||
|
}
|
||||||
|
|
||||||
function openInviteMemberModal() {
|
function openInviteMemberModal() {
|
||||||
inviteMemberModalCtrl.value = true;
|
inviteMemberModalCtrl.value = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user