iov-design 2.15.46 → 2.15.48

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 (137) hide show
  1. package/lib/alert.js +2 -2
  2. package/lib/aside.js +2 -2
  3. package/lib/autocomplete.js +2 -2
  4. package/lib/avatar.js +2 -2
  5. package/lib/backtop.js +2 -2
  6. package/lib/badge.js +2 -2
  7. package/lib/breadcrumb-item.js +2 -2
  8. package/lib/breadcrumb.js +2 -2
  9. package/lib/button-group.js +2 -2
  10. package/lib/button.js +2 -2
  11. package/lib/calendar.js +4 -4
  12. package/lib/card.js +2 -2
  13. package/lib/carousel-item.js +2 -2
  14. package/lib/carousel.js +16 -16
  15. package/lib/cascader-panel.js +6 -6
  16. package/lib/cascader.js +96 -96
  17. package/lib/checkbox-button.js +2 -2
  18. package/lib/checkbox-group.js +2 -2
  19. package/lib/checkbox.js +2 -2
  20. package/lib/col.js +2 -2
  21. package/lib/collapse-item.js +23 -23
  22. package/lib/collapse.js +2 -2
  23. package/lib/color-picker.js +2 -2
  24. package/lib/container.js +2 -2
  25. package/lib/date-picker.js +70 -91
  26. package/lib/descriptions-item.js +2 -2
  27. package/lib/descriptions.js +2 -2
  28. package/lib/dialog.js +9 -9
  29. package/lib/divider.js +2 -2
  30. package/lib/dropdown-item.js +2 -2
  31. package/lib/dropdown-menu.js +2 -2
  32. package/lib/dropdown.js +11 -11
  33. package/lib/empty.js +9 -9
  34. package/lib/footer.js +2 -2
  35. package/lib/form-item.js +4 -4
  36. package/lib/form.js +2 -2
  37. package/lib/header.js +2 -2
  38. package/lib/icon.js +2 -2
  39. package/lib/image.js +9 -9
  40. package/lib/index.js +1 -1
  41. package/lib/infinite-scroll.js +2 -2
  42. package/lib/input-number.js +62 -62
  43. package/lib/iov-design.common.js +968 -163
  44. package/lib/link.js +2 -2
  45. package/lib/loading.js +11 -11
  46. package/lib/main.js +2 -2
  47. package/lib/menu-item-group.js +2 -2
  48. package/lib/menu-item.js +65 -65
  49. package/lib/menu.js +2 -2
  50. package/lib/message-box.js +11 -11
  51. package/lib/message.js +9 -9
  52. package/lib/notification.js +9 -9
  53. package/lib/option-group.js +2 -2
  54. package/lib/option.js +4 -4
  55. package/lib/page-header.js +2 -2
  56. package/lib/pagination.js +6 -6
  57. package/lib/popconfirm.js +24 -24
  58. package/lib/popover.js +9 -9
  59. package/lib/progress.js +2 -2
  60. package/lib/radio-button.js +2 -2
  61. package/lib/radio-group.js +2 -2
  62. package/lib/radio.js +9 -9
  63. package/lib/rate.js +23 -23
  64. package/lib/result.js +2 -2
  65. package/lib/row.js +2 -2
  66. package/lib/scrollbar.js +4 -4
  67. package/lib/select.js +18 -18
  68. package/lib/skeleton-item.js +2 -2
  69. package/lib/skeleton.js +2 -2
  70. package/lib/slider.js +4 -4
  71. package/lib/spinner.js +2 -2
  72. package/lib/static/excel.dc22a8c4.png +1 -0
  73. package/lib/static/excel.f44318e.png +0 -0
  74. package/lib/static/excel.f44318e0.png +0 -0
  75. package/lib/static/file.4ed3551.png +0 -0
  76. package/lib/static/file.4ed35511.png +0 -0
  77. package/lib/static/file.c0509952.png +1 -0
  78. package/lib/static/img.8229bb3e.png +1 -0
  79. package/lib/static/img.cd179e5.png +0 -0
  80. package/lib/static/img.cd179e5b.png +0 -0
  81. package/lib/static/pdf.79cb57f.png +0 -0
  82. package/lib/static/pdf.79cb57f8.png +0 -0
  83. package/lib/static/pdf.f5235ea1.png +1 -0
  84. package/lib/static/ppt.5eedddef.png +1 -0
  85. package/lib/static/ppt.eed4918.png +0 -0
  86. package/lib/static/ppt.eed4918e.png +0 -0
  87. package/lib/static/word.35070ef.png +0 -0
  88. package/lib/static/word.35070ef0.png +0 -0
  89. package/lib/static/word.5fe9189c.png +1 -0
  90. package/lib/static/zip.dca21a8.png +0 -0
  91. package/lib/static/zip.dca21a88.png +0 -0
  92. package/lib/static/zip.e2bfc796.png +1 -0
  93. package/lib/statistic.js +4 -4
  94. package/lib/step.js +2 -2
  95. package/lib/steps.js +9 -9
  96. package/lib/submenu.js +4 -4
  97. package/lib/switch.js +2 -2
  98. package/lib/tab-pane.js +2 -2
  99. package/lib/table-column.js +2 -2
  100. package/lib/table.js +23 -15
  101. package/lib/tabs.js +2 -2
  102. package/lib/tag.js +2 -2
  103. package/lib/theme-chalk/assets/img_fail.png +0 -0
  104. package/lib/theme-chalk/assets/img_placeholder.png +0 -0
  105. package/lib/theme-chalk/base.css +1 -1
  106. package/lib/theme-chalk/dialog.css +1 -1
  107. package/lib/theme-chalk/index.css +1 -1
  108. package/lib/theme-chalk/iovfont.css +1 -1
  109. package/lib/theme-chalk/upload.css +1 -1
  110. package/lib/time-picker.js +12 -12
  111. package/lib/time-select.js +9 -9
  112. package/lib/timeline-item.js +2 -2
  113. package/lib/timeline.js +2 -2
  114. package/lib/tooltip.js +2 -2
  115. package/lib/transfer.js +11 -11
  116. package/lib/tree.js +2 -2
  117. package/lib/upload.js +920 -119
  118. package/package.json +1 -1
  119. package/packages/theme-chalk/src/assets/img_fail.png +0 -0
  120. package/packages/theme-chalk/src/assets/img_placeholder.png +0 -0
  121. package/packages/theme-chalk/src/dialog.scss +4 -0
  122. package/packages/theme-chalk/src/iovfont.scss +3 -3
  123. package/packages/theme-chalk/src/upload.scss +568 -603
  124. package/packages/upload/src/assets/excel.png +0 -0
  125. package/packages/upload/src/assets/file.png +0 -0
  126. package/packages/upload/src/assets/img.png +0 -0
  127. package/packages/upload/src/assets/pdf.png +0 -0
  128. package/packages/upload/src/assets/ppt.png +0 -0
  129. package/packages/upload/src/assets/word.png +0 -0
  130. package/packages/upload/src/assets/zip.png +0 -0
  131. package/packages/upload/src/index.vue +73 -5
  132. package/packages/upload/src/upload-file.vue +90 -0
  133. package/packages/upload/src/upload-list.vue +52 -50
  134. package/packages/upload/src/upload-picture.vue +90 -0
  135. package/packages/upload/src/upload.vue +231 -211
  136. package/packages/upload/src/utils.js +30 -0
  137. package/src/index.js +1 -1
@@ -1,603 +1,568 @@
1
- @import "mixins/mixins";
2
- @import "progress";
3
- @import "common/var";
4
-
5
- @include b(upload) {
6
- display: inline-block;
7
- text-align: center;
8
- cursor: pointer;
9
- outline: none;
10
- @include e(input) {
11
- display: none;
12
- }
13
-
14
- @include e(tip) {
15
- font-size: 12px;
16
- color: $--color-text-2;
17
- margin-top: 8px;
18
- }
19
-
20
- iframe {
21
- position: absolute;
22
- z-index: -1;
23
- top: 0;
24
- left: 0;
25
- opacity: 0;
26
- filter: alpha(opacity=0);
27
- }
28
-
29
- /* 照片墙模式 */
30
- @include m(picture-card) {
31
- background-color: #fbfdff;
32
- border: 1px dashed #c0ccda;
33
- border-radius: 6px;
34
- box-sizing: border-box;
35
- width: 148px;
36
- height: 148px;
37
- cursor: pointer;
38
- line-height: 146px;
39
- vertical-align: top;
40
-
41
- i {
42
- font-size: 28px;
43
- color: #8c939d;
44
- }
45
-
46
- &:hover {
47
- border-color: $--color-primary;
48
- color: $--color-primary;
49
- }
50
- }
51
- &:focus {
52
- border-color: $--color-primary;
53
- color: $--color-primary;
54
-
55
- .el-upload-dragger {
56
- border-color: $--color-primary;
57
- }
58
- }
59
- }
60
-
61
- @include b(upload-dragger) {
62
- background-color: #fff;
63
- border: 1px dashed #d9d9d9;
64
- border-radius: 6px;
65
- box-sizing: border-box;
66
- width: 360px;
67
- height: 180px;
68
- text-align: center;
69
- cursor: pointer;
70
- position: relative;
71
- overflow: hidden;
72
-
73
- .el-icon-upload {
74
- font-size: 67px;
75
- color: $--color-text-placeholder;
76
- margin: 40px 0 16px;
77
- line-height: 50px;
78
- }
79
-
80
- + .el-upload__tip {
81
- text-align: center;
82
- }
83
-
84
- ~ .el-upload__files {
85
- border-top: $--border-base;
86
- margin-top: 7px;
87
- padding-top: 5px;
88
- }
89
-
90
- .el-upload__text {
91
- color: $--color-text-regular;
92
- font-size: 14px;
93
- text-align: center;
94
-
95
- em {
96
- color: $--color-primary;
97
- font-style: normal;
98
- }
99
- }
100
-
101
- &:hover {
102
- border-color: $--color-primary;
103
- }
104
-
105
- @include when(dragover) {
106
- background-color: rgba(32, 159, 255, .06);
107
- border: 2px dashed $--color-primary;
108
- }
109
- }
110
-
111
- @include b(upload-list) {
112
- margin: 0;
113
- padding: 0;
114
- list-style: none;
115
-
116
- @include e(item) {
117
- transition: all .5s cubic-bezier(.55,0,.1,1);
118
- font-size: 14px;
119
- color: $--color-text-regular;
120
- line-height: 1.8;
121
- margin-top: 5px;
122
- position: relative;
123
- box-sizing: border-box;
124
- border-radius: 4px;
125
- width: 100%;
126
-
127
- .el-progress {
128
- position: absolute;
129
- top: 20px;
130
- width: 100%;
131
- }
132
-
133
- .el-progress__text {
134
- position: absolute;
135
- right: 0;
136
- top: -13px;
137
- }
138
-
139
- .el-progress-bar {
140
- margin-right: 0;
141
- padding-right: 0;
142
- }
143
-
144
- &:first-child {
145
- margin-top: 10px;
146
- }
147
-
148
- & .el-icon-upload-success {
149
- color: $--color-success;
150
- }
151
-
152
- .el-icon-close {
153
- display: none;
154
- position: absolute;
155
- top: 5px;
156
- right: 5px;
157
- cursor: pointer;
158
- opacity: .75;
159
- color: $--color-text-regular;
160
- //transform: scale(.7);
161
-
162
- &:hover {
163
- opacity: 1;
164
- }
165
- }
166
-
167
- & .el-icon-close-tip {
168
- display: none;
169
- position: absolute;
170
- top: 5px;
171
- right: 5px;
172
- font-size: 12px;
173
- cursor: pointer;
174
- opacity: 1;
175
- color: $--color-primary;
176
- }
177
-
178
- &:hover {
179
- background-color: $--background-color-base;
180
-
181
- .el-icon-close {
182
- display: inline-block;
183
- }
184
-
185
- .el-progress__text {
186
- display: none;
187
- }
188
- }
189
-
190
- @include when(success) {
191
- .el-upload-list__item-status-label {
192
- display: block;
193
- }
194
-
195
- .el-upload-list__item-name:hover, .el-upload-list__item-name:focus {
196
- color: $--link-hover-color;
197
- cursor: pointer;
198
- }
199
-
200
- &:focus:not(:hover) { /* 键盘focus */
201
- .el-icon-close-tip {
202
- display: inline-block;
203
- }
204
- }
205
-
206
- &:not(.focusing):focus, &:active { /* click时 */
207
- outline-width: 0;
208
- .el-icon-close-tip {
209
- display: none;
210
- }
211
- }
212
-
213
- &:hover, &:focus {
214
- .el-upload-list__item-status-label {
215
- display: none;
216
- }
217
- }
218
- }
219
- }
220
-
221
- @include when(disabled) {
222
- .el-upload-list__item:hover .el-upload-list__item-status-label {
223
- display: block;
224
- }
225
- }
226
-
227
- @include e(item-name) {
228
- color: $--color-text-regular;
229
- display: block;
230
- margin-right: 40px;
231
- overflow: hidden;
232
- padding-left: 4px;
233
- text-overflow: ellipsis;
234
- transition: color .3s;
235
- white-space: nowrap;
236
-
237
- [class^="el-icon"] {
238
- height: 100%;
239
- margin-right: 7px;
240
- color: $--color-text-secondary;
241
- line-height: inherit;
242
- }
243
- }
244
-
245
- @include e(item-status-label) {
246
- position: absolute;
247
- right: 5px;
248
- top: 0;
249
- line-height: inherit;
250
- display: none;
251
- }
252
-
253
- @include e(item-delete) {
254
- position: absolute;
255
- right: 10px;
256
- top: 0;
257
- font-size: 12px;
258
- color: $--color-text-regular;
259
- display: none;
260
-
261
- &:hover {
262
- color: $--color-primary;
263
- }
264
- }
265
-
266
- @include m(picture-card) {
267
- margin: 0;
268
- display: inline;
269
- vertical-align: top;
270
-
271
- .el-upload-list__item {
272
- overflow: hidden;
273
- background-color: #fff;
274
- border: 1px solid #c0ccda;
275
- border-radius: 6px;
276
- box-sizing: border-box;
277
- width: 148px;
278
- height: 148px;
279
- margin: 0 8px 8px 0;
280
- display: inline-block;
281
-
282
- .el-icon-check,
283
- .el-icon-circle-check {
284
- color: $--color-white;
285
- }
286
-
287
- .el-icon-close {
288
- display: none;
289
- }
290
- &:hover {
291
- .el-upload-list__item-status-label {
292
- display: none;
293
- }
294
-
295
- .el-progress__text {
296
- display: block;
297
- }
298
- }
299
- }
300
-
301
- .el-upload-list__item-name {
302
- display: none;
303
- }
304
-
305
- .el-upload-list__item-thumbnail {
306
- width: 100%;
307
- height: 100%;
308
- }
309
-
310
- .el-upload-list__item-status-label {
311
- position: absolute;
312
- right: -15px;
313
- top: -6px;
314
- width: 40px;
315
- height: 24px;
316
- background: #13ce66;
317
- text-align: center;
318
- transform: rotate(45deg);
319
- box-shadow: 0 0 1pc 1px rgba(0,0,0,0.2);
320
-
321
- i {
322
- font-size: 12px;
323
- margin-top: 11px;
324
- transform: rotate(-45deg);
325
- }
326
- }
327
-
328
- .el-upload-list__item-actions {
329
- position: absolute;
330
- width: 100%;
331
- height: 100%;
332
- left: 0;
333
- top: 0;
334
- cursor: default;
335
- text-align: center;
336
- color: #fff;
337
- opacity: 0;
338
- font-size: 20px;
339
- background-color: rgba(0, 0, 0, .5);
340
- transition: opacity .3s;
341
- &::after {
342
- display: inline-block;
343
- content: "";
344
- height: 100%;
345
- vertical-align: middle
346
- }
347
-
348
- span {
349
- display: none;
350
- cursor: pointer;
351
- }
352
-
353
- span + span {
354
- margin-left: 15px;
355
- }
356
-
357
- .el-upload-list__item-delete {
358
- position: static;
359
- font-size: inherit;
360
- color: inherit;
361
- }
362
-
363
- &:hover {
364
- opacity: 1;
365
- span {
366
- display: inline-block;
367
- }
368
- }
369
- }
370
-
371
- .el-progress {
372
- top: 50%;
373
- left: 50%;
374
- transform: translate(-50%, -50%);
375
- bottom: auto;
376
- width: 126px;
377
-
378
- .el-progress__text {
379
- top: 50%;
380
- }
381
- }
382
- }
383
-
384
- @include m(picture) {
385
- .el-upload-list__item {
386
- overflow: hidden;
387
- z-index: 0;
388
- background-color: #fff;
389
- border: 1px solid #c0ccda;
390
- border-radius: 6px;
391
- box-sizing: border-box;
392
- margin-top: 10px;
393
- padding: 10px 10px 10px 90px;
394
- height: 92px;
395
-
396
- .el-icon-check,
397
- .el-icon-circle-check {
398
- color: $--color-white;
399
- }
400
-
401
- &:hover {
402
- .el-upload-list__item-status-label {
403
- background: transparent;
404
- box-shadow: none;
405
- top: -2px;
406
- right: -12px;
407
- }
408
-
409
- .el-progress__text {
410
- display: block;
411
- }
412
- }
413
-
414
- &.is-success {
415
- .el-upload-list__item-name {
416
- line-height: 70px;
417
- margin-top: 0;
418
- i {
419
- display: none;
420
- }
421
- }
422
- }
423
- }
424
-
425
- .el-upload-list__item-thumbnail {
426
- vertical-align: middle;
427
- display: inline-block;
428
- width: 70px;
429
- height: 70px;
430
- float: left;
431
- position: relative;
432
- z-index: 1;
433
- margin-left: -80px;
434
- background-color: $--color-white
435
- }
436
-
437
- .el-upload-list__item-name {
438
- display: block;
439
- margin-top: 20px;
440
-
441
- i {
442
- font-size: 70px;
443
- line-height: 1;
444
- position: absolute;
445
- left: 9px;
446
- top: 10px;
447
- }
448
- }
449
-
450
- .el-upload-list__item-status-label {
451
- position: absolute;
452
- right: -17px;
453
- top: -7px;
454
- width: 46px;
455
- height: 26px;
456
- background: #13ce66;
457
- text-align: center;
458
- transform: rotate(45deg);
459
- box-shadow: 0 1px 1px #ccc;
460
-
461
- i {
462
- font-size: 12px;
463
- margin-top: 12px;
464
- transform: rotate(-45deg);
465
- }
466
- }
467
-
468
- .el-progress {
469
- position: relative;
470
- top: -7px;
471
- }
472
- }
473
- }
474
-
475
- @include b(upload-cover) {
476
- position: absolute;
477
- left: 0;
478
- top: 0;
479
- width: 100%;
480
- height: 100%;
481
- overflow: hidden;
482
- z-index: 10;
483
- cursor: default;
484
- @include utils-vertical-center;
485
-
486
- img {
487
- display: block;
488
- width: 100%;
489
- height: 100%;
490
- }
491
-
492
- @include e(label) {
493
- position: absolute;
494
- right: -15px;
495
- top: -6px;
496
- width: 40px;
497
- height: 24px;
498
- background: #13ce66;
499
- text-align: center;
500
- transform: rotate(45deg);
501
- box-shadow: 0 0 1pc 1px rgba(0,0,0,0.2);
502
-
503
- i {
504
- font-size: 12px;
505
- margin-top: 11px;
506
- transform: rotate(-45deg);
507
- color: #fff;
508
- }
509
- }
510
-
511
- @include e(progress) {
512
- display: inline-block;
513
- vertical-align: middle;
514
- position: static;
515
- width: 243px;
516
-
517
- + .el-upload__inner {
518
- opacity: 0;
519
- }
520
- }
521
-
522
- @include e(content) {
523
- position: absolute;
524
- top: 0;
525
- left: 0;
526
- width: 100%;
527
- height: 100%;
528
- }
529
-
530
- @include e(interact) {
531
- position: absolute;
532
- bottom: 0;
533
- left: 0;
534
- width: 100%;
535
- height: 100%;
536
- background-color: rgba(#000, .72);
537
- text-align: center;
538
-
539
- .btn {
540
- display: inline-block;
541
- color: $--color-white;
542
- font-size: 14px;
543
- cursor: pointer;
544
- vertical-align: middle;
545
- transition: $--md-fade-transition;
546
- margin-top: 60px;
547
-
548
- i {
549
- margin-top: 0;
550
- }
551
-
552
- span {
553
- opacity: 0;
554
- transition: opacity .15s linear;
555
- }
556
-
557
- &:not(:first-child) {
558
- margin-left: 35px;
559
- }
560
-
561
- &:hover {
562
- transform: translateY(-13px);
563
-
564
- span {
565
- opacity: 1;
566
- }
567
- }
568
-
569
- i {
570
- color: $--color-white;
571
- display: block;
572
- font-size: 24px;
573
- line-height: inherit;
574
- margin: 0 auto 5px;
575
- }
576
- }
577
- }
578
-
579
- @include e(title) {
580
- position: absolute;
581
- bottom: 0;
582
- left: 0;
583
- background-color: $--color-white;
584
- height: 36px;
585
- width: 100%;
586
- overflow: hidden;
587
- text-overflow: ellipsis;
588
- white-space: nowrap;
589
- font-weight: normal;
590
- text-align: left;
591
- padding: 0 10px;
592
- margin: 0;
593
- line-height: 36px;
594
- font-size: 14px;
595
- color: $--color-text-primary;
596
- }
597
-
598
- + .el-upload__inner {
599
- opacity: 0;
600
- position: relative;
601
- z-index: 1;
602
- }
603
- }
1
+ @import "mixins/mixins";
2
+ @import "progress";
3
+ @import "common/var";
4
+
5
+ @include b(upload) {
6
+ display: inline-block;
7
+ text-align: center;
8
+ cursor: pointer;
9
+ outline: none;
10
+ @include e(input) {
11
+ display: none;
12
+ }
13
+
14
+ @include e(tip) {
15
+ font-size: 12px;
16
+ color: $--color-text-2;
17
+ margin-top: 8px;
18
+ }
19
+
20
+ iframe {
21
+ position: absolute;
22
+ z-index: -1;
23
+ top: 0;
24
+ left: 0;
25
+ opacity: 0;
26
+ filter: alpha(opacity=0);
27
+ }
28
+
29
+ @include m(wrap) {
30
+ position: relative;
31
+ }
32
+
33
+ @include m(drag) {
34
+ display: block;
35
+ &.el-upload--drag__small {
36
+ width: 112px;
37
+ background: $--color-fill-1;
38
+ &:hover {
39
+ background: #fff;
40
+ }
41
+ .el-upload-dragger {
42
+ padding: 0;
43
+ height: 68px;
44
+ .el-upload-list__item-status-label {
45
+ left: 12px;
46
+ right: 12px;
47
+ }
48
+ }
49
+ .el-upload-list__file {
50
+ padding: 5px 12px;
51
+ }
52
+ .el-upload-list__item {
53
+ .el-upload-list__icon {
54
+ width: 24px;
55
+ height: 24px;
56
+ }
57
+ .el-upload-list__name {
58
+ margin-top: 4px;
59
+ }
60
+ }
61
+ .el-upload-progress__text {
62
+ margin-top: 8px;
63
+ }
64
+ }
65
+ &.el-upload--drag__medium {
66
+ width: 400px;
67
+ .el-upload-dragger {
68
+ padding: 0;
69
+ height: 132px;
70
+ }
71
+ }
72
+ }
73
+
74
+ /* 照片墙模式 */
75
+ @include m(picture-card) {
76
+ border: 1px dashed $--color-line-2;
77
+ border-radius: 4px;
78
+ box-sizing: border-box;
79
+ cursor: pointer;
80
+ vertical-align: middle;
81
+ &:hover {
82
+ border-color: $--color-primary-5;
83
+ }
84
+ &:focus {
85
+ border-color: $--color-primary-6;
86
+ }
87
+ // 图片上传(如头像上传)
88
+ &.el-upload--picture-card__no-border {
89
+ border: 0 none;
90
+ overflow: hidden;
91
+ .el-upload-list__item {
92
+ margin: 0;
93
+ }
94
+ }
95
+ &.el-upload--large {
96
+ width: 106px;
97
+ height: 106px;
98
+ }
99
+ &.el-upload--medium {
100
+ width: 88px;
101
+ height: 88px;
102
+ }
103
+ &.el-upload--small {
104
+ width: 68px;
105
+ height: 68px;
106
+ }
107
+ .el-upload__picture {
108
+ height: 100%;
109
+ display: flex;
110
+ flex-direction: column;
111
+ justify-content: center;
112
+ }
113
+ .el-upload__icon {
114
+ font-size: 24px;
115
+ color: $--color-fill-4;
116
+ margin: 0 auto;
117
+ }
118
+ .el-upload__desc {
119
+ margin: 4px auto 0;
120
+ font-size: 12px;
121
+ color: $--color-text-2;
122
+ }
123
+ }
124
+ }
125
+
126
+ // 拖拽上传
127
+ @include b(upload-dragger) {
128
+ padding: 0 30px;
129
+ border: 1px dashed $--color-line-2;
130
+ border-radius: 4px;
131
+ box-sizing: border-box;
132
+ height: 132px;
133
+ text-align: center;
134
+ cursor: pointer;
135
+ position: relative;
136
+ display: flex;
137
+ flex-direction: column;
138
+ justify-content: center;
139
+
140
+ .el-link {
141
+ font-size: 13px;
142
+ [class*="iov-icon-"] + span {
143
+ margin-left: 4px;
144
+ }
145
+ }
146
+ .el-upload__icon {
147
+ font-size: 30px;
148
+ color: $--color-fill-4;
149
+ margin: 0 auto;
150
+ }
151
+ .el-upload__btn {
152
+ margin-top: 10px;
153
+ align-self: center;
154
+ ~ .el-upload__tip {
155
+ margin-top: 8px;
156
+ }
157
+ }
158
+
159
+ .el-upload__tip {
160
+ margin: 4px auto 0;
161
+ text-align: center;
162
+ color: $--color-text-2;
163
+ }
164
+
165
+ .el-upload__remove {
166
+ cursor: pointer;
167
+ display: flex;
168
+ align-items: center;
169
+ position: absolute;
170
+ top: -5px;
171
+ right: -5px;
172
+
173
+ &:before {
174
+ margin-right: -12px;
175
+ color: #fff;
176
+ font-size: 10px;
177
+ position: relative;
178
+ line-height: 1;
179
+ }
180
+ &:after {
181
+ content: '';
182
+ border-radius: 100%;
183
+ width: 14px;
184
+ height: 14px;
185
+ background: $--color-fill-5;
186
+ }
187
+
188
+ &:hover {
189
+ &:before {
190
+ color: #fff;
191
+ }
192
+ &:after {
193
+ background: $--color-fill-5;
194
+ }
195
+ }
196
+ }
197
+
198
+ // 重置file-list样式
199
+ .el-upload-list__item {
200
+ position: inherit;
201
+ &:first-child {
202
+ margin-top: 0;
203
+ }
204
+ .el-upload-list__file {
205
+ margin-right: 0;
206
+ background: none;
207
+ .el-upload-list__item-name {
208
+ margin-right: 0;
209
+ }
210
+ }
211
+ .el-upload-list__icon {
212
+ margin: 0 auto;
213
+ display: block;
214
+ width: 30px;
215
+ height: 30px;
216
+ }
217
+ .el-upload-list__name {
218
+ display: block;
219
+ height: auto;
220
+ line-height: 1;
221
+ margin-top: 8px;
222
+ width: 100%;
223
+ }
224
+ .el-upload__btn {
225
+ margin-top: 10px;
226
+ }
227
+ }
228
+ .el-upload-list__item-status-label {
229
+ left: 24px;
230
+ right: 24px;
231
+ }
232
+ .el-upload-progress__text {
233
+ margin: 12px auto 0;
234
+ color: $--color-text-6;
235
+ font-size: 12px;
236
+ display: block;
237
+ }
238
+
239
+ .el-upload__text {
240
+ margin: 12px auto 0;
241
+ color: $--color-text-6;
242
+ font-size: 12px;
243
+ text-align: center;
244
+ }
245
+
246
+ &:hover {
247
+ border-color: $--color-primary-5;
248
+ }
249
+
250
+ &:fcous,
251
+ &:active {
252
+ border-color: $--color-primary-6;
253
+ }
254
+
255
+ @include when(dragover) {
256
+ border-color: $--color-primary-5;
257
+ }
258
+ }
259
+
260
+ // backgorund模式
261
+ @include b(upload-bg) {
262
+ padding: 12px;
263
+ background: rgba(246, 247, 248, 0.6);
264
+ border-radius: 4px;
265
+ .el-upload-list__file {
266
+ background: #fff;
267
+ }
268
+ }
269
+
270
+ // 上传文件列表
271
+ @include b(upload-list) {
272
+ margin: 0;
273
+ padding: 0;
274
+ list-style: none;
275
+
276
+ @include e(item) {
277
+ margin-top: 4px;
278
+ position: relative;
279
+ width: 100%;
280
+ box-sizing: border-box;
281
+ &:first-child {
282
+ margin-top: 8px;
283
+ }
284
+
285
+ .el-upload-success {
286
+ color: $--color-success-6;
287
+ }
288
+
289
+ .iov-icon-delete {
290
+ display: none;
291
+ position: absolute;
292
+ top: 50%;
293
+ right: 8px;
294
+ cursor: pointer;
295
+ transform: translateY(-50%);
296
+ color: $--color-fill-5;
297
+ &:hover {
298
+ color: $--color-primary-6;
299
+ }
300
+ }
301
+
302
+ &:hover {
303
+ .iov-icon-delete {
304
+ display: inline-block;
305
+ }
306
+ }
307
+
308
+ @include when(success) {
309
+ .el-upload-list__item-status-label {
310
+ display: block;
311
+ }
312
+
313
+ .el-upload-list__item-name:hover {
314
+ cursor: pointer;
315
+ }
316
+ }
317
+ }
318
+
319
+ @include when(disabled) {
320
+ .el-upload-list__item:hover .el-upload-list__item-status-label {
321
+ display: block;
322
+ }
323
+ }
324
+
325
+ @include e(file) {
326
+ margin-right: 30px;
327
+ padding: 5px 8px;
328
+ box-sizing: border-box;
329
+ border-radius: 4px;
330
+ background: $--color-fill-1;
331
+ position: relative;
332
+ }
333
+
334
+ @include e(icon) {
335
+ margin-right: 4px;
336
+ width: 20px;
337
+ height: 20px;
338
+ display: inline-block;
339
+ background-repeat: no-repeat;
340
+ background-position: center center;
341
+ background-size: contain;
342
+ vertical-align: middle;
343
+ }
344
+
345
+ @include e(name) {
346
+ height: 20px;
347
+ line-height: 20px;
348
+ display: inline-block;
349
+ vertical-align: middle;
350
+ font-size: 12px;
351
+ color: $--color-text-6;
352
+ overflow: hidden;
353
+ text-overflow: ellipsis;
354
+ white-space: nowrap;
355
+ width: calc(100% - 50px);
356
+
357
+ .file-name:hover {
358
+ border-bottom: 1px solid $--color-text-6;
359
+ }
360
+ }
361
+
362
+ @include e(item-name) {
363
+ color: $--color-text-6;
364
+ display: block;
365
+
366
+ [class^="iov-icon"] {
367
+ height: 100%;
368
+ margin-right: 4px;
369
+ line-height: inherit;
370
+ }
371
+ }
372
+
373
+ @include e(item-status-label) {
374
+ position: absolute;
375
+ right: 8px;
376
+ top: 55%;
377
+ transform: translateY(-50%);
378
+ }
379
+
380
+ @include e(item-delete) {
381
+ position: absolute;
382
+ right: 10px;
383
+ top: 0;
384
+ font-size: 12px;
385
+ color: $--color-text-regular;
386
+ display: none;
387
+
388
+ &:hover {
389
+ color: $--color-primary;
390
+ }
391
+ }
392
+
393
+ @include m(text) {
394
+ .el-upload-list__item-name{
395
+ margin-right: 30px;
396
+ }
397
+ .el-upload-progress {
398
+ position: relative;
399
+ top: 2px;
400
+ svg {
401
+ path {
402
+ &:nth-child(1) {
403
+ stroke: $--color-primary-2;
404
+ }
405
+ &:nth-child(2) {
406
+ stroke: $--color-primary-6;
407
+ }
408
+ }
409
+ }
410
+ }
411
+ }
412
+
413
+ // 图片墙列表
414
+ @include m(picture-card) {
415
+ display: inline;
416
+ .el-upload-list__item {
417
+ margin: 0 8px 0 0;
418
+ overflow: hidden;
419
+ background: #fff;
420
+ border: 1px solid $--color-line-2;
421
+ border-radius: 4px;
422
+ box-sizing: border-box;
423
+ display: inline-block;
424
+ font-size: 0;
425
+ vertical-align: middle;
426
+ &:first-child {
427
+ margin-top: 0;
428
+ }
429
+ &.el-upload-list__item-large {
430
+ width: 106px;
431
+ height: 106px;
432
+ .el-image__placeholder,
433
+ .el-image__error {
434
+ background-size: 53px 53px;
435
+ }
436
+ }
437
+ &.el-upload-list__item-medium {
438
+ width: 88px;
439
+ height: 88px;
440
+ .el-image__placeholder,
441
+ .el-image__error {
442
+ background-size: 44px 44px;
443
+ }
444
+ }
445
+ &.el-upload-list__item-small {
446
+ width: 68px;
447
+ height: 68px;
448
+ .el-image__placeholder,
449
+ .el-image__error {
450
+ background-size: 34px 34px;
451
+ }
452
+ }
453
+ }
454
+ .el-upload-list__file {
455
+ margin: 0 auto;
456
+ padding: 0;
457
+ width: 100%;
458
+ height: 100%;
459
+ }
460
+ .el-upload-list__item-name {
461
+ height: 100%;
462
+ }
463
+ .el-upload-list__item-thumbnail {
464
+ width: 100%;
465
+ height: 100%;
466
+ display: block;
467
+ .el-image {
468
+ width: 100%;
469
+ height: 100%;
470
+ }
471
+ }
472
+ .el-upload-list__item-status-label {
473
+ left: 10px;
474
+ right: 10px;
475
+ }
476
+ .el-upload-progress__text {
477
+ margin: 8px auto 0;
478
+ color: $--color-text-6;
479
+ font-size: 12px;
480
+ display: block;
481
+ text-align: center;
482
+ }
483
+ .el-upload-list__item-actions {
484
+ position: absolute;
485
+ width: 100%;
486
+ height: 100%;
487
+ left: 0;
488
+ top: 0;
489
+ cursor: default;
490
+ text-align: center;
491
+ color: #fff;
492
+ opacity: 0;
493
+ background: rgba(0, 0, 0, .5);
494
+ transition: opacity .3s;
495
+ display: flex;
496
+ align-items: center;
497
+ justify-content: center;
498
+ gap: 8px;
499
+ i {
500
+ display: none;
501
+ cursor: pointer;
502
+ font-size: 18px;
503
+ color: #fff;
504
+ flex: none;
505
+ }
506
+ .iov-icon-delete {
507
+ position: relative;
508
+ top: auto;
509
+ right: auto;
510
+ transform: none;
511
+ }
512
+ &:hover {
513
+ opacity: 1;
514
+ i {
515
+ display: inline-block;
516
+ color: #fff;
517
+ }
518
+ }
519
+ }
520
+ }
521
+
522
+ .el-image__placeholder {
523
+ display: inline-block;
524
+ background: $--color-fill-1 url(./assets/img_placeholder.png) no-repeat center center / 20px 20px;
525
+ }
526
+ .el-image__error {
527
+ display: inline-block;
528
+ background: $--color-fill-3 url(./assets/img_fail.png) no-repeat center center / 20px 20px;
529
+ }
530
+
531
+ // 图片列表缩略图
532
+ @include m(picture) {
533
+ .el-upload-list__file {
534
+ padding: 6px 8px;
535
+ }
536
+ .el-upload-list__item-thumbnail {
537
+ margin-right: 8px;
538
+ vertical-align: middle;
539
+ display: inline-block;
540
+ position: relative;
541
+ background: $--color-fill-3;
542
+ border: 1px solid $--color-line-2;
543
+ border-radius: 4px;
544
+ font-size: 0;
545
+ .el-image {
546
+ width: 40px;
547
+ height: 40px;
548
+ }
549
+ }
550
+ .el-upload-list__name {
551
+ width: calc(100% - 80px);
552
+ }
553
+ .el-upload-progress {
554
+ position: relative;
555
+ top: 2px;
556
+ svg {
557
+ path {
558
+ &:nth-child(1) {
559
+ stroke: $--color-primary-2;
560
+ }
561
+ &:nth-child(2) {
562
+ stroke: $--color-primary-6;
563
+ }
564
+ }
565
+ }
566
+ }
567
+ }
568
+ }