- 设计并实现了开发者中心与企业控制台两大模块 - 按用户角色区分开发者和企业客户,支持多项目类型及成员管理 - 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面 - 实现应用版本发布、消息通知中心、权限审批与开发者申请流程 - 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能 - 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块 - 优化后端API,支持已登录和未注册用户不同加入应用流程 - 前端按钮统一采用微信手机号授权,完善用户授权体验 - 修复多个页面的JSX语法错误及依赖导入问题,替换部分组件库 - 增加详细的类型定义文件,提升项目类型安全 - 新增超过55个页面及60个API接口,扩展应用功能和服务体系 - 完成全面的样式设计,实现一致的视觉风格和交互体验
227 lines
5.2 KiB
TypeScript
227 lines
5.2 KiB
TypeScript
/**
|
|
* 数据分析/运营监控 API
|
|
*/
|
|
import { request } from '../utils/request'
|
|
import type {
|
|
OverviewStats,
|
|
ApiCallStat,
|
|
ErrorStat,
|
|
PerformanceMetric,
|
|
RegionStat,
|
|
DeviceStat,
|
|
BrowserStat,
|
|
OsStat,
|
|
SourceStat,
|
|
PageStat,
|
|
EventTrack,
|
|
AnalyticsParam,
|
|
} from '../types/analytics'
|
|
|
|
// ==================== 概览统计 ====================
|
|
|
|
/** 获取概览统计 */
|
|
export const getOverviewStats = (websiteId: number, date?: string) => {
|
|
return request<OverviewStats>({
|
|
url: '/developer/analytics/overview',
|
|
method: 'GET',
|
|
params: { websiteId, date },
|
|
})
|
|
}
|
|
|
|
/** 获取趋势数据 */
|
|
export const getTrendData = (
|
|
websiteId: number,
|
|
startDate: string,
|
|
endDate: string,
|
|
granularity: 'hour' | 'day' | 'week' | 'month' = 'day'
|
|
) => {
|
|
return request<{ list: ApiCallStat[] }>({
|
|
url: '/developer/analytics/trend',
|
|
method: 'GET',
|
|
params: { websiteId, startDate, endDate, granularity },
|
|
})
|
|
}
|
|
|
|
/** 获取今日实时数据 */
|
|
export const getRealtimeData = (websiteId: number) => {
|
|
return request<{
|
|
uv: number
|
|
pv: number
|
|
apiCalls: number
|
|
errors: number
|
|
activeUsers: number
|
|
}>({
|
|
url: '/developer/analytics/realtime',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
// ==================== API 调用统计 ====================
|
|
|
|
/** 获取 API 调用统计 */
|
|
export const pageApiCalls = (params: AnalyticsParam) => {
|
|
return request<{ list: ApiCallStat[]; total: number }>({
|
|
url: '/developer/analytics/api-calls',
|
|
method: 'GET',
|
|
params,
|
|
})
|
|
}
|
|
|
|
// ==================== 错误统计 ====================
|
|
|
|
/** 获取错误列表 */
|
|
export const pageErrors = (params: AnalyticsParam) => {
|
|
return request<{ list: ErrorStat[]; total: number }>({
|
|
url: '/developer/analytics/errors',
|
|
method: 'GET',
|
|
params,
|
|
})
|
|
}
|
|
|
|
/** 获取错误详情 */
|
|
export const getErrorDetail = (id: number) => {
|
|
return request<ErrorStat & { samples: any[] }>({
|
|
url: `/developer/analytics/errors/${id}`,
|
|
method: 'GET',
|
|
})
|
|
}
|
|
|
|
// ==================== 性能指标 ====================
|
|
|
|
/** 获取性能指标 */
|
|
export const getPerformanceMetrics = (websiteId: number) => {
|
|
return request<{ list: PerformanceMetric[] }>({
|
|
url: '/developer/analytics/performance',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
/** 获取性能趋势 */
|
|
export const getPerformanceTrend = (
|
|
websiteId: number,
|
|
metric: string,
|
|
startDate: string,
|
|
endDate: string
|
|
) => {
|
|
return request<{ list: PerformanceMetric[] }>({
|
|
url: '/developer/analytics/performance/trend',
|
|
method: 'GET',
|
|
params: { websiteId, metric, startDate, endDate },
|
|
})
|
|
}
|
|
|
|
// ==================== 用户统计 ====================
|
|
|
|
/** 获取用户统计 */
|
|
export const getUserStats = (websiteId: number) => {
|
|
return request<{
|
|
total: number
|
|
active: number
|
|
new: number
|
|
retention: number
|
|
}>({
|
|
url: '/developer/analytics/users',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
/** 获取新增用户趋势 */
|
|
export const getNewUsersTrend = (
|
|
websiteId: number,
|
|
startDate: string,
|
|
endDate: string
|
|
) => {
|
|
return request<{ list: { date: string; count: number }[] }>({
|
|
url: '/developer/analytics/users/trend',
|
|
method: 'GET',
|
|
params: { websiteId, startDate, endDate },
|
|
})
|
|
}
|
|
|
|
// ==================== 区域分布 ====================
|
|
|
|
/** 获取区域分布 */
|
|
export const getRegionStats = (websiteId: number) => {
|
|
return request<{ list: RegionStat[] }>({
|
|
url: '/developer/analytics/regions',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
// ==================== 设备统计 ====================
|
|
|
|
/** 获取设备类型统计 */
|
|
export const getDeviceStats = (websiteId: number) => {
|
|
return request<{ list: DeviceStat[] }>({
|
|
url: '/developer/analytics/devices',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
/** 获取浏览器统计 */
|
|
export const getBrowserStats = (websiteId: number) => {
|
|
return request<{ list: BrowserStat[] }>({
|
|
url: '/developer/analytics/browsers',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
/** 获取操作系统统计 */
|
|
export const getOsStats = (websiteId: number) => {
|
|
return request<{ list: OsStat[] }>({
|
|
url: '/developer/analytics/os',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
// ==================== 来源统计 ====================
|
|
|
|
/** 获取流量来源 */
|
|
export const getSourceStats = (websiteId: number) => {
|
|
return request<{ list: SourceStat[] }>({
|
|
url: '/developer/analytics/sources',
|
|
method: 'GET',
|
|
params: { websiteId },
|
|
})
|
|
}
|
|
|
|
/** 获取页面访问排行 */
|
|
export const getPageStats = (params: AnalyticsParam) => {
|
|
return request<{ list: PageStat[]; total: number }>({
|
|
url: '/developer/analytics/pages',
|
|
method: 'GET',
|
|
params,
|
|
})
|
|
}
|
|
|
|
// ==================== 事件追踪 ====================
|
|
|
|
/** 获取事件列表 */
|
|
export const pageEvents = (params: AnalyticsParam) => {
|
|
return request<{ list: EventTrack[]; total: number }>({
|
|
url: '/developer/analytics/events',
|
|
method: 'GET',
|
|
params,
|
|
})
|
|
}
|
|
|
|
/** 触发自定义事件 */
|
|
export const trackEvent = (data: {
|
|
websiteId: number
|
|
event: string
|
|
properties?: Record<string, any>
|
|
}) => {
|
|
return request<void>({
|
|
url: '/developer/analytics/track',
|
|
method: 'POST',
|
|
data,
|
|
})
|
|
}
|