import type { BackendVersion, VersionStatus } from '@/types' function isUnknownVersion(version: string | undefined): boolean { const normalized = version?.trim().toLowerCase() return !normalized || normalized === 'dev' || normalized === 'unknown' } export function getVersionStatus( frontendVersion: string, backendVersion?: BackendVersion, hasError = false ): VersionStatus { if (hasError) { return { kind: 'unavailable', label: '无法获取后端版本', description: '后端版本接口暂时不可用,当前仅展示前端版本。', } } if (!backendVersion || isUnknownVersion(frontendVersion) || isUnknownVersion(backendVersion.version)) { return { kind: 'unknown', label: '无法判断版本', description: '当前处于开发构建或版本信息不完整,不判定为版本错误。', } } if (frontendVersion === backendVersion.version) { return { kind: 'matched', label: '版本一致', description: '前端和后端来自同一版本构建。', } } return { kind: 'mismatched', label: '版本不一致', description: '前后端版本不同,该状态用于部署诊断,不影响当前功能使用。', } }