no message

This commit is contained in:
aaron 2025-05-26 16:25:17 +08:00
parent eaefac1290
commit c8ff4ab869
3 changed files with 54 additions and 7 deletions

View File

@ -5,7 +5,7 @@ services:
build:
context: .
dockerfile: Dockerfile
image: tradus-web:1.3.24
image: tradus-web:1.3.25
container_name: tradus-web
ports:
- '6000:80'

View File

@ -24,6 +24,15 @@ const agents = [
</svg>`,
route: '/analysis/stock',
},
{
id: 'usstock-analysis',
name: '美股股票分析智能体',
description: '获取美股上市公司的深度AI智能分析报告',
icon: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>
</svg>`,
route: '/analysis/usstock',
},
]
const navigateToAgent = (route: string) => {

View File

@ -50,6 +50,8 @@ const pageTitle = computed(() => {
switch (analysisType.value) {
case 'stock':
return 'A股股票分析智能体'
case 'usstock':
return '美股股票分析智能体'
case 'crypto':
default:
return '加密货币分析智能体'
@ -60,6 +62,8 @@ const pageDescription = computed(() => {
switch (analysisType.value) {
case 'stock':
return '获取A股上市公司的深度AI智能分析'
case 'usstock':
return '获取美股上市公司的深度AI智能分析'
case 'crypto':
default:
return '获取加密货币的深度AI智能分析'
@ -70,6 +74,8 @@ const inputPlaceholder = computed(() => {
switch (analysisType.value) {
case 'stock':
return '请输入上市公司股票代码'
case 'usstock':
return '请输入美股股票代码如AAPL、TSLA等'
case 'crypto':
default:
return '请输入BTC、ETH 一次只能分析一个币种'
@ -77,7 +83,9 @@ const inputPlaceholder = computed(() => {
})
//
const isStockMode = computed(() => analysisType.value === 'stock')
const isStockMode = computed(
() => analysisType.value === 'stock' || analysisType.value === 'usstock',
)
//
const commonItemsList = computed(() => {
@ -95,6 +103,19 @@ const commonItemsList = computed(() => {
{ code: '600036', label: '招商银行' },
{ code: '603288', label: '海天味业' },
]
case 'usstock':
return [
{ code: 'AAPL', label: '苹果 (AAPL)' },
{ code: 'TSLA', label: '特斯拉 (TSLA)' },
{ code: 'NVDA', label: '英伟达 (NVDA)' },
{ code: 'GOOGL', label: '谷歌 (GOOGL)' },
{ code: 'MSFT', label: '微软 (MSFT)' },
{ code: 'AMZN', label: '亚马逊 (AMZN)' },
{ code: 'META', label: 'Meta (META)' },
{ code: 'NFLX', label: '奈飞 (NFLX)' },
{ code: 'AMD', label: 'AMD (AMD)' },
{ code: 'BABA', label: '阿里巴巴 (BABA)' },
]
case 'crypto':
default:
return [
@ -143,9 +164,12 @@ const saveAnalysisHistory = async () => {
}
//
if (isStockMode.value) {
payload.stock_code = symbolCode.value.trim()
if (analysisType.value === 'stock') {
payload.symbol = symbolCode.value.trim()
payload.type = 'astock'
} else if (analysisType.value === 'usstock') {
payload.symbol = symbolCode.value.toUpperCase().trim()
payload.type = 'usstock'
} else {
payload.symbol = symbolCode.value.toUpperCase().trim()
payload.timeframe = selectedTimeframe.value
@ -169,11 +193,17 @@ const handleAnalysis = async () => {
if (!code || isAnalyzing.value) return
//
if (isStockMode.value && !/^\d{6}$/.test(code)) {
if (analysisType.value === 'stock' && !/^\d{6}$/.test(code)) {
setErrorMessage('请输入正确的6位股票代码')
return
}
// 1-5
if (analysisType.value === 'usstock' && !/^[A-Za-z]{1,5}$/.test(code)) {
setErrorMessage('请输入正确的美股股票代码1-5位字母')
return
}
//
showInitialView.value = false
isAnalyzing.value = true
@ -184,12 +214,18 @@ const handleAnalysis = async () => {
let requestData
//
if (isStockMode.value) {
if (analysisType.value === 'stock') {
// A
requestData = {
stock_code: code,
type: 'astock',
}
} else if (analysisType.value === 'usstock') {
//
requestData = {
stock_code: code.toUpperCase(),
type: 'usstock',
}
} else {
//
requestData = {
@ -381,7 +417,9 @@ const parsedContent = computed(() => {
:placeholder="inputPlaceholder"
@keydown="handleKeydown"
:disabled="isAnalyzing"
:maxlength="isStockMode ? 6 : undefined"
:maxlength="
analysisType === 'stock' ? 6 : analysisType === 'usstock' ? 5 : undefined
"
/>
<button
v-if="symbolCode.trim() || analysisContent"