Files
vtsuru.live/src/data/UpdateNote.ts

90 lines
2.9 KiB
TypeScript

import UpdateNoteContainer from "@/components/UpdateNoteContainer.vue";
import { NButton, NImage, NTag } from "naive-ui";
import { VNode } from "vue";
import { FETCH_API } from "./constants";
export const updateNotes: updateNoteType[] = [
{
ver: 2,
date: '2025.4.8',
items: [
{
type: 'new',
title: 'EventFetcher Tauri 客户端开始测试',
content: [
['比当前所有 EventFetcher 部署方法都更要简单且支持扫码登录的客户端开始测试力, 支持Windows, Linux, MacOS (后两个没测试过'],
[
'安装方式: ',
() => h(NButton, {
text: true, tag: 'a', href: 'https://www.wolai.com/carN6qvUm3FErze9Xo53ii', target: '_blank', type: 'info'
}, () => '查看介绍'),
],
[
'当前可能存在一些问题, 可以加入秋秋群 873260337 进行反馈, 有功能需求也可以提出'
],
[],
[
'源码: ',
() => h(NButton, {
text: true, tag: 'a', href: 'https://github.com/Megghy/vtsuru-fetvher-client', target: '_blank', type: 'info'
}, () => ' 客户端 Repo '),
' | ',
() => h(NButton, {
text: true, tag: 'a', href: 'https://github.com/Megghy/vtsuru.live/tree/master/src/client', target: '_blank', type: 'info'
}, () => ' UI/逻辑 '),
],
[
() => h(NImage, { src: 'https://pan.suki.club/d/vtsuru/imgur/01295402D7FBBF192FE5608179A4A7A6.png', width: 200 }),
]
]
}
],
},
{
ver: 1,
date: '2025.3.18',
items: [
{
title: '歌单',
type: 'optimize',
content: [
[
'新增一个歌单样式: 列表',
() => h(NImage, { src: 'https://pan.suki.club/d/vtsuru/imgur/QQ20250408-134631.png', width: 300, height: 200 }),
]
],
},
],
},
];
export const currentUpdateNoteVer = updateNotes.sort((a, b) => b.ver - a.ver)[0].ver;
export const currentUpdateNote = updateNotes.sort((a, b) => b.ver - a.ver)[0].items;
export const savedUpdateNoteVer = useStorage('UpdateNoteVer', 0);
export function checkUpdateNote() {
if (savedUpdateNoteVer.value < currentUpdateNoteVer) {
window.$dialog.create({
title: '更新日志',
content: () => h(UpdateNoteContainer),
negativeText: '确定',
positiveText: '下次更新前不再提示',
onPositiveClick: () => {
savedUpdateNoteVer.value = currentUpdateNoteVer;
}
});
}
}
export type updateType = 'fix' | 'new' | 'optimize' | 'other';
export type updateNoteType = {
ver: number;
date: string;
items: updateNoteItemType[];
};
export type updateNoteItemType = {
title?: string | (() => VNode);
type: updateType;
content: updateNoteItemContentType[];
};
export type updateNoteItemContentType = (() => VNode) | string | updateNoteItemContentType[];