vue-element-ui-x 1.0.41-beta → 1.0.43-beta

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 (92) hide show
  1. package/lib/components/Sender/index.js +1 -1
  2. package/lib/components/ThoughtChain/index.js +30 -30
  3. package/lib/index.common.js +1 -1
  4. package/lib/index.esm.js +1 -1
  5. package/lib/index.js +774 -774
  6. package/lib/index.ssr.js +90 -0
  7. package/lib/index.umd.js +1 -1
  8. package/package.json +5 -5
  9. package/src/components/Attachments/index.js +0 -8
  10. package/src/components/Attachments/src/main.vue +0 -529
  11. package/src/components/Bubble/index.js +0 -6
  12. package/src/components/Bubble/src/main.vue +0 -288
  13. package/src/components/BubbleList/index.js +0 -8
  14. package/src/components/BubbleList/src/loading.vue +0 -75
  15. package/src/components/BubbleList/src/main.vue +0 -444
  16. package/src/components/Conversations/index.js +0 -8
  17. package/src/components/Conversations/src/components/item.vue +0 -350
  18. package/src/components/Conversations/src/main.vue +0 -587
  19. package/src/components/FilesCard/index.js +0 -8
  20. package/src/components/FilesCard/src/fileSvg/audio.vue +0 -38
  21. package/src/components/FilesCard/src/fileSvg/changeFileName.bat +0 -18
  22. package/src/components/FilesCard/src/fileSvg/code.vue +0 -35
  23. package/src/components/FilesCard/src/fileSvg/database.vue +0 -94
  24. package/src/components/FilesCard/src/fileSvg/excel.vue +0 -38
  25. package/src/components/FilesCard/src/fileSvg/file.vue +0 -40
  26. package/src/components/FilesCard/src/fileSvg/image.vue +0 -40
  27. package/src/components/FilesCard/src/fileSvg/index.js +0 -46
  28. package/src/components/FilesCard/src/fileSvg/link.vue +0 -54
  29. package/src/components/FilesCard/src/fileSvg/mark.vue +0 -38
  30. package/src/components/FilesCard/src/fileSvg/pdf.vue +0 -38
  31. package/src/components/FilesCard/src/fileSvg/ppt.vue +0 -38
  32. package/src/components/FilesCard/src/fileSvg/three.vue +0 -38
  33. package/src/components/FilesCard/src/fileSvg/txt.vue +0 -38
  34. package/src/components/FilesCard/src/fileSvg/unknown.vue +0 -54
  35. package/src/components/FilesCard/src/fileSvg/video.vue +0 -38
  36. package/src/components/FilesCard/src/fileSvg/word.vue +0 -38
  37. package/src/components/FilesCard/src/fileSvg/zip.vue +0 -38
  38. package/src/components/FilesCard/src/main.vue +0 -403
  39. package/src/components/FilesCard/src/options.js +0 -18
  40. package/src/components/Prompts/index.js +0 -8
  41. package/src/components/Prompts/src/main.vue +0 -248
  42. package/src/components/Sender/index.js +0 -8
  43. package/src/components/Sender/src/components/ClearButton.vue +0 -28
  44. package/src/components/Sender/src/components/Loading.vue +0 -53
  45. package/src/components/Sender/src/components/LoadingButton.vue +0 -37
  46. package/src/components/Sender/src/components/SendButton.vue +0 -26
  47. package/src/components/Sender/src/components/SpeechButton.vue +0 -24
  48. package/src/components/Sender/src/components/SpeechLoading.vue +0 -87
  49. package/src/components/Sender/src/components/SpeechLoadingButton.vue +0 -41
  50. package/src/components/Sender/src/main.vue +0 -803
  51. package/src/components/Thinking/index.js +0 -8
  52. package/src/components/Thinking/src/main.vue +0 -199
  53. package/src/components/ThoughtChain/index.js +0 -8
  54. package/src/components/ThoughtChain/src/main.vue +0 -291
  55. package/src/components/Typewriter/index.js +0 -8
  56. package/src/components/Typewriter/src/main.vue +0 -255
  57. package/src/components/Welcome/index.js +0 -8
  58. package/src/components/Welcome/src/main.vue +0 -151
  59. package/src/index.js +0 -104
  60. package/src/locale/index.js +0 -97
  61. package/src/locale/lang/ar.js +0 -18
  62. package/src/locale/lang/de.js +0 -18
  63. package/src/locale/lang/en.js +0 -18
  64. package/src/locale/lang/es.js +0 -18
  65. package/src/locale/lang/fr.js +0 -18
  66. package/src/locale/lang/index.js +0 -62
  67. package/src/locale/lang/it.js +0 -18
  68. package/src/locale/lang/ja.js +0 -18
  69. package/src/locale/lang/ko.js +0 -18
  70. package/src/locale/lang/pt-br.js +0 -18
  71. package/src/locale/lang/ru-RU.js +0 -18
  72. package/src/locale/lang/zh-CN.js +0 -18
  73. package/src/locale/lang/zh-TW.js +0 -18
  74. package/src/locale/mixin.js +0 -9
  75. package/src/mixins/index.js +0 -49
  76. package/src/mixins/recordMixin.js +0 -117
  77. package/src/mixins/sendMixin.js +0 -450
  78. package/src/mixins/streamMixin.js +0 -497
  79. package/src/styles/Attachments.scss +0 -236
  80. package/src/styles/Bubble.scss +0 -158
  81. package/src/styles/BubbleList.scss +0 -148
  82. package/src/styles/Conversations.scss +0 -283
  83. package/src/styles/FilesCard.scss +0 -222
  84. package/src/styles/Prompts.scss +0 -197
  85. package/src/styles/Sender.scss +0 -207
  86. package/src/styles/Thinking.scss +0 -142
  87. package/src/styles/ThoughtChain.scss +0 -113
  88. package/src/styles/Typewriter.scss +0 -66
  89. package/src/styles/Welcome.scss +0 -283
  90. package/src/theme/var.scss +0 -183
  91. package/src/utils/index.js +0 -199
  92. package/src/utils/scrollDetector.js +0 -34
@@ -1,587 +0,0 @@
1
- <template>
2
- <div
3
- class="el-x-conversations-container"
4
- :style="{
5
- '--conversation-label-height': `${labelHeight}px`,
6
- '--conversation-list-auto-bg-color': mergedStyle.backgroundColor,
7
- }"
8
- >
9
- <slot name="header"></slot>
10
- <ul
11
- class="el-x-conversations-list"
12
- :style="mergedStyle"
13
- >
14
- <!-- 滚动区域容器 -->
15
- <li class="el-x-conversations-scroll-wrapper">
16
- <div
17
- ref="scrollContainer"
18
- class="el-x-conversations-scrollbar"
19
- @scroll="handleScroll"
20
- >
21
- <div class="scroll-content">
22
- <template v-if="shouldUseGrouping">
23
- <!-- 分组显示 -->
24
- <div
25
- v-for="group in groups"
26
- :key="group.key"
27
- :ref="el => bindGroupRef(el, group)"
28
- class="el-x-conversation-group"
29
- >
30
- <div
31
- class="el-x-conversation-group-title sticky-title"
32
- :class="{ 'active-sticky': stickyGroupKeys.has(group.key) }"
33
- >
34
- <slot
35
- name="group-title"
36
- :group="group"
37
- >
38
- {{ group.title }}
39
- </slot>
40
- </div>
41
- <div class="el-x-conversation-group-items">
42
- <conversations-item
43
- v-for="item in group.children"
44
- :key="item.uniqueKey"
45
- :item="item"
46
- :active="item.uniqueKey === active"
47
- :items-style="itemsStyle"
48
- :items-hover-style="itemsHoverStyle"
49
- :items-active-style="itemsActiveStyle"
50
- :items-menu-opened-style="itemsMenuOpenedStyle"
51
- :prefix-icon="item.prefixIcon"
52
- :show-tooltip="showTooltip"
53
- :tooltip-placement="tooltipPlacement"
54
- :tooltip-offset="tooltipOffset"
55
- :suffix-icon="item.suffixIcon"
56
- :active-key="active || ''"
57
- :label-max-width="labelMaxWidth"
58
- :menu="menu"
59
- :show-built-in-menu="showBuiltInMenu"
60
- :menu-placement="menuPlacement"
61
- :menu-style="menuStyle"
62
- :menu-show-arrow="menuShowArrow"
63
- @click="handleClick(item)"
64
- @menu-command="handleMenuItemClick"
65
- >
66
- <!-- 传递插槽 -->
67
- <template
68
- v-if="$scopedSlots.label"
69
- #label
70
- >
71
- <slot
72
- name="label"
73
- :item="item"
74
- ></slot>
75
- </template>
76
-
77
- <template
78
- v-if="$scopedSlots['more-filled']"
79
- #more-filled="moreFilledSoltProps"
80
- >
81
- <slot
82
- name="more-filled"
83
- v-bind="moreFilledSoltProps"
84
- ></slot>
85
- </template>
86
-
87
- <template
88
- v-if="$scopedSlots.menu"
89
- #menu
90
- >
91
- <slot
92
- name="menu"
93
- :item="item"
94
- ></slot>
95
- </template>
96
- </conversations-item>
97
- </div>
98
- </div>
99
- </template>
100
-
101
- <template v-else>
102
- <conversations-item
103
- v-for="item in filteredItems"
104
- :key="item.uniqueKey"
105
- :item="item"
106
- :items-style="itemsStyle"
107
- :items-hover-style="itemsHoverStyle"
108
- :items-active-style="itemsActiveStyle"
109
- :active="item.uniqueKey === active"
110
- :items-menu-opened-style="itemsMenuOpenedStyle"
111
- :prefix-icon="item.prefixIcon"
112
- :show-tooltip="showTooltip"
113
- :tooltip-placement="tooltipPlacement"
114
- :tooltip-offset="tooltipOffset"
115
- :suffix-icon="item.suffixIcon"
116
- :active-key="active || ''"
117
- :label-max-width="labelMaxWidth"
118
- :menu="menu"
119
- :show-built-in-menu="showBuiltInMenu"
120
- :menu-placement="menuPlacement"
121
- :menu-style="menuStyle"
122
- :menu-show-arrow="menuShowArrow"
123
- @click="handleClick(item)"
124
- @menu-command="handleMenuItemClick"
125
- >
126
- <!-- 传递插槽 -->
127
- <template
128
- v-if="$scopedSlots.label"
129
- #label
130
- >
131
- <slot
132
- name="label"
133
- :item="item"
134
- ></slot>
135
- </template>
136
-
137
- <template
138
- v-if="$scopedSlots['more-filled']"
139
- #more-filled="moreFilledSoltProps"
140
- >
141
- <slot
142
- name="more-filled"
143
- v-bind="moreFilledSoltProps"
144
- ></slot>
145
- </template>
146
-
147
- <template
148
- v-if="$scopedSlots.menu"
149
- #menu
150
- >
151
- <slot
152
- name="menu"
153
- :item="item"
154
- ></slot>
155
- </template>
156
- </conversations-item>
157
- </template>
158
-
159
- <!-- 加载更多 -->
160
- <div
161
- v-if="loadMoreLoading"
162
- class="el-x-conversations-load-more"
163
- >
164
- <slot name="load-more">
165
- <i class="el-icon-loading el-x-conversations-load-more-is-loading"></i>
166
- <span>加载更多...</span>
167
- </slot>
168
- </div>
169
- </div>
170
- </div>
171
- </li>
172
- </ul>
173
- <slot name="footer"></slot>
174
- <!-- 滚动到顶部按钮 -->
175
- <el-button
176
- v-show="showScrollTop && showToTopBtn"
177
- class="scroll-to-top-btn"
178
- size="small"
179
- circle
180
- :type="toTopBtnType"
181
- :style="toTopBtnStyle"
182
- @click="scrollToTop"
183
- >
184
- <i class="el-icon-top"></i>
185
- </el-button>
186
- </div>
187
- </template>
188
-
189
- <script>
190
- import { get } from 'lodash';
191
- import ConversationsItem from './components/item.vue';
192
-
193
- export default {
194
- name: 'ElXConversations',
195
-
196
- components: { ConversationsItem },
197
-
198
- props: {
199
- items: {
200
- type: Array,
201
- default: () => [],
202
- },
203
- itemsStyle: {
204
- type: Object,
205
- default: () => ({}),
206
- },
207
- itemsHoverStyle: {
208
- type: Object,
209
- default: () => ({}),
210
- },
211
- itemsActiveStyle: {
212
- type: Object,
213
- default: () => ({}),
214
- },
215
- itemsMenuOpenedStyle: {
216
- type: Object,
217
- default: () => ({}),
218
- },
219
- styleConfig: {
220
- type: Object,
221
- default: () => ({}),
222
- },
223
- showTooltip: {
224
- type: Boolean,
225
- default: false,
226
- },
227
- groupable: {
228
- type: [Boolean, Object],
229
- default: false,
230
- },
231
- labelMaxWidth: {
232
- type: Number,
233
- default: undefined,
234
- },
235
- labelHeight: {
236
- type: Number,
237
- default: 20,
238
- },
239
- showBuiltInMenu: {
240
- type: Boolean,
241
- default: false,
242
- },
243
- menu: {
244
- type: Array,
245
- default: () => [
246
- {
247
- label: '重命名',
248
- key: 'rename',
249
- icon: 'el-icon-edit',
250
- command: 'rename',
251
- },
252
- {
253
- label: '删除',
254
- key: 'delete',
255
- icon: 'el-icon-delete',
256
- command: 'delete',
257
- menuItemHoverStyle: {
258
- color: 'red',
259
- backgroundColor: 'rgba(255, 0, 0, 0.1)',
260
- },
261
- },
262
- ],
263
- },
264
- ungroupedTitle: {
265
- type: String,
266
- default: '未分组',
267
- },
268
- tooltipPlacement: {
269
- type: String,
270
- default: 'top',
271
- },
272
- tooltipOffset: {
273
- type: Number,
274
- default: 12,
275
- },
276
- menuPlacement: {
277
- type: String,
278
- default: 'bottom-start',
279
- },
280
-
281
- menuShowArrow: {
282
- type: Boolean,
283
- default: false,
284
- },
285
- menuClassName: {
286
- type: String,
287
- default: '',
288
- },
289
-
290
- menuStyle: {
291
- type: Object,
292
- default: () => ({}),
293
- },
294
-
295
- loadMoreLoading: {
296
- type: Boolean,
297
- default: false,
298
- },
299
- showToTopBtn: {
300
- type: Boolean,
301
- default: false,
302
- },
303
- toTopBtnType: {
304
- type: String,
305
- default: 'primary',
306
- validator: value =>
307
- ['primary', 'success', 'warning', 'danger', 'info', 'text'].includes(value),
308
- },
309
- toTopBtnStyle: {
310
- type: Object,
311
- default: () => ({}),
312
- },
313
- labelKey: {
314
- type: String,
315
- default: 'label',
316
- },
317
- rowKey: {
318
- type: String,
319
- default: 'id',
320
- },
321
- active: {
322
- type: [String, Number, Boolean],
323
- default: '',
324
- },
325
- loadMore: {
326
- type: Function,
327
- default: null,
328
- },
329
- },
330
-
331
- data() {
332
- return {
333
- showScrollTop: false,
334
- groupRefs: {},
335
- stickyGroupKeys: new Set(),
336
- };
337
- },
338
-
339
- computed: {
340
- itemsUse() {
341
- return this.items.map((item, index) => ({
342
- ...item,
343
- uniqueKey: this.rowKey ? get(item, this.rowKey) : index.toString(),
344
- label: get(item, this.labelKey),
345
- }));
346
- },
347
-
348
- mergedStyle() {
349
- const defaultStyle = {
350
- padding: '10px 0 10px 10px',
351
- backgroundColor: '#fff',
352
- borderRadius: '8px',
353
- width: '280px',
354
- height: '0',
355
- };
356
- return {
357
- ...defaultStyle,
358
- ...this.styleConfig,
359
- };
360
- },
361
-
362
- shouldUseGrouping() {
363
- return !!this.groupable;
364
- },
365
-
366
- filteredItems() {
367
- return this.itemsUse;
368
- },
369
-
370
- groups() {
371
- // 如果不需要分组,则返回空数组
372
- if (!this.shouldUseGrouping) return [];
373
-
374
- // 检查filteredItems是否有值
375
- if (!this.filteredItems || this.filteredItems.length === 0) {
376
- return [];
377
- }
378
-
379
- // 用于存储每个组的项目
380
- const groupMap = {};
381
-
382
- // 使用过滤后的项目进行分组
383
- this.filteredItems.forEach(item => {
384
- let groupName = null;
385
-
386
- // 优先使用item中的group字段
387
- if (item.group) {
388
- groupName = item.group;
389
- }
390
- // 如果没有找到分组,使用未分组
391
- const finalGroupName = groupName || this.ungroupedTitle;
392
-
393
- // 若该组尚未创建,则创建一个新组
394
- if (!groupMap[finalGroupName]) {
395
- groupMap[finalGroupName] = {
396
- title: finalGroupName,
397
- key: finalGroupName,
398
- children: [],
399
- isUngrouped: !groupName, // 如果没有找到组名,则标记为未分组
400
- };
401
- }
402
-
403
- // 将项目添加到相应的组中
404
- groupMap[finalGroupName].children.push(item);
405
- });
406
-
407
- // 将分组转换为数组
408
- const groupArray = Object.values(groupMap);
409
-
410
- // 如果有自定义排序函数,使用它排序
411
- if (typeof this.groupable === 'object' && this.groupable.sort) {
412
- return groupArray.sort((a, b) => {
413
- // 确保未分组总是在最后
414
- if (a.isUngrouped) return 1;
415
- if (b.isUngrouped) return -1;
416
-
417
- const sortFn = this.groupable.sort;
418
- return sortFn ? sortFn(a.key, b.key) : 0;
419
- });
420
- }
421
-
422
- // 否则只确保未分组在最后,不做其他排序
423
- return groupArray.sort((a, b) => {
424
- // 确保未分组总是在最后
425
- if (a.isUngrouped) return 1;
426
- if (b.isUngrouped) return -1;
427
-
428
- // 不做其他排序
429
- return 0;
430
- });
431
- },
432
- },
433
-
434
- mounted() {
435
- // 如果有分组,默认将第一个分组设置为吸顶状态
436
- if (this.shouldUseGrouping && this.groups.length > 0) {
437
- // 添加第一个组的key到吸顶状态集合中
438
- this.stickyGroupKeys.add(this.groups[0].key);
439
- }
440
- },
441
-
442
- methods: {
443
- handleClick(item) {
444
- // 如果是disabled状态,则不允许选中
445
- if (item.disabled) return;
446
- this.$emit('change', item);
447
- },
448
-
449
- handleScroll(e) {
450
- // 获取滚动容器
451
- const scrollContainer = this.$refs.scrollContainer;
452
- if (!scrollContainer) return;
453
-
454
- const scrollTop = scrollContainer.scrollTop;
455
-
456
- // 显示/隐藏回到顶部按钮
457
- this.showScrollTop = scrollTop > 200;
458
-
459
- // 检查是否需要加载更多
460
- const bottomOffset = 20;
461
- const scrollHeight = scrollContainer.scrollHeight;
462
- const clientHeight = scrollContainer.clientHeight;
463
-
464
- // 计算是否接近底部
465
- const isNearBottom = scrollHeight - scrollTop - clientHeight < bottomOffset;
466
-
467
- if (isNearBottom) {
468
- this.loadMoreData();
469
- }
470
-
471
- // 更新吸顶状态
472
- this.updateStickyStatus();
473
- },
474
-
475
- updateStickyStatus() {
476
- if (!this.shouldUseGrouping || this.groups.length === 0) return;
477
-
478
- // 先清空当前的吸顶组
479
- this.stickyGroupKeys.clear();
480
-
481
- // 获取滚动容器
482
- const scrollContainer = this.$refs.scrollContainer;
483
- if (!scrollContainer) return;
484
-
485
- // 如果只有一个分组,直接设置为吸顶状态
486
- if (this.groups.length === 1) {
487
- this.stickyGroupKeys.add(this.groups[0].key);
488
- return;
489
- }
490
-
491
- const scrollContainerTop = scrollContainer.getBoundingClientRect().top;
492
- const containerHeight = scrollContainer.clientHeight;
493
- const scrollHeight = scrollContainer.scrollHeight;
494
- const scrollTop = scrollContainer.scrollTop;
495
-
496
- // 判断是否已经滚动到底部
497
- const isNearBottom = scrollHeight - scrollTop - containerHeight < 20;
498
-
499
- // 如果已接近底部,直接使最后一个分组吸顶
500
- if (isNearBottom && this.groups.length > 0) {
501
- this.stickyGroupKeys.add(this.groups[this.groups.length - 1].key);
502
- return;
503
- }
504
-
505
- // 检查每个分组的位置
506
- const visibleGroups = [];
507
-
508
- // 收集所有可见的分组
509
- for (const group of this.groups) {
510
- const groupElement = this.groupRefs[group.key];
511
- if (groupElement) {
512
- const groupRect = groupElement.getBoundingClientRect();
513
- const relativeTop = groupRect.top - scrollContainerTop;
514
-
515
- // 分组至少部分可见
516
- if (relativeTop < containerHeight && relativeTop + groupRect.height > 0) {
517
- visibleGroups.push({
518
- group,
519
- relativeTop,
520
- height: groupRect.height,
521
- });
522
- }
523
- }
524
- }
525
-
526
- // 对可见分组按相对位置排序
527
- visibleGroups.sort((a, b) => a.relativeTop - b.relativeTop);
528
-
529
- // 如果有可见分组
530
- if (visibleGroups.length > 0) {
531
- // 寻找第一个完全进入视口的分组
532
- const fullyVisibleGroup = visibleGroups.find(g => g.relativeTop >= 0);
533
-
534
- if (fullyVisibleGroup) {
535
- // 如果有完全进入视口的分组,选择它
536
- this.stickyGroupKeys.add(fullyVisibleGroup.group.key);
537
- } else {
538
- // 否则选择第一个部分可见的分组(通常是标题已经滚出但内容还可见的)
539
- this.stickyGroupKeys.add(visibleGroups[0].group.key);
540
- }
541
- } else if (this.groups.length > 0) {
542
- // 如果没有可见分组,则选择第一个分组
543
- this.stickyGroupKeys.add(this.groups[0].key);
544
- }
545
- },
546
-
547
- loadMoreData() {
548
- if (!this.loadMore) return;
549
- this.loadMore();
550
- // 确保loading元素可见
551
- this.$nextTick(() => {
552
- const scrollContainer = this.$refs.scrollContainer;
553
- if (scrollContainer) {
554
- // 滚动到底部,确保loading元素可见
555
- scrollContainer.scrollTop = scrollContainer.scrollHeight;
556
- }
557
- });
558
- },
559
-
560
- scrollToTop() {
561
- if (this.$refs.scrollContainer) {
562
- this.$refs.scrollContainer.scrollTop = 0;
563
- }
564
-
565
- // 确保吸顶组状态也被重置
566
- if (this.shouldUseGrouping && this.groups.length > 0) {
567
- this.stickyGroupKeys.clear();
568
- this.stickyGroupKeys.add(this.groups[0].key);
569
- }
570
- },
571
-
572
- handleMenuItemClick(command, item) {
573
- this.$emit('menu-command', command, item);
574
- },
575
-
576
- bindGroupRef(el, item) {
577
- if (el) {
578
- this.groupRefs[item.key] = el;
579
- }
580
- },
581
- },
582
- };
583
- </script>
584
-
585
- <style lang="scss">
586
- @import '../../../styles/Conversations.scss';
587
- </style>
@@ -1,8 +0,0 @@
1
- import ElXFilesCard from './src/main.vue';
2
-
3
- /* istanbul ignore next */
4
- ElXFilesCard.install = function (Vue) {
5
- Vue.component(ElXFilesCard.name, ElXFilesCard);
6
- };
7
-
8
- export default ElXFilesCard;
@@ -1,38 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- xmlns:xlink="http://www.w3.org/1999/xlink"
5
- fill="none"
6
- version="1.1"
7
- width="1em"
8
- height="1em"
9
- viewBox="0 0 150 175"
10
- >
11
- <g>
12
- <g>
13
- <path
14
- d="M103.622,0L27.5981,0C12.355,0,0,12.3648,0,27.6155L0,147.384C0,162.637,12.357,175,27.5981,175L122.402,175C137.645,175,150,162.635,150,147.384L150,46.405C150,40.1855,147.532,34.2219,143.136,29.8255L120.191,6.86627C115.797,2.46982,109.837,0,103.622,0Z"
15
- fill="currentColor"
16
- fill-opacity="1"
17
- style="mix-blend-mode: passthrough"
18
- />
19
- </g>
20
- <g>
21
- <path
22
- d="M143.7801,30.808L120.8914,6.73925C117.6075,3.28624,113.4198,0.940079,108.86269999999999,0L108.86269999999999,27.0143C108.86269999999999,35.591,115.4741,42.5433,123.6303,42.5433L150,42.5433C149.003,38.1003,146.849,34.0369,143.7801,30.808ZM112.2728,63.4637C112.273,62.2072,111.6695,61.0158,110.6263,60.2131C109.58279999999999,59.4109,108.20830000000001,59.0807,106.8757,59.3119L63.9774,66.7645C61.8208,67.1384,60.2595,68.883,60.2595,70.9164L60.2891,108.928C59.1133,108.527,57.8701,108.322,56.6172,108.323C50.752629999999996,108.323,46,112.728,46,118.161C46,123.596,50.75427,128,56.6172,128C62.4801,128,67.2343,123.594,67.2343,118.161L67.2343,82.3036L105.3292,75.6853L105.3292,101.475C104.1534,101.074,102.9102,100.869,101.65729999999999,100.87C95.7928,100.87,91.0401,105.276,91.0401,110.709C91.0401,116.142,95.7944,120.547,101.65729999999999,120.547C107.5202,120.547,112.2745,116.142,112.2745,110.709Q112.2728,110.528,112.2728,63.4637Z"
23
- fill="#000000"
24
- fill-opacity="0.20000000298023224"
25
- style="mix-blend-mode: passthrough"
26
- />
27
- </g>
28
- <g>
29
- <path
30
- d="M107.9983,59.48451C107.9984,58.15049,107.361,56.88564,106.2592,56.03341C105.1571,55.181845,103.7053,54.831213,102.2977,55.0766483L56.987899999999996,62.98886C54.7101,63.38576,53.061099999999996,65.238,53.061099999999996,67.3967L53.0923,107.7516C51.8504,107.3258,50.5373,107.1084,49.214,107.1094C43.01979,107.1094,38,111.7867,38,117.5547C38,123.3243,43.02153,128,49.214,128C55.4065,128,60.428,123.3227,60.428,117.5547L60.428,79.4861L100.6643,72.4596L100.6643,99.8394C99.42240000000001,99.4136,98.10929999999999,99.1962,96.786,99.19720000000001C90.5918,99.19720000000001,85.572,103.8745,85.572,109.6425C85.572,115.4105,90.5935,120.0878,96.786,120.0878C102.9785,120.0878,108,115.4105,108,109.6425Q107.9983,109.4505,107.9983,59.48451Z"
31
- fill="#FFFFFF"
32
- fill-opacity="1"
33
- style="mix-blend-mode: passthrough"
34
- />
35
- </g>
36
- </g>
37
- </svg>
38
- </template>
@@ -1,18 +0,0 @@
1
- @echo off
2
- chcp 65001 >nul
3
- rem 开启延迟环境变量扩展
4
- setlocal enabledelayedexpansion
5
-
6
- rem 设置旧的文件扩展名
7
- set "old_ext=.svg"
8
- rem 设置新的文件扩展名
9
- set "new_ext=.vue"
10
-
11
- rem 遍历当前目录下所有文件
12
- for %%f in (*%old_ext%) do (
13
- set "filename=%%~nf"
14
- ren "%%f" "!filename!!new_ext!"
15
- echo 已将 %%f 重命名为 !filename!!new_ext!
16
- )
17
- endlocal
18
- pause
@@ -1,35 +0,0 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- xmlns:xlink="http://www.w3.org/1999/xlink"
5
- fill="none"
6
- version="1.1"
7
- width="1em"
8
- height="1em"
9
- viewBox="0 0 150 175"
10
- >
11
- <g>
12
- <g>
13
- <path
14
- d="M103.622,0L27.5981,0C12.355,0,0,12.3648,0,27.6155L0,147.384C0,162.637,12.357,175,27.5981,175L122.402,175C137.645,175,150,162.635,150,147.384L150,46.4069C150,40.1874,147.532,34.2239,143.136,29.8274L120.191,6.86822C115.795,2.47051,109.835,-0.00000298153,103.622,0Z"
15
- fill="currentColor"
16
- fill-opacity="1"
17
- />
18
- </g>
19
- <g>
20
- <path
21
- d="M143.13623844909668,29.827444455909728L120.19133844909668,6.868224455909729C116.89933844909667,3.574394455909729,112.70153844909667,1.336388455909729,108.13313844909668,0.439644455909729L108.13313844909668,26.208644455909727C108.13313844909668,34.38994445590973,114.76073844909668,41.021744455909726,122.93693844909669,41.021744455909726L149.37123844909667,41.021744455909726C148.3722384490967,36.78324445590973,146.21323844909668,32.90694445590973,143.13623844909668,29.827444455909728ZM55.04783844909668,67.17184445590973C53.218138449096685,65.34094445590974,50.249938449096675,65.34094445590974,48.42023844909668,67.17184445590973L28.49052844909668,87.11214445590973C26.66080844909668,88.94304445590973,26.66080844909668,91.91304445590973,28.49052844909668,93.74394445590973L48.41823844909668,113.68464445590973C49.29613844909668,114.56564445590973,50.488838449096676,115.05964445590973,51.73203844909668,115.05764445590972C52.931038449096675,115.05764445590972,54.13203844909668,114.60064445590973,55.04583844909668,113.68464445590973C56.875638449096684,111.85364445590973,56.875638449096684,108.88364445590973,55.04583844909668,107.05264445590973L38.43193844909668,90.42804445590973L55.04593844909668,73.80364445590973C56.877538449096676,71.97274445590973,56.877538449096676,69.00264445590973,55.04783844909668,67.17184445590973ZM101.57783844909667,67.17184445590973C99.74813844909669,65.34094445590974,96.77993844909668,65.34094445590974,94.95023844909667,67.17184445590973C93.12043844909668,69.00264445590973,93.12043844909668,71.97274445590973,94.95023844909667,73.80364445590973L111.56413844909667,90.42804445590973L94.95023844909667,107.05264445590973C93.12043844909668,108.88364445590973,93.12043844909668,111.85364445590973,94.95023844909667,113.68464445590973C95.86603844909668,114.60064445590973,97.06503844909668,115.05764445590972,98.26403844909667,115.05764445590972C99.46293844909668,115.05764445590972,100.66193844909668,114.60064445590973,101.57783844909667,113.68464445590973L121.50553844909668,93.74394445590973C123.33523844909668,91.91304445590973,123.33523844909668,88.94304445590973,121.50553844909668,87.11214445590973L101.57783844909667,67.17184445590973ZM85.38763844909667,57.898244455909726C82.91933844909667,57.11864445590973,80.28703844909668,58.488344455909726,79.50793844909668,60.95814445590973L61.55443844909668,117.86364445590974C60.775238449096676,120.33364445590973,62.14413844909668,122.96764445590973,64.61233844909668,123.74764445590974C65.08103844909668,123.89564445590973,65.55753844909668,123.96564445590973,66.02423844909669,123.96564445590973C68.01403844909669,123.96564445590973,69.86133844909668,122.68664445590973,70.49213844909667,120.68764445590973L88.44563844909668,63.78164445590973C89.22473844909668,61.31184445590973,87.85583844909668,58.67784445590973,85.38763844909667,57.898244455909726Z"
22
- fill="#000000"
23
- fill-opacity="0.20000000298023224"
24
- />
25
- </g>
26
- <g>
27
- <path
28
- d="M55.04783844909668,64.82700524414062C53.218138449096685,62.996135244140625,50.249938449096675,62.996135244140625,48.42023844909668,64.82700524414062L28.49052844909668,84.76732524414062C26.66080844909668,86.59822524414062,26.66080844909668,89.56822524414062,28.49052844909668,91.39912524414063L48.41823844909668,111.33942524414063C49.29613844909668,112.22042524414063,50.488838449096676,112.71482524414063,51.73203844909668,112.71312524414063C52.931038449096675,112.71312524414063,54.13203844909668,112.25582524414062,55.04583844909668,111.33942524414063C56.875638449096684,109.50852524414063,56.875638449096684,106.53852524414063,55.04583844909668,104.70762524414062L38.43193844909668,88.08322524414064L55.04593844909668,71.45882524414063C56.877538449096676,69.62792524414063,56.877538449096676,66.65782524414062,55.04783844909668,64.82700524414062ZM121.50753844909669,84.76732524414062L101.57783844909667,64.82700524414062C99.74813844909669,62.996135244140625,96.77993844909668,62.996135244140625,94.95023844909667,64.82700524414062C93.12043844909668,66.65792524414063,93.12043844909668,69.62792524414063,94.95023844909667,71.45882524414063L111.56413844909667,88.08322524414064L94.95023844909667,104.70762524414062C93.12043844909668,106.53852524414063,93.12043844909668,109.50852524414063,94.95023844909667,111.33942524414063C95.86603844909668,112.25582524414062,97.06503844909668,112.71312524414063,98.26403844909667,112.71312524414063C99.46293844909668,112.71312524414063,100.66193844909668,112.25582524414062,101.57783844909667,111.33942524414063L121.50553844909668,91.39912524414063C123.33723844909667,89.56822524414062,123.33723844909667,86.60012524414063,121.50753844909669,84.76732524414062ZM85.38763844909667,55.55343924414063C82.91933844909667,54.773805244140625,80.28703844909668,56.14353824414062,79.50793844909668,58.613365244140624L61.55433844909668,115.51902524414062C60.775238449096676,117.98882524414063,62.14413844909668,120.62272524414063,64.61233844909668,121.40242524414063C65.08103844909668,121.55092524414063,65.55753844909668,121.62122524414063,66.02423844909669,121.62122524414063C68.01403844909669,121.62122524414063,69.86133844909668,120.34142524414062,70.49213844909667,118.34252524414063L88.44563844909668,61.436855244140624C89.22473844909668,58.96702524414062,87.85583844909668,56.333074244140626,85.38763844909667,55.55343924414063Z"
29
- fill="#FFFFFF"
30
- fill-opacity="1"
31
- />
32
- </g>
33
- </g>
34
- </svg>
35
- </template>