diff --git a/src/api/api-analytics.ts b/src/api/api-analytics.ts index 2fcdae9fdb7ee3b1e939b552fa631d6f7b936ace..ec72160032038bbf42bd0920972d243e5eb4c92d 100644 --- a/src/api/api-analytics.ts +++ b/src/api/api-analytics.ts @@ -2,6 +2,6 @@ import { request } from '@/shared/axios'; export function reportAnalytics(data: Record) { return request.post('/api-dsapi/query/track/openeuler', data, { - $doException: false, + $doException: true, }); } diff --git a/src/routers/index.ts b/src/routers/index.ts index 77059dbb2005f572fab0aa6bacb4ef71d5bbc7d9..5c26d576b1ad18bd32d1b71c8f65a05ee029d168 100644 --- a/src/routers/index.ts +++ b/src/routers/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; -import { useLangStore, usePrevPageUrl } from '@/stores'; +import { useLangStore } from '@/stores'; import { reportPV } from '@/shared/analytics'; export const routes: RouteRecordRaw[] = [ @@ -43,11 +43,11 @@ router.beforeEach((to, from) => { if (from.path === '/') { return; } - usePrevPageUrl().url = window.location.href; + to.meta.$referrer = window.location.href; }); router.afterEach((to, from) => { if (to.path !== from.path) { - reportPV(usePrevPageUrl().url); + reportPV(to.meta.$referrer as string); } }); diff --git a/src/shared/analytics.ts b/src/shared/analytics.ts index 91108474f92172b3208ac22e1acf6a6b9406f50a..62b553f314a2d45686db936c85e20a878c90a7fb 100644 --- a/src/shared/analytics.ts +++ b/src/shared/analytics.ts @@ -22,16 +22,16 @@ export const disableOA = () => { }; export const reportPV = ($referrer?: string) => { - oa.report(OpenEventKeys.PV, $referrer ? () => ({ $referrer }) : undefined); + oaReport(OpenEventKeys.PV, $referrer ? { $referrer } : undefined); }; export const reportPerformance = () => { - oa.report(OpenEventKeys.LCP); - oa.report(OpenEventKeys.INP); - oa.report(OpenEventKeys.PageBasePerformance); + oaReport(OpenEventKeys.LCP); + oaReport(OpenEventKeys.INP); + oaReport(OpenEventKeys.PageBasePerformance); }; -export const oaReport = async >( +export const oaReport = >( event: string, eventData?: T | ((...opt: any[]) => Promise | T), $service = 'quickissue', @@ -40,18 +40,13 @@ export const oaReport = async >( eventOptions?: any; } ) => { - let data: T | undefined; - if (eventData) { - data = - typeof eventData === 'function' - ? await (eventData as (...opt: any[]) => Promise | T)() - : eventData; - } - await oa.report( + return oa.report( event, - () => ({ + async (...opt) => ({ $service, - ...data, + ...(typeof eventData === 'function' + ? await eventData(...opt) + : eventData), }), options ); diff --git a/src/stores/index.ts b/src/stores/index.ts index e34602921d09e1d18f67d1d6d6dfc0d6edf70c58..a7aa0a79b82ac25d0f7eb0f290352db7d3fa1a44 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -30,9 +30,3 @@ export const useLabelColor = defineStore('color', { }, }, }); - -export const usePrevPageUrl = defineStore('analytics', { - state: () => ({ - url: '', - }), -});