添加行政区选择
This commit is contained in:
@@ -7,7 +7,7 @@ import { useListStore } from "@/store/listStore";
|
||||
import { useGlobalState } from "@/store/global";
|
||||
import { View, Image, Text, ScrollView } from "@tarojs/components";
|
||||
import ListContainer from "@/container/listContainer";
|
||||
import DistanceQuickFilter from "@/components/DistanceQuickFilter";
|
||||
import DistanceQuickFilter from "@/components/DistanceQuickFilterV2";
|
||||
import { updateUserLocation } from "@/services/userService";
|
||||
import { useDictionaryStore } from "@/store/dictionaryStore";
|
||||
import { saveImage, navigateTo } from "@/utils";
|
||||
@@ -56,8 +56,11 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
|
||||
updateDistanceQuickFilter,
|
||||
getCities,
|
||||
getCityQrCode,
|
||||
getDistricts,
|
||||
area,
|
||||
cityQrCode,
|
||||
districts,
|
||||
gamesNum, // 新增:获取球局数量
|
||||
} = store;
|
||||
|
||||
const {
|
||||
@@ -190,9 +193,10 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
|
||||
|
||||
useEffect(() => {
|
||||
// 分批异步执行初始化操作,避免阻塞首屏渲染
|
||||
// 1. 立即执行:获取城市和二维码(轻量操作)
|
||||
// 1. 立即执行:获取城市、二维码和行政区列表(轻量操作)
|
||||
getCities();
|
||||
getCityQrCode();
|
||||
getDistricts(); // 新增:获取行政区列表
|
||||
|
||||
// 2. 移除 fetchUserInfo 调用,因为父组件 main_pages/index.tsx 已经在授权成功后调用了
|
||||
// 这里直接使用 store 中的用户信息即可
|
||||
@@ -324,10 +328,12 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
|
||||
initDictionaryData();
|
||||
}, []);
|
||||
|
||||
const area_city = area?.at(-2) || "上海";
|
||||
// 获取省份名称(area 格式: ["中国", "省份"])
|
||||
const province = area?.at(1) || "上海";
|
||||
|
||||
function renderCityQrcode() {
|
||||
let item = cityQrCode.find((item) => item.city_name === area_city);
|
||||
// 根据省份查找对应的二维码
|
||||
let item = cityQrCode.find((item) => item.city_name === province);
|
||||
if (!item) item = cityQrCode.find((item) => item.city_name === "其他");
|
||||
return (
|
||||
<View className={styles.cqContainer}>
|
||||
@@ -362,9 +368,13 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
|
||||
);
|
||||
}
|
||||
|
||||
// 判定是否显示"暂无球局"页面
|
||||
// 条件:省份不是上海 或 (已加载完成且球局数量为0)
|
||||
const shouldShowNoGames = province !== "上海" ;
|
||||
|
||||
return (
|
||||
<>
|
||||
{area_city !== "上海" ? (
|
||||
{shouldShowNoGames ? (
|
||||
renderCityQrcode()
|
||||
) : (
|
||||
<View ref={scrollContextRef}>
|
||||
@@ -404,10 +414,13 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
|
||||
cityOptions={distanceData}
|
||||
quickOptions={quickFilterData}
|
||||
onChange={handleDistanceOrQuickChange}
|
||||
districtOptions={districts || []}
|
||||
cityName="distanceFilter"
|
||||
quickName="order"
|
||||
districtName="district"
|
||||
cityValue={distanceQuickFilter?.distanceFilter}
|
||||
quickValue={distanceQuickFilter?.order}
|
||||
districtValue={distanceQuickFilter?.district}
|
||||
onMenuVisibleChange={handleDistanceFilterVisibleChange}
|
||||
/>
|
||||
</View>
|
||||
|
||||
Reference in New Issue
Block a user