refactor(api): 更新 API 结果类型导入路径

- 将 ApiResult 和 PageResult 类型的导入路径从 '@/api/index' 修改为 '@/api'
- 修改了多个文件中的导入语句,以简化 API 结果类型的导入路径
This commit is contained in:
2025-08-19 09:56:44 +08:00
parent f928264e2c
commit 12b664fc46
97 changed files with 111 additions and 118 deletions

View File

@@ -8,7 +8,7 @@ import {
ArrowRight,
Purse,
People,
Chart
Presentation
} from '@nutui/icons-react-taro'
import {useDealerUser} from '@/hooks/useDealerUser'
import { useThemeStyles } from '@/hooks/useTheme'
@@ -256,7 +256,7 @@ const DealerIndex: React.FC = () => {
<Grid.Item text={'邀请统计'} onClick={() => navigateToPage('/dealer/invite-stats/index')}>
<View className="text-center">
<View className="w-12 h-12 bg-indigo-50 rounded-xl flex items-center justify-center mx-auto mb-2">
<Chart color="#6366f1" size="20"/>
<Presentation color="#6366f1" size="20"/>
</View>
</View>
</Grid.Item>

View File

@@ -3,21 +3,17 @@ import { View, Text } from '@tarojs/components'
import {
Empty,
Tabs,
Progress,
Loading,
PullToRefresh,
Card,
Button,
DatePicker
} from '@nutui/nutui-react-taro'
import {
User,
Star,
TrendingUp,
ArrowUp,
Calendar,
Share,
Target,
Award
Gift
} from '@nutui/icons-react-taro'
import Taro from '@tarojs/taro'
import { useDealerUser } from '@/hooks/useDealerUser'
@@ -28,15 +24,14 @@ import {
} from '@/api/invite'
import type {
InviteStats,
InviteRecord,
InviteRanking
InviteRecord
} from '@/api/invite'
import { businessGradients } from '@/styles/gradients'
import {InviteRanking} from "@/api/invite/model";
const InviteStatsPage: React.FC = () => {
const [activeTab, setActiveTab] = useState<string>('stats')
const [loading, setLoading] = useState<boolean>(false)
const [refreshing, setRefreshing] = useState<boolean>(false)
const [inviteStats, setInviteStats] = useState<InviteStats | null>(null)
const [inviteRecords, setInviteRecords] = useState<InviteRecord[]>([])
const [ranking, setRanking] = useState<InviteRanking[]>([])
@@ -50,7 +45,7 @@ const InviteStatsPage: React.FC = () => {
try {
setLoading(true)
const stats = await getInviteStats(dealerUser.userId)
setInviteStats(stats)
stats && setInviteStats(stats)
} catch (error) {
console.error('获取邀请统计失败:', error)
Taro.showToast({
@@ -93,21 +88,19 @@ const InviteStatsPage: React.FC = () => {
// 刷新数据
const handleRefresh = async () => {
setRefreshing(true)
await Promise.all([
fetchInviteStats(),
fetchInviteRecords(),
fetchRanking()
])
setRefreshing(false)
}
// 初始化数据
useEffect(() => {
if (dealerUser?.userId) {
fetchInviteStats()
fetchInviteRecords()
fetchRanking()
fetchInviteStats().then()
fetchInviteRecords().then()
fetchRanking().then()
}
}, [fetchInviteStats, fetchInviteRecords, fetchRanking])
@@ -145,7 +138,7 @@ const InviteStatsPage: React.FC = () => {
) : inviteStats ? (
<View className="grid grid-cols-2 gap-4">
<View className="text-center p-4 bg-blue-50 rounded-xl">
<TrendingUp size="24" className="text-blue-500 mx-auto mb-2" />
<ArrowUp size="24" className="text-blue-500 mx-auto mb-2" />
<Text className="text-2xl font-bold text-blue-600">
{inviteStats.totalInvites || 0}
</Text>
@@ -252,7 +245,7 @@ const InviteStatsPage: React.FC = () => {
const renderRanking = () => (
<View className="px-4">
<View className="mb-4">
<Tabs value={dateRange} onChange={setDateRange}>
<Tabs value={dateRange} onChange={() => setDateRange}>
<Tabs.TabPane title="日榜" value="day" />
<Tabs.TabPane title="周榜" value="week" />
<Tabs.TabPane title="月榜" value="month" />
@@ -266,7 +259,7 @@ const InviteStatsPage: React.FC = () => {
<View className="p-4 flex items-center">
<View className="flex items-center justify-center w-8 h-8 rounded-full bg-blue-100 mr-3">
{index < 3 ? (
<Award size="16" className={index === 0 ? 'text-yellow-500' : index === 1 ? 'text-gray-400' : 'text-orange-400'} />
<Gift size="16" className={index === 0 ? 'text-yellow-500' : index === 1 ? 'text-gray-400' : 'text-orange-400'} />
) : (
<Text className="text-sm font-bold text-gray-600">{index + 1}</Text>
)}
@@ -321,7 +314,7 @@ const InviteStatsPage: React.FC = () => {
{/* 标签页 */}
<View className="px-4 mb-4">
<Tabs value={activeTab} onChange={setActiveTab}>
<Tabs value={activeTab} onChange={() => setActiveTab}>
<Tabs.TabPane title="统计概览" value="stats" />
<Tabs.TabPane title="邀请记录" value="records" />
<Tabs.TabPane title="排行榜" value="ranking" />
@@ -329,7 +322,7 @@ const InviteStatsPage: React.FC = () => {
</View>
{/* 内容区域 */}
<PullToRefresh onRefresh={handleRefresh} loading={refreshing}>
<PullToRefresh onRefresh={handleRefresh}>
<View className="pb-6">
{activeTab === 'stats' && renderStatsOverview()}
{activeTab === 'records' && renderInviteRecords()}