mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
feat(update): 增加新版本详细信息和发布时间
- 获取并显示新版本的 Tag 和 Commit 信息 - 将 UTC 时间转换为本地时间并显示 - 在通知中添加新版本详细信息和发布时间 - 优化股票卡片样式,增加鼠标悬停效果
This commit is contained in:
parent
34dc38a95f
commit
567414a136
15
app.go
15
app.go
@ -62,6 +62,21 @@ func checkUpdate(a *App) {
|
|||||||
}
|
}
|
||||||
logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName)
|
logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName)
|
||||||
if releaseVersion.TagName != Version {
|
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)
|
go runtime.EventsEmit(a.ctx, "updateVersion", releaseVersion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,51 @@ type GitHubReleaseVersion struct {
|
|||||||
TarballUrl string `json:"tarball_url"`
|
TarballUrl string `json:"tarball_url"`
|
||||||
ZipballUrl string `json:"zipball_url"`
|
ZipballUrl string `json:"zipball_url"`
|
||||||
Body string `json:"body"`
|
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"`
|
||||||
}
|
}
|
||||||
|
@ -160,6 +160,25 @@ EventsOn("newChatStream",async (msg) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
EventsOn("updateVersion",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({
|
notify.info({
|
||||||
avatar: () =>
|
avatar: () =>
|
||||||
h(NAvatar, {
|
h(NAvatar, {
|
||||||
@ -167,10 +186,18 @@ EventsOn("updateVersion",async (msg) => {
|
|||||||
round: false,
|
round: false,
|
||||||
src: 'https://github.com/ArvinLovegood/go-stock/raw/master/build/appicon.png'
|
src: 'https://github.com/ArvinLovegood/go-stock/raw/master/build/appicon.png'
|
||||||
}),
|
}),
|
||||||
title: '发现新版本',
|
title: '发现新版本: ' + msg.tag_name,
|
||||||
content: '请前往发布页下载更新',
|
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,
|
duration: 0,
|
||||||
meta: msg.name,
|
meta: "发布时间:"+formattedDate,
|
||||||
action: () => {
|
action: () => {
|
||||||
return h(NButton, {
|
return h(NButton, {
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
@ -460,8 +487,8 @@ function getHeight() {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<n-grid :x-gap="8" :cols="3" :y-gap="8" >
|
<n-grid :x-gap="8" :cols="3" :y-gap="8" >
|
||||||
<n-gi v-for="result in sortedResults" >
|
<n-gi v-for="result in sortedResults" style="margin-left: 2px" onmouseover="this.style.border='1px solid #3498db' " onmouseout="this.style.border='0px'">
|
||||||
<n-card :data-code="result['股票代码']" :bordered="false" :title="result['股票名称']" :closable="false" @close="removeMonitor(result['股票代码'],result['股票名称'],result.key)">
|
<n-card :data-code="result['股票代码']" :bordered="false" :title="result['股票名称']" :closable="false" @close="removeMonitor(result['股票代码'],result['股票名称'],result.key)">
|
||||||
<n-grid :cols="1" :y-gap="6">
|
<n-grid :cols="1" :y-gap="6">
|
||||||
<n-gi>
|
<n-gi>
|
||||||
<n-text :type="result.type" >
|
<n-text :type="result.type" >
|
||||||
|
Loading…
x
Reference in New Issue
Block a user