chenrong 9 місяців тому
батько
коміт
8d0721b286

+ 10 - 1
src/views/chat/ChatH5.vue

@@ -19,7 +19,8 @@
           </el-dropdown>
         </div>
       </div>
-      <audio ref="audio" muted v-show="false" :src="audioUrl" autoplay="" @ended="audioEnd" controls></audio>
+      <audio ref="audio" muted v-show="false" :src="audioUrl" autoplay="" @error="handleAudioError" @ended="audioEnd"
+        controls></audio>
       <div class="chatContent" :style="`background-image: url(${baseApi + sceneInfo.background})`">
         <!-- <div class="leftImg">
           <img :src="baseApi + info.picture" alt="">
@@ -1106,6 +1107,14 @@ export default {
         }
       }, 1000)
     },
+    handleAudioError() {
+      if (this.audioUrl) {
+        this.$message({
+          message: '语音生成失败',
+          type: 'error'
+        });
+      }
+    },
     playAudio(index) {
       if (index) {
         this.audioPlayIndex = index

+ 13 - 6
src/views/chat/ChatPC.vue

@@ -247,7 +247,8 @@
               </el-tooltip>
             </div>
           </div>
-          <audio ref="audio" muted v-show="false" :src="audioUrl" autoplay="" @ended="audioEnd" controls></audio>
+          <audio ref="audio" muted v-show="false" :src="audioUrl" autoplay="" @error="handleAudioError" @ended="audioEnd"
+            controls></audio>
           <div class="messages" ref="messages">
             <template v-for="(item, index) in returnMessage">
               <div v-if="item.role == 'assistant'" class="mb-4 flex" :key="index">
@@ -987,7 +988,7 @@ export default {
         this.returnMessage.push({
           role: 'assistant',
           content: this.info.firstContent,
-          uuid: this.info.uuid,
+          uuid: this.info.firstContentWav,
         })
       }
     },
@@ -1337,15 +1338,21 @@ export default {
 
       this.loopGetVoice(history.id, index)
     },
-    audioPlay(audioUrl) {
-      try {
-        this.audioUrl = require(audioUrl);
-      } catch (error) {
+    handleAudioError() {
+      if (this.audioUrl) {
         this.$message({
           message: '语音生成失败',
           type: 'error'
         });
       }
+    },
+    audioPlay(audioUrl) {
+      this.audioUrl = audioUrl
+      // try {
+
+      // } catch (error) {
+
+      // }
       setTimeout(() => {
         if (this.audioUrl && this.audioUrl != 'false') {
           this.$refs.audio.play()

+ 6 - 2
src/views/create/createSceneH5.vue

@@ -125,7 +125,7 @@
         <span>选择要在哪个角色上新增场景?</span>
         <el-tabs v-model="tabActive" @tab-click="handleClickTab">
           <el-tab-pane label="我的角色" name="1">
-            <div class=" grid grid-cols-3 gap-8">
+            <div class="tabContent grid grid-cols-3 gap-8">
               <div v-for="( item, index ) in  userCharacterList " :key="index" @click="selectCharacter(item)">
                 <img class="rounded-full object-cover cursor-pointer w-20 h-20" :src="baseApi + item.picture" alt="">
                 <div class="characterName text-center w-20">{{ item.characterName }}</div>
@@ -133,7 +133,7 @@
             </div>
           </el-tab-pane>
           <el-tab-pane label="热门角色" name="2">
-            <div class=" grid grid-cols-3 gap-8 justify-items-center">
+            <div class="tabContent grid grid-cols-3 gap-8 justify-items-center">
               <div v-for="( item, index ) in  characterList " :key="index" @click="selectCharacter(item)">
                 <img class="rounded-full object-cover cursor-pointer w-20 h-20" :src="baseApi + item.picture" alt="">
                 <div class="characterName text-center w-20">{{ item.characterName }}</div>
@@ -414,6 +414,10 @@ export default {
 .bgActive {
   border: solid 2px var(--bg-color1);
 }
+
+.tabContent {
+  height: calc(100vh - 55px - 60px - 16px - 55px);
+}
 </style>
 <style scoped>
 .radio>>>.el-radio-button {

+ 3 - 3
src/views/create/createScenePC.vue

@@ -110,7 +110,7 @@
         <span>选择要在哪个角色上新增场景?</span>
         <el-tabs v-model="tabActive" @tab-click="handleClickTab">
           <el-tab-pane label="我的角色" name="1">
-            <div class=" grid grid-cols-5 gap-8">
+            <div class=" grid grid-cols-5 gap-8 overflow-y-auto" style="max-height: 500px;">
               <div v-for="(item, index) in userCharacterList" :key="index" @click="selectCharacter(item)">
                 <img class="rounded-full object-cover cursor-pointer w-20 h-20" :src="baseApi + item.picture" alt="">
                 <div class="characterName text-center w-20">{{ item.characterName }}</div>
@@ -118,7 +118,7 @@
             </div>
           </el-tab-pane>
           <el-tab-pane label="热门角色" name="2">
-            <div class=" grid grid-cols-5 gap-8 justify-items-center">
+            <div class=" grid grid-cols-5 gap-8 justify-items-center overflow-y-auto" style="max-height: 500px;">
               <div v-for="(item, index) in characterList" :key="index" @click="selectCharacter(item)">
                 <img class="rounded-full object-cover cursor-pointer w-20 h-20" :src="baseApi + item.picture" alt="">
                 <div class="characterName text-center w-20">{{ item.characterName }}</div>
@@ -218,7 +218,7 @@ export default {
     },
     getCharacterList(query) {
       let params = {
-        pageSize: 10,
+        pageSize: 100,
         pageNum: 1
       }
       if (query) {

+ 1 - 0
src/views/profile/profileH5.vue

@@ -101,6 +101,7 @@ export default {
       this.getCharacterList()
     },
     initCharacterList() {
+      this.noMore = false
       this.characterList = []
       this.query.pageNum = 1
       this.getCharacterList()

+ 1 - 0
src/views/profile/profilePC.vue

@@ -313,6 +313,7 @@ export default {
       this.initCharacterList()
     },
     initCharacterList() {
+      this.noMore = false
       this.characterList = []
       this.query.pageNum = 1
       this.getCharacterList()