fix: user deduct point

This commit is contained in:
zzc
2026-03-10 10:39:31 +08:00
parent 14d8e0b349
commit d8c5c3a919

View File

@@ -61,7 +61,16 @@
</view> </view>
<view class="action-buttons"> <view class="action-buttons">
<button class="btn secondary" @tap="saveAndUse">保存</button> <view class="points-display" v-if="isLoggedIn">
<text class="label">当前积分</text>
<text class="value">{{ userPoints }}</text>
</view>
<button class="btn secondary" @tap="saveAndUse">
<view class="btn-content">
<text>保存</text>
<text class="btn-sub">消耗 20 积分</text>
</view>
</button>
<button class="btn primary" open-type="share">分享给朋友</button> <button class="btn primary" open-type="share">分享给朋友</button>
</view> </view>
@@ -226,6 +235,7 @@ const userStore = useUserStore();
const loginPopupRef = ref(null); const loginPopupRef = ref(null);
const isLoggedIn = computed(() => !!userStore.userInfo.nickName); const isLoggedIn = computed(() => !!userStore.userInfo.nickName);
const userPoints = computed(() => userStore.userInfo.points || 0);
const systemAvatars = ref([]); const systemAvatars = ref([]);
const frames = ref([]); const frames = ref([]);
@@ -674,6 +684,7 @@ const saveAndUse = async () => {
loginPopupRef.value.open(); loginPopupRef.value.open();
return; return;
} }
const abilityRes = await abilityCheck("avatar_download"); const abilityRes = await abilityCheck("avatar_download");
if (!abilityRes.canUse) { if (!abilityRes.canUse) {
if ( if (
@@ -759,7 +770,6 @@ const completeCardInfo = async (id) => {
}; };
onShareAppMessage(async (options) => { onShareAppMessage(async (options) => {
getShareReward({ scene: "avatar_download" });
if (options.from === "button") { if (options.from === "button") {
if (!isLoggedIn.value) { if (!isLoggedIn.value) {
loginPopupRef.value.open(); loginPopupRef.value.open();
@@ -771,6 +781,7 @@ onShareAppMessage(async (options) => {
getShareToken("avatar_download", id), getShareToken("avatar_download", id),
completeCardInfo(id), completeCardInfo(id),
]); ]);
getShareReward({ scene: "avatar_download" });
uni.hideLoading(); uni.hideLoading();
return { return {
title: "3 秒生成新春专属头像,真的好看😆", title: "3 秒生成新春专属头像,真的好看😆",
@@ -781,6 +792,7 @@ onShareAppMessage(async (options) => {
}; };
} else { } else {
const shareToken = await getShareToken("avatar_download_not_login", ""); const shareToken = await getShareToken("avatar_download_not_login", "");
getShareReward({ scene: "avatar_index" });
return { return {
title: "3 秒生成新春专属头像,真的好看😆", title: "3 秒生成新春专属头像,真的好看😆",
path: `/pages/avatar/index?shareToken=${shareToken}`, path: `/pages/avatar/index?shareToken=${shareToken}`,
@@ -1025,17 +1037,56 @@ onShareTimeline(async () => {
display: flex; display: flex;
gap: 20rpx; gap: 20rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
position: relative;
.points-display {
position: absolute;
top: -60rpx;
right: 30rpx;
background: rgba(255, 255, 255, 0.9);
padding: 8rpx 20rpx;
border-radius: 30rpx;
display: flex;
align-items: center;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
.label {
font-size: 24rpx;
color: #666;
}
.value {
font-size: 28rpx;
color: #ff3b30;
font-weight: bold;
margin-left: 4rpx;
}
}
.btn { .btn {
flex: 1; flex: 1;
height: 88rpx; height: 96rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 44rpx; border-radius: 48rpx;
font-size: 30rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
.btn-content {
display: flex;
flex-direction: column;
align-items: center;
line-height: 1.2;
.btn-sub {
font-size: 20rpx;
opacity: 0.8;
font-weight: normal;
margin-top: 2rpx;
}
}
&.primary { &.primary {
background: #ff3b30; background: #ff3b30;
color: #fff; color: #fff;