add: clean finished transfers button

This commit is contained in:
2026-02-05 16:03:38 +08:00
parent d9db99946d
commit 5960a25309
3 changed files with 30 additions and 13 deletions

View File

@@ -20,8 +20,8 @@ export function CancelTransfer(transferID: string): $CancellablePromise<void> {
/**
* CleanTransferList 清理完成的 transfer
*/
export function CleanTransferList(): $CancellablePromise<void> {
return $Call.ByID(3775121017);
export function CleanFinishedTransferList(): $CancellablePromise<void> {
return $Call.ByID(1852624467);
}
export function DeleteTransfer(transferID: string): $CancellablePromise<void> {

View File

@@ -14,7 +14,10 @@ import { Transfer } from "../../bindings/mesh-drop/internal/transfer";
// --- Service & 后端绑定 ---
import { Events } from "@wailsio/runtime";
import { GetPeers } from "../../bindings/mesh-drop/internal/discovery/service";
import { GetTransferList } from "../../bindings/mesh-drop/internal/transfer/service";
import {
GetTransferList,
CleanFinishedTransferList,
} from "../../bindings/mesh-drop/internal/transfer/service";
// --- 状态 ---
const peers = ref<Peer[]>([]);
@@ -53,10 +56,7 @@ const menuItems = computed(() => [
onMounted(async () => {
checkMobile();
window.addEventListener("resize", checkMobile);
const list = await GetTransferList();
transferList.value = (
(list || []).filter((t) => t !== null) as Transfer[]
).sort((a, b) => b.create_time - a.create_time);
transferList.value = (await GetTransferList()) as Transfer[];
if (isMobile.value) {
drawer.value = false;
@@ -75,10 +75,7 @@ Events.On("peers:update", (event) => {
});
Events.On("transfer:refreshList", async () => {
const list = await GetTransferList();
transferList.value = (
(list || []).filter((t) => t !== null) as Transfer[]
).sort((a, b) => b.create_time - a.create_time);
transferList.value = (await GetTransferList()) as Transfer[];
});
// --- 方法 ---
@@ -96,6 +93,10 @@ const handleMenuClick = (key: string) => {
drawer.value = false;
}
};
const handleCleanFinished = async () => {
await CleanFinishedTransferList();
};
</script>
<template>
@@ -176,6 +177,16 @@ const handleMenuClick = (key: string) => {
<!-- 传输视图 -->
<div v-show="activeKey === 'transfers'">
<div v-if="transferList.length > 0">
<div class="d-flex justify-end mb-2">
<v-btn
prepend-icon="mdi-delete-sweep"
variant="text"
color="error"
@click="handleCleanFinished"
>
Clear Finished
</v-btn>
</div>
<TransferItem
v-for="transfer in transferList"
:key="transfer.id"