1
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
// 如果获取用户信息失败,跳转到登录页
|
||||
|
||||
@@ -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>) => {
|
||||
@@ -2,4 +2,5 @@ export default definePageConfig({
|
||||
navigationBarTitleText: '首页',
|
||||
navigationStyle: 'custom',
|
||||
navigationBarBackgroundColor: '#FAFAFA'
|
||||
})
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user