1 line
7.0 KiB
JSON
1 line
7.0 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Ai.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Ai.vue","mtime":1742646695805},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmltcG9ydCBNYXJrZG93bkl0IGZyb20gIm1hcmtkb3duLWl0IjsKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQ2hhdEdQVFBhZ2UiLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBtZXNzYWdlOiAiIiwKICAgICAgY2hhdEhpc3Rvcnk6IFt7IG1lc3NhZ2U6ICLmrKLov47kvb/nlKjnq57otZtBSeWKqeaJi++8gSIsIHNlbnRCeVVzZXI6IGZhbHNlIH1dLAogICAgICBzb2NrZXQ6IG51bGwsCiAgICB9OwogIH0sCiAgbW91bnRlZCgpIHsKICAgIHRoaXMuaW5pdGlhbGl6ZVdlYlNvY2tldCgpOwogIH0sCiAgYmVmb3JlRGVzdHJveSgpIHsKICAgIGlmICh0aGlzLnNvY2tldCkgewogICAgICB0aGlzLnNvY2tldC5jbG9zZSgpOyAvLyDlhbPpl60gV2ViU29ja2V0IOi/nuaOpQogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgaW5pdGlhbGl6ZVdlYlNvY2tldCgpIHsKICAgICAgdGhpcy5zb2NrZXQgPSBuZXcgV2ViU29ja2V0KGB3czovLzIyMi4xODYuNTYuMTgzOjg4ODgvd2Vic29ja2V0Q2xpZW50LzNgKTsKICAgICAgdGhpcy5zb2NrZXQub25vcGVuID0gKCkgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCJXZWJTb2NrZXQg6L+e5o6l5bey5bu656uLIik7CiAgICAgIH07CiAgICAgIHRoaXMuc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCLmlLbliLDmtojmga86IiwgZXZlbnQuZGF0YSk7CiAgICAgICAgdGhpcy51cGRhdGVDaGF0SGlzdG9yeShldmVudC5kYXRhLCBmYWxzZSk7CiAgICAgICAgLy8gdmFyIHN0cj0iIgogICAgICAgIC8vIHN0cj1zdHIrZXZlbnQuZGF0YQogICAgICAgIC8vIGNvbnNvbGUubG9nKHN0cik7CiAgICAgICAgLy8g5a6a5pe25ZmoM+enkuWQjue7n+S4gOWPkeWHugogICAgICB9OwogICAgICAvLyBzZXRJbnRlcnZhbCgoKSA9PiB7dGhpcy51cGRhdGVDaGF0SGlzdG9yeShzdHIsIGZhbHNlKTt9LDMwMDApCgogICAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycm9yKSA9PiB7CiAgICAgICAgY29uc29sZS5lcnJvcigiV2ViU29ja2V0IOmUmeivrzoiLCBlcnJvcik7CiAgICAgIH07CiAgICAgIHRoaXMuc29ja2V0Lm9uY2xvc2UgPSAoKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coIldlYlNvY2tldCDov57mjqXlt7LlhbPpl60iKTsKICAgICAgfTsKICAgIH0sCiAgICBzZW5kTWVzc2FnZSgpIHsKICAgICAgY29uc3QgZGF0YSA9IHsgc2Vzc2lvbjogdGhpcy5tZXNzYWdlIH07CiAgICAgIGNvbnNvbGUubG9nKCLlj5HpgIHmtojmga/vvJoiLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7CiAgICAgIHRoaXMudXBkYXRlQ2hhdEhpc3RvcnkodGhpcy5tZXNzYWdlLCB0cnVlKTsKICAgICAgaWYgKHRoaXMuc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7CiAgICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7CiAgICAgIH0KICAgICAgdGhpcy5tZXNzYWdlID0gIiI7CiAgICB9LAogICAgdXBkYXRlQ2hhdEhpc3RvcnkobXNnLCBzZW50QnlVc2VyKSB7CiAgICAgIGlmIChtc2cpIHsKICAgICAgICAvLyDlpoLmnpzmlLbliLDnmoTmtojmga/kuI3kuLrnqbrvvIzliJnlsIblhbbmt7vliqDliLDogYrlpKnljoblj7LkuK0KICAgICAgICB0aGlzLmNoYXRIaXN0b3J5LnB1c2goeyBtZXNzYWdlOiBtc2csIHNlbnRCeVVzZXIgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8g5aaC5p6c5pS25Yiw55qE5raI5oGv5Li656m677yM5YiZ6KGo56S65Zue562U5a6M5oiQCiAgICAgICAgLy8g5bCG5Zue562U55qE5YaF5a655ZCI5bm25bm25re75Yqg5Yiw6IGK5aSp5Y6G5Y+y5LitCiAgICAgICAgbGV0IGFuc3dlciA9ICIiOwogICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5jaGF0SGlzdG9yeSkgewogICAgICAgICAgYW5zd2VyICs9IGVudHJ5Lm1lc3NhZ2U7CiAgICAgICAgfQogICAgICAgIHRoaXMuY2hhdEhpc3RvcnkucHVzaCh7IG1lc3NhZ2U6IGFuc3dlciwgc2VudEJ5VXNlciB9KTsKICAgICAgICAvLyDmuIXnqbrogYrlpKnljoblj7IKICAgICAgICAvLyB0aGlzLmNoYXRIaXN0b3J5ID0gW107CiAgICAgIH0KICAgIH0sCiAgfSwKfTsK"},{"version":3,"sources":["Ai.vue"],"names":[],"mappings":";AAaA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Ai.vue","sourceRoot":"src/views/user","sourcesContent":["<!-- -->\n<template>\n <div style=\"width: 100%; height: 80vh\">\n <iframe\n src=\"http://110.40.62.21:8088/ui/chat/557a7986d311731a\"\n style=\"width: 100%; height: 100%\"\n frameborder=\"0\"\n allow=\"microphone\"\n ></iframe>\n </div>\n</template>\n\n<script>\nimport MarkdownIt from \"markdown-it\";\n\nexport default {\n name: \"ChatGPTPage\",\n data() {\n return {\n message: \"\",\n chatHistory: [{ message: \"欢迎使用竞赛AI助手!\", sentByUser: false }],\n socket: null,\n };\n },\n mounted() {\n this.initializeWebSocket();\n },\n beforeDestroy() {\n if (this.socket) {\n this.socket.close(); // 关闭 WebSocket 连接\n }\n },\n methods: {\n initializeWebSocket() {\n this.socket = new WebSocket(`ws://222.186.56.183:8888/websocketClient/3`);\n this.socket.onopen = () => {\n console.log(\"WebSocket 连接已建立\");\n };\n this.socket.onmessage = (event) => {\n console.log(\"收到消息:\", event.data);\n this.updateChatHistory(event.data, false);\n // var str=\"\"\n // str=str+event.data\n // console.log(str);\n // 定时器3秒后统一发出\n };\n // setInterval(() => {this.updateChatHistory(str, false);},3000)\n\n this.socket.onerror = (error) => {\n console.error(\"WebSocket 错误:\", error);\n };\n this.socket.onclose = () => {\n console.log(\"WebSocket 连接已关闭\");\n };\n },\n sendMessage() {\n const data = { session: this.message };\n console.log(\"发送消息:\", JSON.stringify(data));\n this.updateChatHistory(this.message, true);\n if (this.socket.readyState === WebSocket.OPEN) {\n this.socket.send(JSON.stringify(data));\n }\n this.message = \"\";\n },\n updateChatHistory(msg, sentByUser) {\n if (msg) {\n // 如果收到的消息不为空,则将其添加到聊天历史中\n this.chatHistory.push({ message: msg, sentByUser });\n } else {\n // 如果收到的消息为空,则表示回答完成\n // 将回答的内容合并并添加到聊天历史中\n let answer = \"\";\n for (const entry of this.chatHistory) {\n answer += entry.message;\n }\n this.chatHistory.push({ message: answer, sentByUser });\n // 清空聊天历史\n // this.chatHistory = [];\n }\n },\n },\n};\n</script>\n<style scoped>\n.container {\n overflow-y: auto;\n max-height: 7rem;\n}\n/* 可以在这里添加样式来自定义页面外观 */\n.logo {\n display: flex;\n flex-direction: row;\n justify-content: center;\n font-size: 24px;\n color: #333;\n padding: 16px;\n}\n.sidebar {\n padding: 16px;\n}\n.chat-content {\n padding: 16px;\n}\n.input-box {\n padding: 16px;\n}\n.send {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n}\n</style>\n"]}]} |