提交 891c2fc9 作者: ZhangLingKun

功能:招标快讯

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