fix: avatar view
This commit is contained in:
@@ -36,3 +36,10 @@ export const avatarDownloadRecord = async (data) => {
|
|||||||
data,
|
data,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getAvatarRecommendList = async () => {
|
||||||
|
return request({
|
||||||
|
url: `/api/blessing/avatar/recommend/list`,
|
||||||
|
method: "get",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
<view class="section-header">
|
<view class="section-header">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="bar"></view>
|
<view class="bar"></view>
|
||||||
<text class="title">热门新春头像框</text>
|
<text class="title">热门新春头像</text>
|
||||||
</view>
|
</view>
|
||||||
<text class="more" @tap="goToMake">查看全部</text>
|
<text class="more" @tap="goToMake">查看全部</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -77,9 +77,15 @@
|
|||||||
@tap="goToMake"
|
@tap="goToMake"
|
||||||
>
|
>
|
||||||
<view class="frame-img-box">
|
<view class="frame-img-box">
|
||||||
<image :src="item.url" class="frame-img" mode="aspectFit" />
|
<image :src="item.imageUrl" class="frame-img" mode="aspectFit" />
|
||||||
</view>
|
</view>
|
||||||
<text class="frame-name">{{ item.name || "新春相框" }}</text>
|
<text class="frame-name">{{
|
||||||
|
item.type === "decor"
|
||||||
|
? "新春饰品"
|
||||||
|
: item.type === "avatar"
|
||||||
|
? "新春头像"
|
||||||
|
: "新春相框"
|
||||||
|
}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -133,8 +139,9 @@
|
|||||||
import { ref, onMounted } from "vue";
|
import { ref, onMounted } from "vue";
|
||||||
import { onLoad } from "@dcloudio/uni-app";
|
import { onLoad } from "@dcloudio/uni-app";
|
||||||
import { getBavBarHeight } from "@/utils/system";
|
import { getBavBarHeight } from "@/utils/system";
|
||||||
import { getAvatarFrameList } from "@/api/avatar.js";
|
|
||||||
import { getPageDetail } from "@/api/system.js";
|
import { getPageDetail } from "@/api/system.js";
|
||||||
|
import { getAvatarRecommendList } from "@/api/avatar.js";
|
||||||
|
import { saveViewRequest } from "@/utils/common.js";
|
||||||
|
|
||||||
const defaultAvatar =
|
const defaultAvatar =
|
||||||
"https://file.lihailezzc.com/resource/d9b329082b32f8305101f708593a4882.png";
|
"https://file.lihailezzc.com/resource/d9b329082b32f8305101f708593a4882.png";
|
||||||
@@ -173,6 +180,7 @@ const fetchDetail = async () => {
|
|||||||
try {
|
try {
|
||||||
// uni.showLoading({ title: "加载中..." });
|
// uni.showLoading({ title: "加载中..." });
|
||||||
const res = await getPageDetail(shareToken.value);
|
const res = await getPageDetail(shareToken.value);
|
||||||
|
saveViewRequest(shareToken.value, "avatar_download", res.id);
|
||||||
if (res) {
|
if (res) {
|
||||||
detailData.value = res;
|
detailData.value = res;
|
||||||
}
|
}
|
||||||
@@ -186,11 +194,8 @@ const fetchDetail = async () => {
|
|||||||
|
|
||||||
const fetchFrames = async () => {
|
const fetchFrames = async () => {
|
||||||
try {
|
try {
|
||||||
const res = await getAvatarFrameList(1);
|
const res = await getAvatarRecommendList();
|
||||||
if (res) {
|
frameList.value = res;
|
||||||
const list = Array.isArray(res) ? res : res.list || [];
|
|
||||||
frameList.value = list.slice(0, 3); // Take first 3
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ const initSystemAvatars = async () => {
|
|||||||
.slice(0, 3)
|
.slice(0, 3)
|
||||||
.map((item) => ({ id: item.id, imageUrl: item.imageUrl }));
|
.map((item) => ({ id: item.id, imageUrl: item.imageUrl }));
|
||||||
// 默认选中第一个
|
// 默认选中第一个
|
||||||
if (systemAvatars.value.length > 0) {
|
if (systemAvatars.value.length > 0 && !currentAvatar.value) {
|
||||||
currentAvatar.value = systemAvatars.value[0];
|
currentAvatar.value = systemAvatars.value[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -299,19 +299,11 @@ onLoad((options) => {
|
|||||||
if (options.type === "frame") {
|
if (options.type === "frame") {
|
||||||
activeTab.value = "frame";
|
activeTab.value = "frame";
|
||||||
selectedFrame.value = recommendItem;
|
selectedFrame.value = recommendItem;
|
||||||
// 如果 frames 列表中有这个 id,更新引用以保持选中状态(可选,但推荐)
|
|
||||||
const found = frames.value.find((f) => f.id === recommendItem.id);
|
|
||||||
if (found) selectedFrame.value = found;
|
|
||||||
} else if (options.type === "decor") {
|
} else if (options.type === "decor") {
|
||||||
activeTab.value = "decor";
|
activeTab.value = "decor";
|
||||||
selectedDecor.value = recommendItem;
|
selectedDecor.value = recommendItem;
|
||||||
const found = decors.value.find((d) => d.id === recommendItem.id);
|
|
||||||
if (found) selectedDecor.value = found;
|
|
||||||
} else if (options.type === "avatar") {
|
} else if (options.type === "avatar") {
|
||||||
currentAvatar.value = recommendItem;
|
currentAvatar.value = recommendItem;
|
||||||
// 检查系统头像列表
|
|
||||||
const found = systemAvatars.value.find((a) => a.id === recommendItem.id);
|
|
||||||
if (found) currentAvatar.value = found;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -679,11 +671,11 @@ onShareAppMessage(async () => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
const id = createAvatarId();
|
const id = createAvatarId();
|
||||||
// const shareTokenRes = {
|
const shareTokenRes = {
|
||||||
// shareToken: "iFmK8WjRm6TK",
|
shareToken: "iFmK8WjRm6TK",
|
||||||
// };
|
};
|
||||||
const shareTokenRes = await getShareToken("avatar_download", id);
|
// const shareTokenRes = await getShareToken("avatar_download", id);
|
||||||
completeCardInfo(id);
|
// completeCardInfo(id);
|
||||||
return {
|
return {
|
||||||
title: "制作我的新春头像",
|
title: "制作我的新春头像",
|
||||||
path: `/pages/avatar/detail?shareToken=${shareTokenRes.shareToken}`,
|
path: `/pages/avatar/detail?shareToken=${shareTokenRes.shareToken}`,
|
||||||
|
|||||||
Reference in New Issue
Block a user