file-list-with-thumbnail.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <el-upload
  3. v-model:file-list="fileList"
  4. class="upload-demo"
  5. action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
  6. :on-preview="handlePreview"
  7. :on-remove="handleRemove"
  8. list-type="picture"
  9. >
  10. <el-button type="primary">Click to upload</el-button>
  11. <template #tip>
  12. <div class="el-upload__tip">
  13. jpg/png files with a size less than 500kb
  14. </div>
  15. </template>
  16. </el-upload>
  17. </template>
  18. <script lang="ts" setup>
  19. import { ref } from 'vue'
  20. import type { UploadProps, UploadUserFile } from 'element-plus'
  21. const fileList = ref<UploadUserFile[]>([
  22. {
  23. name: 'food.jpeg',
  24. url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
  25. },
  26. {
  27. name: 'food2.jpeg',
  28. url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
  29. },
  30. ])
  31. const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
  32. console.log(uploadFile, uploadFiles)
  33. }
  34. const handlePreview: UploadProps['onPreview'] = (file) => {
  35. console.log(file)
  36. }
  37. </script>