diff --git a/apps/vue/src/api/oss-management/model/ossModel.ts b/apps/vue/src/api/oss-management/model/ossModel.ts index ac9c7b601..c55cfb610 100644 --- a/apps/vue/src/api/oss-management/model/ossModel.ts +++ b/apps/vue/src/api/oss-management/model/ossModel.ts @@ -57,6 +57,12 @@ export interface OssCopyOrMove { toName?: string; } +export interface OssObjectBulkDelete { + bucket: string; + path?: string; + objects: string[]; +} + export interface FileShareInput { name: string; path?: string; diff --git a/apps/vue/src/api/oss-management/oss.ts b/apps/vue/src/api/oss-management/oss.ts index 60fa3709e..d416339c4 100644 --- a/apps/vue/src/api/oss-management/oss.ts +++ b/apps/vue/src/api/oss-management/oss.ts @@ -2,6 +2,7 @@ import { defAbpHttp } from '/@/utils/http/abp'; import { OssObject, OssObjectCreate, + OssObjectBulkDelete, OssContainer, GetOssObjectRequest, GetOssObjectPagedRequest, @@ -17,6 +18,7 @@ import { UploadFileParams } from '/#/axios'; enum Api { CreateObject = '/api/oss-management/objects', DeleteObject = '/api/oss-management/objects', + BulkDeleteObject = '/api/oss-management/objects/bulk-delete', GetObject = '/api/oss-management/objects', GetObjects = '/api/oss-management/containes/objects', CreateContainer = '/api/oss-management/containes/{name}', @@ -179,6 +181,13 @@ export const deleteObject = (input: GetOssObjectRequest) => { ); }; +export const bulkDeleteObject = (input: OssObjectBulkDelete) => { + return defAbpHttp.post({ + url: Api.BulkDeleteObject, + params: input, + }); +} + export const getObject = (input: GetOssObjectRequest) => { return defAbpHttp.get({ url: Api.GetObject, diff --git a/apps/vue/src/views/account/center/FileList.vue b/apps/vue/src/views/account/center/FileList.vue index e7fafb7b1..95cfe7cb5 100644 --- a/apps/vue/src/views/account/center/FileList.vue +++ b/apps/vue/src/views/account/center/FileList.vue @@ -6,11 +6,11 @@ :stop-button-propagation="true" :actions="[ { - color: 'error', - label: L('Delete'), - icon: 'ant-design:delete-outlined', - ifShow: deleteEnabled, - onClick: handleDelete.bind(null, record), + auth: 'AbpOssManagement.OssObject.Download', + ifShow: !record.isFolder, + label: L('Objects:Download'), + icon: 'ant-design:download-outlined', + onClick: handleDownload.bind(null, record), }, { label: L('Share'), @@ -18,6 +18,13 @@ ifShow: shareEnabled, onClick: handleShare.bind(null, record), }, + { + color: 'error', + label: L('Delete'), + icon: 'ant-design:delete-outlined', + ifShow: deleteEnabled, + onClick: handleDelete.bind(null, record), + }, ]" /> @@ -29,7 +36,7 @@