From 567414a13609cdd496e162c20e13a9046ad75964 Mon Sep 17 00:00:00 2001 From: spark Date: Fri, 7 Feb 2025 10:49:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(update):=20=E5=A2=9E=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AF=A6=E7=BB=86=E4=BF=A1=E6=81=AF=E5=92=8C?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 获取并显示新版本的 Tag 和 Commit 信息 - 将 UTC 时间转换为本地时间并显示 - 在通知中添加新版本详细信息和发布时间 - 优化股票卡片样式,增加鼠标悬停效果 --- app.go | 15 ++++++++++ backend/models/models.go | 47 +++++++++++++++++++++++++++++++ frontend/src/components/stock.vue | 37 ++++++++++++++++++++---- 3 files changed, 94 insertions(+), 5 deletions(-) diff --git a/app.go b/app.go index 98af3b2..cf27bf2 100644 --- a/app.go +++ b/app.go @@ -62,6 +62,21 @@ func checkUpdate(a *App) { } logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName) if releaseVersion.TagName != Version { + tag := &models.Tag{} + _, err = resty.New().R(). + SetResult(tag). + Get("https://api.github.com/repos/ArvinLovegood/go-stock/git/ref/tags/" + releaseVersion.TagName) + if err == nil { + releaseVersion.Tag = *tag + } + commit := &models.Commit{} + _, err = resty.New().R(). + SetResult(commit). + Get(tag.Object.Url) + if err == nil { + releaseVersion.Commit = *commit + } + go runtime.EventsEmit(a.ctx, "updateVersion", releaseVersion) } } diff --git a/backend/models/models.go b/backend/models/models.go index 1681b11..1308f60 100644 --- a/backend/models/models.go +++ b/backend/models/models.go @@ -80,4 +80,51 @@ type GitHubReleaseVersion struct { TarballUrl string `json:"tarball_url"` ZipballUrl string `json:"zipball_url"` Body string `json:"body"` + Tag Tag `json:"tag"` + Commit Commit `json:"commit"` +} + +type Tag struct { + Ref string `json:"ref"` + NodeId string `json:"node_id"` + Url string `json:"url"` + Object struct { + Sha string `json:"sha"` + Type string `json:"type"` + Url string `json:"url"` + } `json:"object"` +} + +type Commit struct { + Sha string `json:"sha"` + NodeId string `json:"node_id"` + Url string `json:"url"` + HtmlUrl string `json:"html_url"` + Author struct { + Name string `json:"name"` + Email string `json:"email"` + Date time.Time `json:"date"` + } `json:"author"` + Committer struct { + Name string `json:"name"` + Email string `json:"email"` + Date time.Time `json:"date"` + } `json:"committer"` + Tree struct { + Sha string `json:"sha"` + Url string `json:"url"` + } `json:"tree"` + Message string `json:"message"` + Parents []struct { + Sha string `json:"sha"` + Url string `json:"url"` + HtmlUrl string `json:"html_url"` + } `json:"parents"` + Verification struct { + Verified bool `json:"verified"` + Reason string `json:"reason"` + Signature interface{} `json:"signature"` + Payload interface{} `json:"payload"` + VerifiedAt interface{} `json:"verified_at"` + } `json:"verification"` } diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index e06ec7c..a1c2fdd 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -160,6 +160,25 @@ EventsOn("newChatStream",async (msg) => { }) EventsOn("updateVersion",async (msg) => { + const githubTimeStr = msg.published_at; + // 创建一个 Date 对象 + const utcDate = new Date(githubTimeStr); + +// 获取本地时间 + const date = new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60 * 1000); + + const year = date.getFullYear(); +// getMonth 返回值是 0 - 11,所以要加 1 + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const seconds = String(date.getSeconds()).padStart(2, '0'); + + const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + + console.log("GitHub UTC 时间:", utcDate); + console.log("转换后的本地时间:", formattedDate); notify.info({ avatar: () => h(NAvatar, { @@ -167,10 +186,18 @@ EventsOn("updateVersion",async (msg) => { round: false, src: 'https://github.com/ArvinLovegood/go-stock/raw/master/build/appicon.png' }), - title: '发现新版本', - content: '请前往发布页下载更新', + title: '发现新版本: ' + msg.tag_name, + content: () => { + //return h(MdPreview, {theme:'dark',modelValue:msg.commit?.message}, null) + return h('div', { + style: { + 'text-align': 'left', + 'font-size': '14px', + } + }, { default: () => msg.commit?.message }) + }, duration: 0, - meta: msg.name, + meta: "发布时间:"+formattedDate, action: () => { return h(NButton, { type: 'primary', @@ -460,8 +487,8 @@ function getHeight() {