fix: 全局格式化

This commit is contained in:
Tim
2025-08-11 18:16:13 +08:00
parent 31cff70f63
commit 1c4df40f12
76 changed files with 1442 additions and 939 deletions

View File

@@ -7,38 +7,53 @@
</div>
<div class="milk-tea-description-content">
<p>回复帖子每次10exp最多3次每天</p>
<p>发布帖子每次30exp最多1次每天</p>
<p>发表情每次5exp最多3次每天</p>
<p>发布帖子每次30exp最多1次每天</p>
<p>发表情每次5exp最多3次每天</p>
</div>
</div>
<div class="milk-tea-status-container">
<div class="milk-tea-status">
<div class="status-title">🔥 已兑换奶茶人数</div>
<ProgressBar :value="info.redeemCount" :max="50" />
<div class="status-text">当前 {{ info.redeemCount }} / 50</div>
</div>
<div class="milk-tea-status">
<div class="status-title">🔥 已兑换奶茶人数</div>
<ProgressBar :value="info.redeemCount" :max="50" />
<div class="status-text">当前 {{ info.redeemCount }} / 50</div>
</div>
<div v-if="isLoadingUser" class="loading-user">
<l-hatch size="28" stroke="4" speed="3.5" color="var(--primary-color)"></l-hatch>
<div class="user-level-text">加载当前等级中...</div>
</div>
<div v-else-if="user" class="user-level">
<LevelProgress :exp="user.experience" :current-level="user.currentLevel" :next-exp="user.nextLevelExp" />
<LevelProgress
:exp="user.experience"
:current-level="user.currentLevel"
:next-exp="user.nextLevelExp"
/>
</div>
<div v-else class="user-level">
<div class="user-level-text"><i class="fas fa-user-circle"></i> 请登录查看自身等级</div>
</div>
</div>
<div v-if="user && user.currentLevel >= 1 && !info.ended" class="redeem-button" @click="openDialog">兑换</div>
<div v-else class="redeem-button disabled">兑换</div>
<div
v-if="user && user.currentLevel >= 1 && !info.ended"
class="redeem-button"
@click="openDialog"
>
兑换
</div>
<div v-else class="redeem-button disabled">兑换</div>
<BasePopup :visible="dialogVisible" @close="closeDialog">
<div class="redeem-dialog-content">
<BaseInput textarea="" rows="5" v-model="contact" placeholder="联系方式 (手机号/Email/微信/instagram/telegram等, 务必注明来源)" />
<div class="redeem-actions">
<div class="redeem-submit-button" @click="submitRedeem" :disabled="loading">提交</div>
<div class="redeem-cancel-button" @click="closeDialog">取消</div>
</div>
<div class="redeem-dialog-content">
<BaseInput
textarea=""
rows="5"
v-model="contact"
placeholder="联系方式 (手机号/Email/微信/instagram/telegram等, 务必注明来源)"
/>
<div class="redeem-actions">
<div class="redeem-submit-button" @click="submitRedeem" :disabled="loading">提交</div>
<div class="redeem-cancel-button" @click="closeDialog">取消</div>
</div>
</BasePopup>
</div>
</BasePopup>
</div>
</template>
@@ -53,7 +68,7 @@ import { getToken, fetchCurrentUser } from '../utils/auth'
export default {
name: 'MilkTeaActivityComponent',
components: { ProgressBar, LevelProgress, BaseInput, BasePopup },
data () {
data() {
return {
info: { redeemCount: 0, ended: false },
user: null,
@@ -63,26 +78,26 @@ export default {
isLoadingUser: true,
}
},
async mounted () {
async mounted() {
await this.loadInfo()
this.isLoadingUser = true
this.user = await fetchCurrentUser()
this.isLoadingUser = false
},
methods: {
async loadInfo () {
async loadInfo() {
const res = await fetch(`${API_BASE_URL}/api/activities/milk-tea`)
if (res.ok) {
this.info = await res.json()
}
},
openDialog () {
openDialog() {
this.dialogVisible = true
},
closeDialog () {
closeDialog() {
this.dialogVisible = false
},
async submitRedeem () {
async submitRedeem() {
if (!this.contact) return
this.loading = true
const token = getToken()
@@ -90,9 +105,9 @@ export default {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({ contact: this.contact })
body: JSON.stringify({ contact: this.contact }),
})
if (res.ok) {
const data = await res.json()
@@ -107,8 +122,8 @@ export default {
toast.error('兑换失败')
}
this.loading = false
}
}
},
},
}
</script>
@@ -161,7 +176,6 @@ export default {
background-color: var(--primary-color-disabled);
}
.milk-tea-status-container {
display: flex;
flex-direction: row;
@@ -228,9 +242,8 @@ export default {
color: var(--primary-color);
}
@media screen and (max-width: 768px) {
.milk-tea-status-container {
.milk-tea-status-container {
flex-direction: column;
align-items: flex-start;
gap: 10px;
@@ -240,6 +253,4 @@ export default {
min-width: 300px;
}
}
</style>