feat: 修改mywork的实时奖励获取

This commit is contained in:
zheng020 2026-05-16 01:52:32 +08:00
parent eb051f6562
commit be5da66007
3 changed files with 45 additions and 4 deletions

View File

@ -43,7 +43,7 @@
<!-- 自定义底部导航 --> <!-- 自定义底部导航 -->
<view class="nav-bar"> <view class="nav-bar">
<button class="btn-secondary" @click="handleBack">返回</button> <button class="btn-secondary" @click="handleBack">返回</button>
<button class="btn-skip" @click="handleSkip">跳过</button> <button class="btn-skip" @click="handleSkip">确认</button>
</view> </view>
</view> </view>

View File

@ -276,6 +276,31 @@ const goToAssetDetail = (id) => {
// //
const cardTapTimers = {}; const cardTapTimers = {};
//
uni.$on('assetLiked', ({ asset_id, data }) => {
//
const index = exhibitionWorks.value.findIndex(item => item.id === asset_id);
if (index !== -1) {
//
if (data?.earnings !== undefined) {
exhibitionWorks.value[index].earnings = data.earnings;
}
}
});
//
uni.$on('assetLikeChanged', ({ asset_id, like_count, earnings }) => {
const index = exhibitionWorks.value.findIndex(item => item.id === asset_id);
if (index !== -1) {
if (like_count !== undefined) {
exhibitionWorks.value[index].like_count = like_count;
}
if (earnings !== undefined) {
exhibitionWorks.value[index].earnings = earnings;
}
}
});
// //
const handleClaimReward = async (item, _index) => { const handleClaimReward = async (item, _index) => {
console.log('领取收益:', item); console.log('领取收益:', item);
@ -310,6 +335,7 @@ const handleClaimReward = async (item, _index) => {
// //
await loadExhibitedAssets(); await loadExhibitedAssets();
await loadLikedAssets();
} catch (err) { } catch (err) {
console.error('领取收益失败:', err); console.error('领取收益失败:', err);
@ -320,20 +346,32 @@ const handleClaimReward = async (item, _index) => {
}; };
const handleExhibitionCardTap = (item, index) => { const handleExhibitionCardTap = (item, index) => {
//
if (isRewardClaimable(item.id)) {
return;
}
if (cardTapTimers[item.id]) { if (cardTapTimers[item.id]) {
// //
clearTimeout(cardTapTimers[item.id]); clearTimeout(cardTapTimers[item.id]);
delete cardTapTimers[item.id]; delete cardTapTimers[item.id];
doubleTapLike(item.id, (success) => { doubleTapLike(item.id, async (success, data) => {
if (success) { if (success) {
// //
exhibitionWorks.value[index].like_count = (exhibitionWorks.value[index].like_count || 0) + 1; exhibitionWorks.value[index].like_count = (exhibitionWorks.value[index].like_count || 0) + 1;
//
if (data?.earnings !== undefined) {
exhibitionWorks.value[index].earnings = data.earnings;
} else {
//
await loadExhibitedAssets();
}
// //
const likedItem = { const likedItem = {
id: item.id, id: item.id,
cover_url: item.cover_url, cover_url: item.cover_url,
like_count: exhibitionWorks.value[index].like_count, like_count: exhibitionWorks.value[index].like_count,
earnings: item.earnings, earnings: exhibitionWorks.value[index].earnings,
name: item.name, name: item.name,
status_text: '潜力待挖', status_text: '潜力待挖',
score: exhibitionWorks.value[index].like_count, score: exhibitionWorks.value[index].like_count,
@ -530,6 +568,7 @@ onUnmounted(() => {
clearInterval(countdownTimer); clearInterval(countdownTimer);
} }
uni.$off('userInfoUpdated'); uni.$off('userInfoUpdated');
uni.$off('assetLiked');
}); });
onShow(() => { onShow(() => {

View File

@ -76,7 +76,9 @@ export function doubleTapLike(assetId, callback) {
likeAssetApi(assetId).then(res => { likeAssetApi(assetId).then(res => {
console.log('点赞成功', res); console.log('点赞成功', res);
markLikedToday(assetId); markLikedToday(assetId);
if (callback) callback(true); // 触发全局点赞成功事件
uni.$emit('assetLiked', { asset_id: assetId, data: res.data });
if (callback) callback(true, res.data);
}).catch(err => { }).catch(err => {
console.error('点赞失败:', err); console.error('点赞失败:', err);
uni.showToast({ title: '今日已点赞', icon: 'none' }); uni.showToast({ title: '今日已点赞', icon: 'none' });