fix: user deduct point
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user