Sfoglia il codice sorgente

pc版本登录相关

chenrong 1 anno fa
parent
commit
c983cd8b8f

+ 44 - 8
src/views/chat/index.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="chat bg-gray-900 comBg">
+    <Header ref="Header" v-show="false" />
     <div class="flex flex-col items-center justify-center h-screen px-4">
       <!-- onClick={() => navigate('/')} -->
       <div
@@ -89,9 +90,14 @@
 </template>
 
 <script>
+import Header from "@/views/homeComponents/Header.vue"
 import { streamChatWithWebApi } from "@/api/chat.js"
 import { detailApi } from "@/api/detail.js"
+import { Message, MessageBox, Notification, Loading } from 'element-ui'
 export default {
+  components: {
+    Header
+  },
   data() {
     return {
       info: {},
@@ -101,6 +107,7 @@ export default {
     }
   },
   mounted() {
+    console.log(this.$refs.Header, 'this.$refs.Header');
     if (this.$route.query.characterId) {
       this.getDetail(this.$route.query.characterId)
     }
@@ -121,7 +128,7 @@ export default {
       detailApi(id).then(res => {
         console.log(res, '角色详情');
         this.info = res.data
-        let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+        let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
         if (HistoryMessage) {
           this.returnMessage = HistoryMessage
         } else {
@@ -129,7 +136,7 @@ export default {
             role: 'assistant',
             content: this.info.firstContent
           })
-          localStorage.setItem(`[${123},${this.info.id}]`, JSON.stringify(this.returnMessage));
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, JSON.stringify(this.returnMessage));
         }
       })
     },
@@ -138,7 +145,7 @@ export default {
     },
     newStart() {
       // 清空历史数据
-      localStorage.removeItem(`[${123},${this.info.id}]`);
+      localStorage.removeItem(`[userId:${123},aiId:${this.info.id}]`);
       this.returnMessage = []
       this.getDetail(this.info.id)
     },
@@ -156,7 +163,7 @@ export default {
         role: 'user',
         content: this.content
       })
-      let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+      let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
       // 历史记录取最新的20条传给后端
       if (HistoryMessage && HistoryMessage.length > 20) {
         HistoryMessage = HistoryMessage.slice(HistoryMessage.length - 1, 20)
@@ -189,7 +196,7 @@ export default {
           } else {
             HistoryMessage = JSON.stringify(this.returnMessage)
           }
-          localStorage.setItem(`['userId:${123}',${this.info.id}]`, HistoryMessage);
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, HistoryMessage);
 
           clearInterval(messageInterval)
           return
@@ -218,7 +225,7 @@ export default {
         role: 'user',
         content: this.content
       })
-      let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+      let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
       // 历史记录取最新的20条传给后端
       if (HistoryMessage && HistoryMessage.length > 20) {
         HistoryMessage = HistoryMessage.slice(HistoryMessage.length - 1, 20)
@@ -265,7 +272,7 @@ export default {
           } else {
             HistoryMessage = JSON.stringify(this.returnMessage)
           }
-          localStorage.setItem(`[${123},${this.info.id}]`, HistoryMessage);
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, HistoryMessage);
           break;
         }
         
@@ -274,7 +281,7 @@ export default {
         // const txt = decoder.decode(value)
         this.addMessage(txt)
         // let data = JSON.parse(txt).message.content
-        // console.log(txt, 'txt');
+        console.log(txt, 'txt');
         // if (this.isJSON(txt) && JSON.parse(txt).code != 200) {
         //   let data = JSON.parse(txt)
         //   this.$message.error(data.msg)
@@ -285,14 +292,43 @@ export default {
       }
     },
     addMessage(value) {
+      // console.log(value, 'value');
       for (let i = 0; i < value.length; i++) {
         const element = value[i];
         if (this.isJSON(element)) {
+          if(JSON.parse(element).code == 401) {
+            this.returnMessage.splice(this.returnMessage.length - 1, 1)
+            this.noLogin(element)
+            break;
+          }
           let txt = JSON.parse(element).content
           this.returnMessage[this.returnMessage.length - 1].content += txt
         }
       }
     },
+    noLogin(value) {
+      let _this = this
+      MessageBox.confirm(
+        value.content,
+        "系统提示",
+        {
+          confirmButtonText: "前往登录",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
+      .then(() => {
+        // isRelogin.show = false;
+        this.$store.dispatch("LogOut").then(() => {
+          // location.href = "/";
+          
+          _this.$refs.Header.showLogin()
+        });
+      })
+      .catch(() => {
+        // isRelogin.show = false;
+      });
+    },
     isJSON(str) {
       if (typeof str == 'string') {
           try {

+ 7 - 7
src/views/chat/indexH5.vue

@@ -120,7 +120,7 @@ export default {
       detailApi(id).then(res => {
         console.log(res, '角色详情');
         this.info = res.data
-        let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+        let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
         if (HistoryMessage) {
           this.returnMessage = HistoryMessage
         } else {
@@ -128,7 +128,7 @@ export default {
             role: 'assistant',
             content: this.info.firstContent
           })
-          localStorage.setItem(`[${123},${this.info.id}]`, JSON.stringify(this.returnMessage));
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, JSON.stringify(this.returnMessage));
         }
       })
     },
@@ -137,7 +137,7 @@ export default {
     },
     newStart() {
       // 清空历史数据
-      localStorage.removeItem(`[${123},${this.info.id}]`);
+      localStorage.removeItem(`[userId:${123},aiId:${this.info.id}]`);
       this.returnMessage = []
       this.getDetail(this.info.id)
     },
@@ -155,7 +155,7 @@ export default {
         role: 'user',
         content: this.content
       })
-      let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+      let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
       // 历史记录取最新的20条传给后端
       if (HistoryMessage && HistoryMessage.length > 20) {
         HistoryMessage = HistoryMessage.slice(HistoryMessage.length - 1, 20)
@@ -188,7 +188,7 @@ export default {
           } else {
             HistoryMessage = JSON.stringify(this.returnMessage)
           }
-          localStorage.setItem(`[${123},${this.info.id}]`, HistoryMessage);
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, HistoryMessage);
 
           clearInterval(messageInterval)
           return
@@ -217,7 +217,7 @@ export default {
         role: 'user',
         content: this.content
       })
-      let HistoryMessage = JSON.parse(localStorage.getItem(`[${123},${this.info.id}]`));
+      let HistoryMessage = JSON.parse(localStorage.getItem(`[userId:${123},aiId:${this.info.id}]`));
       // 历史记录取最新的20条传给后端
       if (HistoryMessage && HistoryMessage.length > 20) {
         HistoryMessage = HistoryMessage.slice(HistoryMessage.length - 1, 20)
@@ -265,7 +265,7 @@ export default {
           } else {
             HistoryMessage = JSON.stringify(this.returnMessage)
           }
-          localStorage.setItem(`[${123},${this.info.id}]`, HistoryMessage);
+          localStorage.setItem(`[userId:${123},aiId:${this.info.id}]`, HistoryMessage);
           break;
         }
         

+ 1 - 1
src/views/homeComponents/Header.vue

@@ -66,6 +66,7 @@
     <el-dialog
       class="dialog"
       :visible.sync="showPopup"
+      append-to-body
       :show-close="false"
       width="30%"
       :before-close="handleClose">
@@ -223,7 +224,6 @@ export default {
               type: 'success'
             });
             this.showPopup = false
-
           })
         }
       })