refactor: 全量迁移前端 API 调用到统一 api-services 服务层

- 新建 api-services-raw.ts 导出原始 axios 方法供特殊端点使用
- 完成 api-services.ts 全领域覆盖(auth/employee/roster/dashboard/attendance/payroll/socialInsurance/commercialInsurance/termination/policies/evidence/audit/calendar/companyFiles/notifications/settings/ai/platform/portal/survey/search)
- 迁移所有 47+ 页面文件:pages/、pages/roster/、pages/portal/、pages/platform/、pages/auth/、pages/dashboard/、pages/compliance/
- 移除所有直接 import api from '../../lib/api' 引用
- 修复 Termination.tsx / WorkProcess.tsx 中 string|null 类型错误
- 修复 SocialInsurance.tsx 中 api-services-raw delete 导入名
- 修复 PlatformLogin.tsx 变量遮蔽问题
- tsc --noEmit 零错误,vite build 成功
This commit is contained in:
selfrelease
2026-08-01 16:13:19 +08:00
parent fb924dea98
commit 16f22e6622
64 changed files with 1197 additions and 597 deletions
+6 -7
View File
@@ -2,7 +2,8 @@ import { useState } from 'react'
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
import { toast } from 'sonner'
import { Bell, CheckCircle, AlertCircle, Send, Settings as SettingsIcon, X } from 'lucide-react'
import api from '../lib/api'
import { notificationsApi } from '../lib/api-services'
import { post as apiPost } from '../lib/api-services-raw'
import Card from '../components/ui/Card'
import Button from '../components/ui/Button'
import EmptyState from '../components/ui/EmptyState'
@@ -39,21 +40,19 @@ export default function Notifications() {
const { data, isLoading } = useQuery<any>({
queryKey: ['notification-logs', page, pageSize],
queryFn: async () => {
const res = await api.get(`/notifications/logs?page=${page}&pageSize=${pageSize}`) as any
return res.data
return await notificationsApi.logs({ page, pageSize })
},
})
const { data: settings } = useQuery<any>({
queryKey: ['notification-settings'],
queryFn: async () => {
const res = await api.get('/notifications/settings') as any
return res.data
return await notificationsApi.settings()
},
})
const checkContractsMutation = useMutation({
mutationFn: () => api.post('/notifications/check-contracts'),
mutationFn: () => apiPost('/notifications/check-contracts'),
onSuccess: () => {
toast.success('合同到期检查已触发')
queryClient.invalidateQueries({ queryKey: ['notification-logs'] })
@@ -174,7 +173,7 @@ function SettingsModal({ settings, onClose, onSuccess }: { settings: any; onClos
})
const saveMutation = useMutation({
mutationFn: () => api.put('/notifications/settings', form),
mutationFn: () => notificationsApi.updateSettings(form),
onSuccess: () => { toast.success('通知设置已保存'); onSuccess() },
onError: () => toast.error('保存失败'),
})