This commit is contained in:
owenchen committed 2026-10-20 21:51:06 +08:00
1 parent 6417562c4f
commit f1e6e116c3
31 files changed
+2065 -309

No files matched your search

+24 -4
View File
@@ -192,6 +192,16 @@ function goShowWithFolder(name: "photoShow" | "audioHall" | "videoHall"): void {
});
}
/** 单击音频/视频:进音乐厅/影视厅,start 带 FileId 让厅内定位到该条并开播 */
function openInHall(file: FileItem): void {
const folder = pathStack.value[pathStack.value.length - 1]?.value ?? "";
const hall = file.kind === "audio" ? "audioHall" : "videoHall";
uni.navigateTo({
url: `${pageUrl(hall)}?mode=list&key=${encodeURIComponent(folder)}&start=${file.id}`,
fail: (err: any) => toast(err?.errMsg || t("FilePage.actionFailed")),
});
}
function onQuickClick(key: string): void {
// 回收站/共享大厅(pages/trash、pages/share-hall);相册/音乐厅/影视厅展览当前目录
if (key === "trash") {
@@ -313,12 +323,12 @@ const previewIcon = computed(() => {
return pickedKind.value === "audio" ? "volume" : "eye";
});
/** 预览按钮的分流动作 key:视频/音频走播放页(play),图片走相册连览(preview);
* 文档没有移动端预览器,不显示该按钮 */
/** 预览按钮的分流动作 key:视频/音频进音乐厅/影视厅(hall,与单击条目同一条路径),
* 图片走相册连览(preview);文档没有移动端预览器,不显示该按钮 */
const previewKey = computed(() => {
const kind = pickedKind.value;
if (kind === "video" || kind === "audio") {
return "play";
return "hall";
}
return kind === "image" ? "preview" : "";
});
@@ -388,7 +398,9 @@ async function onOpen(file: FileItem): Promise<void> {
actionPreview([file]);
}
else if (file.kind === "video" || file.kind === "audio") {
actionPlay(file);
// 单击即进音乐厅/影视厅(以当前目录为播放列表),从这一条开始播;
// 「…」面板里的试听/播放仍走单文件播放页(actionPlay)
openInHall(file);
}
else {
// 文档没有移动端预览器,点开按下载处理(比占位 toast 实用)
@@ -572,7 +584,12 @@ async function actionDownload(targets: FileItem[]): Promise<void> {
await saveFileBytes(await fetchFileBytes(record));
}
}
// #ifdef APP-PLUS
toast(t("FilePage.downloadDoneApp"));
// #endif
// #ifndef APP-PLUS
toast(t("FilePage.downloadDone"));
// #endif
}, t("FilePage.downloading"));
}
@@ -830,6 +847,9 @@ const actionRunners: Record<string, (targets: FileItem[]) => void> = {
share: actionShare,
publish: actionPublish,
preview: actionPreview,
// 多选栏的「视频播放/音乐播放」:与单击条目一致,进影视厅/音乐厅并从该条开播;
// 面板(file-action-sheet)的同名动作仍走 play 单文件播放页
hall: targets => targets[0] && openInHall(targets[0]),
play: targets => targets[0] && actionPlay(targets[0]),
detail: targets => targets[0] && actionDetail(targets[0]),
};