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