vue-element-ui-x 0.2.2 → 1.0.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.
Files changed (97) hide show
  1. package/lib/components/Attachments/index.js +18 -18
  2. package/lib/components/Bubble/index.js +145 -155
  3. package/lib/components/BubbleList/index.js +180 -207
  4. package/lib/components/Conversations/index.js +14370 -14370
  5. package/lib/components/FilesCard/index.js +5 -5
  6. package/lib/components/Prompts/index.js +25 -25
  7. package/lib/components/Sender/index.js +1606 -1459
  8. package/lib/components/Thinking/index.js +157 -23
  9. package/lib/components/ThoughtChain/index.js +143 -144
  10. package/lib/components/Typewriter/index.js +124 -125
  11. package/lib/components/Welcome/index.js +5 -5
  12. package/lib/index.common.js +1 -1
  13. package/lib/index.esm.js +1 -1
  14. package/lib/index.js +817 -389
  15. package/lib/index.umd.js +1 -1
  16. package/lib/locale/index.js +97 -0
  17. package/lib/locale/lang/ar-SA.js +18 -0
  18. package/lib/locale/lang/ar-SA.umd.js +26 -0
  19. package/lib/locale/lang/ar.js +18 -0
  20. package/lib/locale/lang/ar.umd.js +26 -0
  21. package/lib/locale/lang/de-DE.js +18 -0
  22. package/lib/locale/lang/de-DE.umd.js +26 -0
  23. package/lib/locale/lang/de.js +18 -0
  24. package/lib/locale/lang/de.umd.js +26 -0
  25. package/lib/locale/lang/en.js +18 -0
  26. package/lib/locale/lang/en.umd.js +26 -0
  27. package/lib/locale/lang/es-ES.js +18 -0
  28. package/lib/locale/lang/es-ES.umd.js +26 -0
  29. package/lib/locale/lang/es.js +18 -0
  30. package/lib/locale/lang/es.umd.js +26 -0
  31. package/lib/locale/lang/fr-FR.js +18 -0
  32. package/lib/locale/lang/fr-FR.umd.js +26 -0
  33. package/lib/locale/lang/fr.js +18 -0
  34. package/lib/locale/lang/fr.umd.js +26 -0
  35. package/lib/locale/lang/index.js +50 -0
  36. package/lib/locale/lang/it-IT.js +18 -0
  37. package/lib/locale/lang/it-IT.umd.js +26 -0
  38. package/lib/locale/lang/it.js +18 -0
  39. package/lib/locale/lang/it.umd.js +26 -0
  40. package/lib/locale/lang/ja-JP.js +18 -0
  41. package/lib/locale/lang/ja-JP.umd.js +26 -0
  42. package/lib/locale/lang/ja.js +18 -0
  43. package/lib/locale/lang/ja.umd.js +26 -0
  44. package/lib/locale/lang/ko-KR.js +18 -0
  45. package/lib/locale/lang/ko-KR.umd.js +26 -0
  46. package/lib/locale/lang/ko.js +18 -0
  47. package/lib/locale/lang/ko.umd.js +26 -0
  48. package/lib/locale/lang/pt-BR.js +18 -0
  49. package/lib/locale/lang/pt-BR.umd.js +26 -0
  50. package/lib/locale/lang/ru-RU.js +18 -0
  51. package/lib/locale/lang/ru-RU.umd.js +26 -0
  52. package/lib/locale/lang/zh-CN.js +18 -0
  53. package/lib/locale/lang/zh-CN.umd.js +26 -0
  54. package/lib/locale/lang/zh-TW.js +18 -0
  55. package/lib/locale/lang/zh-TW.umd.js +26 -0
  56. package/lib/locale/mixin.js +9 -0
  57. package/package.json +15 -10
  58. package/src/components/Attachments/src/main.vue +2 -10
  59. package/src/components/Bubble/src/main.vue +288 -299
  60. package/src/components/BubbleList/src/main.vue +2 -19
  61. package/src/components/Conversations/src/main.vue +0 -41
  62. package/src/components/Prompts/src/main.vue +248 -248
  63. package/src/components/Sender/src/components/LoadingButton.vue +37 -39
  64. package/src/components/Sender/src/components/SpeechLoadingButton.vue +41 -43
  65. package/src/components/Sender/src/main.vue +13 -3
  66. package/src/components/Thinking/src/main.vue +13 -9
  67. package/src/components/ThoughtChain/src/main.vue +1 -3
  68. package/src/components/Typewriter/src/main.vue +3 -7
  69. package/src/components/Welcome/src/main.vue +151 -151
  70. package/src/index.js +23 -6
  71. package/src/locale/index.js +97 -0
  72. package/src/locale/lang/ar.js +18 -0
  73. package/src/locale/lang/de.js +18 -0
  74. package/src/locale/lang/en.js +18 -0
  75. package/src/locale/lang/es.js +18 -0
  76. package/src/locale/lang/fr.js +18 -0
  77. package/src/locale/lang/index.js +62 -0
  78. package/src/locale/lang/it.js +18 -0
  79. package/src/locale/lang/ja.js +18 -0
  80. package/src/locale/lang/ko.js +18 -0
  81. package/src/locale/lang/pt-br.js +18 -0
  82. package/src/locale/lang/ru-RU.js +18 -0
  83. package/src/locale/lang/zh-CN.js +18 -0
  84. package/src/locale/lang/zh-TW.js +18 -0
  85. package/src/locale/mixin.js +9 -0
  86. package/src/styles/Attachments.scss +236 -236
  87. package/src/styles/Bubble.scss +5 -4
  88. package/src/styles/BubbleList.scss +148 -148
  89. package/src/styles/Conversations.scss +260 -260
  90. package/src/styles/FilesCard.scss +222 -221
  91. package/src/styles/Prompts.scss +197 -195
  92. package/src/styles/Sender.scss +207 -199
  93. package/src/styles/Thinking.scss +36 -6
  94. package/src/styles/ThoughtChain.scss +113 -113
  95. package/src/styles/Typewriter.scss +66 -66
  96. package/src/styles/var.scss +4 -5
  97. package/src/theme/var.scss +183 -72
@@ -1,299 +1,288 @@
1
- <template>
2
- <div
3
- v-if="!internalDestroyed"
4
- class="el-x-bubble"
5
- :class="{
6
- 'el-x-bubble-start': placement === 'start',
7
- 'el-x-bubble-end': placement === 'end',
8
- 'el-x-bubble-no-style': noStyle,
9
- 'el-x-bubble-is-typing': isTypingClass,
10
- }"
11
- :style="{
12
- '--el-box-shadow-tertiary': `0 1px 2px 0 rgba(0, 0, 0, 0.03),
13
- 0 1px 6px -1px rgba(0, 0, 0, 0.02),
14
- 0 2px 4px 0 rgba(0, 0, 0, 0.02)`,
15
- '--bubble-content-max-width': `${maxWidth}`,
16
- '--el-x-bubble-avatar-placeholder-width': `${
17
- $scopedSlots.avatar || $slots.avatar ? '' : avatarSize + 'px'
18
- }`,
19
- '--el-x-bubble-avatar-placeholder-height': `${
20
- $scopedSlots.avatar || $slots.avatar ? '' : avatarSize + 'px'
21
- }`,
22
- '--el-x-bubble-avatar-placeholder-gap': `${avatarGap}px`,
23
- }"
24
- >
25
- <!-- 头像 -->
26
- <div
27
- v-if="!($scopedSlots.avatar || $slots.avatar) && avatar"
28
- class="el-x-bubble-avatar el-x-bubble-avatar-size"
29
- >
30
- <el-avatar
31
- :size="avatarSize"
32
- :src="avatar"
33
- :shape="avatarShape"
34
- :icon="avatarIcon"
35
- :src-set="avatarSrcSet"
36
- :alt="avatarAlt"
37
- @error="avatarError"
38
- />
39
- </div>
40
- <!-- 头像属性进行占位 -->
41
- <div
42
- v-if="!($scopedSlots.avatar || $slots.avatar) && !avatar && avatarSize"
43
- class="el-x-bubble-avatar-placeholder"
44
- />
45
-
46
- <div
47
- v-if="$scopedSlots.avatar || $slots.avatar"
48
- class="el-x-bubble-avatar"
49
- >
50
- <slot name="avatar" />
51
- </div>
52
-
53
- <!-- 内容 -->
54
- <div class="el-x-bubble-content-wrapper">
55
- <!-- 头部内容 -->
56
- <div
57
- v-if="$scopedSlots.header || $slots.header"
58
- class="el-x-bubble-header"
59
- >
60
- <slot name="header" />
61
- </div>
62
-
63
- <div
64
- class="el-x-bubble-content"
65
- :class="{
66
- 'el-x-bubble-content-loading': loading,
67
- 'el-x-bubble-content-round': shape === 'round',
68
- 'el-x-bubble-content-corner': shape === 'corner',
69
- 'el-x-bubble-content-filled': variant === 'filled',
70
- 'el-x-bubble-content-borderless': variant === 'borderless',
71
- 'el-x-bubble-content-outlined': variant === 'outlined',
72
- 'el-x-bubble-content-shadow': variant === 'shadow',
73
- }"
74
- >
75
- <div
76
- v-if="!loading"
77
- class="el-typewriter"
78
- :class="{
79
- 'no-content': !content,
80
- }"
81
- >
82
- <el-x-typewriter
83
- v-if="!($scopedSlots.content || $slots.content) && content"
84
- ref="typewriterRef"
85
- :typing="_typing"
86
- :content="content"
87
- :is-markdown="isMarkdown"
88
- :is-fog="isFog"
89
- @start="onStart"
90
- @writing="onWriting"
91
- @finish="onFinish"
92
- />
93
- </div>
94
-
95
- <!-- 内容-自定义 -->
96
- <slot
97
- v-if="!internalDestroyed && ($scopedSlots.content || $slots.content) && !loading"
98
- name="content"
99
- />
100
-
101
- <!-- 加载中-默认 -->
102
- <div
103
- v-if="loading && !($scopedSlots.loading || $slots.loading)"
104
- class="el-x-bubble-loading-wrap"
105
- >
106
- <div
107
- v-for="(_, index) in dots"
108
- :key="index"
109
- class="dot"
110
- :style="{ animationDelay: `${index * 0.2}s` }"
111
- />
112
- </div>
113
-
114
- <!-- 加载中-自定义 -->
115
- <div
116
- v-if="loading && ($scopedSlots.loading || $slots.loading)"
117
- class="el-x-bubble-loading-wrap"
118
- >
119
- <slot name="loading" />
120
- </div>
121
- </div>
122
-
123
- <div
124
- v-if="$scopedSlots.footer || $slots.footer"
125
- class="el-x-bubble-footer"
126
- >
127
- <slot name="footer" />
128
- </div>
129
- </div>
130
- </div>
131
- </template>
132
- <script>
133
- import ElXTypewriter from '../../Typewriter/index';
134
-
135
- export default {
136
- name: 'ElXBubble',
137
- components: {
138
- ElXTypewriter,
139
- },
140
- props: {
141
- content: {
142
- type: String,
143
- default: '',
144
- },
145
- reasoning_content: {
146
- type: String,
147
- default: '',
148
- },
149
- avatar: {
150
- type: String,
151
- default: '',
152
- },
153
- placement: {
154
- type: String,
155
- default: 'start',
156
- },
157
- variant: {
158
- type: String,
159
- default: 'filled',
160
- },
161
- maxWidth: {
162
- type: String,
163
- default: '500px',
164
- },
165
- avatarSize: {
166
- type: Number,
167
- default: 0,
168
- },
169
- avatarGap: {
170
- type: Number,
171
- default: 12,
172
- },
173
- avatarShape: {
174
- type: String,
175
- default: 'circle',
176
- },
177
- avatarIcon: {
178
- type: String,
179
- default: '',
180
- },
181
- avatarSrcSet: {
182
- type: String,
183
- default: '',
184
- },
185
- avatarAlt: {
186
- type: String,
187
- default: '',
188
- },
189
- avatarFit: {
190
- type: String,
191
- default: 'cover',
192
- },
193
- noStyle: {
194
- type: Boolean,
195
- default: false,
196
- },
197
- typing: {
198
- type: [Boolean, Object],
199
- default: undefined,
200
- },
201
- loading: {
202
- type: Boolean,
203
- default: false,
204
- },
205
- shape: {
206
- type: String,
207
- default: '',
208
- },
209
- isMarkdown: {
210
- type: Boolean,
211
- default: false,
212
- },
213
- isFog: {
214
- type: Boolean,
215
- default: false,
216
- },
217
- },
218
- data() {
219
- return {
220
- internalDestroyed: false,
221
- isTypingClass: false,
222
- };
223
- },
224
- computed: {
225
- _step() {
226
- if (typeof this.typing === 'object' && this.typing.step) return this.typing.step;
227
- return 2;
228
- },
229
- _suffix() {
230
- if (typeof this.typing === 'object' && this.typing.suffix) return this.typing.suffix;
231
- return '|';
232
- },
233
- _interval() {
234
- if (typeof this.typing === 'object' && this.typing.interval) return this.typing.interval;
235
- return 50;
236
- },
237
- _typing() {
238
- if (typeof this.typing === 'undefined') {
239
- return false;
240
- } else if (typeof this.typing === 'boolean') {
241
- return this.typing;
242
- } else {
243
- return {
244
- suffix: this._suffix,
245
- step: this._step,
246
- interval: this._interval,
247
- };
248
- }
249
- },
250
- dots() {
251
- return [1, 2, 3];
252
- },
253
- },
254
- watch: {
255
- content(newVal, oldVal) {
256
- if (newVal !== oldVal && this.internalDestroyed) {
257
- this.restart();
258
- }
259
- },
260
- },
261
- methods: {
262
- onStart(instance) {
263
- this.$emit('start', instance);
264
- },
265
- onFinish(instance) {
266
- this.isTypingClass = false;
267
- this.$emit('finish', instance);
268
- },
269
- onWriting(instance) {
270
- this.isTypingClass = true;
271
- this.$emit('writing', instance);
272
- },
273
- avatarError(e) {
274
- this.$emit('avatarError', e);
275
- },
276
- interrupt() {
277
- this.$refs.typewriterRef && this.$refs.typewriterRef.interrupt();
278
- },
279
- continueTyping() {
280
- this.$refs.typewriterRef && this.$refs.typewriterRef.continueTyping();
281
- },
282
- restart() {
283
- this.internalDestroyed = false;
284
- this.$refs.typewriterRef && this.$refs.typewriterRef.restart();
285
- },
286
- destroy() {
287
- this.$refs.typewriterRef && this.$refs.typewriterRef.destroy();
288
- this.internalDestroyed = true;
289
- },
290
- },
291
- beforeDestroy() {
292
- this.destroy();
293
- },
294
- };
295
- </script>
296
-
297
- <style lang="scss" scoped>
298
- @import '../../../styles/Bubble.scss';
299
- </style>
1
+ <template>
2
+ <div
3
+ v-if="!internalDestroyed"
4
+ class="el-x-bubble"
5
+ :class="{
6
+ 'el-x-bubble-start': placement === 'start',
7
+ 'el-x-bubble-end': placement === 'end',
8
+ 'el-x-bubble-no-style': noStyle,
9
+ 'el-x-bubble-is-typing': isTypingClass,
10
+ }"
11
+ :style="{
12
+ '--el-box-shadow-tertiary': `0 1px 2px 0 rgba(0, 0, 0, 0.03),
13
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02),
14
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02)`,
15
+ '--bubble-content-max-width': `${maxWidth}`,
16
+ '--el-x-bubble-avatar-placeholder-width': `${
17
+ $scopedSlots.avatar || $slots.avatar ? '' : avatarSize + 'px'
18
+ }`,
19
+ '--el-x-bubble-avatar-placeholder-height': `${
20
+ $scopedSlots.avatar || $slots.avatar ? '' : avatarSize + 'px'
21
+ }`,
22
+ '--el-x-bubble-avatar-placeholder-gap': `${avatarGap}px`,
23
+ }"
24
+ >
25
+ <!-- 头像 -->
26
+ <div
27
+ v-if="!($scopedSlots.avatar || $slots.avatar) && avatar"
28
+ class="el-x-bubble-avatar el-x-bubble-avatar-size"
29
+ >
30
+ <el-avatar
31
+ :size="0"
32
+ :src="avatar"
33
+ :shape="avatarShape"
34
+ :src-set="avatarSrcSet"
35
+ :alt="avatarAlt"
36
+ @error="avatarError"
37
+ />
38
+ </div>
39
+ <!-- 头像属性进行占位 -->
40
+ <div
41
+ v-if="!($scopedSlots.avatar || $slots.avatar) && !avatar && avatarSize"
42
+ class="el-x-bubble-avatar-placeholder"
43
+ />
44
+
45
+ <div
46
+ v-if="$scopedSlots.avatar || $slots.avatar"
47
+ class="el-x-bubble-avatar"
48
+ >
49
+ <slot name="avatar" />
50
+ </div>
51
+
52
+ <!-- 内容 -->
53
+ <div class="el-x-bubble-content-wrapper">
54
+ <!-- 头部内容 -->
55
+ <div
56
+ v-if="$scopedSlots.header || $slots.header"
57
+ class="el-x-bubble-header"
58
+ >
59
+ <slot name="header" />
60
+ </div>
61
+
62
+ <div
63
+ class="el-x-bubble-content"
64
+ :class="{
65
+ 'el-x-bubble-content-loading': loading,
66
+ 'el-x-bubble-content-round': shape === 'round' && !noStyle,
67
+ 'el-x-bubble-content-corner': shape === 'corner' && !noStyle,
68
+ 'el-x-bubble-content-filled': variant === 'filled' && !noStyle,
69
+ 'el-x-bubble-content-borderless': variant === 'borderless' && !noStyle,
70
+ 'el-x-bubble-content-outlined': variant === 'outlined' && !noStyle,
71
+ 'el-x-bubble-content-shadow': variant === 'shadow' && !noStyle,
72
+ }"
73
+ >
74
+ <div
75
+ v-if="!loading"
76
+ class="el-typewriter"
77
+ :class="{
78
+ 'no-content': !content,
79
+ }"
80
+ >
81
+ <el-x-typewriter
82
+ v-if="!($scopedSlots.content || $slots.content) && content"
83
+ ref="typewriterRef"
84
+ :typing="_typing"
85
+ :content="content"
86
+ :is-markdown="isMarkdown"
87
+ :is-fog="isFog"
88
+ @start="onStart"
89
+ @writing="onWriting"
90
+ @finish="onFinish"
91
+ />
92
+ </div>
93
+
94
+ <!-- 内容-自定义 -->
95
+ <slot
96
+ v-if="!internalDestroyed && ($scopedSlots.content || $slots.content) && !loading"
97
+ name="content"
98
+ />
99
+
100
+ <!-- 加载中-默认 -->
101
+ <div
102
+ v-if="loading && !($scopedSlots.loading || $slots.loading)"
103
+ class="el-x-bubble-loading-wrap"
104
+ >
105
+ <div
106
+ v-for="(_, index) in dots"
107
+ :key="index"
108
+ class="dot"
109
+ :style="{ animationDelay: `${index * 0.2}s` }"
110
+ />
111
+ </div>
112
+
113
+ <!-- 加载中-自定义 -->
114
+ <div
115
+ v-if="loading && ($scopedSlots.loading || $slots.loading)"
116
+ class="el-x-bubble-loading-wrap"
117
+ >
118
+ <slot name="loading" />
119
+ </div>
120
+ </div>
121
+
122
+ <div
123
+ v-if="$scopedSlots.footer || $slots.footer"
124
+ class="el-x-bubble-footer"
125
+ >
126
+ <slot name="footer" />
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </template>
131
+ <script>
132
+ import ElXTypewriter from '../../Typewriter/index';
133
+
134
+ export default {
135
+ name: 'ElXBubble',
136
+ components: { ElXTypewriter },
137
+ props: {
138
+ content: {
139
+ type: String,
140
+ default: '',
141
+ },
142
+ avatar: {
143
+ type: String,
144
+ default: '',
145
+ },
146
+ placement: {
147
+ type: String,
148
+ default: 'start',
149
+ },
150
+ variant: {
151
+ type: String,
152
+ default: 'filled',
153
+ },
154
+ maxWidth: {
155
+ type: String,
156
+ default: '500px',
157
+ },
158
+ avatarSize: {
159
+ type: Number,
160
+ default: 0,
161
+ },
162
+ avatarGap: {
163
+ type: Number,
164
+ default: 12,
165
+ },
166
+ avatarShape: {
167
+ type: String,
168
+ default: 'circle',
169
+ },
170
+ avatarSrcSet: {
171
+ type: String,
172
+ default: '',
173
+ },
174
+ avatarAlt: {
175
+ type: String,
176
+ default: '',
177
+ },
178
+ avatarFit: {
179
+ type: String,
180
+ default: 'cover',
181
+ },
182
+ noStyle: {
183
+ type: Boolean,
184
+ default: false,
185
+ },
186
+ typing: {
187
+ type: [Boolean, Object],
188
+ default: undefined,
189
+ },
190
+ loading: {
191
+ type: Boolean,
192
+ default: false,
193
+ },
194
+ shape: {
195
+ type: String,
196
+ default: '',
197
+ },
198
+ isMarkdown: {
199
+ type: Boolean,
200
+ default: false,
201
+ },
202
+ isFog: {
203
+ type: Boolean,
204
+ default: false,
205
+ },
206
+ },
207
+ data() {
208
+ return {
209
+ internalDestroyed: false,
210
+ isTypingClass: false,
211
+ };
212
+ },
213
+ computed: {
214
+ _step() {
215
+ if (typeof this.typing === 'object' && this.typing.step) return this.typing.step;
216
+ return 2;
217
+ },
218
+ _suffix() {
219
+ if (typeof this.typing === 'object' && this.typing.suffix) return this.typing.suffix;
220
+ return '|';
221
+ },
222
+ _interval() {
223
+ if (typeof this.typing === 'object' && this.typing.interval) return this.typing.interval;
224
+ return 50;
225
+ },
226
+ _typing() {
227
+ if (typeof this.typing === 'undefined') {
228
+ return false;
229
+ } else if (typeof this.typing === 'boolean') {
230
+ return this.typing;
231
+ } else {
232
+ return {
233
+ suffix: this._suffix,
234
+ step: this._step,
235
+ interval: this._interval,
236
+ };
237
+ }
238
+ },
239
+ dots() {
240
+ return [1, 2, 3];
241
+ },
242
+ },
243
+ watch: {
244
+ content(newVal, oldVal) {
245
+ if (newVal !== oldVal && this.internalDestroyed) {
246
+ this.restart();
247
+ }
248
+ },
249
+ },
250
+ methods: {
251
+ onStart(instance) {
252
+ this.$emit('start', instance);
253
+ },
254
+ onFinish(instance) {
255
+ this.isTypingClass = false;
256
+ this.$emit('finish', instance);
257
+ },
258
+ onWriting(instance) {
259
+ this.isTypingClass = true;
260
+ this.$emit('writing', instance);
261
+ },
262
+ avatarError(e) {
263
+ this.$emit('avatarError', e);
264
+ },
265
+ interrupt() {
266
+ this.$refs.typewriterRef && this.$refs.typewriterRef.interrupt();
267
+ },
268
+ continueTyping() {
269
+ this.$refs.typewriterRef && this.$refs.typewriterRef.continueTyping();
270
+ },
271
+ restart() {
272
+ this.internalDestroyed = false;
273
+ this.$refs.typewriterRef && this.$refs.typewriterRef.restart();
274
+ },
275
+ destroy() {
276
+ this.$refs.typewriterRef && this.$refs.typewriterRef.destroy();
277
+ this.internalDestroyed = true;
278
+ },
279
+ },
280
+ beforeDestroy() {
281
+ this.destroy();
282
+ },
283
+ };
284
+ </script>
285
+
286
+ <style lang="scss" scoped>
287
+ @import '../../../styles/Bubble.scss';
288
+ </style>
@@ -37,7 +37,6 @@
37
37
  :avatar-size="defaultAvatarSize || item.avatarSize"
38
38
  :avatar-gap="defaultAvatarGap || item.avatarGap"
39
39
  :avatar-shape="defaultAvatarShape || item.avatarShape"
40
- :avatar-icon="defaultAvatarIcon || item.avatarIcon"
41
40
  :avatar-src-set="defaultAvatarSrcSet || item.avatarSrcSet"
42
41
  :avatar-alt="defaultAvatarAlt || item.avatarAlt"
43
42
  :avatar-fit="defaultAvatarFit || item.avatarFit"
@@ -48,19 +47,7 @@
48
47
  <slot
49
48
  name="avatar"
50
49
  :item="item"
51
- >
52
- <template v-if="defaultAvatar || item.avatar">
53
- <el-avatar
54
- :size="defaultAvatarSize || item.avatarSize || 40"
55
- :src="defaultAvatar || item.avatar"
56
- :shape="defaultAvatarShape || item.avatarShape || 'circle'"
57
- :icon="defaultAvatarIcon || item.avatarIcon"
58
- :src-set="defaultAvatarSrcSet || item.avatarSrcSet"
59
- :alt="defaultAvatarAlt || item.avatarAlt"
60
- :fit="defaultAvatarFit || item.avatarFit || 'cover'"
61
- />
62
- </template>
63
- </slot>
50
+ ></slot>
64
51
  </template>
65
52
  <template
66
53
  v-if="$scopedSlots.header || $slots.header"
@@ -129,9 +116,9 @@
129
116
  </template>
130
117
 
131
118
  <script>
119
+ import createScrollDetector from '../../../utils/scrollDetector';
132
120
  import Bubble from '../../Bubble/index.js';
133
121
  import loadingBg from './loading.vue';
134
- import createScrollDetector from '../../../utils/scrollDetector';
135
122
 
136
123
  export default {
137
124
  name: 'ElXBubbleList',
@@ -232,10 +219,6 @@
232
219
  type: String,
233
220
  default: '',
234
221
  },
235
- defaultAvatarIcon: {
236
- type: String,
237
- default: '',
238
- },
239
222
  defaultAvatarSrcSet: {
240
223
  type: String,
241
224
  default: '',