byt-lingxiao-ai 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/AiMessage.vue +12 -18
- package/components/ChatAvatar.vue +8 -1
- package/components/ChatMessageList.vue +29 -10
- package/components/ChatWindow.vue +107 -4
- package/components/ChatWindowHeader.vue +1 -0
- package/components/assets/arrow.png +0 -0
- package/components/assets/empty.png +0 -0
- package/components/assets/entering.png +0 -0
- package/components/assets/logo.png +0 -0
- package/components/assets/normal.png +0 -0
- package/components/assets/output.png +0 -0
- package/components/assets/speaking.png +0 -0
- package/components/assets/think.png +0 -0
- package/components/assets/thinking.png +0 -0
- package/components/assets/waiting.png +0 -0
- package/components/mixins/messageMixin.js +11 -5
- package/dist/img/empty.f36cb82e.png +0 -0
- package/dist/img/entering.4ef198fb.png +0 -0
- package/dist/img/normal.30197a82.png +0 -0
- package/dist/img/output.1dfa94eb.png +0 -0
- package/dist/img/speaking.fa87fedb.png +0 -0
- package/dist/img/thinking.21ad5ca5.png +0 -0
- package/dist/img/waiting.460478ef.png +0 -0
- package/dist/index.common.js +189 -79
- package/dist/index.common.js.map +1 -1
- package/dist/index.css +2 -2
- package/dist/index.umd.js +189 -79
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/components/assets/byt.mp3 +0 -0
- package/dist/img/entering.42f05909.png +0 -0
- package/dist/img/normal.13f08ecb.png +0 -0
- package/dist/img/output.85c6bd8b.png +0 -0
- package/dist/img/speaking.3ce8b666.png +0 -0
- package/dist/img/thinking.05f29a84.png +0 -0
- package/dist/img/waiting.ac21d76e.png +0 -0
package/dist/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.chat-robot[data-v-3d936cb2]{width:150px;height:200px}.chat-robot.entering[data-v-3d936cb2]{background-image:url(img/entering.
|
|
1
|
+
.chat-robot[data-v-3d936cb2]{width:150px;height:200px}.chat-robot.entering[data-v-3d936cb2]{background-image:url(img/entering.4ef198fb.png);background-size:cover}.chat-robot.waiting[data-v-3d936cb2]{background-image:url(img/waiting.460478ef.png);background-size:cover}.chat-robot.speaking[data-v-3d936cb2]{background-image:url(img/speaking.fa87fedb.png);background-size:cover}.chat-ai[data-v-45540794]{display:flex;width:38px;padding:2px 2px 9px 2px;flex-direction:column;align-items:center;gap:6px;border-radius:40px;background:linear-gradient(180deg,#3e5beb,#5ca5f9);box-shadow:0 2px 11.6px 0 rgba(0,0,0,.1);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:box-shadow .2s}.chat-ai[data-v-45540794]:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.2)}.chat-ai[data-v-45540794]:active{cursor:grabbing}.chat-ai-avater[data-v-45540794]{border-radius:67px;border:1px solid #0f66e4;background:#124087;display:flex;width:34px;height:33px;padding:2px 2px 1px 2px;justify-content:center;align-items:center;background-size:cover;background-position:50%}.chat-ai-avater.normal[data-v-45540794]{background-image:url(img/normal.30197a82.png)}.chat-ai-avater.thinking[data-v-45540794]{background-image:url(img/thinking.21ad5ca5.png)}.chat-ai-avater.output[data-v-45540794]{background-image:url(img/output.1dfa94eb.png)}.chat-ai-text[data-v-45540794]{color:#fff;font-family:PingFang SC;font-size:16px;font-style:normal;font-weight:500;line-height:20px;align-self:stretch;display:flex;align-items:center;width:20px;margin:0 auto;text-align:center}.chat-window-header[data-v-7cac9eba]{display:flex;align-items:center;border-bottom:1px solid #eaeaea;background:#fff;padding:16px;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-window-header-title[data-v-7cac9eba]{color:#29414e;font-size:18px;font-weight:900;position:relative;padding-left:36px}.chat-window-header-open[data-v-7cac9eba]{width:24px;height:24px;overflow:hidden;margin-left:auto;margin-right:20px;cursor:pointer}.chat-window-header-title[data-v-7cac9eba]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:32px;height:32px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAABVlBMVEUAAABIZOyWtvucufuNsvx2nfkxUOhIaOwmReYoSOVcf/KgvvsrSeWvyf2bufeBp/phg/M7Weq/z/9Ma+9Lau5DYO14l/ZDYOtSdPCMsPuLr/tTc/AvT+clReRZevCYuftggfKfwf2oxf01Uuenxv6Xt/s2U+lScetFZepihfQ7WOp+pfp3lvV3lfVafPJafPBegPGYu/2Qsv1mh/OBo/p6n/d7ofp7nvpkg/Ngg+9FZe9GYu+vz/9ojPWAq/yJtf6Fr/2BrPyFrPuFsf1+p/tulPhrkfdihfSMuP+Drv12nvlymvlZe/JUdPF4ovpcfvNObe+RvP+Hs/56o/t9pfpwl/hMae5FYu2Pu/9/qfx0m/lkiPVnhfNWd/JRcfBJZ+5HZe1DYexBXuw/XOs7W+o5Vuo3VemOs/yCqvt8pftojfYvTed3oPp7n/hfgvRegfOCpvkvTeilAxCMAAAAPXRSTlMAIJ9P79/fv6+Ab0BAPyDv798Q7+/v39/Pv7+/v7+vkI9/cGBfX19AMO/f3s/Pr6+Qj4+Ab2BfX0BAMC8QOqPNlAAAAc9JREFUOMvNklVz23AQxB3JHGOYqUmTMnP/JGbJIMnM7ED7/V+aTj2q7CTvubed/e3NzdwGHtucHx1E9qOxxAN2PAME1SiC3jT89B57aVe7qQq2MiZMe9DPLi3631cbdVMEfMUoY+x0O+sXC/nNpqWb4oRXlSLJ/3JbzbX5Hc87LUt/SZ3QH0MFyJZqjtXY8vtP+l23NsxJKHecSnMYDfW6psV9QHjgXpVQnpVJMElzJJ/bMM3rzH8/MW1jxGICR9TPQGAHYokSxSr46gGxHoNlWOa2l/+qZUZGpwAI/AcPiAICuUL6bCbfQ4nmeVs98IA9pmgooVRyJleCh5/UinIZ8YCIoVTsL++CKzOdTIWUwpjZ84A3qs0LtEQOZ/osXRiXCYh6wJEgTMApkpl/R25zZSizTC/mAd9AVRQpiYU7twdQI0gwi5j2b9/bn92Y2kYuTzg6GbwN51HpyhmE/VXQ6roeRJh7kTqWkJQb1txuf64UWw3LqZVYWAh9pk+oV7rV6mTn373WbLkMkrlLlZ+Imm41Nxcqc7He6ToYQ6PCA9GsN1Z/3Klctj9oj0hRsYXqtbbr5f2lCE97oGioAsjEH+h1Ihbdj7x+ex54ZPMHPwRk1/kdiX4AAAAASUVORK5CYII=);background-size:cover}.chat-window-header-close[data-v-7cac9eba]{width:24px;height:24px;overflow:hidden;cursor:pointer}.chat-window-message-user[data-v-6a2b6167]{display:flex;justify-content:flex-end}.user-message[data-v-6a2b6167]{max-width:80%;display:flex;padding:8px 12px;justify-content:center;align-items:center;gap:10px;border-radius:12px;background:#e3ecff}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
|
|
2
2
|
/*!
|
|
3
3
|
Theme: GitHub
|
|
4
4
|
Description: Light theme as seen on github.com
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
|
|
9
9
|
Outdated base version: https://github.com/primer/github-syntax-light
|
|
10
10
|
Current colors taken from GitHub's CSS
|
|
11
|
-
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.ai-loading[data-v-
|
|
11
|
+
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.ai-loading[data-v-70c64956]{display:flex;align-items:center;padding:12px 0;height:24px}.dot[data-v-70c64956]{width:8px;height:8px;margin-right:6px;background-color:#86909c;border-radius:50%;animation:dot-bounce-70c64956 1.4s ease-in-out infinite both}.dot[data-v-70c64956]:first-child{animation-delay:-.32s}.dot[data-v-70c64956]:nth-child(2){animation-delay:-.16s}.dot[data-v-70c64956]:nth-child(3){animation-delay:0s}@keyframes dot-bounce-70c64956{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-window-message-ai[data-v-70c64956]{display:flex;gap:12px;align-items:flex-start;max-width:100%;border-radius:12px;background:#f6f8fc;padding:8px 12px}.ai-render[data-v-70c64956]{width:100%}.ai-thinking[data-v-70c64956]{margin-bottom:8px}.ai-thinking-time[data-v-70c64956]{border-radius:9px;background:#ecedf4;color:#86909c;font-family:"Alibaba PuHuiTi 2.0";font-size:16px;font-style:normal;font-weight:500;padding:0 30px 0 30px;height:28px;box-sizing:border-box;display:inline-flex;align-items:center;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.ai-thinking-time[data-v-70c64956]:before{left:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAYFBMVEUAAADu8P/u8P/u8P/u8P/u8P/u8P/s7//v8v/s7//v7//t7//v8f/u8P/l6P/Iz/+stv+1v//S1/9Xbf/b3/+/x/+irv/b4P+Zpv9yhP+Pnv+Glv+Qnv99jf9hdf/R1/8RfKwjAAAADXRSTlMA36/vz5CAYF9QEHBvMEqmkAAAAM9JREFUGNNNkIkSgyAMRAG1niEoouDV///LJvFqZmDgkZ0Nq6SazmiA3FTqrTqDq/SDC7nbE39O9iHQA/S0HL0UzEppG3gfpbsmqPnwXcFtsAQ+Zw032ol7A2vBkaRVRsRpOPbN44r8YFTOinmxKbpjjKPMpQAGmCx6R/6+h2gRgCDe0BGcgKEWecQUpzSuMll+Gs07+rR63C+j9hppDoFdHG2VaiQMXMAtsAUx54jeb87yzeoOibwDh2L/Y3qrUFeV+kYZR/Rgk5OD6Rq5/QAhCBJvrLC2lgAAAABJRU5ErkJggg==) no-repeat;background-size:cover}.ai-thinking-time[data-v-70c64956]:after,.ai-thinking-time[data-v-70c64956]:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px}.ai-thinking-time[data-v-70c64956]:after{right:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAFVBMVEUAAACDj5eGkJyGj5uFj5uGj5uAj5/flAqRAAAAB3RSTlMAIN+ggHAQx7ts8QAAAClJREFUCNdjIBWwCUAZQooQmlHZSAAiYMCsCBFgYAALsRowMDA7kGY8AIDkAfQcVWSDAAAAAElFTkSuQmCC) no-repeat;background-size:cover}.ai-thinking-content[data-v-70c64956]{color:#86909c;font-size:14px;padding:8px 0 8px 12px}.ai-content[data-v-70c64956],.ai-thinking-content[data-v-70c64956]{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:400;line-height:24px}.ai-content[data-v-70c64956]{color:#4e5969;font-size:16px}.markdown-body[data-v-70c64956]{word-wrap:break-word}.markdown-body[data-v-70c64956] h1,.markdown-body[data-v-70c64956] h2,.markdown-body[data-v-70c64956] h3,.markdown-body[data-v-70c64956] h4{margin:16px 0 8px 0;font-weight:600;line-height:1.4;color:#1f2937}.markdown-body[data-v-70c64956] h1{font-size:24px;border-bottom:2px solid #e5e7eb;padding-bottom:8px}.markdown-body[data-v-70c64956] h2{font-size:20px;border-bottom:1px solid #e5e7eb;padding-bottom:6px}.markdown-body[data-v-70c64956] h3{font-size:18px}.markdown-body[data-v-70c64956] h4{font-size:16px}.markdown-body[data-v-70c64956] code{background-color:rgba(175,184,193,.2);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em;font-family:Monaco,Menlo,Consolas,Courier New,monospace;color:#e83e8c}.markdown-body[data-v-70c64956] pre{background-color:#f6f8fa;border-radius:6px;padding:16px;overflow:auto;margin:12px 0;border:1px solid #e1e4e8}.markdown-body[data-v-70c64956] pre code{background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;overflow:visible;padding:0;word-wrap:normal;color:#24292e;font-size:14px}.markdown-body[data-v-70c64956] .table-wrapper{overflow-x:auto;border:1px solid #dfe2e5}.markdown-body[data-v-70c64956] .markdown-table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.1);overflow:hidden}.markdown-body[data-v-70c64956] .markdown-table td,.markdown-body[data-v-70c64956] .markdown-table th{border:1px solid #dfe2e5;padding:10px 14px;text-align:left}.markdown-body[data-v-70c64956] .markdown-table th{background-color:#f3f4f6;font-weight:600;color:#374151}.markdown-body[data-v-70c64956] .markdown-table tr:nth-child(2n){background-color:#f9fafb}.markdown-body[data-v-70c64956] .markdown-table tr:hover{background-color:#f3f4f6;transition:background-color .2s}.markdown-body[data-v-70c64956] ol,.markdown-body[data-v-70c64956] ul{padding-left:24px;margin:8px 0}.markdown-body[data-v-70c64956] li{margin:4px 0;line-height:1.6}.markdown-body[data-v-70c64956] strong{font-weight:600;color:#1f2937}.markdown-body[data-v-70c64956] em{font-style:italic}.markdown-body[data-v-70c64956] del{text-decoration:line-through;opacity:.7}.markdown-body[data-v-70c64956] blockquote{border-left:4px solid #dfe2e5;padding-left:16px;margin:12px 0;color:#6b7280;font-style:italic}.markdown-body[data-v-70c64956] a{color:#3b82f6;text-decoration:none}.markdown-body[data-v-70c64956] a:hover{text-decoration:underline;color:#2563eb}.markdown-body[data-v-70c64956] img{max-width:100%;border-radius:6px;margin:12px 0}.markdown-body[data-v-70c64956] hr{border:none;border-top:1px solid #e5e7eb;margin:16px 0}.markdown-body[data-v-70c64956] br{line-height:.8em}.chat-window-empty[data-v-dfc4454c]{width:300px;height:300px;background:url(img/empty.f36cb82e.png) no-repeat;background-size:cover;margin:auto}.chat-window-content[data-v-dfc4454c]{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.scrollbar-hide[data-v-dfc4454c]::-webkit-scrollbar{display:none}.scrollbar-hide[data-v-dfc4454c]{-ms-overflow-style:none;scrollbar-width:none}[data-v-6f416073] .el-textarea__inner{border:none!important;padding:0 5px;font-family:PingFang SC!important}[data-v-6f416073] .el-textarea__inner::-webkit-scrollbar{width:6px;height:6px}[data-v-6f416073] .el-textarea__inner::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}[data-v-6f416073] .el-textarea__inner::-webkit-scrollbar-track{background:transparent}.chat-window-footer[data-v-6f416073]{padding:16px}.chat-window-textarea[data-v-6f416073]{min-height:99px;max-height:180px;border-radius:8px;border:1px solid #f2f2f2;background:#fff;display:flex;flex-direction:column}.chat-window-input[data-v-6f416073]{padding:10px 12px;font-size:16px;font-family:PingFang SC}.chat-window-bar[data-v-6f416073]{display:flex;justify-content:flex-end;padding:8px}.chat-window-send[data-v-6f416073]{width:70px;height:36px;flex-shrink:0;border-radius:6px;background:rgba(43,128,246,.1);display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-overlay[data-v-1424b8b1]{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;z-index:10000}.chat-window[data-v-1424b8b1]{width:480px;height:740px;border-radius:14px;background:#fff;box-shadow:0 2px 20px 0 rgba(0,0,0,.16);position:absolute;bottom:20px;right:60px;overflow:hidden;display:flex;flex-direction:column}.hidden-audio[data-v-637b4214]{position:absolute;left:-9999px;opacity:0;pointer-events:none}.chat[data-v-637b4214]{position:fixed;bottom:20px;right:10px;z-index:10001}
|
package/dist/index.umd.js
CHANGED
|
@@ -28460,12 +28460,13 @@ if (typeof window !== 'undefined') {
|
|
|
28460
28460
|
var es_iterator_constructor = __webpack_require__(8111);
|
|
28461
28461
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
|
|
28462
28462
|
var es_iterator_for_each = __webpack_require__(7588);
|
|
28463
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=template&id=
|
|
28463
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=template&id=637b4214&scoped=true
|
|
28464
28464
|
var render = function render() {
|
|
28465
28465
|
var _vm = this,
|
|
28466
28466
|
_c = _vm._self._c;
|
|
28467
28467
|
return _c('div', {
|
|
28468
|
-
staticClass: "chat"
|
|
28468
|
+
staticClass: "chat",
|
|
28469
|
+
style: _vm.chatStyle
|
|
28469
28470
|
}, [_c('audio', {
|
|
28470
28471
|
ref: "audioPlayer",
|
|
28471
28472
|
staticClass: "hidden-audio",
|
|
@@ -28487,14 +28488,13 @@ var render = function render() {
|
|
|
28487
28488
|
"status": _vm.avaterStatus
|
|
28488
28489
|
},
|
|
28489
28490
|
on: {
|
|
28490
|
-
"
|
|
28491
|
+
"mousedown": _vm.startDrag
|
|
28491
28492
|
}
|
|
28492
28493
|
}), _c('ChatWindowDialog', {
|
|
28493
28494
|
attrs: {
|
|
28494
28495
|
"messages": _vm.messages,
|
|
28495
28496
|
"input-message": _vm.inputMessage,
|
|
28496
|
-
"think-status": _vm.thinkStatus
|
|
28497
|
-
"loading": _vm.isLoading
|
|
28497
|
+
"think-status": _vm.thinkStatus
|
|
28498
28498
|
},
|
|
28499
28499
|
on: {
|
|
28500
28500
|
"update:inputMessage": function ($event) {
|
|
@@ -28678,15 +28678,15 @@ var component = normalizeComponent(
|
|
|
28678
28678
|
)
|
|
28679
28679
|
|
|
28680
28680
|
/* harmony default export */ var ChatRobot = (component.exports);
|
|
28681
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=template&id=
|
|
28682
|
-
var
|
|
28681
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=template&id=45540794&scoped=true
|
|
28682
|
+
var ChatAvatarvue_type_template_id_45540794_scoped_true_render = function render() {
|
|
28683
28683
|
var _vm = this,
|
|
28684
28684
|
_c = _vm._self._c;
|
|
28685
28685
|
return _c('div', {
|
|
28686
28686
|
staticClass: "chat-ai",
|
|
28687
28687
|
on: {
|
|
28688
|
-
"
|
|
28689
|
-
return _vm.$emit('
|
|
28688
|
+
"mousedown": function ($event) {
|
|
28689
|
+
return _vm.$emit('mousedown');
|
|
28690
28690
|
}
|
|
28691
28691
|
}
|
|
28692
28692
|
}, [_c('div', {
|
|
@@ -28695,7 +28695,7 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render = function render
|
|
|
28695
28695
|
staticClass: "chat-ai-text"
|
|
28696
28696
|
}, [_vm._v(_vm._s(_vm.statusText))])]);
|
|
28697
28697
|
};
|
|
28698
|
-
var
|
|
28698
|
+
var ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns = [];
|
|
28699
28699
|
|
|
28700
28700
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=script&lang=js
|
|
28701
28701
|
/* harmony default export */ var ChatAvatarvue_type_script_lang_js = ({
|
|
@@ -28720,10 +28720,10 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
|
|
|
28720
28720
|
});
|
|
28721
28721
|
;// ./components/ChatAvatar.vue?vue&type=script&lang=js
|
|
28722
28722
|
/* harmony default export */ var components_ChatAvatarvue_type_script_lang_js = (ChatAvatarvue_type_script_lang_js);
|
|
28723
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=style&index=0&id=
|
|
28723
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=style&index=0&id=45540794&prod&scoped=true&lang=css
|
|
28724
28724
|
// extracted by mini-css-extract-plugin
|
|
28725
28725
|
|
|
28726
|
-
;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=
|
|
28726
|
+
;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=45540794&prod&scoped=true&lang=css
|
|
28727
28727
|
|
|
28728
28728
|
;// ./components/ChatAvatar.vue
|
|
28729
28729
|
|
|
@@ -28736,11 +28736,11 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
|
|
|
28736
28736
|
|
|
28737
28737
|
var ChatAvatar_component = normalizeComponent(
|
|
28738
28738
|
components_ChatAvatarvue_type_script_lang_js,
|
|
28739
|
-
|
|
28740
|
-
|
|
28739
|
+
ChatAvatarvue_type_template_id_45540794_scoped_true_render,
|
|
28740
|
+
ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns,
|
|
28741
28741
|
false,
|
|
28742
28742
|
null,
|
|
28743
|
-
"
|
|
28743
|
+
"45540794",
|
|
28744
28744
|
null
|
|
28745
28745
|
|
|
28746
28746
|
)
|
|
@@ -28804,8 +28804,8 @@ var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_render = function
|
|
|
28804
28804
|
};
|
|
28805
28805
|
var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_staticRenderFns = [];
|
|
28806
28806
|
|
|
28807
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=template&id=
|
|
28808
|
-
var
|
|
28807
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=template&id=7cac9eba&scoped=true
|
|
28808
|
+
var ChatWindowHeadervue_type_template_id_7cac9eba_scoped_true_render = function render() {
|
|
28809
28809
|
var _vm = this,
|
|
28810
28810
|
_c = _vm._self._c;
|
|
28811
28811
|
return _c('div', {
|
|
@@ -28890,7 +28890,7 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render = function
|
|
|
28890
28890
|
}
|
|
28891
28891
|
})])])]);
|
|
28892
28892
|
};
|
|
28893
|
-
var
|
|
28893
|
+
var ChatWindowHeadervue_type_template_id_7cac9eba_scoped_true_staticRenderFns = [];
|
|
28894
28894
|
|
|
28895
28895
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=script&lang=js
|
|
28896
28896
|
/* harmony default export */ var ChatWindowHeadervue_type_script_lang_js = ({
|
|
@@ -28904,10 +28904,10 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
|
|
|
28904
28904
|
});
|
|
28905
28905
|
;// ./components/ChatWindowHeader.vue?vue&type=script&lang=js
|
|
28906
28906
|
/* harmony default export */ var components_ChatWindowHeadervue_type_script_lang_js = (ChatWindowHeadervue_type_script_lang_js);
|
|
28907
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=style&index=0&id=
|
|
28907
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=style&index=0&id=7cac9eba&prod&scoped=true&lang=css
|
|
28908
28908
|
// extracted by mini-css-extract-plugin
|
|
28909
28909
|
|
|
28910
|
-
;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=
|
|
28910
|
+
;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=7cac9eba&prod&scoped=true&lang=css
|
|
28911
28911
|
|
|
28912
28912
|
;// ./components/ChatWindowHeader.vue
|
|
28913
28913
|
|
|
@@ -28920,24 +28920,26 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
|
|
|
28920
28920
|
|
|
28921
28921
|
var ChatWindowHeader_component = normalizeComponent(
|
|
28922
28922
|
components_ChatWindowHeadervue_type_script_lang_js,
|
|
28923
|
-
|
|
28924
|
-
|
|
28923
|
+
ChatWindowHeadervue_type_template_id_7cac9eba_scoped_true_render,
|
|
28924
|
+
ChatWindowHeadervue_type_template_id_7cac9eba_scoped_true_staticRenderFns,
|
|
28925
28925
|
false,
|
|
28926
28926
|
null,
|
|
28927
|
-
"
|
|
28927
|
+
"7cac9eba",
|
|
28928
28928
|
null
|
|
28929
28929
|
|
|
28930
28930
|
)
|
|
28931
28931
|
|
|
28932
28932
|
/* harmony default export */ var ChatWindowHeader = (ChatWindowHeader_component.exports);
|
|
28933
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=template&id=
|
|
28934
|
-
var
|
|
28933
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=template&id=dfc4454c&scoped=true
|
|
28934
|
+
var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render = function render() {
|
|
28935
28935
|
var _vm = this,
|
|
28936
28936
|
_c = _vm._self._c;
|
|
28937
28937
|
return _c('div', {
|
|
28938
28938
|
ref: "chatArea",
|
|
28939
28939
|
staticClass: "chat-window-content scrollbar-hide"
|
|
28940
|
-
}, _vm.
|
|
28940
|
+
}, [_vm.messages.length === 0 ? _c('div', {
|
|
28941
|
+
staticClass: "chat-window-empty"
|
|
28942
|
+
}) : _vm._e(), _vm._l(_vm.messages, function (message) {
|
|
28941
28943
|
return _c('div', {
|
|
28942
28944
|
key: message.id,
|
|
28943
28945
|
staticClass: "chat-window-message"
|
|
@@ -28948,18 +28950,17 @@ var ChatMessageListvue_type_template_id_53715846_scoped_true_render = function r
|
|
|
28948
28950
|
}) : _c('AiMessage', {
|
|
28949
28951
|
attrs: {
|
|
28950
28952
|
"message": message,
|
|
28951
|
-
"think-status": _vm.thinkStatus
|
|
28952
|
-
"loading": _vm.isLoading
|
|
28953
|
+
"think-status": _vm.thinkStatus
|
|
28953
28954
|
},
|
|
28954
28955
|
on: {
|
|
28955
|
-
"thinking-
|
|
28956
|
-
return _vm
|
|
28956
|
+
"thinking-toggle": function ($event) {
|
|
28957
|
+
return _vm.handleThinkingToggle(message);
|
|
28957
28958
|
}
|
|
28958
28959
|
}
|
|
28959
28960
|
})], 1);
|
|
28960
|
-
}),
|
|
28961
|
+
})], 2);
|
|
28961
28962
|
};
|
|
28962
|
-
var
|
|
28963
|
+
var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns = [];
|
|
28963
28964
|
|
|
28964
28965
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/UserMessage.vue?vue&type=template&id=6a2b6167&scoped=true
|
|
28965
28966
|
var UserMessagevue_type_template_id_6a2b6167_scoped_true_render = function render() {
|
|
@@ -29011,15 +29012,15 @@ var UserMessage_component = normalizeComponent(
|
|
|
29011
29012
|
)
|
|
29012
29013
|
|
|
29013
29014
|
/* harmony default export */ var UserMessage = (UserMessage_component.exports);
|
|
29014
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=template&id=
|
|
29015
|
-
var
|
|
29015
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=template&id=70c64956&scoped=true
|
|
29016
|
+
var AiMessagevue_type_template_id_70c64956_scoped_true_render = function render() {
|
|
29016
29017
|
var _vm = this,
|
|
29017
29018
|
_c = _vm._self._c;
|
|
29018
29019
|
return _c('div', {
|
|
29019
29020
|
staticClass: "chat-window-message-ai"
|
|
29020
29021
|
}, [_c('div', {
|
|
29021
29022
|
staticClass: "ai-render"
|
|
29022
|
-
}, [_vm.
|
|
29023
|
+
}, [_vm.isLoading ? _c('div', {
|
|
29023
29024
|
staticClass: "ai-loading"
|
|
29024
29025
|
}, [_c('div', {
|
|
29025
29026
|
staticClass: "dot"
|
|
@@ -29031,12 +29032,12 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
|
|
|
29031
29032
|
staticClass: "ai-thinking",
|
|
29032
29033
|
on: {
|
|
29033
29034
|
"click": function ($event) {
|
|
29034
|
-
return _vm.$emit('thinking-
|
|
29035
|
+
return _vm.$emit('thinking-toggle');
|
|
29035
29036
|
}
|
|
29036
29037
|
}
|
|
29037
29038
|
}, [_c('div', {
|
|
29038
29039
|
staticClass: "ai-thinking-time"
|
|
29039
|
-
}, [_vm._v(
|
|
29040
|
+
}, [_vm._v(_vm._s(_vm.message.time ? `思考用时${_vm.message.time}秒` : '思考中...'))]), _vm.thinkingExpanded ? _c('div', {
|
|
29040
29041
|
staticClass: "ai-thinking-content"
|
|
29041
29042
|
}, [_vm._v(_vm._s(_vm.message.thinking))]) : _vm._e()]) : _vm._e(), _c('div', {
|
|
29042
29043
|
staticClass: "ai-content markdown-body",
|
|
@@ -29045,7 +29046,7 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
|
|
|
29045
29046
|
}
|
|
29046
29047
|
})])]);
|
|
29047
29048
|
};
|
|
29048
|
-
var
|
|
29049
|
+
var AiMessagevue_type_template_id_70c64956_scoped_true_staticRenderFns = [];
|
|
29049
29050
|
|
|
29050
29051
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
|
|
29051
29052
|
var es_iterator_filter = __webpack_require__(2489);
|
|
@@ -30859,10 +30860,11 @@ function parseMarkdown(text) {
|
|
|
30859
30860
|
html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank">$1</a>');
|
|
30860
30861
|
html = html.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '<img src="$2" alt="$1" />');
|
|
30861
30862
|
html = html.replace(/^-{3,}$/gm, '<hr>');
|
|
30862
|
-
|
|
30863
|
+
|
|
30864
|
+
// html = html.replace(/\n/g, '<br>');
|
|
30865
|
+
|
|
30863
30866
|
return html;
|
|
30864
30867
|
}
|
|
30865
|
-
|
|
30866
30868
|
// 解析表格
|
|
30867
30869
|
function parseTable(text) {
|
|
30868
30870
|
const lines = text.split('\n');
|
|
@@ -30899,7 +30901,6 @@ function parseTable(text) {
|
|
|
30899
30901
|
}
|
|
30900
30902
|
return result.join('\n');
|
|
30901
30903
|
}
|
|
30902
|
-
|
|
30903
30904
|
// 渲染表格
|
|
30904
30905
|
function renderTable(rows) {
|
|
30905
30906
|
if (rows.length < 2) return rows.join('\n');
|
|
@@ -30929,7 +30930,6 @@ function renderTable(rows) {
|
|
|
30929
30930
|
html += '</table></div>';
|
|
30930
30931
|
return html;
|
|
30931
30932
|
}
|
|
30932
|
-
|
|
30933
30933
|
// HTML 转义
|
|
30934
30934
|
function escapeHtml(text) {
|
|
30935
30935
|
const map = {
|
|
@@ -30947,19 +30947,17 @@ function escapeHtml(text) {
|
|
|
30947
30947
|
message: {
|
|
30948
30948
|
type: Object,
|
|
30949
30949
|
required: true
|
|
30950
|
-
},
|
|
30951
|
-
thinkStatus: {
|
|
30952
|
-
type: Boolean,
|
|
30953
|
-
default: true
|
|
30954
|
-
},
|
|
30955
|
-
loading: {
|
|
30956
|
-
type: Boolean,
|
|
30957
|
-
default: false
|
|
30958
30950
|
}
|
|
30959
30951
|
},
|
|
30960
30952
|
computed: {
|
|
30953
|
+
thinkingExpanded() {
|
|
30954
|
+
return this.message.thinkingExpanded !== false;
|
|
30955
|
+
},
|
|
30961
30956
|
renderedContent() {
|
|
30962
30957
|
return parseMarkdown(this.message.content);
|
|
30958
|
+
},
|
|
30959
|
+
isLoading() {
|
|
30960
|
+
return this.message.loading === true;
|
|
30963
30961
|
}
|
|
30964
30962
|
},
|
|
30965
30963
|
watch: {
|
|
@@ -30970,10 +30968,10 @@ function escapeHtml(text) {
|
|
|
30970
30968
|
});
|
|
30971
30969
|
;// ./components/AiMessage.vue?vue&type=script&lang=js
|
|
30972
30970
|
/* harmony default export */ var components_AiMessagevue_type_script_lang_js = (AiMessagevue_type_script_lang_js);
|
|
30973
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=style&index=0&id=
|
|
30971
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=style&index=0&id=70c64956&prod&scoped=true&lang=css
|
|
30974
30972
|
// extracted by mini-css-extract-plugin
|
|
30975
30973
|
|
|
30976
|
-
;// ./components/AiMessage.vue?vue&type=style&index=0&id=
|
|
30974
|
+
;// ./components/AiMessage.vue?vue&type=style&index=0&id=70c64956&prod&scoped=true&lang=css
|
|
30977
30975
|
|
|
30978
30976
|
;// ./components/AiMessage.vue
|
|
30979
30977
|
|
|
@@ -30986,11 +30984,11 @@ function escapeHtml(text) {
|
|
|
30986
30984
|
|
|
30987
30985
|
var AiMessage_component = normalizeComponent(
|
|
30988
30986
|
components_AiMessagevue_type_script_lang_js,
|
|
30989
|
-
|
|
30990
|
-
|
|
30987
|
+
AiMessagevue_type_template_id_70c64956_scoped_true_render,
|
|
30988
|
+
AiMessagevue_type_template_id_70c64956_scoped_true_staticRenderFns,
|
|
30991
30989
|
false,
|
|
30992
30990
|
null,
|
|
30993
|
-
"
|
|
30991
|
+
"70c64956",
|
|
30994
30992
|
null
|
|
30995
30993
|
|
|
30996
30994
|
)
|
|
@@ -31013,13 +31011,22 @@ var AiMessage_component = normalizeComponent(
|
|
|
31013
31011
|
thinkStatus: {
|
|
31014
31012
|
type: Boolean,
|
|
31015
31013
|
default: true
|
|
31016
|
-
}
|
|
31017
|
-
|
|
31018
|
-
|
|
31019
|
-
|
|
31014
|
+
}
|
|
31015
|
+
},
|
|
31016
|
+
computed: {
|
|
31017
|
+
lastMessageObject() {
|
|
31018
|
+
const len = this.messages.length;
|
|
31019
|
+
if (len === 0) {
|
|
31020
|
+
return null;
|
|
31021
|
+
}
|
|
31022
|
+
return this.messages[len - 1];
|
|
31020
31023
|
}
|
|
31021
31024
|
},
|
|
31022
31025
|
methods: {
|
|
31026
|
+
handleThinkingToggle(message) {
|
|
31027
|
+
console.log('handleThinkingToggle', message);
|
|
31028
|
+
this.$set(message, 'thinkingExpanded', !message.thinkingExpanded);
|
|
31029
|
+
},
|
|
31023
31030
|
scrollToBottom() {
|
|
31024
31031
|
this.$nextTick(() => {
|
|
31025
31032
|
const chatArea = this.$refs.chatArea;
|
|
@@ -31030,20 +31037,23 @@ var AiMessage_component = normalizeComponent(
|
|
|
31030
31037
|
}
|
|
31031
31038
|
},
|
|
31032
31039
|
watch: {
|
|
31033
|
-
|
|
31034
|
-
handler() {
|
|
31035
|
-
|
|
31040
|
+
lastMessageObject: {
|
|
31041
|
+
handler(newMsg) {
|
|
31042
|
+
if (newMsg) {
|
|
31043
|
+
this.scrollToBottom();
|
|
31044
|
+
}
|
|
31036
31045
|
},
|
|
31037
|
-
deep: true
|
|
31046
|
+
deep: true,
|
|
31047
|
+
immediate: true
|
|
31038
31048
|
}
|
|
31039
31049
|
}
|
|
31040
31050
|
});
|
|
31041
31051
|
;// ./components/ChatMessageList.vue?vue&type=script&lang=js
|
|
31042
31052
|
/* harmony default export */ var components_ChatMessageListvue_type_script_lang_js = (ChatMessageListvue_type_script_lang_js);
|
|
31043
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=style&index=0&id=
|
|
31053
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=style&index=0&id=dfc4454c&prod&scoped=true&lang=css
|
|
31044
31054
|
// extracted by mini-css-extract-plugin
|
|
31045
31055
|
|
|
31046
|
-
;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=
|
|
31056
|
+
;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=dfc4454c&prod&scoped=true&lang=css
|
|
31047
31057
|
|
|
31048
31058
|
;// ./components/ChatMessageList.vue
|
|
31049
31059
|
|
|
@@ -31056,11 +31066,11 @@ var AiMessage_component = normalizeComponent(
|
|
|
31056
31066
|
|
|
31057
31067
|
var ChatMessageList_component = normalizeComponent(
|
|
31058
31068
|
components_ChatMessageListvue_type_script_lang_js,
|
|
31059
|
-
|
|
31060
|
-
|
|
31069
|
+
ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render,
|
|
31070
|
+
ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns,
|
|
31061
31071
|
false,
|
|
31062
31072
|
null,
|
|
31063
|
-
"
|
|
31073
|
+
"dfc4454c",
|
|
31064
31074
|
null
|
|
31065
31075
|
|
|
31066
31076
|
)
|
|
@@ -31767,8 +31777,7 @@ class StreamParser {
|
|
|
31767
31777
|
/* harmony default export */ var messageMixin = ({
|
|
31768
31778
|
data() {
|
|
31769
31779
|
return {
|
|
31770
|
-
streamParser: null
|
|
31771
|
-
isLoading: false
|
|
31780
|
+
streamParser: null
|
|
31772
31781
|
};
|
|
31773
31782
|
},
|
|
31774
31783
|
created() {
|
|
@@ -31778,7 +31787,6 @@ class StreamParser {
|
|
|
31778
31787
|
// 约60fps
|
|
31779
31788
|
debug: "production" === 'development'
|
|
31780
31789
|
});
|
|
31781
|
-
this.isLoading = true;
|
|
31782
31790
|
},
|
|
31783
31791
|
methods: {
|
|
31784
31792
|
createAiMessage() {
|
|
@@ -31789,7 +31797,9 @@ class StreamParser {
|
|
|
31789
31797
|
time: '',
|
|
31790
31798
|
thinking: '',
|
|
31791
31799
|
charts: [],
|
|
31792
|
-
content: ''
|
|
31800
|
+
content: '',
|
|
31801
|
+
loading: true,
|
|
31802
|
+
thinkingExpanded: true
|
|
31793
31803
|
};
|
|
31794
31804
|
this.messages.push(message);
|
|
31795
31805
|
this.currentMessage = message;
|
|
@@ -31852,14 +31862,17 @@ class StreamParser {
|
|
|
31852
31862
|
}
|
|
31853
31863
|
console.log(`流处理完成,总耗时: ${duration}ms`);
|
|
31854
31864
|
this.avaterStatus = 'normal';
|
|
31855
|
-
this.isLoading = false;
|
|
31856
31865
|
} catch (error) {
|
|
31857
31866
|
console.error('发送消息失败:', error);
|
|
31858
31867
|
if (this.currentMessage) {
|
|
31859
31868
|
this.currentMessage.content = '抱歉,发生了错误,请重试。';
|
|
31860
31869
|
this.$forceUpdate();
|
|
31861
31870
|
}
|
|
31862
|
-
|
|
31871
|
+
} finally {
|
|
31872
|
+
// 确保加载状态关闭
|
|
31873
|
+
if (this.currentMessage) {
|
|
31874
|
+
this.currentMessage.loading = false;
|
|
31875
|
+
}
|
|
31863
31876
|
}
|
|
31864
31877
|
},
|
|
31865
31878
|
/**
|
|
@@ -31896,7 +31909,9 @@ class StreamParser {
|
|
|
31896
31909
|
handleStreamUpdate(result) {
|
|
31897
31910
|
if (!this.currentMessage) return;
|
|
31898
31911
|
console.log('收到更新:', result);
|
|
31899
|
-
|
|
31912
|
+
if (this.currentMessage.loading) {
|
|
31913
|
+
this.currentMessage.loading = false;
|
|
31914
|
+
}
|
|
31900
31915
|
// 更新思考内容
|
|
31901
31916
|
if (result.thinking) {
|
|
31902
31917
|
this.currentMessage.thinking += result.thinking;
|
|
@@ -31971,14 +31986,45 @@ const FRAME_SIZE = 512;
|
|
|
31971
31986
|
thinkStatus: true,
|
|
31972
31987
|
jumpedTimePoints: new Set(),
|
|
31973
31988
|
SAMPLE_RATE,
|
|
31974
|
-
FRAME_SIZE
|
|
31989
|
+
FRAME_SIZE,
|
|
31990
|
+
dragThreshold: 5,
|
|
31991
|
+
// 拖拽阈值
|
|
31992
|
+
isDragging: false,
|
|
31993
|
+
dragStartX: 0,
|
|
31994
|
+
dragStartY: 0,
|
|
31995
|
+
currentX: 10,
|
|
31996
|
+
currentY: 20,
|
|
31997
|
+
initialX: 10,
|
|
31998
|
+
initialY: 20,
|
|
31999
|
+
hasMoved: false
|
|
31975
32000
|
};
|
|
31976
32001
|
},
|
|
32002
|
+
computed: {
|
|
32003
|
+
chatStyle() {
|
|
32004
|
+
if (this.robotStatus === 'leaving' && !this.visible) {
|
|
32005
|
+
return {
|
|
32006
|
+
right: `${this.currentX}px`,
|
|
32007
|
+
bottom: `${this.currentY}px`,
|
|
32008
|
+
cursor: this.isDragging ? 'grabbing' : 'grab',
|
|
32009
|
+
transition: this.isDragging ? 'none' : 'right 0.3s ease, bottom 0.3s ease'
|
|
32010
|
+
};
|
|
32011
|
+
}
|
|
32012
|
+
return {
|
|
32013
|
+
cursor: 'pointer'
|
|
32014
|
+
};
|
|
32015
|
+
}
|
|
32016
|
+
},
|
|
31977
32017
|
mounted() {
|
|
31978
32018
|
this.initWebSocket();
|
|
31979
32019
|
if (this.appendToBody) {
|
|
31980
32020
|
this.appendToBodyHandler();
|
|
31981
32021
|
}
|
|
32022
|
+
this.$nextTick(() => {
|
|
32023
|
+
const chatEl = this.$el;
|
|
32024
|
+
const style = window.getComputedStyle(chatEl);
|
|
32025
|
+
this.initialX = this.currentX = parseInt(style.right, 10) || 10;
|
|
32026
|
+
this.initialY = this.currentY = parseInt(style.bottom, 10) || 20;
|
|
32027
|
+
});
|
|
31982
32028
|
},
|
|
31983
32029
|
beforeDestroy() {
|
|
31984
32030
|
if (this.appendToBody && this.$el.parentElement === document.body) {
|
|
@@ -31986,10 +32032,74 @@ const FRAME_SIZE = 512;
|
|
|
31986
32032
|
}
|
|
31987
32033
|
this.closeWebSocket();
|
|
31988
32034
|
this.stopRecording();
|
|
32035
|
+
|
|
32036
|
+
// 移除全局事件监听器
|
|
32037
|
+
document.removeEventListener('mousemove', this.onDrag);
|
|
32038
|
+
document.removeEventListener('mouseup', this.stopDrag);
|
|
31989
32039
|
},
|
|
31990
32040
|
methods: {
|
|
31991
32041
|
toggleWindow() {
|
|
31992
32042
|
this.visible = !this.visible;
|
|
32043
|
+
if (this.visible) {
|
|
32044
|
+
this.currentX = this.initialX;
|
|
32045
|
+
this.currentY = this.initialY;
|
|
32046
|
+
}
|
|
32047
|
+
},
|
|
32048
|
+
startDrag() {
|
|
32049
|
+
console.log('startDrag');
|
|
32050
|
+
if (this.robotStatus !== 'leaving' && this.visible) return;
|
|
32051
|
+
this.isDragging = true;
|
|
32052
|
+
this.hasMoved = false;
|
|
32053
|
+
|
|
32054
|
+
// 记录鼠标的初始位置
|
|
32055
|
+
this.dragStartX = event.clientX;
|
|
32056
|
+
this.dragStartY = event.clientY;
|
|
32057
|
+
|
|
32058
|
+
// 绑定全局事件监听器
|
|
32059
|
+
document.addEventListener('mousemove', this.onDrag);
|
|
32060
|
+
document.addEventListener('mouseup', this.stopDrag);
|
|
32061
|
+
},
|
|
32062
|
+
onDrag(event) {
|
|
32063
|
+
if (!this.isDragging) return;
|
|
32064
|
+
|
|
32065
|
+
// 鼠标位移量
|
|
32066
|
+
const deltaX = event.clientX - this.dragStartX;
|
|
32067
|
+
const deltaY = event.clientY - this.dragStartY;
|
|
32068
|
+
if (Math.abs(deltaX) > this.dragThreshold || Math.abs(deltaY) > this.dragThreshold) {
|
|
32069
|
+
console.log('移动超过阈值');
|
|
32070
|
+
this.hasMoved = true; // 只要移动超过阈值,就标记为拖拽
|
|
32071
|
+
}
|
|
32072
|
+
|
|
32073
|
+
// 获取 .chat 容器的尺寸
|
|
32074
|
+
const chatEl = this.$el;
|
|
32075
|
+
const chatWidth = chatEl.offsetWidth;
|
|
32076
|
+
const chatHeight = chatEl.offsetHeight;
|
|
32077
|
+
let newX = this.currentX - deltaX;
|
|
32078
|
+
let newY = this.currentY - deltaY;
|
|
32079
|
+
|
|
32080
|
+
// 视口宽度和高度
|
|
32081
|
+
const viewportWidth = window.innerWidth;
|
|
32082
|
+
const viewportHeight = window.innerHeight;
|
|
32083
|
+
newX = Math.max(0, newX);
|
|
32084
|
+
newX = Math.min(viewportWidth - chatWidth, newX);
|
|
32085
|
+
newY = Math.max(0, newY);
|
|
32086
|
+
newY = Math.min(viewportHeight - chatHeight, newY);
|
|
32087
|
+
|
|
32088
|
+
// 更新位置
|
|
32089
|
+
this.currentX = newX;
|
|
32090
|
+
this.currentY = newY;
|
|
32091
|
+
|
|
32092
|
+
// 重新设置新的拖拽起始点,实现平滑拖拽
|
|
32093
|
+
this.dragStartX = event.clientX;
|
|
32094
|
+
this.dragStartY = event.clientY;
|
|
32095
|
+
},
|
|
32096
|
+
stopDrag() {
|
|
32097
|
+
this.isDragging = false;
|
|
32098
|
+
document.removeEventListener('mousemove', this.onDrag);
|
|
32099
|
+
document.removeEventListener('mouseup', this.stopDrag);
|
|
32100
|
+
if (!this.hasMoved) {
|
|
32101
|
+
this.toggleWindow();
|
|
32102
|
+
}
|
|
31993
32103
|
},
|
|
31994
32104
|
handleThinkingClick() {
|
|
31995
32105
|
this.thinkStatus = !this.thinkStatus;
|
|
@@ -32042,10 +32152,10 @@ const FRAME_SIZE = 512;
|
|
|
32042
32152
|
});
|
|
32043
32153
|
;// ./components/ChatWindow.vue?vue&type=script&lang=js
|
|
32044
32154
|
/* harmony default export */ var components_ChatWindowvue_type_script_lang_js = (ChatWindowvue_type_script_lang_js);
|
|
32045
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=style&index=0&id=
|
|
32155
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=style&index=0&id=637b4214&prod&scoped=true&lang=css
|
|
32046
32156
|
// extracted by mini-css-extract-plugin
|
|
32047
32157
|
|
|
32048
|
-
;// ./components/ChatWindow.vue?vue&type=style&index=0&id=
|
|
32158
|
+
;// ./components/ChatWindow.vue?vue&type=style&index=0&id=637b4214&prod&scoped=true&lang=css
|
|
32049
32159
|
|
|
32050
32160
|
;// ./components/ChatWindow.vue
|
|
32051
32161
|
|
|
@@ -32062,7 +32172,7 @@ var ChatWindow_component = normalizeComponent(
|
|
|
32062
32172
|
staticRenderFns,
|
|
32063
32173
|
false,
|
|
32064
32174
|
null,
|
|
32065
|
-
"
|
|
32175
|
+
"637b4214",
|
|
32066
32176
|
null
|
|
32067
32177
|
|
|
32068
32178
|
)
|