diff --git a/tenant-platform/src/api/update.ts b/tenant-platform/src/api/update.ts index 9d7141c..b1ae6db 100644 --- a/tenant-platform/src/api/update.ts +++ b/tenant-platform/src/api/update.ts @@ -241,6 +241,15 @@ export interface UnifiedReleaseManifest { rnBundles: UnifiedRnUploadItem[] } +export interface DownloadPageHistoryItem { + versionName: string + versionCode: number + downloadUrl?: string + changeLog?: string + publishedAt: string + current: boolean +} + export interface DownloadPageAppInfo { versionName: string versionCode: number @@ -249,6 +258,7 @@ export interface DownloadPageAppInfo { storeUrl?: string storeLinks?: Record publishedAt: string + history?: DownloadPageHistoryItem[] } export interface DownloadPageInfo { diff --git a/tenant-platform/src/views/download/DownloadView.vue b/tenant-platform/src/views/download/DownloadView.vue index 55e40af..efdfbd1 100644 --- a/tenant-platform/src/views/download/DownloadView.vue +++ b/tenant-platform/src/views/download/DownloadView.vue @@ -51,6 +51,22 @@ rel="noopener" >{{ link.label }} + +
+ +
+
+
+ {{ item.versionName }} + ({{ item.versionCode }}) + {{ formatDate(item.publishedAt) }} +
+ 下载 +
+
+
当前应用无可用安装包
@@ -145,6 +161,20 @@ const otherStoreLinks = computed(() => { })) }) +const historyOpen = ref(false) + +const olderHistory = computed(() => { + const history = data.value?.android?.history + if (!history) return [] + return history.filter((item) => !item.current) +}) + +function formatDate(iso: string): string { + const d = new Date(iso) + if (Number.isNaN(d.getTime())) return '' + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}` +} + onMounted(async () => { if (!appKey) { loadError.value = '缺少应用标识' @@ -258,4 +288,51 @@ onMounted(async () => { color: #999; font-size: 14px; } + +.history { + margin-top: 16px; + border-top: 1px solid #eee; + padding-top: 12px; +} + +.history-toggle { + background: none; + border: none; + color: #409eff; + font-size: 13px; + cursor: pointer; + padding: 0; +} + +.history-list { + margin-top: 10px; + display: flex; + flex-direction: column; + gap: 10px; +} + +.history-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + font-size: 13px; +} + +.history-item-info { + display: flex; + flex-direction: column; + gap: 2px; +} + +.history-date { + color: #999; + font-size: 12px; +} + +.btn-small { + padding: 6px 14px; + font-size: 13px; + flex-shrink: 0; +} diff --git a/tenant-platform/src/views/update/VersionManagementView.vue b/tenant-platform/src/views/update/VersionManagementView.vue index 2aa4312..68f5df9 100644 --- a/tenant-platform/src/views/update/VersionManagementView.vue +++ b/tenant-platform/src/views/update/VersionManagementView.vue @@ -47,6 +47,7 @@ 上传新版本 刷新 + 复制对外下载页链接