update
This commit is contained in:
parent
ad919eb5ac
commit
f1dd1f41f2
@ -3,7 +3,7 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
image: tradus-web:1.4.0
|
image: tradus-web:1.4.1
|
||||||
container_name: tradus-web
|
container_name: tradus-web
|
||||||
ports:
|
ports:
|
||||||
- '6000:80'
|
- '6000:80'
|
||||||
|
|||||||
15
src/App.vue
15
src/App.vue
@ -636,7 +636,10 @@ onUnmounted(() => {
|
|||||||
userInfo?.mail || '未设置邮箱'
|
userInfo?.mail || '未设置邮箱'
|
||||||
}}</span>
|
}}</span>
|
||||||
<div class="user-member-tag" v-if="userInfo?.member_name">
|
<div class="user-member-tag" v-if="userInfo?.member_name">
|
||||||
<span class="member-tag" :class="{ 'svip-tag': userInfo?.member_name === 'SVIP' }">
|
<span
|
||||||
|
class="member-tag"
|
||||||
|
:class="{ 'svip-tag': userInfo?.member_name.includes('VIP') }"
|
||||||
|
>
|
||||||
{{ userInfo.member_name }}
|
{{ userInfo.member_name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@ -673,7 +676,10 @@ onUnmounted(() => {
|
|||||||
userInfo?.mail || '未设置邮箱'
|
userInfo?.mail || '未设置邮箱'
|
||||||
}}</span>
|
}}</span>
|
||||||
<div class="user-member-tag" v-if="userInfo?.member_name">
|
<div class="user-member-tag" v-if="userInfo?.member_name">
|
||||||
<span class="member-tag" :class="{ 'svip-tag': userInfo?.member_name === 'SVIP' }">
|
<span
|
||||||
|
class="member-tag"
|
||||||
|
:class="{ 'svip-tag': userInfo?.member_name.includes('VIP') }"
|
||||||
|
>
|
||||||
{{ userInfo.member_name }}
|
{{ userInfo.member_name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@ -1002,7 +1008,10 @@ onUnmounted(() => {
|
|||||||
<div class="user-basic-info">
|
<div class="user-basic-info">
|
||||||
<h3 class="user-display-name">{{ userInfo?.mail || '未设置邮箱' }}</h3>
|
<h3 class="user-display-name">{{ userInfo?.mail || '未设置邮箱' }}</h3>
|
||||||
<div class="user-member-info" v-if="userInfo?.member_name">
|
<div class="user-member-info" v-if="userInfo?.member_name">
|
||||||
<span class="member-tag" :class="{ 'svip-tag': userInfo?.member_name === 'SVIP' }">
|
<span
|
||||||
|
class="member-tag"
|
||||||
|
:class="{ 'svip-tag': userInfo?.member_name.includes('VIP') }"
|
||||||
|
>
|
||||||
{{ userInfo.member_name }}
|
{{ userInfo.member_name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -11,6 +11,15 @@
|
|||||||
<!-- 订阅计划 -->
|
<!-- 订阅计划 -->
|
||||||
<section class="subscription-plans">
|
<section class="subscription-plans">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<!-- VIP订阅提示 -->
|
||||||
|
<div class="subscription-tips">
|
||||||
|
<div class="tips-icon">⚠️</div>
|
||||||
|
<div class="tips-content">
|
||||||
|
<span class="tips-text"
|
||||||
|
>如果你已经是VIP,现在购买将覆盖你之前的订阅,时间不做叠加。</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="plans-grid">
|
<div class="plans-grid">
|
||||||
<!-- 普通会员计划 -->
|
<!-- 普通会员计划 -->
|
||||||
<div class="plan-card basic-plan">
|
<div class="plan-card basic-plan">
|
||||||
@ -65,7 +74,7 @@
|
|||||||
<div class="plan-card premium-plan">
|
<div class="plan-card premium-plan">
|
||||||
<div class="plan-header">
|
<div class="plan-header">
|
||||||
<div class="plan-badge">推荐</div>
|
<div class="plan-badge">推荐</div>
|
||||||
<h2 class="plan-title">VIP</h2>
|
<h2 class="plan-title">VIP会员</h2>
|
||||||
<p class="plan-description">适合个人用户和专业投资者</p>
|
<p class="plan-description">适合个人用户和专业投资者</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="plan-pricing">
|
<div class="plan-pricing">
|
||||||
@ -422,6 +431,38 @@ const confirmSubscription = async () => {
|
|||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* VIP订阅提示样式 */
|
||||||
|
.subscription-tips {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.75rem;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
background: linear-gradient(135deg, #fef3c7, #fde68a);
|
||||||
|
border: 1px solid #f59e0b;
|
||||||
|
border-radius: 12px;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
box-shadow: 0 2px 8px rgba(245, 158, 11, 0.1);
|
||||||
|
max-width: 800px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-icon {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-content {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-text {
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: #92400e;
|
||||||
|
line-height: 1.5;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
@ -911,6 +952,21 @@ const confirmSubscription = async () => {
|
|||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 移动端订阅提示样式 */
|
||||||
|
.subscription-tips {
|
||||||
|
padding: 0.875rem 1rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-icon {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-text {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
.confirm-dialog {
|
.confirm-dialog {
|
||||||
padding: 1.5rem;
|
padding: 1.5rem;
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
@ -937,5 +993,20 @@ const confirmSubscription = async () => {
|
|||||||
.price {
|
.price {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 小屏幕订阅提示样式 */
|
||||||
|
.subscription-tips {
|
||||||
|
padding: 0.75rem 0.875rem;
|
||||||
|
margin-bottom: 1.25rem;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-icon {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subscription-tips .tips-text {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user