|
@@ -2,7 +2,6 @@ import { createBrowseHistory, createBrowseRecord } from '@/core/libs/requests'
|
|
|
import { useUserStore } from '@/store'
|
|
|
import { storeToRefs } from 'pinia'
|
|
|
import dayjs from 'dayjs'
|
|
|
-
|
|
|
export enum AnalysisEventType {
|
|
|
LaunchApp = 4,
|
|
|
/**
|
|
@@ -12,40 +11,38 @@ export enum AnalysisEventType {
|
|
|
/**
|
|
|
* 浏览页面
|
|
|
*/
|
|
|
- ViewPage = 3,
|
|
|
+ ViewPage = 6,
|
|
|
}
|
|
|
export const useAnalysis = (automatic: boolean, isApp = false) => {
|
|
|
const userStore = useUserStore()
|
|
|
const { userInfo, isLogined } = storeToRefs(userStore)
|
|
|
const viewDuration = ref(0)
|
|
|
- const viewStartAt = ref<Date>()
|
|
|
+ const viewStartAt = ref<Date | null>(null);
|
|
|
const option = ref<Record<string, any>>({})
|
|
|
|
|
|
- const report = async (type) => {
|
|
|
- if (!isLogined.value) return
|
|
|
- const duration = automatic
|
|
|
- ? (viewDuration.value = dayjs().diff(viewStartAt.value, 'second'))
|
|
|
- : 0
|
|
|
+ const report = async (type: AnalysisEventType, duration: number) => {
|
|
|
+ if (!isLogined.value) return;
|
|
|
|
|
|
- await createBrowseRecord({
|
|
|
- stylistId: userInfo.value.userId,
|
|
|
- bizType: type,
|
|
|
- duration,
|
|
|
- ...option.value,
|
|
|
- })
|
|
|
- viewDuration.value = 0
|
|
|
- viewStartAt.value = undefined
|
|
|
- option.value = {}
|
|
|
- }
|
|
|
+ try {
|
|
|
+ await createBrowseRecord({
|
|
|
+ stylistId: userInfo.value.userId,
|
|
|
+ bizType: type,
|
|
|
+ duration,
|
|
|
+ ...option.value,
|
|
|
+ });
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Failed to report:', error);
|
|
|
+ } finally {
|
|
|
+ option.value = {};
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
onLaunch(async () => {
|
|
|
- // if (automatic && isLogined) {
|
|
|
- // await createBrowseRecord({
|
|
|
- // stylistId: userInfo.value.userId,
|
|
|
- // bizType: AnalysisEventType.LaunchApp,
|
|
|
- // duration: 1,
|
|
|
- // })
|
|
|
- // }
|
|
|
+ if (automatic) {
|
|
|
+ if (isApp) {
|
|
|
+ await report(AnalysisEventType.LaunchApp,0)
|
|
|
+ }
|
|
|
+ }
|
|
|
})
|
|
|
onLoad(() => {
|
|
|
console.log('analysis')
|
|
@@ -60,16 +57,17 @@ export const useAnalysis = (automatic: boolean, isApp = false) => {
|
|
|
}
|
|
|
})
|
|
|
onHide(async () => {
|
|
|
- if (automatic) {
|
|
|
- if (isApp) {
|
|
|
- await report(AnalysisEventType.LaunchApp)
|
|
|
- }
|
|
|
+ if (automatic && viewStartAt.value) {
|
|
|
+ const duration = dayjs().diff(viewStartAt.value, 'second');
|
|
|
+ console.log(`本次使用时长:${duration} 秒`);
|
|
|
+ await report(AnalysisEventType.ViewPage, duration);
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
+
|
|
|
onUnload(async () => {
|
|
|
- if (automatic) {
|
|
|
- await report(AnalysisEventType.ViewPage)
|
|
|
- }
|
|
|
+ // if (automatic) {
|
|
|
+ // await report(AnalysisEventType.ViewPage)
|
|
|
+ // }
|
|
|
})
|
|
|
return { option, report }
|
|
|
}
|