This commit is contained in:
2024-06-28 21:31:48 +08:00
parent 48aced8b6e
commit 06a2ea704e
6 changed files with 175 additions and 34 deletions

View File

@@ -9,6 +9,7 @@ const loginState = useLoginState()
const toast = useToast()
const isCreateCourseModalOpen = ref(false)
const creationPending = ref(false)
const {
data: courseList,
@@ -29,6 +30,7 @@ const {
},
)
const onCreateCourseClick = () => {
isCreateCourseModalOpen.value = true
}
@@ -60,24 +62,55 @@ const onCreateCourseSubmit = async (event: FormSubmitEvent<CreateCourseSchema>)
})
return
}
creationPending.value = true
// upload PPTX file
useFileGo(selected_file.value[0]).then(url => {
useFetchWrapped<req.gen.CourseGenCreate & AuthedRequest, resp.gen.CourseGenCreate>('App.Digital_Convert.Create', {
useFetchWrapped<req.gen.CourseGenCreate & AuthedRequest, BaseResponse<resp.gen.CourseGenCreate>>('App.Digital_Convert.Create', {
token: loginState.token!,
user_id: loginState.user.id,
task_title: event.data.task_title,
gen_server: event.data.gen_server as 'main' | 'standby1',
speed: event.data.speed,
speed: 2 - event.data.speed,
ppt_url: url,
digital_human_id: '40696',
digital_human_id: 40696,
custom_video: '[]',
opening_url: '',
ending_url: '',
}).then(res => {
console.log(res)
if (res.data.record_status === 1) {
toast.add({
title: '创建成功',
description: '微课视频已开始生成',
color: 'green',
icon: 'i-tabler-check',
})
refreshCourseList()
isCreateCourseModalOpen.value = false
} else {
toast.add({
title: '创建失败',
description: '未知错误',
color: 'red',
icon: 'i-tabler-alert-triangle',
})
}
creationPending.value = false
}).catch(e => {
creationPending.value = false
toast.add({
title: '创建失败',
description: e.message || '未知错误',
color: 'red',
icon: 'i-tabler-alert-triangle',
})
})
})
}
onMounted(() => {
const i = setInterval(refreshCourseList, 1000 * 5)
onBeforeUnmount(() => clearInterval(i))
})
</script>
<template>
@@ -94,10 +127,10 @@ const onCreateCourseSubmit = async (event: FormSubmitEvent<CreateCourseSchema>)
/>
</div>
<div class="p-4">
<div class="relative grid grid-cols-1 sm:grid-cols-2 2xl:grid-cols-4 gap-4">
<div class="relative grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-4">
<CGTaskCard v-for="(course, index) in courseList" :key="index" :course="course"/>
</div>
<pre class="overflow-hidden">{{ JSON.stringify(courseList, null, 2) }}</pre>
<!-- <pre class="overflow-hidden">{{ JSON.stringify(courseList, null, 2) }}</pre>-->
</div>
<UModal
@@ -177,6 +210,7 @@ const onCreateCourseSubmit = async (event: FormSubmitEvent<CreateCourseSchema>)
label="提交"
type="submit"
variant="solid"
:loading="creationPending"
/>
</div>
</UForm>