feat: add live room metadata, uploads, proxies and backups
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import { computed, onMounted, ref, watch } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useViewport } from "@/composables/useViewport";
|
||||
import apiClient, { getApiErrorMessage } from "@/api/client";
|
||||
import type {
|
||||
RecordArtifactUploadBatchResult,
|
||||
RecordSessionDetail,
|
||||
RecordSessionTimelineEvent,
|
||||
RecordSessionHeatBucket,
|
||||
@@ -26,6 +28,7 @@ const router = useRouter();
|
||||
const { isMobile } = useViewport();
|
||||
|
||||
const loading = ref(false);
|
||||
const uploadLoading = ref(false);
|
||||
const loadError = ref("");
|
||||
const detail = ref<RecordSessionDetail | null>(null);
|
||||
const visibleLayers = ref(["session", "segments", "processing", "danmaku", "automation"]);
|
||||
@@ -60,6 +63,21 @@ async function loadDetail() {
|
||||
}
|
||||
}
|
||||
|
||||
async function uploadSessionArtifacts() {
|
||||
uploadLoading.value = true;
|
||||
|
||||
try {
|
||||
const { data } = await apiClient.post<RecordArtifactUploadBatchResult>(`/record-sessions/${props.id}/upload`);
|
||||
const message = `会话上传完成:成功 ${data.successCount},失败 ${data.failedCount}。`;
|
||||
ElMessage[data.failedCount === 0 ? "success" : "warning"](message);
|
||||
await loadDetail();
|
||||
} catch (error) {
|
||||
ElMessage.error(getApiErrorMessage(error, "会话上传失败,请稍后重试。"));
|
||||
} finally {
|
||||
uploadLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
function filterTimelineEvents(layer: string) {
|
||||
if (!detail.value || !visibleLayers.value.includes(layer)) {
|
||||
return [];
|
||||
@@ -222,6 +240,7 @@ onMounted(loadDetail);
|
||||
<el-space class="header-actions">
|
||||
<el-button @click="router.push({ name: 'record-tasks' })">返回列表</el-button>
|
||||
<el-button @click="loadDetail">刷新</el-button>
|
||||
<el-button :loading="uploadLoading" @click="uploadSessionArtifacts">上传会话</el-button>
|
||||
</el-space>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user