diff --git a/docker-compose.yml b/docker-compose.yml index 0bd3ecb..2e78d32 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . dockerfile: Dockerfile - image: tradus-web:1.2.2 + image: tradus-web:1.2.3 container_name: tradus-web ports: - '6000:80' diff --git a/src/App.vue b/src/App.vue index 1a870cc..dc35395 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1242,7 +1242,7 @@ body { .desktop-user-info { display: flex; flex-direction: column; - padding: 1.25rem; + padding: 0.75rem; margin-top: auto; border-top: 1px solid rgba(0, 0, 0, 0.08); background-color: var(--color-bg-secondary); @@ -1254,9 +1254,9 @@ body { .desktop-user-info .user-info-box { display: flex; align-items: center; - gap: 1rem; + gap: 0.75rem; cursor: pointer; - padding: 0.75rem; + padding: 0.5rem; border-radius: var(--border-radius); transition: all 0.3s ease; background-color: rgba(255, 255, 255, 0.05); @@ -1271,14 +1271,14 @@ body { } .desktop-user-info .user-avatar { - width: 3rem; - height: 3rem; + width: 2.5rem; + height: 2.5rem; border-radius: 50%; background: linear-gradient(135deg, var(--color-accent) 0%, rgba(51, 85, 255, 0.8) 100%); display: flex; align-items: center; justify-content: center; - font-size: 1.2rem; + font-size: 1rem; color: white; font-weight: bold; box-shadow: 0 3px 10px rgba(51, 85, 255, 0.25); @@ -1333,14 +1333,14 @@ body { /* 认证按钮样式 */ .auth-button { width: 100%; - padding: 0.75rem; + padding: 0.6rem; border: 1px solid var(--color-accent); border-radius: var(--border-radius); - font-size: 0.95rem; + font-size: 0.9rem; font-weight: 500; cursor: pointer; transition: all 0.2s ease; - margin: 0.5rem 0; + margin: 0.25rem 0; background: none; color: var(--color-accent); } @@ -1575,14 +1575,14 @@ body { display: flex; flex-direction: column; flex: 1; - padding: 0.25rem 0; + padding: 0.15rem 0; } .desktop-user-info .user-nickname { - font-size: 1.05rem; + font-size: 0.95rem; font-weight: var(--font-weight-medium); color: var(--color-text-primary); - margin-bottom: 0.3rem; + margin-bottom: 0.2rem; transition: all 0.2s ease; display: block; text-overflow: ellipsis; @@ -1592,7 +1592,7 @@ body { } .desktop-user-info .user-points { - font-size: 0.85rem; + font-size: 0.8rem; color: var(--color-text-secondary); display: flex; align-items: center; diff --git a/src/views/AStockAnalysisView.vue b/src/views/AStockAnalysisView.vue index 363f528..cd03e91 100644 --- a/src/views/AStockAnalysisView.vue +++ b/src/views/AStockAnalysisView.vue @@ -337,7 +337,7 @@ const copyAnalysis = async () => { /* 搜索区域样式 */ .search-section { width: 100%; - max-width: 600px; + max-width: 800px; transition: all 0.5s ease; } diff --git a/src/views/CryptoAnalysisView.vue b/src/views/CryptoAnalysisView.vue index 78e4ac7..9662fa0 100644 --- a/src/views/CryptoAnalysisView.vue +++ b/src/views/CryptoAnalysisView.vue @@ -7,12 +7,6 @@ interface AnalysisRequest { timeframe?: string } -interface HistoryItem { - code: string - timeframe: string - timestamp: number -} - const userStore = useUserStore() const cryptoCode = ref('') const isAnalyzing = ref(false) @@ -52,9 +46,6 @@ const handleKeydown = (event: KeyboardEvent) => { const handleAnalysis = async () => { if (!cryptoCode.value.trim() || isAnalyzing.value) return - // 添加到搜索历史 - addToHistory(cryptoCode.value.trim(), selectedTimeframe.value) - showInitialView.value = false isAnalyzing.value = true analysisContent.value = '' @@ -186,56 +177,24 @@ const copyAnalysis = async () => { } } -const HISTORY_KEY = 'crypto_search_history' -const MAX_HISTORY = 5 -const searchHistory = ref([]) +// 添加快速分析列表数据 +const commonAnalysisList = [ + { code: 'BTC', timeframe: '15m', label: 'BTC 15分钟' }, + { code: 'BTC', timeframe: '1h', label: 'BTC 1小时' }, + { code: 'BTC', timeframe: '4h', label: 'BTC 4小时' }, + { code: 'BTC', timeframe: '1d', label: 'BTC 日线' }, + { code: 'ETH', timeframe: '15m', label: 'ETH 15分钟' }, + { code: 'ETH', timeframe: '1h', label: 'ETH 1小时' }, + { code: 'ETH', timeframe: '4h', label: 'ETH 4小时' }, + { code: 'ETH', timeframe: '1d', label: 'ETH 日线' }, +] -// 加载搜索历史 -const loadSearchHistory = () => { - const history = localStorage.getItem(HISTORY_KEY) - if (history) { - searchHistory.value = JSON.parse(history) - } -} - -// 添加搜索历史 -const addToHistory = (code: string, timeframe: string) => { - const newItem = { - code: code.toUpperCase(), - timeframe, - timestamp: Date.now(), - } - const history = searchHistory.value.filter( - (item) => !(item.code === newItem.code && item.timeframe === newItem.timeframe), - ) - history.unshift(newItem) - searchHistory.value = history.slice(0, MAX_HISTORY) - localStorage.setItem(HISTORY_KEY, JSON.stringify(searchHistory.value)) -} - -// 从历史中选择 -const selectFromHistory = (item: HistoryItem) => { +// 处理快速分析项的点击 +const handleCommonAnalysis = (item: { code: string; timeframe: string }) => { cryptoCode.value = item.code selectedTimeframe.value = item.timeframe handleAnalysis() } - -// 删除历史记录 -const removeFromHistory = (item: HistoryItem) => { - searchHistory.value = searchHistory.value.filter( - (h) => !(h.code === item.code && h.timeframe === item.timeframe), - ) - localStorage.setItem(HISTORY_KEY, JSON.stringify(searchHistory.value)) -} - -// 清空历史记录 -const clearHistory = () => { - searchHistory.value = [] - localStorage.removeItem(HISTORY_KEY) -} - -// 初始化时加载历史记录 -loadSearchHistory()