fix: 语音视频不展示播放语音按钮

This commit is contained in:
杨航
2025-12-09 15:42:05 +08:00
parent 1d3ec4067f
commit 46d1817a27
4 changed files with 28 additions and 12 deletions
+8 -3
View File
@@ -5,13 +5,13 @@
</view>
</view>
<view class="answer-content" v-else>
<view :class="['talking-gif', !voiceLoading&&(props.activeVoiceId === dataInfo.id) ? 'is-play' : '']">
<view v-if="showVoice" :class="['talking-gif', !voiceLoading&&(props.activeVoiceId === dataInfo.id) ? 'is-play' : '']">
<CommonLoading color="#06f" v-show="voiceLoading" />
</view>
<view class="talking-cont">
<MarkdownPreview :mdString="mdText" />
</view>
<view class="btns-cont" v-if="!dataInfo.isLoading">
<view class="btns-cont" v-if="!dataInfo.isLoading && showVoice">
<!-- <view class="replay-btn" @click="reAnswer" v-if="!props.dataInfo.isHistory">
<image class="icon" src="@/static/images/dialog/answer-restart1.png" style="width: 100%; height: 100%"></image>
</view>
@@ -83,13 +83,18 @@
default: true,
type: Boolean
},
showVoice: {
default: true,
type: Boolean
},
})
const {
isLast,
dataInfo,
roleInfo,
activeVoiceId,
isStudy
isStudy,
showVoice
} = toRefs(props)
const isPlaying = ref(false)
const voiceIsPlaying = ref(false)
@@ -1,9 +1,9 @@
<template>
<view class="talking-info" v-if="dataInfo.intrctWay === '02'">
<view :class="['talking-gif', !voiceLoading&&(props.activeVoiceId === dataInfo.id) ? 'is-play' : '']">
<view v-if="showVoice" :class="['talking-gif', !voiceLoading&&(props.activeVoiceId === dataInfo.id) ? 'is-play' : '']">
<CommonLoading color="#f60" v-show="voiceLoading"/>
</view>
<view class="right-time">{{voiceTime}}</view>
<view v-if="showVoice" class="right-time">{{voiceTime}}</view>
<view class="talking-cont">
<rich-text :class="['talking-text translate-text loading']" v-show="!translateLoading" :nodes="`<span>${showContent}</span>`">
</rich-text>
@@ -11,7 +11,7 @@
<CommonLoading color="#f60"/>
</view>
</view>
<view class="btns-cont">
<view class="btns-cont" v-if="showVoice">
<view class="play-btn">
<image class="icon"
v-show="!(!voiceLoading&&(props.activeVoiceId === dataInfo.id))"
@@ -64,8 +64,12 @@ import { onUnload } from '@dcloudio/uni-app';
default:'',
type: String
},
showVoice: {
default: true,
type: Boolean
}
})
const { activeVoiceId, dataInfo } = toRefs(props)
const { activeVoiceId, dataInfo, showVoice } = toRefs(props)
const emit = defineEmits(['changePlay'])
// 声音播放初始化
const talkVoiceObj = ref(null)
@@ -11,9 +11,9 @@
</view>
</view>
<questionVue v-if="talkingType === 'question'" @changePlay="changePlay" :dataInfo="talkingInfo" :isLast="isLast" :roleInfo="roleInfo"
:activeVoiceId="activeVoiceId"></questionVue>
:activeVoiceId="activeVoiceId" :showVoice="showVoice"></questionVue>
<answerVue v-else-if="talkingType === 'answer'" @changePlay="changePlay" :dataInfo="talkingInfo" :isLast="isLast" :roleInfo="roleInfo"
:isAnswering="props.isAnswering" @handleEvents="handleEvents" :activeVoiceId="activeVoiceId" :isStudy="false">
:isAnswering="props.isAnswering" @handleEvents="handleEvents" :activeVoiceId="activeVoiceId" :isStudy="false" :showVoice="showVoice">
</answerVue>
<view v-else></view>
</view>
@@ -63,6 +63,10 @@
default: false,
type: Boolean
},
showVoice: {
default: true,
type: Boolean
}
})
watch(() => props.activeVoiceId, () => {}, {
deep: true,
@@ -75,7 +79,8 @@
const {
talkingType,
talkingInfo,
roleInfo
roleInfo,
showVoice
} = toRefs(props)
const loadingTips = ref(false)
+4 -2
View File
@@ -41,12 +41,12 @@
<view class="loading-box" v-if="isLoading"></view>
<TalkingPreviewItem class="talk-item" v-for="item in showTalkList" :talkingType="item.type"
:talkingInfo="item" :roleInfo="roleInfo" :traId="traId" :execId="execId" :isAnswering="false"
:activeVoiceId="activeVoiceTalkingItemId" @handleEvents="talkItemEvents"></TalkingPreviewItem>
:activeVoiceId="activeVoiceTalkingItemId" @handleEvents="talkItemEvents" :showVoice="isTalking"></TalkingPreviewItem>
</view>
<view :class="['body-top-collepse-cont', showAllTalk?'show-all':'']">
<TalkingPreviewItem class="talk-item" v-for="item in hideTalkList" :talkingType="item.type"
:talkingInfo="item" :roleInfo="roleInfo" :traId="traId" :execId="execId" :isAnswering="false"
:activeVoiceId="activeVoiceTalkingItemId" @handleEvents="talkItemEvents"></TalkingPreviewItem>
:activeVoiceId="activeVoiceTalkingItemId" @handleEvents="talkItemEvents" :showVoice="isTalking"></TalkingPreviewItem>
</view>
</view>
<view class="body-bottom">
@@ -210,6 +210,7 @@
const negativeList = ref([]) // 劣质话术
const positiveList = ref([]) // 劣质话术
const isLoading = ref(false)
const isTalking = ref(true)
const getData = () => {
isLoading.value = true
partnerChatReport({
@@ -228,6 +229,7 @@
positiveList.value = res.body.positiveList || []
negativeList.value = res.body.negativeList || []
hitBanWords.value = res.body.traPartnerExecuteHisVo?.hitBanWords || ''
isTalking.value = res.body.traPartnerExecuteHisVo?.traInterTyp === '01'
let _evalDimens = res.body.traPartnerSettlement || []
evalDimens.value = _evalDimens.map((t, index) => {
return {