ai-error-assistant-pro 0.0.19 → 0.0.21
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/demo/src/chat-tools.vue +1 -1
- package/components/demo/src/chat.vue +44 -2
- package/components/demo/src/error-chat.vue +8 -1
- package/components/demo/src/main.vue +1 -1
- package/dist/ai-error-assistant-pro.common.js +93 -35
- package/dist/ai-error-assistant-pro.common.js.map +1 -1
- package/dist/ai-error-assistant-pro.css +1 -1
- package/dist/ai-error-assistant-pro.umd.js +93 -35
- package/dist/ai-error-assistant-pro.umd.js.map +1 -1
- package/dist/ai-error-assistant-pro.umd.min.js +2 -2
- package/dist/ai-error-assistant-pro.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<img alt="" src="../static/zan-active.png" v-else />
|
|
20
20
|
</div>
|
|
21
21
|
</el-tooltip>
|
|
22
|
-
<el-popover v-model="popover" placement="top-start" trigger="manual">
|
|
22
|
+
<el-popover ref="popoverRef" v-model="popover" placement="top-start" trigger="manual">
|
|
23
23
|
<div slot="reference">
|
|
24
24
|
<el-tooltip content="踩" effect="light" placement="bottom">
|
|
25
25
|
<div class="tools-icon" @click="openPopover" v-if="!listData.cai">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="chat-contain" ref="chatContainer">
|
|
3
|
-
<error-chat :question-stem="analyExercise" :businessSource ="businessSource" @on-init="errorChatInit"/>
|
|
2
|
+
<div class="chat-contain" ref="chatContainer" @scroll="handleScroll">
|
|
3
|
+
<error-chat :question-stem="analyExercise" :businessSource ="businessSource" @on-init="errorChatInit" ref="errorChat"/>
|
|
4
4
|
<div v-for="(list, index) in messageData" :key="index"
|
|
5
5
|
:class="{'user-list': list.type === 'user'}"
|
|
6
6
|
class="message">
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|
|
75
75
|
<chat-tools v-if="list.type === 'robot'"
|
|
76
|
+
:ref="'chatTools' + index"
|
|
76
77
|
:chatId="chatId"
|
|
77
78
|
:detail-data="list"
|
|
78
79
|
:sending="list.sending"
|
|
@@ -140,6 +141,7 @@ export default {
|
|
|
140
141
|
chatId: '', // 对话id
|
|
141
142
|
chatMajorId: '',
|
|
142
143
|
finish: false,
|
|
144
|
+
lastScrollTop: 0,
|
|
143
145
|
}
|
|
144
146
|
},
|
|
145
147
|
computed: {
|
|
@@ -159,6 +161,46 @@ export default {
|
|
|
159
161
|
}
|
|
160
162
|
},
|
|
161
163
|
methods: {
|
|
164
|
+
handleScroll() {
|
|
165
|
+
const container = this.$refs.chatContainer;
|
|
166
|
+
const containerRect = container.getBoundingClientRect();
|
|
167
|
+
// 检查所有消息中的popover是否在可视区域内
|
|
168
|
+
const errorRef = this.$refs.errorChat;
|
|
169
|
+
this.messageData.forEach((_, index) => {
|
|
170
|
+
const ref = this.$refs['chatTools' + index];
|
|
171
|
+
if (ref && ref[0]) {
|
|
172
|
+
// 只有当popover开启时,才去判断它的位置
|
|
173
|
+
if (ref[0].popover) {
|
|
174
|
+
// 通过 ref 属性获取 el-popover 的 DOM 元素
|
|
175
|
+
const popoverEl = ref[0].$refs.popoverRef.$el;
|
|
176
|
+
if (popoverEl) {
|
|
177
|
+
const popoverRect = popoverEl.getBoundingClientRect();
|
|
178
|
+
if (popoverRect.top < containerRect.top || popoverRect.bottom > containerRect.bottom) {
|
|
179
|
+
ref[0].cancelPopover();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// 处理 errorChat 组件内部的 chatTools popover
|
|
187
|
+
const errorChatRef = this.$refs.errorChat;
|
|
188
|
+
if (errorChatRef && errorChatRef.$refs.chatTools) {
|
|
189
|
+
const errorChatToolsRef = errorChatRef.$refs.chatTools;
|
|
190
|
+
// 只有当popover开启时,才去判断它的位置
|
|
191
|
+
if (errorChatToolsRef.popover) {
|
|
192
|
+
const popoverEl = errorChatToolsRef.$refs.popoverRef.$el;
|
|
193
|
+
if (popoverEl) {
|
|
194
|
+
const popoverRect = popoverEl.getBoundingClientRect();
|
|
195
|
+
|
|
196
|
+
// 如果popover的顶部或底部超出 主聊天容器 的可视区域,则关闭它
|
|
197
|
+
if (popoverRect.top < containerRect.top || popoverRect.bottom > containerRect.bottom) {
|
|
198
|
+
errorChatToolsRef.cancelPopover();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
162
204
|
cancelPopover() {
|
|
163
205
|
this.popover = false;
|
|
164
206
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="error-chat-contain">
|
|
2
|
+
<div class="error-chat-contain" @scroll="handleScroll">
|
|
3
3
|
<div class="exercises-answer">
|
|
4
4
|
<div class="exercises-answer-bg"></div>
|
|
5
5
|
<p class="question-stem" v-html="questionStem.title"></p>
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
</div>
|
|
80
80
|
</div>
|
|
81
81
|
<chat-tools type="error"
|
|
82
|
+
ref="chatTools"
|
|
82
83
|
:chatId="chatId"
|
|
83
84
|
:detailData="detailData"
|
|
84
85
|
@on-reanswer="reanswer" />
|
|
@@ -118,6 +119,12 @@ export default {
|
|
|
118
119
|
}
|
|
119
120
|
},
|
|
120
121
|
methods: {
|
|
122
|
+
handleScroll() {
|
|
123
|
+
console.log('scroll');
|
|
124
|
+
if (this.$refs.chatTools) {
|
|
125
|
+
this.$refs.chatTools.cancelPopover();
|
|
126
|
+
}
|
|
127
|
+
},
|
|
121
128
|
async getErrorAnalysis() {
|
|
122
129
|
try {
|
|
123
130
|
this.analysisData = {};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<div class="ai-contain-header">
|
|
5
5
|
<div class="logo-title">
|
|
6
6
|
<img src="../static/logo.png" alt="" style="width: 48px; height: 48px">
|
|
7
|
-
<span class="title-font">AI
|
|
7
|
+
<span class="title-font">AI错题解析</span>
|
|
8
8
|
</div>
|
|
9
9
|
<div class="icon-close" @click="closeMessage">
|
|
10
10
|
<i class="el-icon-close"></i>
|
|
@@ -6546,7 +6546,7 @@ if (typeof window !== 'undefined') {
|
|
|
6546
6546
|
// Indicate to webpack that this file can be concatenated
|
|
6547
6547
|
/* harmony default export */ var setPublicPath = (null);
|
|
6548
6548
|
|
|
6549
|
-
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/main.vue?vue&type=template&id=
|
|
6549
|
+
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/main.vue?vue&type=template&id=236c26cc&scoped=true
|
|
6550
6550
|
var render = function render() {
|
|
6551
6551
|
var _vm = this,
|
|
6552
6552
|
_c = _vm._self._c;
|
|
@@ -6644,19 +6644,23 @@ var staticRenderFns = [function () {
|
|
|
6644
6644
|
}
|
|
6645
6645
|
}), _c('span', {
|
|
6646
6646
|
staticClass: "title-font"
|
|
6647
|
-
}, [_vm._v("AI
|
|
6647
|
+
}, [_vm._v("AI错题解析")])]);
|
|
6648
6648
|
}];
|
|
6649
6649
|
|
|
6650
|
-
;// CONCATENATED MODULE: ./components/demo/src/main.vue?vue&type=template&id=
|
|
6650
|
+
;// CONCATENATED MODULE: ./components/demo/src/main.vue?vue&type=template&id=236c26cc&scoped=true
|
|
6651
6651
|
|
|
6652
|
-
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/chat.vue?vue&type=template&id=
|
|
6653
|
-
var
|
|
6652
|
+
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/chat.vue?vue&type=template&id=610f94f3&scoped=true
|
|
6653
|
+
var chatvue_type_template_id_610f94f3_scoped_true_render = function render() {
|
|
6654
6654
|
var _vm = this,
|
|
6655
6655
|
_c = _vm._self._c;
|
|
6656
6656
|
return _c('div', {
|
|
6657
6657
|
ref: "chatContainer",
|
|
6658
|
-
staticClass: "chat-contain"
|
|
6658
|
+
staticClass: "chat-contain",
|
|
6659
|
+
on: {
|
|
6660
|
+
"scroll": _vm.handleScroll
|
|
6661
|
+
}
|
|
6659
6662
|
}, [_c('error-chat', {
|
|
6663
|
+
ref: "errorChat",
|
|
6660
6664
|
attrs: {
|
|
6661
6665
|
"question-stem": _vm.analyExercise,
|
|
6662
6666
|
"businessSource": _vm.businessSource
|
|
@@ -6758,6 +6762,8 @@ var chatvue_type_template_id_75accbf1_scoped_true_render = function render() {
|
|
|
6758
6762
|
staticClass: "el-icon-arrow-right go-icon"
|
|
6759
6763
|
})]);
|
|
6760
6764
|
}), 0)]) : _vm._e(), list.type === 'robot' ? _c('chat-tools', {
|
|
6765
|
+
ref: 'chatTools' + index,
|
|
6766
|
+
refInFor: true,
|
|
6761
6767
|
attrs: {
|
|
6762
6768
|
"chatId": _vm.chatId,
|
|
6763
6769
|
"detail-data": list,
|
|
@@ -6771,7 +6777,7 @@ var chatvue_type_template_id_75accbf1_scoped_true_render = function render() {
|
|
|
6771
6777
|
}) : _vm._e()], 1)]);
|
|
6772
6778
|
})], 2);
|
|
6773
6779
|
};
|
|
6774
|
-
var
|
|
6780
|
+
var chatvue_type_template_id_610f94f3_scoped_true_staticRenderFns = [];
|
|
6775
6781
|
|
|
6776
6782
|
;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/bind.js
|
|
6777
6783
|
|
|
@@ -11103,8 +11109,8 @@ const getUserInfo = async (token, businessSource, fn) => {
|
|
|
11103
11109
|
cache.session.setJSON('SRKJ_TOKEN_CACHE', token);
|
|
11104
11110
|
if (fn) fn();
|
|
11105
11111
|
};
|
|
11106
|
-
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/chat-tools.vue?vue&type=template&id=
|
|
11107
|
-
var
|
|
11112
|
+
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/chat-tools.vue?vue&type=template&id=882f7ed8&scoped=true
|
|
11113
|
+
var chat_toolsvue_type_template_id_882f7ed8_scoped_true_render = function render() {
|
|
11108
11114
|
var _vm = this,
|
|
11109
11115
|
_c = _vm._self._c;
|
|
11110
11116
|
return _vm.listData ? _c('div', {
|
|
@@ -11160,6 +11166,7 @@ var chat_toolsvue_type_template_id_a40a67cc_scoped_true_render = function render
|
|
|
11160
11166
|
"src": __webpack_require__(793)
|
|
11161
11167
|
}
|
|
11162
11168
|
})])]), _c('el-popover', {
|
|
11169
|
+
ref: "popoverRef",
|
|
11163
11170
|
attrs: {
|
|
11164
11171
|
"placement": "top-start",
|
|
11165
11172
|
"trigger": "manual"
|
|
@@ -11266,9 +11273,9 @@ var chat_toolsvue_type_template_id_a40a67cc_scoped_true_render = function render
|
|
|
11266
11273
|
}
|
|
11267
11274
|
}, [_vm._v("提交")])], 1)], 1)])])], 1)]) : _vm._e();
|
|
11268
11275
|
};
|
|
11269
|
-
var
|
|
11276
|
+
var chat_toolsvue_type_template_id_882f7ed8_scoped_true_staticRenderFns = [];
|
|
11270
11277
|
|
|
11271
|
-
;// CONCATENATED MODULE: ./components/demo/src/chat-tools.vue?vue&type=template&id=
|
|
11278
|
+
;// CONCATENATED MODULE: ./components/demo/src/chat-tools.vue?vue&type=template&id=882f7ed8&scoped=true
|
|
11272
11279
|
|
|
11273
11280
|
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat-tools.vue?vue&type=script&lang=js
|
|
11274
11281
|
|
|
@@ -11369,10 +11376,10 @@ var chat_toolsvue_type_template_id_a40a67cc_scoped_true_staticRenderFns = [];
|
|
|
11369
11376
|
});
|
|
11370
11377
|
;// CONCATENATED MODULE: ./components/demo/src/chat-tools.vue?vue&type=script&lang=js
|
|
11371
11378
|
/* harmony default export */ var src_chat_toolsvue_type_script_lang_js = (chat_toolsvue_type_script_lang_js);
|
|
11372
|
-
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat-tools.vue?vue&type=style&index=0&id=
|
|
11379
|
+
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat-tools.vue?vue&type=style&index=0&id=882f7ed8&prod&lang=scss&scoped=true
|
|
11373
11380
|
// extracted by mini-css-extract-plugin
|
|
11374
11381
|
|
|
11375
|
-
;// CONCATENATED MODULE: ./components/demo/src/chat-tools.vue?vue&type=style&index=0&id=
|
|
11382
|
+
;// CONCATENATED MODULE: ./components/demo/src/chat-tools.vue?vue&type=style&index=0&id=882f7ed8&prod&lang=scss&scoped=true
|
|
11376
11383
|
|
|
11377
11384
|
;// CONCATENATED MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
|
|
11378
11385
|
/* globals __VUE_SSR_CONTEXT__ */
|
|
@@ -11483,22 +11490,25 @@ function normalizeComponent(
|
|
|
11483
11490
|
|
|
11484
11491
|
var component = normalizeComponent(
|
|
11485
11492
|
src_chat_toolsvue_type_script_lang_js,
|
|
11486
|
-
|
|
11487
|
-
|
|
11493
|
+
chat_toolsvue_type_template_id_882f7ed8_scoped_true_render,
|
|
11494
|
+
chat_toolsvue_type_template_id_882f7ed8_scoped_true_staticRenderFns,
|
|
11488
11495
|
false,
|
|
11489
11496
|
null,
|
|
11490
|
-
"
|
|
11497
|
+
"882f7ed8",
|
|
11491
11498
|
null
|
|
11492
11499
|
|
|
11493
11500
|
)
|
|
11494
11501
|
|
|
11495
11502
|
/* harmony default export */ var chat_tools = (component.exports);
|
|
11496
|
-
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/error-chat.vue?vue&type=template&id=
|
|
11497
|
-
var
|
|
11503
|
+
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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/demo/src/error-chat.vue?vue&type=template&id=9097633c&scoped=true
|
|
11504
|
+
var error_chatvue_type_template_id_9097633c_scoped_true_render = function render() {
|
|
11498
11505
|
var _vm = this,
|
|
11499
11506
|
_c = _vm._self._c;
|
|
11500
11507
|
return _c('div', {
|
|
11501
|
-
staticClass: "error-chat-contain"
|
|
11508
|
+
staticClass: "error-chat-contain",
|
|
11509
|
+
on: {
|
|
11510
|
+
"scroll": _vm.handleScroll
|
|
11511
|
+
}
|
|
11502
11512
|
}, [_c('div', {
|
|
11503
11513
|
staticClass: "exercises-answer"
|
|
11504
11514
|
}, [_c('div', {
|
|
@@ -11627,6 +11637,7 @@ var error_chatvue_type_template_id_750eca81_scoped_true_render = function render
|
|
|
11627
11637
|
}
|
|
11628
11638
|
}, [_vm._v(_vm._s(list.title) + " ")]) : _vm._e()]);
|
|
11629
11639
|
}), 0) : _vm._e(), _c('chat-tools', {
|
|
11640
|
+
ref: "chatTools",
|
|
11630
11641
|
attrs: {
|
|
11631
11642
|
"type": "error",
|
|
11632
11643
|
"chatId": _vm.chatId,
|
|
@@ -11637,7 +11648,7 @@ var error_chatvue_type_template_id_750eca81_scoped_true_render = function render
|
|
|
11637
11648
|
}
|
|
11638
11649
|
})], 1)]);
|
|
11639
11650
|
};
|
|
11640
|
-
var
|
|
11651
|
+
var error_chatvue_type_template_id_9097633c_scoped_true_staticRenderFns = [function () {
|
|
11641
11652
|
var _vm = this,
|
|
11642
11653
|
_c = _vm._self._c;
|
|
11643
11654
|
return _c('div', {
|
|
@@ -11656,7 +11667,7 @@ var error_chatvue_type_template_id_750eca81_scoped_true_staticRenderFns = [funct
|
|
|
11656
11667
|
})]);
|
|
11657
11668
|
}];
|
|
11658
11669
|
|
|
11659
|
-
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue?vue&type=template&id=
|
|
11670
|
+
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue?vue&type=template&id=9097633c&scoped=true
|
|
11660
11671
|
|
|
11661
11672
|
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/error-chat.vue?vue&type=script&lang=js
|
|
11662
11673
|
|
|
@@ -11695,6 +11706,12 @@ var error_chatvue_type_template_id_750eca81_scoped_true_staticRenderFns = [funct
|
|
|
11695
11706
|
}
|
|
11696
11707
|
},
|
|
11697
11708
|
methods: {
|
|
11709
|
+
handleScroll() {
|
|
11710
|
+
console.log('scroll');
|
|
11711
|
+
if (this.$refs.chatTools) {
|
|
11712
|
+
this.$refs.chatTools.cancelPopover();
|
|
11713
|
+
}
|
|
11714
|
+
},
|
|
11698
11715
|
async getErrorAnalysis() {
|
|
11699
11716
|
try {
|
|
11700
11717
|
this.analysisData = {};
|
|
@@ -11787,10 +11804,10 @@ var error_chatvue_type_template_id_750eca81_scoped_true_staticRenderFns = [funct
|
|
|
11787
11804
|
});
|
|
11788
11805
|
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue?vue&type=script&lang=js
|
|
11789
11806
|
/* harmony default export */ var src_error_chatvue_type_script_lang_js = (error_chatvue_type_script_lang_js);
|
|
11790
|
-
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/error-chat.vue?vue&type=style&index=0&id=
|
|
11807
|
+
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/error-chat.vue?vue&type=style&index=0&id=9097633c&prod&lang=scss&scoped=true
|
|
11791
11808
|
// extracted by mini-css-extract-plugin
|
|
11792
11809
|
|
|
11793
|
-
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue?vue&type=style&index=0&id=
|
|
11810
|
+
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue?vue&type=style&index=0&id=9097633c&prod&lang=scss&scoped=true
|
|
11794
11811
|
|
|
11795
11812
|
;// CONCATENATED MODULE: ./components/demo/src/error-chat.vue
|
|
11796
11813
|
|
|
@@ -11803,11 +11820,11 @@ var error_chatvue_type_template_id_750eca81_scoped_true_staticRenderFns = [funct
|
|
|
11803
11820
|
|
|
11804
11821
|
var error_chat_component = normalizeComponent(
|
|
11805
11822
|
src_error_chatvue_type_script_lang_js,
|
|
11806
|
-
|
|
11807
|
-
|
|
11823
|
+
error_chatvue_type_template_id_9097633c_scoped_true_render,
|
|
11824
|
+
error_chatvue_type_template_id_9097633c_scoped_true_staticRenderFns,
|
|
11808
11825
|
false,
|
|
11809
11826
|
null,
|
|
11810
|
-
"
|
|
11827
|
+
"9097633c",
|
|
11811
11828
|
null
|
|
11812
11829
|
|
|
11813
11830
|
)
|
|
@@ -14358,7 +14375,8 @@ const signal = controller.signal;
|
|
|
14358
14375
|
chatId: '',
|
|
14359
14376
|
// 对话id
|
|
14360
14377
|
chatMajorId: '',
|
|
14361
|
-
finish: false
|
|
14378
|
+
finish: false,
|
|
14379
|
+
lastScrollTop: 0
|
|
14362
14380
|
};
|
|
14363
14381
|
},
|
|
14364
14382
|
computed: {
|
|
@@ -14378,6 +14396,46 @@ const signal = controller.signal;
|
|
|
14378
14396
|
}
|
|
14379
14397
|
},
|
|
14380
14398
|
methods: {
|
|
14399
|
+
handleScroll() {
|
|
14400
|
+
const container = this.$refs.chatContainer;
|
|
14401
|
+
const containerRect = container.getBoundingClientRect();
|
|
14402
|
+
// 检查所有消息中的popover是否在可视区域内
|
|
14403
|
+
const errorRef = this.$refs.errorChat;
|
|
14404
|
+
this.messageData.forEach((_, index) => {
|
|
14405
|
+
const ref = this.$refs['chatTools' + index];
|
|
14406
|
+
if (ref && ref[0]) {
|
|
14407
|
+
// 只有当popover开启时,才去判断它的位置
|
|
14408
|
+
if (ref[0].popover) {
|
|
14409
|
+
// 通过 ref 属性获取 el-popover 的 DOM 元素
|
|
14410
|
+
const popoverEl = ref[0].$refs.popoverRef.$el;
|
|
14411
|
+
if (popoverEl) {
|
|
14412
|
+
const popoverRect = popoverEl.getBoundingClientRect();
|
|
14413
|
+
if (popoverRect.top < containerRect.top || popoverRect.bottom > containerRect.bottom) {
|
|
14414
|
+
ref[0].cancelPopover();
|
|
14415
|
+
}
|
|
14416
|
+
}
|
|
14417
|
+
}
|
|
14418
|
+
}
|
|
14419
|
+
});
|
|
14420
|
+
|
|
14421
|
+
// 处理 errorChat 组件内部的 chatTools popover
|
|
14422
|
+
const errorChatRef = this.$refs.errorChat;
|
|
14423
|
+
if (errorChatRef && errorChatRef.$refs.chatTools) {
|
|
14424
|
+
const errorChatToolsRef = errorChatRef.$refs.chatTools;
|
|
14425
|
+
// 只有当popover开启时,才去判断它的位置
|
|
14426
|
+
if (errorChatToolsRef.popover) {
|
|
14427
|
+
const popoverEl = errorChatToolsRef.$refs.popoverRef.$el;
|
|
14428
|
+
if (popoverEl) {
|
|
14429
|
+
const popoverRect = popoverEl.getBoundingClientRect();
|
|
14430
|
+
|
|
14431
|
+
// 如果popover的顶部或底部超出 主聊天容器 的可视区域,则关闭它
|
|
14432
|
+
if (popoverRect.top < containerRect.top || popoverRect.bottom > containerRect.bottom) {
|
|
14433
|
+
errorChatToolsRef.cancelPopover();
|
|
14434
|
+
}
|
|
14435
|
+
}
|
|
14436
|
+
}
|
|
14437
|
+
}
|
|
14438
|
+
},
|
|
14381
14439
|
cancelPopover() {
|
|
14382
14440
|
this.popover = false;
|
|
14383
14441
|
},
|
|
@@ -14594,10 +14652,10 @@ const signal = controller.signal;
|
|
|
14594
14652
|
});
|
|
14595
14653
|
;// CONCATENATED MODULE: ./components/demo/src/chat.vue?vue&type=script&lang=js
|
|
14596
14654
|
/* harmony default export */ var src_chatvue_type_script_lang_js = (chatvue_type_script_lang_js);
|
|
14597
|
-
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=style&index=0&id=
|
|
14655
|
+
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/chat.vue?vue&type=style&index=0&id=610f94f3&prod&lang=scss&scoped=true
|
|
14598
14656
|
// extracted by mini-css-extract-plugin
|
|
14599
14657
|
|
|
14600
|
-
;// CONCATENATED MODULE: ./components/demo/src/chat.vue?vue&type=style&index=0&id=
|
|
14658
|
+
;// CONCATENATED MODULE: ./components/demo/src/chat.vue?vue&type=style&index=0&id=610f94f3&prod&lang=scss&scoped=true
|
|
14601
14659
|
|
|
14602
14660
|
;// CONCATENATED MODULE: ./components/demo/src/chat.vue
|
|
14603
14661
|
|
|
@@ -14610,11 +14668,11 @@ const signal = controller.signal;
|
|
|
14610
14668
|
|
|
14611
14669
|
var chat_component = normalizeComponent(
|
|
14612
14670
|
src_chatvue_type_script_lang_js,
|
|
14613
|
-
|
|
14614
|
-
|
|
14671
|
+
chatvue_type_template_id_610f94f3_scoped_true_render,
|
|
14672
|
+
chatvue_type_template_id_610f94f3_scoped_true_staticRenderFns,
|
|
14615
14673
|
false,
|
|
14616
14674
|
null,
|
|
14617
|
-
"
|
|
14675
|
+
"610f94f3",
|
|
14618
14676
|
null
|
|
14619
14677
|
|
|
14620
14678
|
)
|
|
@@ -14878,10 +14936,10 @@ var api = init(defaultConverter, { path: '/' });
|
|
|
14878
14936
|
});
|
|
14879
14937
|
;// CONCATENATED MODULE: ./components/demo/src/main.vue?vue&type=script&lang=js
|
|
14880
14938
|
/* harmony default export */ var src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
|
|
14881
|
-
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=style&index=0&id=
|
|
14939
|
+
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/demo/src/main.vue?vue&type=style&index=0&id=236c26cc&prod&lang=scss&scoped=true
|
|
14882
14940
|
// extracted by mini-css-extract-plugin
|
|
14883
14941
|
|
|
14884
|
-
;// CONCATENATED MODULE: ./components/demo/src/main.vue?vue&type=style&index=0&id=
|
|
14942
|
+
;// CONCATENATED MODULE: ./components/demo/src/main.vue?vue&type=style&index=0&id=236c26cc&prod&lang=scss&scoped=true
|
|
14885
14943
|
|
|
14886
14944
|
;// CONCATENATED MODULE: ./components/demo/src/main.vue
|
|
14887
14945
|
|
|
@@ -14898,7 +14956,7 @@ var main_component = normalizeComponent(
|
|
|
14898
14956
|
staticRenderFns,
|
|
14899
14957
|
false,
|
|
14900
14958
|
null,
|
|
14901
|
-
"
|
|
14959
|
+
"236c26cc",
|
|
14902
14960
|
null
|
|
14903
14961
|
|
|
14904
14962
|
)
|