feat: 重构战报弹窗与模拟器视图,优化UI与逻辑

重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
This commit is contained in:
谦君
2025-12-15 20:04:40 +08:00
parent 9b9fda0400
commit 59dd7bfd05
126 changed files with 3944 additions and 1487 deletions

57
src/utils/versionCheck.ts Normal file
View File

@@ -0,0 +1,57 @@
import pkg from '../../package.json'
export interface VersionInfo {
version: string
releaseNotes: string
downloadUrl: string
}
// 检查GitHub最新版本
export const checkLatestVersion = async (lastCheckTime: number, updateCheckTime: (time: number) => void): Promise<VersionInfo | null> => {
const now = Date.now()
const fiveMinutes = 5 * 60 * 1000 // 5分钟
// 如果距离上次检查不到5分钟跳过
if (now - lastCheckTime < fiveMinutes) {
return null
}
try {
const response = await fetch(`https://api.github.com/repos/${pkg.author.name}/${pkg.name}/releases/latest`)
if (!response.ok) {
console.error('Failed to fetch latest version:', response.status)
// 更新检查时间避免频繁请求失败的API
updateCheckTime(now)
throw new Error(`Failed to fetch version: ${response.status}`)
}
const data = await response.json()
const githubVersion = data.tag_name?.replace(/^v/, '') // 移除开头的 'v' (如 v1.2.0 -> 1.2.0)
// 更新最后检查时间
updateCheckTime(now)
// 比较版本号
if (githubVersion && githubVersion !== pkg.version) {
return {
version: githubVersion,
releaseNotes: data.body || '',
downloadUrl: `https://github.com/${pkg.author.name}/${pkg.name}/releases/latest`
}
}
return null
} catch (error) {
console.error('Error checking version:', error)
// 更新检查时间避免频繁请求失败的API
updateCheckTime(now)
throw error
}
}
// 检查是否可以进行版本检查距离上次检查是否超过5分钟
export const canCheckVersion = (lastCheckTime: number): boolean => {
const now = Date.now()
const fiveMinutes = 5 * 60 * 1000 // 5分钟
return now - lastCheckTime >= fiveMinutes
}