From 313435d13fd23f1b31110be737d48f7e659246c4 Mon Sep 17 00:00:00 2001 From: zzc <1761997216@qq.com> Date: Thu, 12 Feb 2026 17:22:47 +0800 Subject: [PATCH] feat: maidian --- pages.json | 2 +- pages/avatar/index.vue | 30 +++++++++++++++++++++++++++++- pages/fortune/index.vue | 8 +++++--- pages/fortune/record.vue | 6 ++++++ pages/index/index.vue | 22 ++++++++++++++++++++-- pages/make/index.vue | 10 +++++++--- pages/mine/avatar.vue | 8 +++++++- pages/mine/greeting.vue | 6 +++++- pages/mine/help.vue | 12 ++++++++++-- pages/mine/mine.vue | 6 +++++- pages/mine/wallpaper.vue | 30 ++++++++++++++++++++---------- pages/wallpaper/index.vue | 30 +++++++++++++++++++++++++----- utils/request.js | 4 ++-- 13 files changed, 142 insertions(+), 32 deletions(-) diff --git a/pages.json b/pages.json index 1abbee7..6cd40d0 100644 --- a/pages.json +++ b/pages.json @@ -12,7 +12,7 @@ { "path": "pages/make/index", "style": { - "navigationBarTitleText": "讨论", + "navigationBarTitleText": "制作祝福卡", "enablePullDownRefresh": true, "navigationStyle": "custom" } diff --git a/pages/avatar/index.vue b/pages/avatar/index.vue index 2299558..093c13a 100644 --- a/pages/avatar/index.vue +++ b/pages/avatar/index.vue @@ -99,7 +99,7 @@ :key="item.id" class="grid-item" :class="{ active: currentAvatar?.id === item.id }" - @tap="currentAvatar = item" + @tap="toggleAvatar(item)" > @@ -377,6 +377,10 @@ onLoad((options) => { shareToken.value = options.shareToken; saveViewRequest("avatar_download", options.shareToken); } + trackRecord({ + eventName: "avatar_page_visit", + eventType: `visit`, + }); }); onReachBottom(() => { @@ -387,13 +391,32 @@ onReachBottom(() => { } else if (activeTool.value === "decor") { loadDecors(); } + trackRecord({ + eventName: "avatar_load_more", + eventType: `load_more`, + elementId: activeTool.value, + }); }); const goBack = () => { uni.navigateBack(); }; +const toggleAvatar = (avatar) => { + currentAvatar.value = avatar; + trackRecord({ + eventName: "avatar_click", + eventType: `select`, + elementId: avatar?.id || "", + }); +}; + const toggleFrame = (frame) => { + trackRecord({ + eventName: "avatar_frame_click", + eventType: `select`, + elementId: frame?.id || "", + }); if (selectedFrame.value === frame) { selectedFrame.value = null; } else { @@ -402,6 +425,11 @@ const toggleFrame = (frame) => { }; const toggleDecor = (decor) => { + trackRecord({ + eventName: "avatar_decor_click", + eventType: `select`, + elementId: decor?.id || "", + }); if (selectedDecor.value === decor) { selectedDecor.value = null; } else { diff --git a/pages/fortune/index.vue b/pages/fortune/index.vue index 80fa8f3..28db860 100644 --- a/pages/fortune/index.vue +++ b/pages/fortune/index.vue @@ -135,6 +135,7 @@ import { saveRemoteImageToLocal, saveRecordRequest, saveViewRequest, + trackRecord, } from "@/utils/common.js"; import NavBar from "@/components/NavBar/NavBar.vue"; @@ -166,6 +167,10 @@ onLoad((options) => { shareToken.value = options.shareToken; saveViewRequest(options.shareToken, "fortune_draw"); } + trackRecord({ + eventName: "fortune_page_visit", + eventType: `visit`, + }); }); onShow(() => { @@ -198,9 +203,6 @@ onShareTimeline(async () => { }); const handleLogind = async () => { - if (shareToken.value) { - console.log(11111111, shareToken.value); - } checkDrawStatus(); }; diff --git a/pages/fortune/record.vue b/pages/fortune/record.vue index b4fdaca..ef332ef 100644 --- a/pages/fortune/record.vue +++ b/pages/fortune/record.vue @@ -89,6 +89,8 @@ import { onLoad } from "@dcloudio/uni-app"; import { getList } from "@/api/fortune.js"; import NavBar from "@/components/NavBar/NavBar.vue"; import { formatDate } from "@/utils/date.js"; +import { trackRecord } from "@/utils/common.js"; + // 状态管理 const records = ref([]); const page = ref(1); @@ -160,6 +162,10 @@ const loadData = async () => { const loadMore = () => { loadData(); + trackRecord({ + eventName: "fortune_record_page_visit", + eventType: `visit`, + }); }; const goDetail = (item) => { diff --git a/pages/index/index.vue b/pages/index/index.vue index 81cd05c..16fa21f 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -138,7 +138,7 @@ import { } from "@dcloudio/uni-app"; import { getBavBarHeight } from "@/utils/system"; import { getRecommendList, getRandomGreeting, getTipsList } from "@/api/system"; -import { getShareToken, saveViewRequest } from "@/utils/common.js"; +import { getShareToken, saveViewRequest, trackRecord } from "@/utils/common.js"; const countdownText = ref(""); const recommendList = ref([]); @@ -194,7 +194,10 @@ onLoad((options) => { // updateCountdown(); getRandomGreetingText(); fetchRecommendList(); - + trackRecord({ + eventName: "index_page_visit", + eventType: `visit`, + }); // Daily Inspiration Logic // const startOfYear = new Date(date.getFullYear(), 0, 0); // const diff = date - startOfYear; @@ -237,6 +240,11 @@ const getRandomGreetingText = async () => { }; const useGreeting = () => { + trackRecord({ + eventName: "index_goto_make", + eventType: "jump", + elementId: dailyGreeting.value, + }); uni.setStorageSync("TEMP_BLESSING_TEXT", dailyGreeting.value); uni.switchTab({ url: "/pages/make/index", @@ -345,6 +353,11 @@ const getCtaText = (type) => { const onCardClick = (card) => { // 构造传递的数据 + trackRecord({ + eventName: "index_recommend_click", + eventType: `jump_${card.type}`, + elementId: card?.recommendId || "", + }); const query = `recommendId=${card.recommendId || ""}&type=${card.type || ""}&imageUrl=${encodeURIComponent(card.imageUrl || "")}`; if ( @@ -377,6 +390,11 @@ const onCardClick = (card) => { }; const onFeatureTap = (item) => { + trackRecord({ + eventName: "index_function_select", + eventType: "jump", + elementId: item.type, + }); if (item.type === "fortune") { uni.navigateTo({ url: "/pages/fortune/index" }); return; diff --git a/pages/make/index.vue b/pages/make/index.vue index 37d3b14..afa6930 100644 --- a/pages/make/index.vue +++ b/pages/make/index.vue @@ -62,7 +62,7 @@ @touchmove.stop="handleBubbleTouchMove" @touchend.stop="handleBubbleTouchEnd" :style="{ - marginTop: 230 + bubbleOffsetY + 'rpx', + marginTop: 140 + bubbleOffsetY + 'rpx', maxWidth: bubbleMaxWidth + 80 + 'rpx', }" > @@ -767,8 +767,8 @@ const handleTitleTouchMove = (e) => { } }; -const targetName = ref("祝您"); -const oldTargetName = ref("祝您"); +const targetName = ref(""); +const oldTargetName = ref(""); const signatureName = ref(userStore?.userInfo?.nickName || "xxx"); const oldSignatureName = ref(userStore?.userInfo?.nickName || "xxx"); @@ -898,6 +898,10 @@ onLoad((options) => { if (options.shareToken) { shareToken.value = options.shareToken; } + trackRecord({ + eventName: "make_page_visit", + eventType: `visit`, + }); }); const syncUserInfo = () => { diff --git a/pages/mine/avatar.vue b/pages/mine/avatar.vue index 8bcb881..731cb7f 100644 --- a/pages/mine/avatar.vue +++ b/pages/mine/avatar.vue @@ -20,7 +20,7 @@ /> - 当前正在使用 + 头像效果预览 {{ currentAvatar.decorName || "金马贺岁挂饰" }} @@ -93,6 +93,7 @@ import { onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app"; import { getMyAvatar, userAvatarChange } from "@/api/mine.js"; import { useUserStore } from "@/stores/user"; import NavBar from "@/components/NavBar/NavBar.vue"; +import { trackRecord } from "@/utils/common.js"; const userStore = useUserStore(); const list = ref([]); @@ -115,6 +116,10 @@ const names = [ onMounted(() => { fetchList(true); + trackRecord({ + eventName: "avatar_record_page_visit", + eventType: `visit`, + }); }); onPullDownRefresh(() => { @@ -174,6 +179,7 @@ const changeUserAvatar = async (imageUrl) => { title: "头像更换成功", icon: "success", }); + // userStore.fetchUserInfo(); } }; diff --git a/pages/mine/greeting.vue b/pages/mine/greeting.vue index 4f7801e..c82bd97 100644 --- a/pages/mine/greeting.vue +++ b/pages/mine/greeting.vue @@ -102,7 +102,7 @@ import { } from "@dcloudio/uni-app"; import { getMyCard } from "@/api/mine.js"; import NavBar from "@/components/NavBar/NavBar.vue"; -import { getShareToken } from "@/utils/common.js"; +import { getShareToken, trackRecord } from "@/utils/common.js"; const list = ref([]); const page = ref(1); @@ -112,6 +112,10 @@ const totalCount = ref(0); onMounted(() => { fetchList(true); + trackRecord({ + eventName: "greeting_page_visit", + eventType: `visit`, + }); }); onPullDownRefresh(() => { diff --git a/pages/mine/help.vue b/pages/mine/help.vue index 596ec3f..d66b0d0 100644 --- a/pages/mine/help.vue +++ b/pages/mine/help.vue @@ -1,5 +1,5 @@