Browse Source

fix:chatgpt返回的消息一直显示在右边

zhangyuantao 1 year ago
parent
commit
c1318025ff
1 changed files with 22 additions and 8 deletions
  1. 22 8
      src/main/resources/templates/index.html

+ 22 - 8
src/main/resources/templates/index.html

@@ -381,6 +381,7 @@
         layim.config({
         layim.config({
             brief: true //是否简约模式(如果true则不显示主面板)
             brief: true //是否简约模式(如果true则不显示主面板)
             , minRight: '370px'
             , minRight: '370px'
+            , isfriend: true
         }).chat({
         }).chat({
             name: 'ChatGPT'
             name: 'ChatGPT'
             , type: 'friend'
             , type: 'friend'
@@ -420,14 +421,24 @@
                         , value: layui.sessionData('chatgpt').myprompt + " A1:" + res.choices[0].text
                         , value: layui.sessionData('chatgpt').myprompt + " A1:" + res.choices[0].text
                     });
                     });
                     layim.setChatStatus('<span style="color:#2ed573;">o( ̄▽ ̄)d 在线</span>');
                     layim.setChatStatus('<span style="color:#2ed573;">o( ̄▽ ̄)d 在线</span>');
-                    layim.getMessage({
-                        username: To.name //消息来源用户名
-                        , avatar: To.avatar //消息来源用户头像
-                        , id: To.id //消息的来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id)
-                        , type: To.type //聊天窗口来源类型,从发送消息传递的to里面获取
-                        , content: res.choices[0].text.trim().replace(/A1:/g, '').replace(/A1:/g, '') //消息内容
-                        , mine: true //是否我发送的消息,如果为true,则会显示在右方
-                    });
+                    if (res.choices[0].text.trim().length != 0) {
+                        layim.getMessage({
+                            username: To.name //消息来源用户名
+                            , avatar: To.avatar //消息来源用户头像
+                            , id: To.id //消息的来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id)
+                            , type: To.type //聊天窗口来源类型,从发送消息传递的to里面获取
+                            , content: res.choices[0].text.trim().replace(/A1:/g, '').replace(/A1:/g, '') //消息内容
+                            , fromid: To.id //消息的发送者id(比如群组中的某个消息发送者),可用于自动解决浏览器多窗口时的一些问题
+                            , mine: false //是否我发送的消息,如果为true,则会显示在右方
+                        });
+                    } else {
+                        layim.getMessage({
+                            system: true //系统消息
+                            , id: -2 //聊天窗口ID
+                            , type: "friend" //聊天窗口类型
+                            , content: 'w(゚Д゚)w 对方不想理你,麻烦稍后再试~'
+                        });
+                    }
                 },
                 },
                 error: function (errMsg) {
                 error: function (errMsg) {
                     if (errMsg.status === 503 || errMsg.status === 429) {
                     if (errMsg.status === 503 || errMsg.status === 429) {
@@ -442,7 +453,10 @@
                     }
                     }
                 }
                 }
             })
             })
+        });
 
 
+        layim.on('chatChange', function(obj){
+            console.log("页面变化");
         });
         });
 
 
     });
     });