diff --git a/pages/generation/admin/index.vue b/pages/generation/admin/index.vue index 9157cc8..10ea654 100644 --- a/pages/generation/admin/index.vue +++ b/pages/generation/admin/index.vue @@ -29,6 +29,13 @@ const adminPages = [ path: '/generation/admin/digital-human-train', color: 'amber', }, + { + title: '片头片尾管理', + description: '管理用户提交的片头片尾制作请求', + icon: 'i-tabler-movie', + path: '/generation/admin/materials', + color: 'green', + }, ] const navigateToPage = (path: string) => { @@ -66,6 +73,7 @@ const navigateToPage = (path: string) => { :class="{ 'bg-blue-100 dark:bg-blue-900/30': page.color === 'blue', 'bg-amber-100 dark:bg-amber-900/30': page.color === 'amber', + 'bg-green-100 dark:bg-green-900/30': page.color === 'green', }" > { :class="{ 'text-blue-600 dark:text-blue-400': page.color === 'blue', 'text-amber-600 dark:text-amber-400': page.color === 'amber', + 'text-green-600 dark:text-green-400': page.color === 'green', }" /> diff --git a/pages/generation/admin/materials.vue b/pages/generation/admin/materials.vue new file mode 100644 index 0000000..18c0aa5 --- /dev/null +++ b/pages/generation/admin/materials.vue @@ -0,0 +1,1436 @@ + + + + + diff --git a/pages/generation/materials.vue b/pages/generation/materials.vue index 9cb9741..25202df 100644 --- a/pages/generation/materials.vue +++ b/pages/generation/materials.vue @@ -18,8 +18,11 @@ const userPagination = reactive({ pageSize: 15, }) -const { data: systemTitlesTemplate, status: systemTitlesTemplateStatus } = - useAsyncData( +const { + data: systemTitlesTemplate, + status: systemTitlesTemplateStatus, + refresh: refreshSystemTitlesTemplate, +} = useAsyncData( 'systemTitlesTemplate', () => useFetchWrapped< @@ -93,6 +96,46 @@ const onUserTitlesRequest = (titles: TitlesTemplate) => { isUserTitlesRequestModalActive.value = true } +const onSystemTitlesDelete = (titles: TitlesTemplate) => { + useFetchWrapped< + { title_id: number } & AuthedRequest, + BaseResponse<{ code: 0 | 1 }> + >('App.Digital_Titles.Delete', { + token: loginState.token!, + user_id: loginState.user.id, + title_id: titles.id, + }) + .then((res) => { + if (res.ret === 200 && res.data.code === 1) { + toast.add({ + title: '删除成功', + description: '已删除系统片头模板', + color: 'green', + icon: 'i-tabler-check', + }) + } else { + toast.add({ + title: '删除失败', + description: res.msg || '未知错误', + color: 'red', + icon: 'i-tabler-alert-triangle', + }) + } + }) + .catch((error) => { + toast.add({ + title: '删除失败', + description: error instanceof Error ? error.message : '未知错误', + color: 'red', + icon: 'i-tabler-alert-triangle', + }) + }) + .finally(() => { + systemPagination.page = 1 + refreshSystemTitlesTemplate() + }) +} + const onUserTitlesDelete = (titles: TitlesTemplate) => { useFetchWrapped< Pick & { @@ -217,6 +260,7 @@ const onUserTitlesSubmit = (event: FormSubmitEvent) => { type="system" :key="titles.id" @user-titles-request="onUserTitlesRequest" + @system-titles-delete="onSystemTitlesDelete" />