This commit is contained in:
fengchuanhn@gmail.com
2026-05-25 01:21:12 +08:00
parent 940eeb96ef
commit 6eba25ea10
4 changed files with 58 additions and 52 deletions

View File

@@ -4,6 +4,7 @@ import { storeToRefs } from "pinia";
import { useAvatarStore } from "../stores/avatar.js";
import AvatarEditDialog from "../components/avatar/AvatarEditDialog.vue";
import { localVideoToPlayableUrl } from "../services/localVideo.js";
import { revealLocalFileInFolder } from "../services/fileExport.js";
const avatarStore = useAvatarStore();
const { templates, loading } = storeToRefs(avatarStore);
@@ -58,10 +59,26 @@ async function commitRename(item) {
cancelRename();
}
async function onOpenInExplorer(item) {
if (!item?.filePath) {
showFeedback("error", "文件不存在");
return;
}
try {
await revealLocalFileInFolder(item.filePath);
} catch (err) {
showFeedback("error", err instanceof Error ? err.message : String(err));
}
}
async function onDelete(item) {
if (!window.confirm(`确认删除形象「${item.name}」?`)) return;
await avatarStore.removeTemplate(item);
showFeedback("success", "已删除");
try {
await avatarStore.removeTemplate(item);
showFeedback("success", "已删除");
} catch (err) {
showFeedback("error", err instanceof Error ? err.message : String(err));
}
}
function onSaved() {
@@ -77,14 +94,14 @@ function onSaved() {
<p class="mt-1 text-sm text-slate-500">管理多个数字人形象</p>
</div>
<div class="flex flex-wrap gap-2">
<Button
<!-- <Button
label="云端形象"
size="small"
severity="secondary"
outlined
icon="pi pi-cloud"
@click="onCloud"
/>
/> -->
<Button label="添加" size="small" icon="pi pi-plus" @click="onAdd" />
</div>
</div>
@@ -158,14 +175,24 @@ function onSaved() {
/>
</div>
</div>
<Button
icon="pi pi-trash"
size="small"
severity="danger"
text
aria-label="删除"
@click="onDelete(item)"
/>
<div class="flex shrink-0 gap-1">
<Button
label="打开"
icon="pi pi-folder-open"
size="small"
severity="secondary"
outlined
@click="onOpenInExplorer(item)"
/>
<Button
icon="pi pi-trash"
size="small"
severity="danger"
text
aria-label="删除"
@click="onDelete(item)"
/>
</div>
</div>
<div class="overflow-hidden rounded-lg bg-black p-1">
<video