element上传多张图片

简介: element上传多张图片
<template>
  <el-upload
    v-model:file-list="upload.fileList"
    :action="upload.action"
    list-type="picture-card"
    :before-upload="upload.before"
    :on-success="upload.success"
    limit
    :on-preview="upload.proview"
    :data-fileListCount="upload.fileList.length"
    :name="upload.name"
    :on-remove="upload.remove"
  >
    <el-icon>
      <Plus />
    </el-icon>
  </el-upload>
 
  <div class="teacherDialog">
    <el-dialog
      v-model="upload.dialogVisible"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
    >
      <img w-full :src="upload.dialogImageUrl" alt="" style="width: 100%; height: 100%" />
    </el-dialog>
  </div>
</template>
 
<script setup>
  import { ref, reactive, watch } from 'vue';
  import { Plus } from '@element-plus/icons-vue';
 
  const props = defineProps({
    imageList: String,
    domain: String,
  });
  const { domain } = JSON.parse(sessionStorage.getItem('teacherUserInfo')) || {
    domain: props.domain,
  };
 
  watch(
    () => props.imageList,
    (imageList) => {
      upload.fileList = imageList
        ? imageList.split(`,`).map((item) => {
            return {
              url: domain + item,
            };
          })
        : [];
    }
  );
  const emit = defineEmits(['getImageUrl']);
  const upload = reactive({
    name: 'file',
    action: '',
    fileList: props.imageList
      ? props.imageList.split(`,`).map((item) => {
          return {
            url:  item,
          };
        })
      : [],
    dialogImageUrl: '',
    dialogVisible: false,
    before: (file) => {
      const type = ['image/png', 'image/jpeg', 'image/gif'];
      if (!type.includes(file.type)) {
        ElMessage.error('不支持该类型文件');
        return false;
      }
    },
    proview: ({ url }) => {
      console.log(url);
      upload.dialogImageUrl = url;
      upload.dialogVisible = true;
    },
    success: (res, uploadFile, uploadFiles) => {
      console.log(uploadFiles);
      console.log(
        upload.fileList
          .map((item) => {
            return {
              url: item.response ? item.response.data.url : item.url.split(domain)[1],
            };
          })
          .map((item) => item.url)
          .join()
      );
      let imageList = upload.fileList
        .map((item) => {
          return {
            url: item.response ? item.response.data.url : item.url.split(domain)[1],
          };
        })
        .map((item) => item.url)
        .join();
      emit('getImageUrl', imageList);
      // emit(
      //   'getImageUrl',
      //   upload.fileList.map((item) => {
      //     return {
      //       url: item.response.data.url,
      //     };
      //   })
      // );
      ElMessage({ type: res.code === 1 ? `success` : 'warning', message: res.msg });
    },
    remove: (file, files) => {
      console.log(files);
      let imageList = files
        .map((item) => {
          return {
            url: item.response ? item.response.data.url : item.url.split(domain)[1],
          };
        })
        .map((item) => item.url)
        .join();
      emit('getImageUrl', imageList);
    },
  });
</script>
<style scope lang="scss">
  // [data-fileListCount='1'] {
  //   .el-upload--picture-card {
  //     display: none !important;
  //   }
  // }
</style>
相关文章
|
7月前
|
SQL Java 应用服务中间件
使用Servlet上传多张图片——访问提示
使用Servlet上传多张图片——访问提示
解决element-ui上传多张图片时闪动问题
解决element-ui上传多张图片时闪动问题
368 0
|
4月前
在线将多张图片拼接起来图工具HTML源码
在线将多张图片拼接成一张图片,多图合一并导出下载。无需本地安装软件。 下载时,使用日期时间作为文件名,规避图片文件名相同造成的覆盖问题;也能省去一部覆盖确认操作 多语言支持
45 0
在线将多张图片拼接起来图工具HTML源码
|
JavaScript
jQuery动态拼接多张图片并且获取每张图片名称
jQuery动态拼接多张图片并且获取每张图片名称
58 1
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
element上传多张图片
element上传多张图片
105 0
实现手动上传表单数据+图片文件
在很多项目中都会有上传数据+图片的需求,我最近在项目中负责活动发布的板块,需要几个表单数据加两个图片和一个图片数组,我看到产品需求后头就很大,我之前没有做过相关的业务,所以这几天一直在尝试,看到接口文档我内心已经崩了。
164 1
实现手动上传表单数据+图片文件
|
JavaScript
php-单张图片、多张图片、视频上传
php-单张图片、多张图片、视频上传
257 0
php-单张图片、多张图片、视频上传
|
Python
【图片操作】批量生成缩略图
在我们日常生活中,缩略图很大程度减少了我们内存的使用。如果我们看一张图片就必须加载完成后才能看,那么我们就会发现很多应用都变慢了很多,而且流量也消耗的很快。今天我们就来看看Python生成缩略图的操作。
382 0
|
JavaScript
原生js实现图片单张上传及批量上传
原生js实现图片单张上传及批量上传