From 121dee6a0f03056aeb0f6a177b90391ab31f4aed Mon Sep 17 00:00:00 2001 From: Timothy Yin Date: Fri, 7 Mar 2025 14:42:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=BF=E5=B9=95=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=83=8C=E6=99=AF=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/SlideCreateCourseGreen.vue | 50 +++++++++++++++++++++++++-- typings/types.d.ts | 1 + 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/components/SlideCreateCourseGreen.vue b/components/SlideCreateCourseGreen.vue index f1e8a2f..48cb859 100644 --- a/components/SlideCreateCourseGreen.vue +++ b/components/SlideCreateCourseGreen.vue @@ -20,6 +20,7 @@ const createCourseSchema = object({ digital_human_id: number().not([0], '请选择数字人'), source_type: number().default(0).required(), speed: number().default(1.0).min(0.5).max(1.5).required(), + bg_img: string().optional(), }) type CreateCourseSchema = InferType @@ -30,9 +31,11 @@ const createCourseState = reactive({ digital_human_id: 0, source_type: 0, speed: 1.0, + bg_img: undefined, }) const selected_digital_human = ref(null) +const selected_bg_img = ref(); watchEffect(() => { if (selected_digital_human.value) { @@ -42,9 +45,26 @@ watchEffect(() => { } }) -const onCreateCourseGreenSubmit = async (event: FormSubmitEvent) => { +const onCreateCourseGreenSubmit = async (event: FormSubmitEvent) => { creationPending.value = true - useFetchWrapped>('App.Digital_VideoTask.Create', { + + let bgImgUrl = undefined + + if (selected_bg_img.value) { + bgImgUrl = await useFileGo(selected_bg_img.value, 'tmp') + } + + let payload: { + token: string; + user_id: number; + title: string; + content: string; + digital_human_id: any; + speed: number; + device_id: string; + source_type: 1 | 2 | undefined; + bg_img?: string; + } = { token: loginState.token!, user_id: loginState.user.id, title: event.data.title, @@ -53,7 +73,27 @@ const onCreateCourseGreenSubmit = async (event: FormSubmitEvent { + } + + if (selected_bg_img.value) { + if (!bgImgUrl) { + toast.add({ + title: '上传失败', + description: '背景图片上传失败,请重试', + color: 'red', + icon: 'i-tabler-alert-triangle', + }) + selected_bg_img.value = undefined + creationPending.value = false + return + } + payload = { + ...payload, + bg_img: bgImgUrl, + } + } + + useFetchWrapped>('App.Digital_VideoTask.Create', payload).then(res => { if (!!res.data.task_id) { toast.add({ title: '创建成功', @@ -142,6 +182,10 @@ const onCreateCourseGreenSubmit = async (event: FormSubmitEvent + + + + diff --git a/typings/types.d.ts b/typings/types.d.ts index 5cf1185..28fe77d 100644 --- a/typings/types.d.ts +++ b/typings/types.d.ts @@ -251,6 +251,7 @@ namespace req { speed?: number // 1: upstream 2: internal source_type?: 1 | 2 + bg_img?: string } interface GBVideoDelete {