update
This commit is contained in:
parent
917d07fec2
commit
206957a260
@ -5,7 +5,7 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: tradus-web:1.3.28
|
||||
image: tradus-web:1.3.29
|
||||
container_name: tradus-web
|
||||
ports:
|
||||
- '6000:80'
|
||||
|
||||
@ -513,7 +513,7 @@ onUnmounted(() => {
|
||||
</svg>
|
||||
<span class="agent-name">首页</span>
|
||||
</RouterLink>
|
||||
<RouterLink to="/ai-agents" class="agent-item" @click="showMobileMenu = false">
|
||||
<!-- <RouterLink to="/ai-agents" class="agent-item" @click="showMobileMenu = false">
|
||||
<svg
|
||||
class="agent-icon"
|
||||
viewBox="0 0 24 24"
|
||||
@ -551,7 +551,7 @@ onUnmounted(() => {
|
||||
<polyline points="10 9 9 9 8 9"></polyline>
|
||||
</svg>
|
||||
<span class="agent-name">分析历史</span>
|
||||
</RouterLink>
|
||||
</RouterLink> -->
|
||||
<RouterLink
|
||||
to="/ai-agent"
|
||||
class="agent-item"
|
||||
|
||||
@ -254,6 +254,12 @@ const formatTime = (date: Date) => {
|
||||
minute: '2-digit',
|
||||
})
|
||||
}
|
||||
|
||||
// 发送示例消息
|
||||
const sendExampleMessage = async (message: string) => {
|
||||
messageInput.value = message
|
||||
await sendMessage()
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -264,32 +270,51 @@ const formatTime = (date: Date) => {
|
||||
<!-- 欢迎消息 -->
|
||||
<div v-if="messages.length === 0" class="welcome-message">
|
||||
<div class="welcome-content">
|
||||
<div class="welcome-icon">🤖</div>
|
||||
<div class="welcome-icon">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor" width="48" height="48">
|
||||
<path
|
||||
d="M12,2A2,2 0 0,1 14,4C14,4.74 13.6,5.39 13,5.73V7H14A7,7 0 0,1 21,14H22A1,1 0 0,1 23,15V18A1,1 0 0,1 22,19H21V20A2,2 0 0,1 19,22H5A2,2 0 0,1 3,20V19H2A1,1 0 0,1 1,18V15A1,1 0 0,1 2,14H3A7,7 0 0,1 10,7H11V5.73C10.4,5.39 10,4.74 10,4A2,2 0 0,1 12,2M7.5,13A2.5,2.5 0 0,0 5,15.5A2.5,2.5 0 0,0 7.5,18A2.5,2.5 0 0,0 10,15.5A2.5,2.5 0 0,0 7.5,13M16.5,13A2.5,2.5 0 0,0 14,15.5A2.5,2.5 0 0,0 16.5,18A2.5,2.5 0 0,0 19,15.5A2.5,2.5 0 0,0 16.5,13Z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3>欢迎使用AI 交易智能体</h3>
|
||||
<p>您可以向我提问任何问题,我会尽力为您提供帮助</p>
|
||||
<p>可以为您提供市场分析、交易建议和投资策略</p>
|
||||
<div class="example-questions">
|
||||
<p class="example-title">试试这些问题:</p>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="messageInput = '分析一下:BTC'"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
分析一下:BTC
|
||||
</button>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="messageInput = '分析一下:贵州茅台'"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
分析一下:贵州茅台
|
||||
</button>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="messageInput = '分析一下:ETH'"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
分析一下:ETH
|
||||
</button>
|
||||
<p class="example-title">快速尝试:</p>
|
||||
<div class="example-grid">
|
||||
<button
|
||||
class="example-question"
|
||||
@click="sendExampleMessage('分析BTC行情')"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
<span class="example-icon">₿</span>
|
||||
<span>分析BTC行情</span>
|
||||
</button>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="sendExampleMessage('分析ETH行情')"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
<span class="example-icon">Ξ</span>
|
||||
<span>分析ETH行情</span>
|
||||
</button>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="sendExampleMessage('分析贵州茅台股票')"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
<span class="example-icon">📈</span>
|
||||
<span>分析贵州茅台股票</span>
|
||||
</button>
|
||||
<button
|
||||
class="example-question"
|
||||
@click="sendExampleMessage('分析中国平安股票')"
|
||||
:disabled="isLoading"
|
||||
>
|
||||
<span class="example-icon">🏦</span>
|
||||
<span>分析中国平安股票</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -343,6 +368,7 @@ const formatTime = (date: Date) => {
|
||||
</div>
|
||||
<div class="message-actions">
|
||||
<button
|
||||
v-if="!message.isStreaming"
|
||||
class="action-btn copy-btn"
|
||||
@click="copyMessage(message.content)"
|
||||
:disabled="!message.content"
|
||||
@ -437,7 +463,8 @@ const formatTime = (date: Date) => {
|
||||
|
||||
.welcome-icon {
|
||||
font-size: 3rem;
|
||||
margin-bottom: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
color: var(--color-accent);
|
||||
}
|
||||
|
||||
.welcome-content h3 {
|
||||
@ -466,28 +493,49 @@ const formatTime = (date: Date) => {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.example-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 0.75rem;
|
||||
width: 100%;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.example-question {
|
||||
padding: 0.75rem 1.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 1rem 1.5rem;
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--border-radius);
|
||||
border-radius: 12px;
|
||||
background: var(--color-bg-secondary);
|
||||
color: var(--color-text-primary);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
font-size: 0.9rem;
|
||||
max-width: 300px;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
min-height: 60px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.example-question:hover:not(:disabled) {
|
||||
border-color: var(--color-accent);
|
||||
background: var(--color-accent);
|
||||
color: white;
|
||||
background: var(--color-bg-primary);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.example-question:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.example-icon {
|
||||
font-size: 1.2rem;
|
||||
flex-shrink: 0;
|
||||
width: 24px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.message-wrapper {
|
||||
@ -589,18 +637,22 @@ const formatTime = (date: Date) => {
|
||||
|
||||
.message-body {
|
||||
background-color: var(--color-bg-secondary);
|
||||
border-radius: var(--border-radius);
|
||||
padding: 1rem;
|
||||
border-radius: 18px;
|
||||
padding: 1rem 1.25rem;
|
||||
position: relative;
|
||||
width: fit-content;
|
||||
min-width: 100px;
|
||||
max-width: 600px;
|
||||
word-wrap: break-word;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.user-message .message-body {
|
||||
background-color: var(--color-accent);
|
||||
background: linear-gradient(135deg, var(--color-accent), #667eea);
|
||||
color: white;
|
||||
border: none;
|
||||
box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2);
|
||||
}
|
||||
|
||||
.message-text {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user