提交 891c2fc9 作者: ZhangLingKun

功能:招标快讯

上级 0aae0a6a
流水线 #8124 已通过 于阶段
in 5 分 21 秒
......@@ -3,7 +3,7 @@ import { Empty, Tabs, TabsProps } from 'antd';
import styled from 'styled-components';
import { HomeAPI } from '@/api';
import { InterListType } from '@/api/interface';
import { ListNewsType } from '@/api/interface/home';
import { ListNewsType, ListTenderInfoType } from '@/api/interface/home';
import BreadcrumbView from '@/components/breadcrumb';
import LayoutView from '@/components/layout';
import ProductListView from '@/components/productList';
......@@ -12,6 +12,8 @@ import NewsSwiperView from '@/pages/news/comp/_newsSwiper';
// 新闻列表类型
type NewsListType = InterListType<ListNewsType>;
// 招投标列表类型
type TenderListType = InterListType<ListTenderInfoType>;
// tab列表
const items: TabsProps['items'] = [
{
......@@ -29,6 +31,8 @@ const NewsListView = () => {
const [tabIndex, setTabIndex] = useState('1');
// 新闻列表
const [newsList, setNewsList] = useState<NewsListType>([]);
// 招投标列表
const [tenderList, setTenderList] = useState<TenderListType>([]);
// 分页数据
const [pagination, setPagination] = useState({
pageNo: 1,
......@@ -57,18 +61,56 @@ const NewsListView = () => {
setNewsList(list || []);
}
};
// 获取招标快讯列表
const getListTenderInfo = async (data?: {
pageNo?: number;
pageSize?: number;
}) => {
const res = await HomeAPI.getListTenderInfo({
pageNo: pagination.pageNo,
pageSize: pagination.pageSize,
...data,
});
if (res && res.code === '200') {
const { list, pageNo, pageSize, totalPage, totalCount } = res.result;
setPagination({
pageNo,
pageSize,
totalPage,
totalCount,
});
// setNewsList((prevList) => [...prevList, ...(list || [])]);
pagination.pageNo = pageNo;
pagination.totalPage = totalPage;
setTenderList(list || []);
}
};
// tab栏切换监听
const handleTabChange: TabsProps['onChange'] = async (e) => {
setTabIndex(e);
pagination.pageNo = 1;
// pagination.pageNo = 1;
// pagination.totalPage = 0;
// pagination.totalCount = 0;
setPagination({
...pagination,
pageNo: 1,
totalPage: 0,
totalCount: 0,
});
setNewsList([]);
if (e === '1') {
await getListNews({ pageNo: 1 });
} else {
await getListTenderInfo({ pageNo: 1 });
}
};
// 添加 handleReachBottom 函数
const handlePageChange = async (pageNo: number, pageSize: number) => {
if (tabIndex === '1') {
await getListNews({ pageNo, pageSize });
} else {
await getListTenderInfo({ pageNo, pageSize });
}
};
// 组件挂载
useEffect(() => {
......@@ -93,13 +135,26 @@ const NewsListView = () => {
{/* 文章列表 */}
<div className="news-list">
<ProductListView pagination={pagination} onChange={handlePageChange}>
{newsList?.length ? (
{tabIndex === '1' &&
(newsList?.length ? (
newsList?.map((i, j) => <NewsListItem key={j} detail={i} />)
) : (
<div className="list-empty flex-center">
<Empty />
</div>
)}
))}
{tabIndex === '2' &&
(tenderList?.length ? (
tenderList?.map((i, j) => (
<div className={'w-full'} key={j}>
{i?.tenderTitle}
</div>
))
) : (
<div className="list-empty flex-center">
<Empty />
</div>
))}
</ProductListView>
</div>
</NewsListWrap>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论