This commit is contained in:
aaron 2025-06-04 10:31:48 +08:00
parent bc1b5a4e8a
commit d990ec8d15
3 changed files with 96 additions and 5 deletions

View File

@ -3,7 +3,7 @@ services:
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
image: tradus-web:1.3.42 image: tradus-web:1.3.43
container_name: tradus-web container_name: tradus-web
ports: ports:
- '6000:80' - '6000:80'

View File

@ -33,9 +33,8 @@ const fetchUserInfo = async () => {
} }
const data = await response.json() const data = await response.json()
userStore.$patch((state) => { // 使 updateUserInfo
state.userInfo = data userStore.updateUserInfo(data)
})
} catch (error) { } catch (error) {
console.error('获取用户数据失败:', error) console.error('获取用户数据失败:', error)
// http // http
@ -595,6 +594,10 @@ onUnmounted(() => {
<span class="user-email-display" :title="userInfo?.mail">{{ <span class="user-email-display" :title="userInfo?.mail">{{
userInfo?.mail || '未设置邮箱' userInfo?.mail || '未设置邮箱'
}}</span> }}</span>
<div class="user-points">
<span class="points-icon">💰</span>
<span class="points-value">{{ userInfo?.points || 0 }} 积分</span>
</div>
</div> </div>
<svg <svg
class="info-icon" class="info-icon"
@ -627,6 +630,10 @@ onUnmounted(() => {
<span class="user-email-display" :title="userInfo?.mail">{{ <span class="user-email-display" :title="userInfo?.mail">{{
userInfo?.mail || '未设置邮箱' userInfo?.mail || '未设置邮箱'
}}</span> }}</span>
<div class="user-points">
<span class="points-icon">💰</span>
<span class="points-value">{{ userInfo?.points || 0 }} 积分</span>
</div>
</div> </div>
<svg <svg
class="info-icon" class="info-icon"
@ -951,6 +958,10 @@ onUnmounted(() => {
</div> </div>
<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-points-display">
<span class="points-icon">💰</span>
<span class="points-text">积分余额{{ userInfo?.points || 0 }}</span>
</div>
</div> </div>
</div> </div>

View File

@ -667,6 +667,16 @@ const stopStreaming = async () => {
</div> </div>
<h3>AI交易智能体</h3> <h3>AI交易智能体</h3>
<p>为您提供市场分析交易建议和投资策略</p> <p>为您提供市场分析交易建议和投资策略</p>
<!-- 积分消耗提示 -->
<div class="points-notice">
<div class="points-notice-icon">💰</div>
<div class="points-notice-text">
<strong>积分消耗提示</strong>每次分析消耗
<span class="points-amount">20 积分</span>
</div>
</div>
<div class="example-questions"> <div class="example-questions">
<p class="example-title">快速点击分析</p> <p class="example-title">快速点击分析</p>
<div class="example-grid"> <div class="example-grid">
@ -1138,10 +1148,46 @@ const stopStreaming = async () => {
.welcome-content p { .welcome-content p {
color: var(--color-text-secondary); color: var(--color-text-secondary);
margin-bottom: 2rem; margin-bottom: 1.5rem;
line-height: 1.6; line-height: 1.6;
} }
/* 移动端积分提示样式 */
.points-notice {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 1rem 1.25rem;
background-color: rgba(255, 193, 7, 0.1);
border: 1px solid rgba(255, 193, 7, 0.3);
border-radius: 12px;
margin-bottom: 2rem;
max-width: 100%;
box-shadow: 0 2px 8px rgba(255, 193, 7, 0.1);
}
.points-notice-icon {
font-size: 1.5rem;
flex-shrink: 0;
}
.points-notice-text {
font-size: 0.9rem;
color: var(--color-text-primary);
line-height: 1.4;
}
.points-notice-text strong {
font-weight: 600;
color: var(--color-text-primary);
}
.points-amount {
color: #f59e0b;
font-weight: 600;
font-size: 1em;
}
.example-questions { .example-questions {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -1577,6 +1623,23 @@ const stopStreaming = async () => {
font-size: 0.9rem; font-size: 0.9rem;
} }
/* 移动端积分提示样式 */
.points-notice {
padding: 0.75rem 1rem;
margin-bottom: 1.5rem;
gap: 0.5rem;
margin-left: 0.5rem;
margin-right: 0.5rem;
}
.points-notice-icon {
font-size: 1.25rem;
}
.points-notice-text {
font-size: 0.85rem;
}
.example-questions { .example-questions {
gap: 1rem; gap: 1rem;
} }
@ -1749,6 +1812,23 @@ const stopStreaming = async () => {
line-height: 1.5; line-height: 1.5;
} }
/* 小屏幕积分提示样式 */
.points-notice {
padding: 0.6rem 0.75rem;
margin-bottom: 1.25rem;
gap: 0.4rem;
margin-left: 0;
margin-right: 0;
}
.points-notice-icon {
font-size: 1.1rem;
}
.points-notice-text {
font-size: 0.8rem;
}
.example-questions { .example-questions {
gap: 0.75rem; gap: 0.75rem;
} }