mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 03:15:04 +08:00
117 lines
2.8 KiB
TypeScript
117 lines
2.8 KiB
TypeScript
interface VersionInfo {
|
|
version: string
|
|
build_time: string
|
|
git_commit: string
|
|
git_branch: string
|
|
go_version: string
|
|
node_version: string
|
|
platform: string
|
|
arch: string
|
|
}
|
|
|
|
interface VersionResponse {
|
|
success: boolean
|
|
data: VersionInfo
|
|
message: string
|
|
time: string
|
|
}
|
|
|
|
export const useVersion = () => {
|
|
const versionInfo = ref<VersionInfo>({
|
|
version: '1.0.3',
|
|
build_time: '',
|
|
git_commit: 'unknown',
|
|
git_branch: 'unknown',
|
|
go_version: '',
|
|
node_version: '',
|
|
platform: '',
|
|
arch: ''
|
|
})
|
|
|
|
const loading = ref(false)
|
|
const error = ref('')
|
|
|
|
// 获取版本信息
|
|
const fetchVersionInfo = async () => {
|
|
loading.value = true
|
|
error.value = ''
|
|
|
|
try {
|
|
const response = await $fetch('/api/version') as VersionResponse
|
|
if (response.success) {
|
|
versionInfo.value = response.data
|
|
} else {
|
|
error.value = response.message || '获取版本信息失败'
|
|
}
|
|
} catch (err: any) {
|
|
error.value = err.message || '网络错误'
|
|
console.error('获取版本信息失败:', err)
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
// 获取版本字符串
|
|
const getVersionString = async () => {
|
|
try {
|
|
const response = await $fetch('/api/version/string') as any
|
|
if (response.success) {
|
|
return response.data.version
|
|
}
|
|
} catch (err) {
|
|
console.error('获取版本字符串失败:', err)
|
|
}
|
|
return versionInfo.value.version
|
|
}
|
|
|
|
// 检查更新
|
|
const checkUpdate = async () => {
|
|
try {
|
|
const response = await $fetch('/api/version/check-update') as any
|
|
if (response.success) {
|
|
return response.data
|
|
}
|
|
} catch (err) {
|
|
console.error('检查更新失败:', err)
|
|
}
|
|
return null
|
|
}
|
|
|
|
// 格式化版本信息
|
|
const formatVersionInfo = computed(() => {
|
|
const info = versionInfo.value
|
|
return {
|
|
version: info.version,
|
|
gitCommit: info.git_commit !== 'unknown' ? info.git_commit : null,
|
|
gitBranch: info.git_branch !== 'unknown' ? info.git_branch : null,
|
|
buildTime: info.build_time ? new Date(info.build_time).toLocaleString('zh-CN') : null,
|
|
platform: `${info.platform}/${info.arch}`,
|
|
goVersion: info.go_version,
|
|
nodeVersion: info.node_version
|
|
}
|
|
})
|
|
|
|
// 获取完整版本信息
|
|
const getFullVersionInfo = async () => {
|
|
try {
|
|
const response = await $fetch('/api/version/full') as any
|
|
if (response.success) {
|
|
return response.data.version_info
|
|
}
|
|
} catch (err) {
|
|
console.error('获取完整版本信息失败:', err)
|
|
}
|
|
return null
|
|
}
|
|
|
|
return {
|
|
versionInfo: readonly(versionInfo),
|
|
loading: readonly(loading),
|
|
error: readonly(error),
|
|
formatVersionInfo,
|
|
fetchVersionInfo,
|
|
getVersionString,
|
|
checkUpdate,
|
|
getFullVersionInfo
|
|
}
|
|
}
|