Skip to content

Commit 3fecc4f

Browse files
committed
解决 chat 消息多次监听问题
1 parent 006d0dc commit 3fecc4f

File tree

6 files changed

+29
-28
lines changed

6 files changed

+29
-28
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cool-admin-vue",
3-
"version": "3.1.6",
3+
"version": "3.1.7",
44
"scripts": {
55
"serve": "vue-cli-service serve",
66
"build": "vue-cli-service build",

src/cool/modules/chat/components/chat.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,17 @@
1515
:controls="['slot-session', 'cl-flex1', 'fullscreen', 'close']"
1616
>
1717
<div class="cl-chat">
18+
<!-- 会话列表 -->
1819
<chat-session />
1920

20-
<div class="cl-chat__detail" v-if="session">
21+
<div class="cl-chat__detail">
22+
<!-- 消息列表 -->
2123
<chat-message />
22-
<chat-input />
24+
25+
<template v-if="session">
26+
<!-- 输入框 -->
27+
<chat-input />
28+
</template>
2329
</div>
2430
</div>
2531

src/cool/modules/chat/components/message.vue

+7-4
Original file line numberDiff line numberDiff line change
@@ -194,19 +194,22 @@ export default {
194194
}
195195
},
196196
197+
beforeCreate() {
198+
// 销毁事件
199+
eventBus.$off("message.refresh");
200+
eventBus.$off("message.scrollToBottom");
201+
},
202+
197203
created() {
198204
// 监听列表刷新
199205
eventBus.$on("message.refresh", this.refresh);
200206
201207
// 滚动到底部
202208
eventBus.$on("message.scrollToBottom", this.scrollToBottom);
203-
204-
if (this.session) {
205-
this.refresh();
206-
}
207209
},
208210
209211
destroyed() {
212+
// 清除播放
210213
clearTimeout(this.voice.timer);
211214
212215
this.messageList.map(e => {

src/cool/modules/chat/components/session.vue

+5
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ export default {
8989
}
9090
},
9191
92+
beforeCreate() {
93+
// 销毁事件
94+
eventBus.$off("session.refresh");
95+
},
96+
9297
created() {
9398
// 监听列表刷新
9499
eventBus.$on("session.refresh", this.refresh);

src/cool/modules/demo/views/demo.vue

+7-18
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
11
<template>
2-
<el-scrollbar>
3-
<div class="demo">
4-
<el-row :gutter="10">
5-
<el-col
6-
v-for="(item, index) in list"
7-
:key="index"
8-
:xs="24"
9-
:sm="12"
10-
:md="8"
11-
:lg="6"
12-
>
13-
<component :is="item"></component>
14-
</el-col>
15-
</el-row>
16-
</div>
17-
</el-scrollbar>
2+
<div class="demo scroller1">
3+
<el-row :gutter="10">
4+
<el-col v-for="(item, index) in list" :key="index" :xs="24" :sm="12" :md="8" :lg="6">
5+
<component :is="item"></component>
6+
</el-col>
7+
</el-row>
8+
</div>
189
</template>
1910

2011
<script>
@@ -58,8 +49,6 @@ export default {
5849

5950
<style lang="scss">
6051
.demo {
61-
overflow: hidden;
62-
6352
.scope {
6453
background-color: #fff;
6554
border-radius: 3px;

src/cool/modules/demo/views/upload.vue

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="demo-upload">
2+
<div class="demo-upload scroller1">
33
<div class="demo-upload__item">
44
<p>普通上传</p>
55
<cl-upload :before-upload="onBeforeUpload"></cl-upload>
@@ -63,8 +63,6 @@ export default {
6363

6464
<style lang="scss" scoped>
6565
.demo-upload {
66-
overflow: hidden auto;
67-
6866
.demo-upload__item {
6967
margin-bottom: 10px;
7068
background-color: #fff;

0 commit comments

Comments
 (0)