fix: gretting page

This commit is contained in:
zzc
2026-02-03 11:17:58 +08:00
parent ad40704642
commit e664356a5f
3 changed files with 54 additions and 43 deletions

View File

@@ -397,7 +397,7 @@
<script setup>
import { ref, computed } from "vue";
import { getBavBarHeight, getDeviceInfo } from "@/utils/system";
import { generateObjectId } from "@/utils/common";
import { generateObjectId, getShareToken } from "@/utils/common";
import {
createCardTmp,
@@ -825,36 +825,46 @@ const loadMoreTemplates = () => {
getTemplateList(true);
};
onShareAppMessage(async () => {
onShareAppMessage(async (options) => {
getShareReward({ scene: "card_generate" });
if (!isLoggedIn.value) {
return {
title: "新春祝福",
path: "/pages/index/index",
};
}
// 1. 确保有 cardId (如果内容有变动,最好是新建)
const id = createCard();
if (!id) {
return {
title: "新春祝福",
path: "/pages/index/index",
};
}
if (options.from === "button") {
if (!isLoggedIn.value) {
return {
title: "新春祝福",
path: "/pages/index/index",
};
}
// 1. 确保有 cardId (如果内容有变动,最好是新建)
const id = createCard();
if (!id) {
return {
title: "新春祝福",
path: "/pages/index/index",
};
}
const deviceInfo = getDeviceInfo();
const shareTokenRes = await createShareToken({
scene: "card_generate",
targetId: id,
...deviceInfo,
});
shareOrSave(id);
return {
title: "我刚做了一张祝福卡片,送给你",
path: "/pages/detail/index?shareToken=" + shareTokenRes.shareToken,
imageUrl:
"https://file.lihailezzc.com/resource/13ec1134e6614feadeeaaa9ef21ea96e.png",
};
const deviceInfo = getDeviceInfo();
const shareTokenRes = await createShareToken({
scene: "card_generate",
targetId: id,
...deviceInfo,
});
shareOrSave(id);
return {
title: "我刚做了一张祝福卡片,送给你",
path: "/pages/detail/index?shareToken=" + shareTokenRes.shareToken,
imageUrl:
"https://file.lihailezzc.com/resource/13ec1134e6614feadeeaaa9ef21ea96e.png",
};
} else {
const shareTokenRes = await getShareToken("card_generate_index", "");
return {
title: "新春祝福",
path: `/pages/index/index?shareToken=${shareTokenRes.shareToken}`,
imageUrl:
"https://file.lihailezzc.com/resource/cfed2edbfa19250b836a87a4bbf0d5ad.png",
};
}
});
const displayedGreetings = ref([]);

View File

@@ -36,7 +36,7 @@
v-for="item in list"
:key="item.id"
class="card-item"
@tap="onDetail(item)"
@tap="onPreview(item)"
>
<view class="card-image-wrap">
<image :src="item.imageUrl" mode="aspectFill" class="card-img" />
@@ -46,9 +46,7 @@
</view>
</view>
<view class="card-info">
<view class="card-title"
>{{ item.blessingTo || "祝全家" }}福寿双全</view
>
<view class="card-title">{{ getTitle(item) }}</view>
<view class="card-date">{{ formatDate(item.updatedAt) }}</view>
<view class="card-footer">
<view class="tag" :class="getTagClass(item)">{{
@@ -163,8 +161,9 @@ const getTagText = (item) => {
};
const getTitle = (item) => {
// if (item.status === "draft") return "草稿";
return item.blessingTo + (item?.content?.content || "新春快乐");
const title =
(item?.blessingTo || "祝您") + (item?.content?.content || "新春快乐");
return title.length > 10 ? title.substring(0, 10) + "..." : title;
};
const getTagClass = (item) => {
@@ -182,9 +181,11 @@ const getTagClass = (item) => {
return tagMap[item?.title?.name || item.festival] || "tag-gold";
};
const onDetail = (item) => {
uni.navigateTo({
url: `/pages/detail/index?id=${item.id}`,
const onPreview = (item) => {
if (!item.imageUrl) return;
uni.previewImage({
urls: [item.imageUrl],
current: item.imageUrl,
});
};

View File

@@ -1,7 +1,5 @@
<template>
<view
class="wallpaper-page"
>
<view class="wallpaper-page">
<NavBar title="精美壁纸" />
<!-- Category Tabs -->
@@ -37,7 +35,7 @@
:key="index"
>
<image
:src="getThumbUrl(item.imageUrl)"
:src="getThumbUrl(item.imageUrl)"
mode="aspectFill"
class="wallpaper-img"
@tap="previewImage(index)"
@@ -122,6 +120,8 @@ onShareAppMessage(async (options) => {
return {
title: "新春祝福",
path: `/pages/index/index?shareToken=${shareTokenRes.shareToken}`,
imageUrl:
"https://file.lihailezzc.com/resource/cfed2edbfa19250b836a87a4bbf0d5ad.png",
};
}
});
@@ -131,7 +131,7 @@ onMounted(async () => {
});
const getThumbUrl = (url) => {
return `${url}?imageView2/1/w/340/h/600/q/80`;
return `${url}?imageView2/1/w/340/h/600/q/80`;
};
const fetchCategories = async () => {