This commit is contained in:
张成
2025-11-15 11:48:59 +08:00
parent 0fa0dd5b22
commit 30857c131a
8 changed files with 33 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
export default defineAppConfig({
pages: [
"home_pages/index", //中转页
"pages/main/index", // 主容器页面合并三个tab
"main_pages/index", // 主容器页面合并三个tab
"login_pages/index/index",
"login_pages/verification/index",
"login_pages/terms/index",

View File

@@ -16,7 +16,7 @@ const HomePage: React.FC = () => {
// 先获取用户信息
await fetchUserInfo();
// 用户信息获取成功后跳转到主容器页面
Taro.redirectTo({ url: '/pages/main/index' });
Taro.redirectTo({ url: '/main_pages/index' });
} catch (error) {
console.error('获取用户信息失败:', error);
// 如果获取用户信息失败,跳转到登录页

View File

@@ -23,6 +23,7 @@ export interface ListPageContentProps {
scrollToTopTrigger?: number; // 触发滚动的计数器
onDistanceFilterVisibleChange?: (visible: boolean) => void;
onCityPickerVisibleChange?: (visible: boolean) => void; // 保留接口,但由主容器直接处理
onFilterPopupVisibleChange?: (visible: boolean) => void; // 筛选弹窗显示/隐藏回调
}
const ListPageContent: React.FC<ListPageContentProps> = ({
@@ -31,6 +32,7 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
scrollToTopTrigger,
onDistanceFilterVisibleChange,
onCityPickerVisibleChange: _onCityPickerVisibleChange,
onFilterPopupVisibleChange,
}) => {
const store = useListStore() || {};
const { fetchUserInfo } = useUserActions();
@@ -228,9 +230,23 @@ const ListPageContent: React.FC<ListPageContentProps> = ({
};
const toggleShowPopup = () => {
updateListPageState({
isShowFilterPopup: !isShowFilterPopup,
});
const newVisible = !isShowFilterPopup;
// 先通知父组件筛选弹窗状态变化(设置 z-index
onFilterPopupVisibleChange?.(newVisible);
// 然后更新本地状态显示/隐藏弹窗
// 使用 setTimeout 确保 z-index 先设置,再显示弹窗
if (newVisible) {
setTimeout(() => {
updateListPageState({
isShowFilterPopup: newVisible,
});
}, 50);
} else {
// 关闭时直接更新状态
updateListPageState({
isShowFilterPopup: newVisible,
});
}
};
const handleUpdateFilterOptions = (params: Record<string, any>) => {

View File

@@ -2,4 +2,5 @@ export default definePageConfig({
navigationBarTitleText: '首页',
navigationStyle: 'custom',
navigationBarBackgroundColor: '#FAFAFA'
})
})

View File

@@ -47,7 +47,7 @@
// GuideBar z-index 控制
.guide-bar-low-z-index {
z-index: 80 !important;
z-index: 0 !important;
}
.guide-bar-high-z-index {

View File

@@ -19,6 +19,7 @@ const MainPage: React.FC = () => {
const [guideBarZIndex, setGuideBarZIndex] = useState<'low' | 'high'>('high');
const [isDistanceFilterVisible, setIsDistanceFilterVisible] = useState(false);
const [isCityPickerVisible, setIsCityPickerVisible] = useState(false);
const [isFilterPopupVisible, setIsFilterPopupVisible] = useState(false);
const [isShowInputCustomerNavBar, setIsShowInputCustomerNavBar] = useState(false);
const [listPageScrollToTopTrigger, setListPageScrollToTopTrigger] = useState(0);
@@ -67,6 +68,11 @@ const MainPage: React.FC = () => {
setIsCityPickerVisible(visible);
}, []);
// 处理筛选弹窗显示/隐藏
const handleFilterPopupVisibleChange = useCallback((visible: boolean) => {
setIsFilterPopupVisible(visible);
}, []);
// 处理列表页导航状态变化
const handleListNavStateChange = useCallback((state: {
isShowInputCustomerNavBar?: boolean;
@@ -103,12 +109,12 @@ const MainPage: React.FC = () => {
useEffect(() => {
if (isPublishMenuVisible) {
setGuideBarZIndex('high');
} else if (isDistanceFilterVisible || isCityPickerVisible) {
} else if (isDistanceFilterVisible || isCityPickerVisible || isFilterPopupVisible) {
setGuideBarZIndex('low');
} else {
setGuideBarZIndex('high');
}
}, [isPublishMenuVisible, isDistanceFilterVisible, isCityPickerVisible]);
}, [isPublishMenuVisible, isDistanceFilterVisible, isCityPickerVisible, isFilterPopupVisible]);
// 渲染自定义导航栏(参考原始页面的实现)
const renderCustomNavbar = () => {
@@ -164,6 +170,7 @@ const MainPage: React.FC = () => {
scrollToTopTrigger={listPageScrollToTopTrigger}
onDistanceFilterVisibleChange={handleDistanceFilterVisibleChange}
onCityPickerVisibleChange={handleCityPickerVisibleChange}
onFilterPopupVisibleChange={handleFilterPopupVisibleChange}
/>
</View>