From 1fd149bbd5860edf093c195841de9c17433e3063 Mon Sep 17 00:00:00 2001 From: sparkmemory Date: Sat, 11 Jan 2025 22:54:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E6=B7=BB=E5=8A=A0=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=A7=BB=E5=8A=A8=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 App.vue 中添加移动窗口功能 - 优化全屏切换逻辑 - 在 stock_data_api.go 中改进错误处理 - 移除 app.go 中的冗余日志 --- app.go | 1 - backend/data/stock_data_api.go | 2 +- frontend/src/App.vue | 39 ++++++++++++++++++++++++++-------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app.go b/app.go index 6896ed4..f9c0db5 100644 --- a/app.go +++ b/app.go @@ -147,7 +147,6 @@ func getStockInfo(follow data.FollowedStock) *data.StockInfo { stockCode := follow.StockCode stockDatas, err := data.NewStockDataApi().GetStockCodeRealTimeData(stockCode) if err != nil || len(*stockDatas) == 0 { - logger.SugaredLogger.Errorf("get stock code real time data error:%s", err.Error()) return &data.StockInfo{} } stockData := (*stockDatas)[0] diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go index d121e30..7fbe395 100644 --- a/backend/data/stock_data_api.go +++ b/backend/data/stock_data_api.go @@ -281,7 +281,7 @@ func (receiver StockDataApi) GetStockCodeRealTimeData(StockCodes ...string) (*[] Get(fmt.Sprintf(sina_stook_url, time.Now().Unix(), slice.Join(StockCodes, ","))) if err != nil { logger.SugaredLogger.Error(err.Error()) - return &[]StockInfo{}, nil + return &[]StockInfo{}, err } stockInfos := make([]StockInfo, 0) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 9c4d509..3471e8b 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -2,9 +2,9 @@ import stockInfo from './components/stock.vue' import { Quit, - WindowFullscreen, + WindowFullscreen, WindowGetPosition, WindowHide, - WindowIsFullscreen, + WindowIsFullscreen, WindowSetPosition, WindowUnfullscreen } from '../wailsjs/runtime' import {h, ref} from "vue"; @@ -14,7 +14,7 @@ import { SettingsOutline, ReorderTwoOutline, ExpandOutline, - RefreshOutline, PowerOutline, BarChartOutline, + RefreshOutline, PowerOutline, BarChartOutline, MoveOutline, } from '@vicons/ionicons5' const content = ref('数据来源于网络,仅供参考\n投资有风险,入市需谨慎') @@ -71,7 +71,15 @@ const menuOptions = ref([ }, { default: () => '隐藏到托盘区' }), key: 'hide', icon: renderIcon(ReorderTwoOutline), - + }, + { + label: ()=> h("a", { + href: 'javascript:void(0)', + style: 'cursor: move;', + onClick: toggleStartMoveWindow, + }, { default: () => '移动' }), + key: 'move', + icon: renderIcon(MoveOutline), }, { label: ()=> h("a", { @@ -87,18 +95,31 @@ function renderIcon(icon) { } function toggleFullscreen(e) { console.log(e) - WindowIsFullscreen().then((isFull) => { - isFullscreen.value = isFull - if (isFull) { + isFullscreen.value=!isFullscreen.value + if (isFullscreen.value) { WindowUnfullscreen() e.target.innerHTML = '全屏' } else { WindowFullscreen() e.target.innerHTML = '取消全屏' } - }) } - +const drag = ref(false) +const lastPos= ref({x:0,y:0}) +function toggleStartMoveWindow(e) { + drag.value=!drag.value + lastPos.value={x:e.clientX,y:e.clientY} +} +function dragstart(e) { + if (drag.value) { + let x=e.clientX-lastPos.value.x + let y=e.clientY-lastPos.value.y + WindowGetPosition().then((pos) => { + WindowSetPosition(pos.x+x,pos.y+y) + }) + } +} +window.addEventListener('mousemove', dragstart)