更新前端看板1
This commit is contained in:
5
frontend/src/api/modules/audit-visit.ts
Normal file
5
frontend/src/api/modules/audit-visit.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import { post } from '../request'
|
||||
|
||||
/** 记录用户访问某个业务模块(用于看板用户操作分布统计) */
|
||||
export const recordModuleVisit = (module: string, detail?: string) =>
|
||||
post('/system/audit/visit', { action: module, detail: detail || '' })
|
||||
@@ -1,6 +1,37 @@
|
||||
import axios, { type AxiosInstance, type AxiosRequestConfig } from 'axios'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
/**
|
||||
* 用户操作分布:哪些模块路径算"业务操作"(用于看板统计)
|
||||
* 请求命中这些路径时,会自动调用 record_visit 记录一次(同一模块 60 秒内去重)
|
||||
*/
|
||||
const VISIT_TRACKED_PREFIXES: Array<[string, string]> = [
|
||||
['/fine-tune', 'fine-tune'],
|
||||
['/model-eval', 'model-eval'],
|
||||
['/model-inference', 'model-inference'],
|
||||
['/data-process', 'data-process'],
|
||||
['/data-convert', 'data-convert'],
|
||||
['/model-manage', 'model-manage'],
|
||||
['/dataset-manage', 'dataset'],
|
||||
]
|
||||
|
||||
function trackVisit(url: string | undefined) {
|
||||
if (!url) return
|
||||
for (const [prefix, module] of VISIT_TRACKED_PREFIXES) {
|
||||
if (url.includes(prefix)) {
|
||||
const key = `visit:${module}`
|
||||
const last = Number(sessionStorage.getItem(key) || 0)
|
||||
if (Date.now() - last < 60000) return // 60 秒内去重
|
||||
sessionStorage.setItem(key, String(Date.now()))
|
||||
// fire-and-forget 调用后端记录接口
|
||||
import('./modules/audit-visit').then(({ recordModuleVisit }) => {
|
||||
recordModuleVisit(module, url).catch(() => { /* ignore */ })
|
||||
}).catch(() => { /* ignore */ })
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 后端统一响应格式
|
||||
* code === 0 表示成功,data 为业务数据
|
||||
@@ -60,6 +91,8 @@ service.interceptors.response.use(
|
||||
return response
|
||||
}
|
||||
if (res.code === 0) {
|
||||
// 记录业务模块访问(用于看板用户操作分布统计)
|
||||
trackVisit(response.config.url)
|
||||
return res.data
|
||||
}
|
||||
// 业务错误
|
||||
|
||||
Reference in New Issue
Block a user