feat: 版本管理页面添加下载补丁包和完整包的操作按钮
- 补丁类型版本显示两个下载按钮:下载补丁包、下载完整包 - 全量版本显示一个下载按钮 - 添加相应的中英文翻译 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { Download, Edit, Trash2, Upload, Archive, ArrowDownToLine } from 'lucide-vue-next'
|
import { Download, Edit, Trash2, Upload, Archive, ArrowDownToLine, Package } from 'lucide-vue-next'
|
||||||
import type { ColumnDef } from '@tanstack/vue-table'
|
import type { ColumnDef } from '@tanstack/vue-table'
|
||||||
|
|
||||||
import { h } from 'vue'
|
import { h } from 'vue'
|
||||||
@@ -10,6 +10,7 @@ import Button from '@/components/ui/button/Button.vue'
|
|||||||
|
|
||||||
interface ColumnOptions {
|
interface ColumnOptions {
|
||||||
onDownload: (row: Version) => void
|
onDownload: (row: Version) => void
|
||||||
|
onDownloadFullPackage?: (row: Version) => void
|
||||||
onEdit: (row: Version) => void
|
onEdit: (row: Version) => void
|
||||||
onDelete: (row: Version) => void
|
onDelete: (row: Version) => void
|
||||||
onPublish?: (row: Version) => void
|
onPublish?: (row: Version) => void
|
||||||
@@ -135,8 +136,35 @@ export function getColumns(options: ColumnOptions, t: (key: string) => string):
|
|||||||
cell: ({ row }) => {
|
cell: ({ row }) => {
|
||||||
const buttons = []
|
const buttons = []
|
||||||
|
|
||||||
// 下载按钮
|
// 下载按钮逻辑
|
||||||
if (row.original.file_path) {
|
if (row.original.update_type === 'patch') {
|
||||||
|
// 补丁版本:显示下载补丁包和下载完整包两个按钮
|
||||||
|
if (row.original.file_path) {
|
||||||
|
buttons.push(
|
||||||
|
h(Button, {
|
||||||
|
variant: 'ghost',
|
||||||
|
size: 'sm',
|
||||||
|
title: t('admin.versions.actions.downloadPatch'),
|
||||||
|
onClick: () => options.onDownload(row.original),
|
||||||
|
}, () => [
|
||||||
|
h(Download, { class: 'h-4 w-4 text-orange-500' }),
|
||||||
|
]),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (row.original.full_package_path && options.onDownloadFullPackage) {
|
||||||
|
buttons.push(
|
||||||
|
h(Button, {
|
||||||
|
variant: 'ghost',
|
||||||
|
size: 'sm',
|
||||||
|
title: t('admin.versions.actions.downloadFullPackage'),
|
||||||
|
onClick: () => options.onDownloadFullPackage?.(row.original),
|
||||||
|
}, () => [
|
||||||
|
h(Package, { class: 'h-4 w-4 text-green-500' }),
|
||||||
|
]),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else if (row.original.file_path) {
|
||||||
|
// 全量版本:只显示一个下载按钮
|
||||||
buttons.push(
|
buttons.push(
|
||||||
h(Button, {
|
h(Button, {
|
||||||
variant: 'ghost',
|
variant: 'ghost',
|
||||||
@@ -158,7 +186,7 @@ export function getColumns(options: ColumnOptions, t: (key: string) => string):
|
|||||||
title: t('admin.versions.actions.downloadDelta'),
|
title: t('admin.versions.actions.downloadDelta'),
|
||||||
onClick: () => options.onDownloadDelta?.(row.original),
|
onClick: () => options.onDownloadDelta?.(row.original),
|
||||||
}, () => [
|
}, () => [
|
||||||
h(ArrowDownToLine, { class: 'h-4 w-4 text-orange-500' }),
|
h(ArrowDownToLine, { class: 'h-4 w-4 text-blue-500' }),
|
||||||
]),
|
]),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -162,6 +162,15 @@ function downloadVersion(version: Version) {
|
|||||||
window.open(downloadUrl, '_blank')
|
window.open(downloadUrl, '_blank')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function downloadFullPackage(version: Version) {
|
||||||
|
const path = version.full_package_path || version.file_path
|
||||||
|
if (!path)
|
||||||
|
return
|
||||||
|
const token = localStorage.getItem('token')
|
||||||
|
const downloadUrl = `${path}?token=${token}`
|
||||||
|
window.open(downloadUrl, '_blank')
|
||||||
|
}
|
||||||
|
|
||||||
function confirmDelete(version: Version) {
|
function confirmDelete(version: Version) {
|
||||||
deleteTarget.value = version
|
deleteTarget.value = version
|
||||||
deleteDialogOpen.value = true
|
deleteDialogOpen.value = true
|
||||||
@@ -408,6 +417,7 @@ watch([appFilter, strategyFilter, typeFilter, methodFilter, searchFilter], () =>
|
|||||||
:data="versions"
|
:data="versions"
|
||||||
:server-pagination="serverPagination"
|
:server-pagination="serverPagination"
|
||||||
:on-download="downloadVersion"
|
:on-download="downloadVersion"
|
||||||
|
:on-download-full-package="downloadFullPackage"
|
||||||
:on-edit="goToEdit"
|
:on-edit="goToEdit"
|
||||||
:on-delete="confirmDelete"
|
:on-delete="confirmDelete"
|
||||||
:on-publish="confirmPublish"
|
:on-publish="confirmPublish"
|
||||||
|
|||||||
@@ -1440,6 +1440,8 @@
|
|||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
|
"downloadPatch": "Download Patch",
|
||||||
|
"downloadFullPackage": "Download Full Package",
|
||||||
"downloadDelta": "Download Delta",
|
"downloadDelta": "Download Delta",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
|
|||||||
@@ -1418,6 +1418,8 @@
|
|||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"download": "下载",
|
"download": "下载",
|
||||||
|
"downloadPatch": "下载补丁包",
|
||||||
|
"downloadFullPackage": "下载完整包",
|
||||||
"downloadDelta": "下载增量包",
|
"downloadDelta": "下载增量包",
|
||||||
"edit": "编辑",
|
"edit": "编辑",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
|
|||||||
Reference in New Issue
Block a user