Files
glt-taro/src/pages/user/user.tsx
赵忠林 27ff0a8fe7 refactor(user): 重构用户页面并添加下拉刷新功能
- 移除了 HeaderWithHook 和 IndexWithHook 组件
- 优化了 UserCard 组件,使用 forwardRef 和 useImperativeHandle暴露刷新方法
- 在 User 页面中添加 PullToRefresh组件实现下拉刷新
-集成了 useUserData 钩子用于刷新用户数据
2025-08-26 19:39:11 +08:00

73 lines
1.7 KiB
TypeScript

import {useEffect, useRef} from 'react'
import {PullToRefresh} from '@nutui/nutui-react-taro'
import UserCard from "./components/UserCard";
import UserOrder from "./components/UserOrder";
import UserCell from "./components/UserCell";
import UserFooter from "./components/UserFooter";
import {useUser} from "@/hooks/useUser";
import {useUserData} from "@/hooks/useUserData";
import './user.scss'
import IsDealer from "./components/IsDealer";
function User() {
const {
isAdmin
} = useUser();
const { refresh } = useUserData()
const userCardRef = useRef<any>()
// 下拉刷新处理
const handleRefresh = async () => {
await refresh()
// 如果 UserCard 组件有自己的刷新方法,也可以调用
if (userCardRef.current?.handleRefresh) {
await userCardRef.current.handleRefresh()
}
}
useEffect(() => {
}, []);
/**
* 门店核销管理
*/
if (isAdmin()) {
return (
<PullToRefresh
onRefresh={handleRefresh}
headHeight={60}
>
<div className={'w-full'} style={{
background: 'linear-gradient(to bottom, #e9fff2, #f9fafb)'
}}>
<UserCard ref={userCardRef}/>
<UserOrder/>
<IsDealer/>
<UserCell/>
<UserFooter/>
</div>
</PullToRefresh>
)
}
return (
<PullToRefresh
onRefresh={handleRefresh}
headHeight={60}
>
<div className={'w-full'} style={{
background: 'linear-gradient(to bottom, #e9fff2, #f9fafb)'
}}>
<UserCard ref={userCardRef}/>
<UserOrder/>
<IsDealer/>
<UserCell/>
<UserFooter/>
</div>
</PullToRefresh>
)
}
export default User