feat(dealer):优化订单佣金显示逻辑
- 引入 useUser 钩子获取用户信息 - 添加 getResourceId 方法根据角色控制资源访问 - 实现 hasRole 方法检查用户角色权限 - 根据用户角色和ID控制一级、二级佣金的显示条件- 修复二级分销商信息重复判断逻辑
This commit is contained in:
@@ -6,6 +6,7 @@ import Taro from '@tarojs/taro'
|
||||
import {pageShopDealerOrder} from '@/api/shop/shopDealerOrder'
|
||||
import {useDealerUser} from '@/hooks/useDealerUser'
|
||||
import type {ShopDealerOrder} from '@/api/shop/shopDealerOrder/model'
|
||||
import {useUser} from "@/hooks/useUser";
|
||||
|
||||
interface OrderWithDetails extends ShopDealerOrder {
|
||||
orderNo?: string
|
||||
@@ -27,6 +28,7 @@ const DealerOrder: React.FC = () => {
|
||||
const [hasMore, setHasMore] = useState<boolean>(true)
|
||||
|
||||
const {dealerUser} = useDealerUser()
|
||||
const {user} = useUser()
|
||||
|
||||
// 获取订单数据
|
||||
const fetchOrders = useCallback(async (page: number = 1, isRefresh: boolean = false) => {
|
||||
@@ -44,7 +46,7 @@ const DealerOrder: React.FC = () => {
|
||||
const result = await pageShopDealerOrder({
|
||||
isInvalid: 0,
|
||||
isSettled: 1,
|
||||
resourceId: Taro.getStorageSync('UserId') == 33658 ? undefined : Taro.getStorageSync('UserId'),
|
||||
resourceId: getResourceId(),
|
||||
month: date,
|
||||
page,
|
||||
limit: 10
|
||||
@@ -93,6 +95,24 @@ const DealerOrder: React.FC = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const getResourceId = () => {
|
||||
if (hasRole('superAdmin')) {
|
||||
return undefined
|
||||
}
|
||||
if (hasRole('admin')) {
|
||||
return user?.userId
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否有特定角色
|
||||
const hasRole = (roleCode: string) => {
|
||||
if (!user || !user.roles) {
|
||||
return false;
|
||||
}
|
||||
return user.roles.some(role => role.roleCode === roleCode);
|
||||
}
|
||||
|
||||
|
||||
// 初始化加载数据
|
||||
useEffect(() => {
|
||||
if (dealerUser?.userId) {
|
||||
@@ -135,18 +155,24 @@ const DealerOrder: React.FC = () => {
|
||||
<View className="mb-1">
|
||||
{/*DealerId:{Taro.getStorageSync('DealerId')}*/}
|
||||
{/* 一级佣金30 */}
|
||||
{(hasRole('superAdmin') || hasRole('admin') || Taro.getStorageSync('UserId') != order.thirdUserId) && (
|
||||
<>
|
||||
{Taro.getStorageSync('UserId') != order.secondUserId && (
|
||||
<>
|
||||
{(order.firstNickname || order.firstUserId) && (
|
||||
<Text className="text-sm text-gray-400 block">
|
||||
一级佣金:{order.firstNickname || `用户${order.firstUserId}`} (¥{order.firstMoney || '0.00'})
|
||||
</Text>
|
||||
)}
|
||||
|
||||
{/* 一级分销商 */}
|
||||
</>
|
||||
)}
|
||||
{(order.secondUserId || order.secondUserId) && (
|
||||
<Text className="text-sm text-gray-400 block">
|
||||
二级佣金:{order.secondNickname || `用户${order.secondUserId}`} (¥{order.secondMoney || '0.00'})
|
||||
</Text>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
|
||||
{/* 三级分销商 */}
|
||||
{(order.thirdUserId !== undefined && order.thirdUserId > 0) && (
|
||||
|
||||
Reference in New Issue
Block a user