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