| | |
| | | v-loading="formLoading" |
| | | > |
| | | <el-form-item :label="t('digitalhumans.name')" prop="name"> |
| | | <el-input v-model="formData.name" :placeholder="t('common.inputText') + t('digitalhumans.name')" /> |
| | | <el-input |
| | | v-model="formData.name" |
| | | :placeholder="t('common.inputText') + t('digitalhumans.name')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item :label="t('digitalhumans.code')" prop="code" v-if="false" > // 当前数字人视频的编码类型 |
| | | <el-input v-model="formData.code" :placeholder="t('common.inputText') + t('digitalhumans.code')" /> |
| | | <el-form-item :label="t('digitalhumans.code')" prop="code" v-if="false"> |
| | | // 当前数字人视频的编码类型 |
| | | <el-input |
| | | v-model="formData.code" |
| | | :placeholder="t('common.inputText') + t('digitalhumans.code')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item :label="t('digitalhumans.gender')" prop="gender"> |
| | | <el-select v-model="formData.gender" :placeholder="t('common.selectText')+t('digitalhumans.gender')"> |
| | | <el-select |
| | | v-model="formData.gender" |
| | | :placeholder="t('common.selectText') + t('digitalhumans.gender')" |
| | | > |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)" |
| | | :key="dict.value" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="t('digitalhumans.useModel')" prop="useModel" v-if="false" > //数字人模式选择框 |
| | | <el-select v-model="formData.useModel" :placeholder="t('common.selectText')+t('digitalhumans.useModel')"> |
| | | <el-form-item :label="t('digitalhumans.useModel')" prop="useModel" v-if="false"> |
| | | //数字人模式选择框 |
| | | <el-select |
| | | v-model="formData.useModel" |
| | | :placeholder="t('common.selectText') + t('digitalhumans.useModel')" |
| | | > |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.USE_MODEL)" |
| | | :key="dict.value" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="背景样式" prop="isTransparent"> |
| | | <el-select v-model="formData.isTransparent" placeholder="请选择是否去除背景"> |
| | | <el-option value="1" label="透明背景"/> |
| | | <el-option value="2" label="绿幕背景"/> |
| | | <el-option value="1" label="透明背景" /> |
| | | <el-option value="2" label="绿幕背景" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="formData.useModel == 1" :label="t('digitalhumans.picture')" prop="pictureUrl"> |
| | | <el-form-item |
| | | v-if="formData.useModel == 1" |
| | | :label="t('digitalhumans.picture')" |
| | | prop="pictureUrl" |
| | | > |
| | | <UploadImg v-if="formData" v-model="formData.fixPictureUrl" /> |
| | | <UploadImg v-else v-model="formData.pictureUrl" /> |
| | | </el-form-item> |
| | |
| | | <el-form-item v-if="formData.useModel == 2" :label="t('digitalhumans.video')" prop="videoUrl"> |
| | | <!-- 原本自带的视频上传 --> |
| | | <!-- <UploadFile v-if="!(formData.videoUrl || formData.fixVideoUrl)" v-model="formData.videoUrl" :fileType="['mp4','mov']" :limit="1" @on-success="handleFileSuccess('videoUrl', $event)"/> --> |
| | | <UploadFile v-if="!(formData.fixVideoUrl)" v-model="formData.videoUrl" :fileType="['mp4','mov']" :limit="1" @on-success="handleFileSuccess('videoUrl', $event)"/> |
| | | <!-- <UploadFile v-if="!(formData.fixVideoUrl)" v-model="formData.videoUrl" :fileType="['mp4','mov']" :limit="1" @on-success="handleFileSuccess('videoUrl', $event)"/> --> |
| | | <!-- 修改完善后的文件上传组件,原组件无法判断文件上传中与文件上传结束两种状态 --> |
| | | <FileUploadComent |
| | | v-if="!formData.fixVideoUrl" |
| | | v-model="formData.videoUrl" |
| | | :fileType="['mp4', 'mov']" |
| | | :limit="1" |
| | | @fileUploadEnd="FileUploadEnd" |
| | | @fileUploadStart="FileUploadStart" |
| | | @on-success="handleFileSuccess('videoUrl', $event)" |
| | | /> |
| | | <!-- 原视频播放器 --> |
| | | <!-- <video-player v-if="formData.videoUrl || formData.fixVideoUrl" :property="videoProperty"/> --> |
| | | <!-- 新的视频播放器 --> |
| | | <VideoPlayerMov v-if="formData.videoUrl || formData.fixVideoUrl" :property="videoProperty"/> |
| | | <!-- 新的视频播放器 --> |
| | | <VideoPlayerMov |
| | | v-if="formData.videoUrl || formData.fixVideoUrl" |
| | | :property="videoProperty" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item :label="抠图标识" prop="matting"> |
| | | <!-- <el-form-item :label="抠图标识" prop="matting"> |
| | | <el-select v-model="formData.matting" :placeholder="请选择抠图标识"> |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.DIGITALCOURSE_DIGITALHUMAN_MATTING)" |
| | |
| | | </el-select> |
| | | </el-form-item>--> |
| | | <el-form-item :label="t('digitalhumans.posture')" prop="posture"> |
| | | <el-select v-model="formData.posture" :placeholder="t('common.selectText') + t('digitalhumans.posture')"> |
| | | <el-select |
| | | v-model="formData.posture" |
| | | :placeholder="t('common.selectText') + t('digitalhumans.posture')" |
| | | > |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.DIGITALCOURSE_DIGITALHUMAN_POSTURE)" |
| | | :key="dict.value" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="t('digitalhumans.type')" prop="type"> |
| | | <el-select v-model="formData.type" :placeholder="t('common.selectText') + t('digitalhumans.type')"> |
| | | <el-select |
| | | v-model="formData.type" |
| | | :placeholder="t('common.selectText') + t('digitalhumans.type')" |
| | | > |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.DIGITALCOURSE_DIGITALHUMAN_TYPE)" |
| | | :key="dict.value" |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <el-button @click="submitForm" type="primary" :disabled="formLoading" :loading="isUploading" >{{t('common.ok')}}</el-button> |
| | | <el-button @click="dialogVisible = false">{{t('common.cancel')}}</el-button> |
| | | <el-button |
| | | @click="submitForm" |
| | | type="primary" |
| | | :disabled="formLoading" |
| | | :loading="isUploading" |
| | | >{{ t('common.ok') }}</el-button |
| | | > |
| | | <el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button> |
| | | </template> |
| | | </Dialog> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import FileUploadComent from './FileUploadComent.vue' |
| | | import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' |
| | | import * as DigitalHumansApi from '@/api/digitalcourse/digitalhumans' |
| | | import VideoPlayer from "@/components/DiyEditor/components/mobile/VideoPlayer/index.vue"; |
| | | import VideoPlayerMov from "@/components/DiyEditor/components/mobile/VideoPlayer_mov/index.vue"; |
| | | import {DiyComponent} from "@/components/DiyEditor/util"; |
| | | import {VideoPlayerProperty} from "@/components/DiyEditor/components/mobile/VideoPlayer/config"; |
| | | import VideoPlayer from '@/components/DiyEditor/components/mobile/VideoPlayer/index.vue' |
| | | import VideoPlayerMov from '@/components/DiyEditor/components/mobile/VideoPlayer_mov/index.vue' |
| | | import { DiyComponent } from '@/components/DiyEditor/util' |
| | | import { VideoPlayerProperty } from '@/components/DiyEditor/components/mobile/VideoPlayer/config' |
| | | import { useUpload } from '@/components/UploadFile/src/useUpload' |
| | | import { el } from 'element-plus/es/locale'; |
| | | import { any } from 'vue-types'; |
| | | import { el } from 'element-plus/es/locale' |
| | | import { any } from 'vue-types' |
| | | import { start } from 'nprogress' |
| | | |
| | | const { t } = useI18n() // 国际化 |
| | | const message = useMessage() // 消息弹窗 |
| | |
| | | useGeneralModel: undefined, |
| | | useModel: undefined, |
| | | status: undefined, |
| | | isTransparent: undefined, |
| | | isTransparent: undefined |
| | | }) |
| | | |
| | | // 当前是否正在上传视频 |
| | |
| | | } |
| | | } as DiyComponent<VideoPlayerProperty> |
| | | |
| | | watch(()=> formData.value.videoUrl,(newVal,oldValue)=>{ |
| | | if (newVal && newVal.length > 0){ |
| | | videoProperty.videoUrl = formData.value.fixVideoUrl || newVal |
| | | watch( |
| | | () => formData.value.videoUrl, |
| | | (newVal, oldValue) => { |
| | | if (newVal && newVal.length > 0) { |
| | | videoProperty.videoUrl = formData.value.fixVideoUrl || newVal |
| | | } |
| | | } |
| | | }) |
| | | ) |
| | | const formRules = reactive({ |
| | | gender: [{ required: true, message: '性别不能为空', trigger: 'change' }], |
| | | name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], |
| | |
| | | }) |
| | | const formRef = ref() // 表单 Ref |
| | | |
| | | const StartCes = () => { |
| | | console.log( " ----- 开始 ----- " ) |
| | | const FileUploadStart = () => { |
| | | isUploading.value = true |
| | | } |
| | | |
| | | const End = (res)=>{ |
| | | const FileObject = { |
| | | file:res |
| | | } |
| | | httpRequest( FileObject ).then( response =>{ |
| | | console.log(response) |
| | | formData.value.videoUrl = response.data; |
| | | } ).finally( res => { |
| | | isUploading.value = false |
| | | } ) |
| | | const FileUploadEnd = () => { |
| | | isUploading.value = false |
| | | } |
| | | |
| | | const StartCes = () => { |
| | | console.log(' ----- 开始 ----- ') |
| | | isUploading.value = true |
| | | } |
| | | |
| | | const End = (res) => { |
| | | const FileObject = { |
| | | file: res |
| | | } |
| | | httpRequest(FileObject) |
| | | .then((response) => { |
| | | console.log(response) |
| | | formData.value.videoUrl = response.data |
| | | }) |
| | | .finally((res) => { |
| | | isUploading.value = false |
| | | }) |
| | | } |
| | | |
| | | /** 打开弹窗 */ |
| | |
| | | } finally { |
| | | formLoading.value = false |
| | | } |
| | | }else{ |
| | | } else { |
| | | InitHumMODEL() |
| | | } |
| | | } |
| | |
| | | type: undefined, |
| | | useGeneralModel: undefined, |
| | | useModel: undefined, |
| | | status: undefined, |
| | | status: undefined |
| | | } |
| | | formRef.value?.resetFields() |
| | | } |
| | | const handleFileSuccess = (fileType,response) => { |
| | | const handleFileSuccess = (fileType, response) => { |
| | | alert('Pause') |
| | | if (fileType === 'videoUrl') { |
| | | formData.value.videoUrl = response.data; |
| | | } |
| | | }; |
| | | |
| | | // 修改默认的数字人视频模式为视频 |
| | | |
| | | const InitHumMODEL = ()=>{ |
| | | let ModelList = getIntDictOptions( DICT_TYPE.USE_MODEL ) |
| | | for (let index = 0; index < ModelList.length; index++) { |
| | | const element = ModelList[index]; |
| | | if( element.label === "视频" ){ |
| | | formData.value.useModel = Number( element.value ) |
| | | } |
| | | formData.value.videoUrl = response.data |
| | | } |
| | | } |
| | | |
| | | // 修改默认的数字人视频模式为视频 |
| | | |
| | | const InitHumMODEL = () => { |
| | | let ModelList = getIntDictOptions(DICT_TYPE.USE_MODEL) |
| | | for (let index = 0; index < ModelList.length; index++) { |
| | | const element = ModelList[index] |
| | | if (element.label === '视频') { |
| | | formData.value.useModel = Number(element.value) |
| | | } |
| | | } |
| | | } |
| | | </script> |