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 @@
-
+
@@ -133,6 +133,14 @@
@@ -166,7 +176,7 @@ const onPreview = (item) => {
.value-wrap {
display: flex;
align-items: baseline;
-
+
.prefix {
font-size: 16px;
color: #333;
@@ -198,7 +208,7 @@ const onPreview = (item) => {
display: flex;
align-items: center;
justify-content: center;
-
+
text {
font-size: 24px;
}
@@ -217,7 +227,7 @@ const onPreview = (item) => {
gap: 12px;
padding-bottom: 40px;
}
-
+
.grid-item {
position: relative;
border-radius: 16px;
@@ -225,13 +235,13 @@ const onPreview = (item) => {
background: #fff;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
aspect-ratio: 9/16; // Standard wallpaper ratio
-
+
.wallpaper-img {
width: 100%;
height: 100%;
display: block;
}
-
+
.date-badge {
position: absolute;
bottom: 8px;
@@ -240,7 +250,7 @@ const onPreview = (item) => {
padding: 2px 6px;
border-radius: 4px;
backdrop-filter: blur(4px);
-
+
text {
color: #fff;
font-size: 10px;
@@ -258,4 +268,4 @@ const onPreview = (item) => {
color: #999;
font-size: 12px;
}
-
\ No newline at end of file
+
diff --git a/pages/wallpaper/index.vue b/pages/wallpaper/index.vue
index d8fd6a8..d368e9d 100644
--- a/pages/wallpaper/index.vue
+++ b/pages/wallpaper/index.vue
@@ -93,7 +93,7 @@ import {
import { onShareAppMessage, onShareTimeline, onLoad } from "@dcloudio/uni-app";
import { getShareReward, abilityCheck } from "@/api/system.js";
import { useUserStore } from "@/stores/user";
-import { saveViewRequest } from "@/utils/common.js";
+import { saveViewRequest, trackRecord } from "@/utils/common.js";
import NavBar from "@/components/NavBar/NavBar.vue";
const userStore = useUserStore();
@@ -156,6 +156,10 @@ onLoad((options) => {
shareToken.value = options.shareToken;
saveViewRequest(options.shareToken, "wallpaper_download");
}
+ trackRecord({
+ eventName: "wallpaper_page_visit",
+ eventType: `visit`,
+ });
});
const getThumbUrl = (url) => {
@@ -181,6 +185,11 @@ const switchCategory = (id) => {
if (currentCategoryId.value === id) return;
currentCategoryId.value = id;
loadWallpapers(true);
+ trackRecord({
+ eventName: "wallpaper_category_click",
+ eventType: `select`,
+ elementId: id || "",
+ });
};
const loadWallpapers = async (reset = false) => {
@@ -230,14 +239,25 @@ const onRefresh = () => {
};
const previewImage = (index) => {
- const urls = wallpapers.value.map((item) => item.url);
- uni.previewImage({
- urls,
- current: index,
+ // const urls = wallpapers.value.map((item) => item.url);
+ // uni.previewImage({
+ // urls,
+ // current: index,
+ // });
+ const item = wallpapers.value[index];
+ trackRecord({
+ eventName: "wallpaper_preview_click",
+ eventType: `select`,
+ elementId: item?.id || "",
});
};
const downloadWallpaper = async (item) => {
+ trackRecord({
+ eventName: "wallpaper_download_click",
+ eventType: `click`,
+ elementId: item?.id || "",
+ });
if (!isLoggedIn.value) {
loginPopupRef.value.open();
return;
diff --git a/utils/request.js b/utils/request.js
index a515037..7d80845 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -1,6 +1,6 @@
-// const BASE_URL = "https://api.ai-meng.com";
+const BASE_URL = "https://api.ai-meng.com";
// const BASE_URL = 'http://127.0.0.1:3999'
-const BASE_URL = "http://192.168.1.3:3999";
+// const BASE_URL = "http://192.168.1.3:3999";
// const BASE_URL = "http://192.168.31.253:3999";
import { useUserStore } from "@/stores/user";
import { getPlatform } from "./system.js";