美文网首页
elemen upload 上传多图拖曳

elemen upload 上传多图拖曳

作者: 前端陈陈陈 | 来源:发表于2020-08-27 14:17 被阅读0次

    需要的可以复制代码直接使用

    <template>
      <div>
        <div class="itemContent flex">
          <draggable
            v-model="productForm.productPicList"
            class="list-group"
            tag="ul"
            v-bind="dragOptions"
            @start="productForm.drag = true"
            @end="productForm.drag = false"
          >
            <div
              v-for="(item,index) in productForm.productPicList"
              :key="index"
              v-loading="productForm.loadingapp"
              class="listitem"
              @mouseenter="showDelBtn(index)"
              @mouseleave="hiddenDelBtn"
            >
              <img v-if="item" :src="item" width="148" height="148" class="imgSty" />
              <i
                v-show="index==productForm.currentDelBtn"
                class="el-icon-delete delIcon"
                @click="deleImg(item,index)"
              />
            </div>
          </draggable>
          <div class="uploadIcon">
            <el-upload
              :show-file-list="false"
              :action="envs"
              multiple
              :headers="headers"
              list-type="picture-card"
              :on-preview="handlePictureCardPreview"
              :on-remove="handleRemove"
              :file-list="fileList"
              accept="image/jpeg, image/jpg, image/png"
              :on-success="handleSuccess"
            >
              <i class="el-icon-plus"></i>
            </el-upload>
            <el-dialog :visible.sync="dialogVisiblen">
              <img width="100%" :src="dialogImageUrl" alt />
            </el-dialog>
          </div>
        </div>
      </div>
    </template>
    <script>
    import draggable from "vuedraggable";
    export default {
      components: {
        draggable
      },
      data() {
        return {
          productForm: {
            productPicList: [],
            currentDelBtn: -1,
            loadingapp: false,
            drag: false
          },
          envs: "",
          fileList: [],
          dialogVisiblen: false,
          dialogImageUrl: "",
          url: "",
          headers: { token: localStorage.getItem("token") }
        };
      },
      created() {
        this.url = localStorage.getItem("env");
        this.envs = this.url + "接口";
      },
      computed: {
        dragOptions() {
          return {
            animation: 200,
            group: "description",
            disabled: false,
            ghostClass: "ghost"
          };
        }
      },
      methods: {
        handleSuccess(file) {
          console.log(file);
          let url =  this.url + file.data.img
          this.productForm.productPicList.push(url);
        },
        handleRemove(e) {
          console.log(e);
        },
        handlePictureCardPreview(e) {
          console.log(e);
        },
        handleUploadHttpRequest() {},
        showDelBtn(index) {
          console.log(index);
          this.productForm.currentDelBtn = index;
          console.log(this.productForm.productPicList)
        },
        hiddenDelBtn() {
          this.productForm.currentDelBtn = -1;
        },
        deleImg(data, index) {
          this.productForm.productPicList.splice(index, 1);
          console.log( this.productForm.productPicList)
        },
      }
    };
    </script>
    <style lang="css" scoped>
      .list-group{
        display: flex;
      }
      .listitem{
            margin: 0 8px 8px 0;
      }
      .delIcon{
     font-size: 20px
      }
    </style>
    

    相关文章

      网友评论

          本文标题:elemen upload 上传多图拖曳

          本文链接:https://www.haomeiwen.com/subject/bwpcsktx.html