feat: 优化个人中心邀请卡片

This commit is contained in:
richarjiang
2026-09-09 10:10:52 +08:00
parent 99c5c211ad
commit f4cee127ce
4 changed files with 49 additions and 13 deletions

View File

@@ -1,8 +1,21 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import type { InviteActivitySummary } from '@mp-pilates/shared'
import { get, post } from '../utils/request'
export const useInviteStore = defineStore('invite', () => {
const activity = ref<InviteActivitySummary | null>(null)
let activityRevision = 0
async function refreshActivity() {
const requestRevision = ++activityRevision
try {
const result = await get<InviteActivitySummary>('/invite/activity')
if (requestRevision === activityRevision) activity.value = result
} catch (err) {
if (requestRevision === activityRevision) activity.value = null
throw err
}
}
const code = ref('')
const eligible = ref(false)
const pendingCode = ref('')
@@ -30,11 +43,13 @@ export const useInviteStore = defineStore('invite', () => {
}
}
function reset() {
activityRevision++
activity.value = null
revision++
code.value = ''
eligible.value = false
pendingCode.value = ''
}
function price(value: number) { return eligible.value ? Math.round(value * 95 / 100) : value }
return { code, eligible, pendingCode, refresh, confirm, reset, price }
return { activity, refreshActivity, code, eligible, pendingCode, refresh, confirm, reset, price }
})