upload.component.html 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <div
  2. class="upload-file"
  3. [style.grid-template-columns]="
  4. 'repeat(' + showBlockNum + ', ' + fileWidth + 'px)'
  5. "
  6. [style.width]="boxWidth + 'px'"
  7. >
  8. @for (item of fileList; track $index) {
  9. <div class="image-content">
  10. @switch (type) { @case ('image') {
  11. <img
  12. (click)="onPreview(item.url)"
  13. [style.height]="fileHeight + 'px'"
  14. [src]="item.url"
  15. alt=""
  16. />
  17. } @case ('video') {
  18. <!-- <video [style.height]="fileHeight + 'px'" [src]="item.url" alt=""></video> -->
  19. <video
  20. [style.height]="fileHeight + 'px'"
  21. controls=""
  22. preload="meta"
  23. name="media"
  24. controlslist="nodownload"
  25. >
  26. <source [src]="item.url" type="video/mp4" />
  27. </video>
  28. } @default {
  29. <ion-icon
  30. name="document-outline"
  31. [style.height]="fileHeight + 'px'"
  32. [style.width]="fileWidth + 'px'"
  33. ></ion-icon>
  34. } }
  35. <div class="del" (click)="onDelete($index)">
  36. <ion-icon name="close-outline"></ion-icon>
  37. </div>
  38. </div>
  39. } @if (fileList.length < maxlenght) {
  40. <div class="up-bloak" [style.height]="fileHeight + 'px'">
  41. <ion-icon
  42. [style.height]="fileHeight - 48 + 'px'"
  43. [style.width]="fileWidth - 48 + 'px'"
  44. name="cloud-upload-outline"
  45. ></ion-icon>
  46. <input
  47. type="file"
  48. [multiple]="multiple"
  49. (change)="onAdd($event)"
  50. [accept]="accept"
  51. />
  52. </div>
  53. }
  54. </div>
  55. @if (currentPreviewImg) {
  56. <div class="preview" (click)="currentPreviewImg = ''">
  57. <img [src]="currentPreviewImg" alt="" />
  58. </div>
  59. }