fix: user deduct point
This commit is contained in:
@@ -61,7 +61,16 @@
|
||||
</view>
|
||||
|
||||
<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>
|
||||
</view>
|
||||
|
||||
@@ -226,6 +235,7 @@ const userStore = useUserStore();
|
||||
const loginPopupRef = ref(null);
|
||||
|
||||
const isLoggedIn = computed(() => !!userStore.userInfo.nickName);
|
||||
const userPoints = computed(() => userStore.userInfo.points || 0);
|
||||
|
||||
const systemAvatars = ref([]);
|
||||
const frames = ref([]);
|
||||
@@ -674,6 +684,7 @@ const saveAndUse = async () => {
|
||||
loginPopupRef.value.open();
|
||||
return;
|
||||
}
|
||||
|
||||
const abilityRes = await abilityCheck("avatar_download");
|
||||
if (!abilityRes.canUse) {
|
||||
if (
|
||||
@@ -759,7 +770,6 @@ const completeCardInfo = async (id) => {
|
||||
};
|
||||
|
||||
onShareAppMessage(async (options) => {
|
||||
getShareReward({ scene: "avatar_download" });
|
||||
if (options.from === "button") {
|
||||
if (!isLoggedIn.value) {
|
||||
loginPopupRef.value.open();
|
||||
@@ -771,6 +781,7 @@ onShareAppMessage(async (options) => {
|
||||
getShareToken("avatar_download", id),
|
||||
completeCardInfo(id),
|
||||
]);
|
||||
getShareReward({ scene: "avatar_download" });
|
||||
uni.hideLoading();
|
||||
return {
|
||||
title: "3 秒生成新春专属头像,真的好看😆",
|
||||
@@ -781,6 +792,7 @@ onShareAppMessage(async (options) => {
|
||||
};
|
||||
} else {
|
||||
const shareToken = await getShareToken("avatar_download_not_login", "");
|
||||
getShareReward({ scene: "avatar_index" });
|
||||
return {
|
||||
title: "3 秒生成新春专属头像,真的好看😆",
|
||||
path: `/pages/avatar/index?shareToken=${shareToken}`,
|
||||
@@ -1025,17 +1037,56 @@ onShareTimeline(async () => {
|
||||
display: flex;
|
||||
gap: 20rpx;
|
||||
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 {
|
||||
flex: 1;
|
||||
height: 88rpx;
|
||||
height: 96rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 44rpx;
|
||||
border-radius: 48rpx;
|
||||
font-size: 30rpx;
|
||||
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 {
|
||||
background: #ff3b30;
|
||||
color: #fff;
|
||||
|
||||
Reference in New Issue
Block a user