feat(points): 增加双边积分与虚拟积分商城

This commit is contained in:
yml2213
2026-11-04 19:21:02 +08:00
parent c00d691301
commit d5abe67f60
42 changed files with 2593 additions and 316 deletions
@@ -684,6 +684,39 @@
background: linear-gradient(135deg, #faf8ff 0%, #ffffff 72%);
}
.mobile-points-entry {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin: 10px 12px;
padding: 14px 16px;
border: 1px solid #ddd6fe;
border-radius: 14px;
background: #faf8ff;
}
.mobile-points-entry div {
display: grid;
gap: 3px;
}
.mobile-points-entry span {
color: #7c3aed;
font-size: 10px;
font-weight: 900;
}
.mobile-points-entry strong {
color: #312e81;
font-size: 15px;
}
.mobile-points-entry small {
color: #6b7280;
font-size: 10px;
}
.quality-owner-card.is-active {
border-color: #c4b5fd;
}
@@ -525,7 +525,7 @@ function resolveAvatarURL(url: string | undefined | null) {
<strong>{{ session.renterGrowthLevelName }}</strong>
</div>
<div>
<span>当前积分</span>
<span>累计积分</span>
<strong>{{ session.renterGrowthPoints }}</strong>
</div>
</section>
@@ -605,6 +605,15 @@ function resolveAvatarURL(url: string | undefined | null) {
</p>
</section>
<section class="mobile-points-entry" @click="router.push('/m/points-mall')">
<div>
<span>积分商城</span>
<strong>{{ session.pointsAvailable }} 可用积分</strong>
<small>{{ session.renterGrowthLevelName }}等级</small>
</div>
<van-icon name="arrow" />
</section>
<!-- 余额卡片 - 银行卡质感暗色卡片 -->
<div class="balance-card">
<div class="balance-row">
@@ -420,7 +420,7 @@ async function savePassword() {
<dd class="growth-level">{{ session.renterGrowthLevelName }}</dd>
</div>
<div>
<dt>成长积分</dt>
<dt>累计积分</dt>
<dd>{{ session.renterGrowthPoints }}</dd>
</div>
</dl>
@@ -514,6 +514,17 @@ async function savePassword() {
</div>
</section>
<section class="points-entry-card">
<div>
<span>POINTS MALL</span>
<strong>积分商城</strong>
<p>
可用 {{ session.pointsAvailable }} 积分 · 当前等级 {{ session.renterGrowthLevelName }}
</p>
</div>
<el-button type="primary" @click="router.push('/points-mall')">进入积分商城</el-button>
</section>
<PayWaySelectDialog v-model="qualityOwnerPayWayVisible" @choose="chooseQualityOwnerPayWay" />
<el-dialog
@@ -1023,6 +1034,45 @@ async function savePassword() {
box-shadow: 0 10px 28px rgba(76, 29, 149, 0.06);
}
.points-entry-card {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
margin-top: 18px;
padding: 20px 24px;
border: 1px solid #ddd6fe;
border-radius: 14px;
background: linear-gradient(135deg, #faf8ff 0%, #fff 72%);
}
.points-entry-card div {
display: grid;
gap: 4px;
}
.points-entry-card span {
color: #7c3aed;
font-size: 10px;
font-weight: 900;
}
.points-entry-card strong {
color: #312e81;
font-size: 19px;
}
.points-entry-card p {
margin: 0;
color: #6b7280;
font-size: 12px;
}
.points-entry-card :deep(.el-button--primary) {
border: none;
background: #7c3aed;
}
.quality-owner-card.is-active {
border-color: #c4b5fd;
}