From f88e053a4443445bd067786c95a682068c543a40 Mon Sep 17 00:00:00 2001 From: HoshinoSuzumi Date: Wed, 1 Oct 2025 18:12:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E4=BA=BA=E8=AE=AD=E7=BB=83=E6=8F=90=E4=BA=A4=E5=92=8C=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/DigitalHumanTrainCreator.vue | 476 +++++++++++++++ pages/generation.vue | 6 +- .../generation/admin/digital-human-train.vue | 574 ++++++++++++++++++ pages/generation/admin/index.vue | 101 +++ pages/generation/admin/users.vue | 2 +- pages/generation/avatar-models.vue | 57 +- typings/types.d.ts | 22 + 7 files changed, 1225 insertions(+), 13 deletions(-) create mode 100644 components/DigitalHumanTrainCreator.vue create mode 100644 pages/generation/admin/digital-human-train.vue create mode 100644 pages/generation/admin/index.vue diff --git a/components/DigitalHumanTrainCreator.vue b/components/DigitalHumanTrainCreator.vue new file mode 100644 index 0000000..fcd0117 --- /dev/null +++ b/components/DigitalHumanTrainCreator.vue @@ -0,0 +1,476 @@ + + + + + \ No newline at end of file diff --git a/pages/generation.vue b/pages/generation.vue index 3b39e43..86fb14d 100644 --- a/pages/generation.vue +++ b/pages/generation.vue @@ -39,9 +39,9 @@ const navList = ref< to: '/generation/ppt-templates', }, { - label: '用户管理', - icon: 'tabler:users', - to: '/generation/admin/users', + label: '管理中心', + icon: 'tabler:home-cog', + to: '/generation/admin', admin: true, }, ]) diff --git a/pages/generation/admin/digital-human-train.vue b/pages/generation/admin/digital-human-train.vue new file mode 100644 index 0000000..8b223bb --- /dev/null +++ b/pages/generation/admin/digital-human-train.vue @@ -0,0 +1,574 @@ + + + + + \ No newline at end of file diff --git a/pages/generation/admin/index.vue b/pages/generation/admin/index.vue new file mode 100644 index 0000000..9157cc8 --- /dev/null +++ b/pages/generation/admin/index.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/pages/generation/admin/users.vue b/pages/generation/admin/users.vue index 6daa121..46bb1fe 100644 --- a/pages/generation/admin/users.vue +++ b/pages/generation/admin/users.vue @@ -226,7 +226,7 @@ const onDigitalHumansSelected = (digitalHumans: DigitalHumanItem[]) => { user_id: loginState.user.id!, to_user_id: viewingUser.value?.id || 0, digital_human_array: digitalHumans.map( - (row) => row.id || row.digital_human_id + (row) => row.id || row.digital_human_id || 0 ), }).then((res) => { if (res.ret === 200) { diff --git a/pages/generation/avatar-models.vue b/pages/generation/avatar-models.vue index 0515678..2f1235d 100644 --- a/pages/generation/avatar-models.vue +++ b/pages/generation/avatar-models.vue @@ -61,6 +61,25 @@ const { } ) +const { + data: avatarTrainList, + status: avatarTrainStatus, + refresh: refreshAvatarTrainList, +} = useAsyncData( + () => + useFetchWrapped< + PagedDataRequest & AuthedRequest, + BaseResponse> + >('App.Digital_Train.GetList', { + token: loginState.token!, + user_id: loginState.user.id, + to_user_id: loginState.user.id, + page: 1, + perpage: 20, + }), + {} +) + const onSystemAvatarDelete = (row: DigitalHumanItem) => { useFetchWrapped< { digital_human_id: number } & AuthedRequest, @@ -125,13 +144,14 @@ const columns = [ ] const sourceTypeList = [ - { label: 'xsh_wm', value: 1, color: 'blue' }, // 万木(腾讯) - { label: 'xsh_zy', value: 2, color: 'green' }, // XSH 自有 + { label: 'xsh_wm', value: 1, color: 'blue' }, // 万木(腾讯) + { label: 'xsh_zy', value: 2, color: 'green' }, // XSH 自有 { label: 'xsh_fh', value: 3, color: 'purple' }, // 硅基(泛化数字人) { label: 'xsh_bb', value: 4, color: 'indigo' }, // 百度小冰 ] const isCreateSlideOpen = ref(false) +const isTrainCreatorOpen = ref(false) const createAvatarState = reactive({ name: '', @@ -230,13 +250,6 @@ const onAvatarUpload = async (files: FileList) => { :label="showSystemAvatar ? '显示用户数字人' : '显示系统数字人'" @click="showSystemAvatar = !showSystemAvatar" /> - + + + @@ -473,6 +509,9 @@ const onAvatarUpload = async (files: FileList) => { + + + diff --git a/typings/types.d.ts b/typings/types.d.ts index cced67a..791ba27 100644 --- a/typings/types.d.ts +++ b/typings/types.d.ts @@ -87,6 +87,20 @@ interface DigitalHumanItem { digital_human_id?: number } +/** + * 数字人定制训练记录 + */ +interface DigitalHumanTrainItem { + id: number + user_id: number + dh_name: string + organization: string + video_url: string + auth_video_url: string + create_time: number + status?: number // 0: 待处理, 1: 已处理 +} + interface GBVideoItem { id: number user_id: number @@ -233,6 +247,14 @@ namespace req { source_type?: number } + interface AvatarTrainCreate { + user_id: number + dh_name: string + organization: string + video_url: string + auth_video_url: string + } + /** * @param title 任务标题筛选 */