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({ export default defineAppConfig({
pages: [ pages: [
"home_pages/index", //中转页 "home_pages/index", //中转页
"pages/main/index", // 主容器页面合并三个tab "main_pages/index", // 主容器页面合并三个tab
"login_pages/index/index", "login_pages/index/index",
"login_pages/verification/index", "login_pages/verification/index",
"login_pages/terms/index", "login_pages/terms/index",

View File

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

View File

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

View File

@@ -3,3 +3,4 @@ export default definePageConfig({
navigationStyle: 'custom', navigationStyle: 'custom',
navigationBarBackgroundColor: '#FAFAFA' navigationBarBackgroundColor: '#FAFAFA'
}) })

View File

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

View File

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