任务中心的代码问题
This commit is contained in:
parent
e05403b673
commit
6da73a1955
@ -387,9 +387,9 @@ async function onPaymentConfirm(paymentData) {
|
|||||||
channel: 'miniapp',
|
channel: 'miniapp',
|
||||||
count: selectedChoices.value.length,
|
count: selectedChoices.value.length,
|
||||||
slot_index: selectedChoices.value.map(c => Number(c.id || c.number)),
|
slot_index: selectedChoices.value.map(c => Number(c.id || c.number)),
|
||||||
coupon_id: paymentData.coupon_id || 0,
|
coupon_id: paymentData.coupon?.id ? Number(paymentData.coupon.id) : 0,
|
||||||
item_card_id: paymentData.item_card_id || 0,
|
item_card_id: paymentData.card?.id ? Number(paymentData.card.id) : 0,
|
||||||
use_game_pass: paymentData.use_game_pass || false
|
use_game_pass: paymentData.useGamePass || false
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('[Yifanshang] Calling join with:', joinData)
|
console.log('[Yifanshang] Calling join with:', joinData)
|
||||||
|
|||||||
@ -136,7 +136,7 @@ const isRefreshing = ref(false)
|
|||||||
const expandedTasks = reactive({})
|
const expandedTasks = reactive({})
|
||||||
const claiming = reactive({})
|
const claiming = reactive({})
|
||||||
|
|
||||||
// 用户进度 (汇总)
|
// 用户进度 (汇总 - 用于顶部统计卡片显示)
|
||||||
const userProgress = reactive({
|
const userProgress = reactive({
|
||||||
orderCount: 0,
|
orderCount: 0,
|
||||||
orderAmount: 0,
|
orderAmount: 0,
|
||||||
@ -145,6 +145,9 @@ const userProgress = reactive({
|
|||||||
claimedTiers: {} // { taskId: [tierId1, tierId2] }
|
claimedTiers: {} // { taskId: [tierId1, tierId2] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// BUG修复:每个任务独立存储进度数据
|
||||||
|
const taskProgress = reactive({}) // { taskId: { orderCount, orderAmount, inviteCount, firstOrder } }
|
||||||
|
|
||||||
// 获取用户ID
|
// 获取用户ID
|
||||||
function getUserId() {
|
function getUserId() {
|
||||||
return uni.getStorageSync('user_id')
|
return uni.getStorageSync('user_id')
|
||||||
@ -294,21 +297,24 @@ function isTierClaimed(taskId, tierId) {
|
|||||||
return claimed.includes(tierId)
|
return claimed.includes(tierId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否可领取
|
// 是否可领取 - BUG修复:使用任务独立的进度数据
|
||||||
function isTierClaimable(task, tier) {
|
function isTierClaimable(task, tier) {
|
||||||
const metric = tier.metric || ''
|
const metric = tier.metric || ''
|
||||||
const threshold = tier.threshold || 0
|
const threshold = tier.threshold || 0
|
||||||
const operator = tier.operator || '>='
|
const operator = tier.operator || '>='
|
||||||
|
|
||||||
|
// 获取该任务独立的进度数据
|
||||||
|
const progress = taskProgress[task.id] || {}
|
||||||
|
|
||||||
let current = 0
|
let current = 0
|
||||||
if (metric === 'first_order') {
|
if (metric === 'first_order') {
|
||||||
return userProgress.firstOrder
|
return progress.firstOrder || false
|
||||||
} else if (metric === 'order_count') {
|
} else if (metric === 'order_count') {
|
||||||
current = userProgress.orderCount || 0
|
current = progress.orderCount || 0
|
||||||
} else if (metric === 'order_amount') {
|
} else if (metric === 'order_amount') {
|
||||||
current = userProgress.orderAmount || 0
|
current = progress.orderAmount || 0
|
||||||
} else if (metric === 'invite_count') {
|
} else if (metric === 'invite_count') {
|
||||||
current = userProgress.inviteCount || 0
|
current = progress.inviteCount || 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operator === '>=') return current >= threshold
|
if (operator === '>=') return current >= threshold
|
||||||
@ -317,21 +323,24 @@ function isTierClaimable(task, tier) {
|
|||||||
return current >= threshold
|
return current >= threshold
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取进度文字
|
// 获取进度文字 - BUG修复:使用任务独立的进度数据
|
||||||
function getTierProgressText(task, tier) {
|
function getTierProgressText(task, tier) {
|
||||||
const metric = tier.metric || ''
|
const metric = tier.metric || ''
|
||||||
const threshold = tier.threshold || 0
|
const threshold = tier.threshold || 0
|
||||||
|
|
||||||
|
// 获取该任务独立的进度数据
|
||||||
|
const progress = taskProgress[task.id] || {}
|
||||||
|
|
||||||
let current = 0
|
let current = 0
|
||||||
if (metric === 'first_order') {
|
if (metric === 'first_order') {
|
||||||
return userProgress.firstOrder ? '已完成' : '未完成'
|
return progress.firstOrder ? '已完成' : '未完成'
|
||||||
} else if (metric === 'order_count') {
|
} else if (metric === 'order_count') {
|
||||||
current = userProgress.orderCount || 0
|
current = progress.orderCount || 0
|
||||||
} else if (metric === 'order_amount') {
|
} else if (metric === 'order_amount') {
|
||||||
current = userProgress.orderAmount || 0
|
current = progress.orderAmount || 0
|
||||||
return `¥${current / 100}/¥${threshold / 100}`
|
return `¥${current / 100}/¥${threshold / 100}`
|
||||||
} else if (metric === 'invite_count') {
|
} else if (metric === 'invite_count') {
|
||||||
current = userProgress.inviteCount || 0
|
current = progress.inviteCount || 0
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${current}/${threshold}`
|
return `${current}/${threshold}`
|
||||||
@ -412,7 +421,15 @@ async function fetchData() {
|
|||||||
const p = result.value
|
const p = result.value
|
||||||
const taskId = list[index].id
|
const taskId = list[index].id
|
||||||
|
|
||||||
// 聚合进度指标 (取各任务返回的最大值)
|
// BUG修复:每个任务独立存储进度数据
|
||||||
|
taskProgress[taskId] = {
|
||||||
|
orderCount: p.order_count || 0,
|
||||||
|
orderAmount: p.order_amount || 0,
|
||||||
|
inviteCount: p.invite_count || 0,
|
||||||
|
firstOrder: p.first_order || false
|
||||||
|
}
|
||||||
|
|
||||||
|
// 聚合进度指标 (取各任务返回的最大值 - 仅用于顶部统计卡片显示)
|
||||||
userProgress.orderCount = Math.max(userProgress.orderCount, p.order_count || 0)
|
userProgress.orderCount = Math.max(userProgress.orderCount, p.order_count || 0)
|
||||||
userProgress.orderAmount = Math.max(userProgress.orderAmount, p.order_amount || 0)
|
userProgress.orderAmount = Math.max(userProgress.orderAmount, p.order_amount || 0)
|
||||||
userProgress.inviteCount = Math.max(userProgress.inviteCount, p.invite_count || 0)
|
userProgress.inviteCount = Math.max(userProgress.inviteCount, p.invite_count || 0)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user