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 {pageShopDealerOrder} from '@/api/shop/shopDealerOrder'
|
||||||
import {useDealerUser} from '@/hooks/useDealerUser'
|
import {useDealerUser} from '@/hooks/useDealerUser'
|
||||||
import type {ShopDealerOrder} from '@/api/shop/shopDealerOrder/model'
|
import type {ShopDealerOrder} from '@/api/shop/shopDealerOrder/model'
|
||||||
|
import {useUser} from "@/hooks/useUser";
|
||||||
|
|
||||||
interface OrderWithDetails extends ShopDealerOrder {
|
interface OrderWithDetails extends ShopDealerOrder {
|
||||||
orderNo?: string
|
orderNo?: string
|
||||||
@@ -27,6 +28,7 @@ const DealerOrder: React.FC = () => {
|
|||||||
const [hasMore, setHasMore] = useState<boolean>(true)
|
const [hasMore, setHasMore] = useState<boolean>(true)
|
||||||
|
|
||||||
const {dealerUser} = useDealerUser()
|
const {dealerUser} = useDealerUser()
|
||||||
|
const {user} = useUser()
|
||||||
|
|
||||||
// 获取订单数据
|
// 获取订单数据
|
||||||
const fetchOrders = useCallback(async (page: number = 1, isRefresh: boolean = false) => {
|
const fetchOrders = useCallback(async (page: number = 1, isRefresh: boolean = false) => {
|
||||||
@@ -44,7 +46,7 @@ const DealerOrder: React.FC = () => {
|
|||||||
const result = await pageShopDealerOrder({
|
const result = await pageShopDealerOrder({
|
||||||
isInvalid: 0,
|
isInvalid: 0,
|
||||||
isSettled: 1,
|
isSettled: 1,
|
||||||
resourceId: Taro.getStorageSync('UserId') == 33658 ? undefined : Taro.getStorageSync('UserId'),
|
resourceId: getResourceId(),
|
||||||
month: date,
|
month: date,
|
||||||
page,
|
page,
|
||||||
limit: 10
|
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(() => {
|
useEffect(() => {
|
||||||
if (dealerUser?.userId) {
|
if (dealerUser?.userId) {
|
||||||
@@ -135,17 +155,23 @@ const DealerOrder: React.FC = () => {
|
|||||||
<View className="mb-1">
|
<View className="mb-1">
|
||||||
{/*DealerId:{Taro.getStorageSync('DealerId')}*/}
|
{/*DealerId:{Taro.getStorageSync('DealerId')}*/}
|
||||||
{/* 一级佣金30 */}
|
{/* 一级佣金30 */}
|
||||||
{(order.firstNickname || order.firstUserId) && (
|
{(hasRole('superAdmin') || hasRole('admin') || Taro.getStorageSync('UserId') != order.thirdUserId) && (
|
||||||
<Text className="text-sm text-gray-400 block">
|
<>
|
||||||
一级佣金:{order.firstNickname || `用户${order.firstUserId}`} (¥{order.firstMoney || '0.00'})
|
{Taro.getStorageSync('UserId') != order.secondUserId && (
|
||||||
</Text>
|
<>
|
||||||
)}
|
{(order.firstNickname || order.firstUserId) && (
|
||||||
|
<Text className="text-sm text-gray-400 block">
|
||||||
{/* 一级分销商 */}
|
一级佣金:{order.firstNickname || `用户${order.firstUserId}`} (¥{order.firstMoney || '0.00'})
|
||||||
{(order.secondUserId || order.secondUserId) && (
|
</Text>
|
||||||
<Text className="text-sm text-gray-400 block">
|
)}
|
||||||
二级佣金:{order.secondNickname || `用户${order.secondUserId}`} (¥{order.secondMoney || '0.00'})
|
</>
|
||||||
</Text>
|
)}
|
||||||
|
{(order.secondUserId || order.secondUserId) && (
|
||||||
|
<Text className="text-sm text-gray-400 block">
|
||||||
|
二级佣金:{order.secondNickname || `用户${order.secondUserId}`} (¥{order.secondMoney || '0.00'})
|
||||||
|
</Text>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* 三级分销商 */}
|
{/* 三级分销商 */}
|
||||||
|
|||||||
Reference in New Issue
Block a user