列表搜索页面

This commit is contained in:
juguohong
2025-09-01 00:03:43 +08:00
parent 7d4eb3d031
commit fdd6b8f7cb
18 changed files with 315 additions and 83 deletions

View File

@@ -7,6 +7,7 @@ import { useGlobalState } from "@/store/global";
import { useListState } from "@/store/listStore";
import CustomNavbar from "@/components/CustomNavbar";
import { Input } from "@nutui/nutui-react-taro";
import Taro from "@tarojs/taro";
interface IProps {
icon: string;
@@ -34,6 +35,12 @@ const ListHeader = (props: IProps) => {
getCurrentLocal();
}, []);
const handleInputClick = () => {
Taro.navigateTo({
url: "/pages/search/index",
});
}
return (
<CustomNavbar>
<View
@@ -53,10 +60,10 @@ const ListHeader = (props: IProps) => {
src={img.ICON_LIST_SEARCH_SEARCH}
/>
<Input
// className="inputSearch"
placeholder="搜索上海的球局和场地"
clearable={false}
value={searchValue}
onClick={handleInputClick}
/>
</View>
</View>

View File

@@ -4,5 +4,19 @@
display: flex;
flex-direction: column;
gap: 5px;
background-color: red;
// background-color: red;
.recommendTextWrapper {
display: flex;
align-items: center;
justify-content: center;
padding: 22px 10px;
}
.recommendText {
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
font-weight: 500;
line-height: 24px;
}
}

View File

@@ -1,13 +1,18 @@
import { View } from "@tarojs/components";
import { View, Text } from "@tarojs/components";
import ListCard from "@/components/ListCard";
import ListLoadError from "@/components/ListLoadError";
import ListCardSkeleton from "@/components/ListCardSkeleton";
import "./index.scss";
const ListContainer = (props) => {
const { loading, data = [], error, reload } = props;
const { loading, data = [], error, reload, recommendList } = props;
const renderList = () => {
if (loading && data.length > 0) {
if (error) {
return <ListLoadError reload={reload} />;
}
const renderList = (list) => {
if (loading && list.length === 0) {
return (
<>
{new Array(10).fill(0).map(() => {
@@ -17,17 +22,9 @@ const ListContainer = (props) => {
);
}
if (error) {
return <ListLoadError reload={reload} />;
}
if (loading && data.length === 0) {
return null;
}
return (
<>
{data.map((match, index) => (
{list?.map((match, index) => (
<ListCard key={match.id || index} {...match} />
))}
</>
@@ -35,13 +32,12 @@ const ListContainer = (props) => {
};
return (
<View
className="listContentWrapper"
// style={{
// minHeight: `calc(100vh - ${totalHeight}px)`,
// }}
>
{renderList()}
<View className="listContentWrapper">
{renderList(data)}
<View className="recommendTextWrapper">
<Text className="recommendText"></Text>
</View>
{renderList(recommendList)}
</View>
);
};