| | |
| | | </div> |
| | | </div> |
| | | <div class="SoundModelArea" v-loading="soundLoading"> |
| | | <div class="SoundModelAreaBox" v-for="(value, key, index) in audioList" :key="index"> |
| | | <div class="SoundClassTit"> |
| | | <el-divider content-position="center"> {{ languageClass(key) }} </el-divider> |
| | | <!-- <el-divider content-position="center"> 123 </el-divider> --> |
| | | </div> |
| | | <div class="SoundClassContent"> |
| | | <div |
| | | class="ModealBox" |
| | | v-for="(item, index) in audioList" |
| | | v-for="(item, index) in value" |
| | | :key="index" |
| | | @click="handleSelect(item)" |
| | | @mouseenter="handleMouseenter(item)" |
| | | @mouseleave="handleMouseleave(item)" |
| | | @click="handleSelect(key, item)" |
| | | @mouseenter="handleMouseenter(key, item)" |
| | | @mouseleave="handleMouseleave(key, item)" |
| | | :class="item.isSelect ? 'slectModel' : ''" |
| | | > |
| | | <div class="ImgBox"> |
| | |
| | | alt="" |
| | | @click.stop="SoundpauseAudio(item)" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="ButtonArea"> |
| | |
| | | import { useEditorHtml } from '@/hooks/web/useEditorHtml' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' |
| | | import { measureMemory } from 'vm' |
| | | import { any } from 'vue-types' |
| | | |
| | | const editorHtml = useEditorHtml() |
| | |
| | | hostValue.value = item |
| | | chooseHost1(2) |
| | | // dialogVisible2.value = true |
| | | |
| | | } |
| | | const chooseHost1 = (index) => { |
| | | if (index == 1) { |
| | |
| | | soundLoading.value = true |
| | | // 语言类型 |
| | | soundQueryParams.language = selectLanguage?.value.value ?? '' |
| | | soundQueryParams.language = soundQueryParams.language === "all_Language"?"":soundQueryParams.language |
| | | soundQueryParams.language = |
| | | soundQueryParams.language === 'all_Language' ? '' : soundQueryParams.language |
| | | // 性别 |
| | | soundQueryParams.gender = changeAudio?.value ?? '' |
| | | soundQueryParams.gender = Number(soundQueryParams.gender) === 3?"":soundQueryParams.gender |
| | | soundQueryParams.gender = Number(soundQueryParams.gender) === 3 ? '' : soundQueryParams.gender |
| | | // 声音类型 |
| | | soundQueryParams.voiceType = activeSoundType?.value.value ?? '' |
| | | const data = await pptTemplateApi.videlPageList(soundQueryParams) |
| | |
| | | item.isPlay = false |
| | | item.isSelect = false |
| | | }) |
| | | audioList.value = data.list |
| | | let LanguageArr = {} |
| | | data.list.forEach((item) => { |
| | | if (LanguageArr?.[item.language] !== undefined) { |
| | | LanguageArr[item.language].push(item) |
| | | } else { |
| | | LanguageArr = { ...LanguageArr, [item.language]: [{ ...item }] } |
| | | } |
| | | }) |
| | | console.log(LanguageArr) |
| | | |
| | | audioList.value = LanguageArr |
| | | total.value = data.total |
| | | if (selectList.value !== undefined && selectList.value !== null) { |
| | | selectList.value = null //初始化 |
| | | } |
| | | // 停止当前播放的音频 |
| | | if (SoundcurrentAudio.value) { |
| | | SoundcurrentAudio.value.pause() |
| | | SoundcurrentAudio.value = null |
| | | } |
| | | |
| | | // 重置当前播放状态 |
| | | if (SoundcurrentlyPlaying.value) { |
| | | SoundcurrentlyPlaying.value.isPlay = false |
| | | SoundcurrentlyPlaying.value = null |
| | | } |
| | | } finally { |
| | | soundLoading.value = false |
| | | } |
| | | } |
| | | // 当前语种显示 |
| | | const languageClass = (language) => { |
| | | let text = '' |
| | | languageList.value.forEach((element) => { |
| | | if (element.value === language) { |
| | | text = element.label |
| | | } |
| | | }) |
| | | return text |
| | | } |
| | | // 语种选择 |
| | | const LanguageChange = (event) => { |
| | |
| | | SoundTypeList.value.forEach((element) => { |
| | | if (element.value === event) { |
| | | ChangeSoundTypeList.value = { ...element } |
| | | |
| | | if (selectList.value !== undefined && selectList.value !== null) { |
| | | selectList.value = null //初始化 |
| | | } |
| | | // 停止当前播放的音频 |
| | | if (SoundcurrentAudio.value) { |
| | | SoundcurrentAudio.value.pause() |
| | | SoundcurrentAudio.value = null |
| | | } |
| | | |
| | | // 重置当前播放状态 |
| | | if (SoundcurrentlyPlaying.value) { |
| | | SoundcurrentlyPlaying.value.isPlay = false |
| | | SoundcurrentlyPlaying.value = null |
| | | } |
| | | } |
| | | }) |
| | | getSoundModelList() |
| | | } |
| | | //选择声音模型 |
| | | const selectList = ref() |
| | | const handleSelect = (item) => { |
| | | const handleSelect = (key, item) => { |
| | | selectList.value = [item] |
| | | audioList.value.forEach((child) => { |
| | | audioList.value[key].forEach((child) => { |
| | | if (child.id == item.id) { |
| | | child.isSelect = true |
| | | } else { |
| | |
| | | // 确定按钮点击处理函数 |
| | | const submitForm = () => { |
| | | console.log( selectLanguage.value ) |
| | | if( selectLanguage.value.value === "all_Language" ){ |
| | | if (selectLanguage.value.value === 'all_Language') { |
| | | message.warning('请将语种按钮由全部语种修改为您需要生成的声音的文本的语种类型') |
| | | return false |
| | | } |
| | | console.log(ChangeSoundTypeList.value.value) |
| | | if (ChangeSoundTypeList.value.value === 2) { |
| | | //此时为通用 |
| | | console.log(selectList.value) |
| | | if (selectList.value === undefined) { |
| | | if (selectList.value === undefined || selectList.value === null) { |
| | | message.warning('请选择声音模型') |
| | | return false |
| | | } |
| | |
| | | // }) |
| | | } |
| | | // 鼠标移入与移出 |
| | | const handleMouseenter = (item) => { |
| | | audioList.value.forEach((child) => { |
| | | const handleMouseenter = (key, item) => { |
| | | audioList.value[key].forEach((child) => { |
| | | if (child.id == item.id) { |
| | | child.isHover = true |
| | | } |
| | | }) |
| | | } |
| | | const handleMouseleave = (item) => { |
| | | audioList.value.forEach((child) => { |
| | | const handleMouseleave = (key, item) => { |
| | | audioList.value[key].forEach((child) => { |
| | | if (child.id == item.id) { |
| | | child.isHover = false |
| | | } |
| | |
| | | } |
| | | |
| | | const chooseTemplate = (currTemplate) => { |
| | | console.log( "currTemplate", currTemplate) |
| | | console.log('currTemplate', currTemplate) |
| | | selectTemplate.value = cloneDeep(currTemplate) |
| | | templates.value.forEach((item) => { |
| | | item.isActive = false |
| | |
| | | language: selectLanguage.value?.value |
| | | } |
| | | |
| | | if( ChangeSoundTypeList.value.value === 2 ){ //此时选取了声音模型 |
| | | if (ChangeSoundTypeList.value.value === 2) { |
| | | //此时选取了声音模型 |
| | | params.humanId = null |
| | | }else if( ChangeSoundTypeList.value.value === 1 ){ |
| | | params.voiceId = null |
| | |
| | | }else { |
| | | router.go(-1) |
| | | } |
| | | |
| | | } |
| | | |
| | | const editorRef = shallowRef() |
| | |
| | | height: 86%; |
| | | margin: 10px 0; |
| | | overflow-y: scroll; |
| | | |
| | | .SoundModelAreaBox { |
| | | width: 100%; |
| | | .SoundClassTit { |
| | | width: 80%; |
| | | margin: 0 auto; |
| | | } |
| | | .SoundClassContent { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-content: flex-start; |
| | |
| | | border-radius: 6px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .ButtonArea { |
| | | width: 90%; |
| | | margin: 0 auto; |