From d23e7afd588a8f6edc9008f8783bb5333460660f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 21 Oct 2025 01:30:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(dealer):=E4=BC=98=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BD=A3=E9=87=91=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 useUser 钩子获取用户信息 - 添加 getResourceId 方法根据角色控制资源访问 - 实现 hasRole 方法检查用户角色权限 - 根据用户角色和ID控制一级、二级佣金的显示条件- 修复二级分销商信息重复判断逻辑 --- src/dealer/orders/index.tsx | 50 ++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/src/dealer/orders/index.tsx b/src/dealer/orders/index.tsx index 93e2759..dc02cae 100644 --- a/src/dealer/orders/index.tsx +++ b/src/dealer/orders/index.tsx @@ -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(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,17 +155,23 @@ const DealerOrder: React.FC = () => { {/*DealerId:{Taro.getStorageSync('DealerId')}*/} {/* 一级佣金30 */} - {(order.firstNickname || order.firstUserId) && ( - - 一级佣金:{order.firstNickname || `用户${order.firstUserId}`} (¥{order.firstMoney || '0.00'}) - - )} - - {/* 一级分销商 */} - {(order.secondUserId || order.secondUserId) && ( - - 二级佣金:{order.secondNickname || `用户${order.secondUserId}`} (¥{order.secondMoney || '0.00'}) - + {(hasRole('superAdmin') || hasRole('admin') || Taro.getStorageSync('UserId') != order.thirdUserId) && ( + <> + {Taro.getStorageSync('UserId') != order.secondUserId && ( + <> + {(order.firstNickname || order.firstUserId) && ( + + 一级佣金:{order.firstNickname || `用户${order.firstUserId}`} (¥{order.firstMoney || '0.00'}) + + )} + + )} + {(order.secondUserId || order.secondUserId) && ( + + 二级佣金:{order.secondNickname || `用户${order.secondUserId}`} (¥{order.secondMoney || '0.00'}) + + )} + )} {/* 三级分销商 */}