提交 d487663a 作者: 翁进城

商城页面完善

上级 6cb1afd1
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { Button, Select, Space, Tag } from "antd"; import { Button, Pagination, Select, Space, Tag } from "antd";
import Layout from "~/components/layout"; import Layout from "~/components/layout";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import Image from "next/image"; import Image from "next/image";
import Filter, { FilterResult } from "~/components/filter"; import Filter, { FilterResult } from "~/components/filter";
import api, { Goods } from "./api"; import api, { Goods, ListPageGoodsInfoParams } from "./api";
// 此函数在构建时被调用 // 此函数在构建时被调用
export async function getServerSideProps() { export async function getServerSideProps() {
...@@ -20,22 +20,40 @@ export default function Mall(props: Props) { ...@@ -20,22 +20,40 @@ export default function Mall(props: Props) {
const router = useRouter(); const router = useRouter();
const [productList, setProductList] = useState(Array<Goods>); const [productList, setProductList] = useState(Array<Goods>);
const [filterResult, setFilterResult] = useState<FilterResult>({}); const [filterResult, setFilterResult] = useState<FilterResult>({});
const [pageParams, setPageParams] = useState({
pageNo: 1,
pageSize: 16,
});
const [count, setCount] = useState(0);
useEffect(() => { useEffect(() => {
api api
.listPageGoodsInfo({ .listPageGoodsInfo({
brandId: 1, brandId: filterResult.brand?.id,
pageNo: 1, districtId: filterResult.region?.id,
pageSize: 10, modelId: filterResult.model?.id,
partsId: filterResult.part?.id,
productCategoryId: filterResult.category?.id,
qualityId: filterResult.quality?.id,
...pageParams,
}) })
.then((res) => { .then((res) => {
setProductList(res.result?.list || []); setProductList(res.result?.list || []);
setCount(res.result?.totalCount);
}); });
}, []); }, [filterResult, pageParams]);
const onFilterChange = (filterResult: FilterResult) => { const onFilterChange = (filterResult: FilterResult) => {
console.log("filterResult", filterResult); console.log("filterResult", filterResult);
setFilterResult(filterResult);
}; };
const onPageChange = (page: number, pageSize: number) => {
setPageParams({
...pageParams,
pageNo: page,
})
}
return ( return (
<Layout> <Layout>
<div className="page" style={{ paddingTop: "18px" }}> <div className="page" style={{ paddingTop: "18px" }}>
...@@ -65,10 +83,17 @@ export default function Mall(props: Props) { ...@@ -65,10 +83,17 @@ export default function Mall(props: Props) {
></Image> ></Image>
</div> </div>
<div className={styles.title}>{item.goodsName}</div> <div className={styles.title}>{item.goodsName}</div>
<div className={styles.sellCount}>半年售12987</div> <div className={styles.sellCount}>半年售{(Math.floor(Math.random() * 901) + 100).toFixed(0)}</div>
</li> </li>
); );
})} })}
<Pagination
current={pageParams.pageNo}
showSizeChanger={false}
showQuickJumper
total={count}
onChange={onPageChange}
/>
</ul> </ul>
<div className={styles.adList}> <div className={styles.adList}>
<div className={styles.ad}></div> <div className={styles.ad}></div>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论