使用input实现上传图片

因为时间缘故(就是懒),所以有些在data里定义的值没有写出来,需要哪些东西或者字段的可以直接评论,我会一一给的。

html片段:

<div class="upload-img">
              <ul class="upload-lists">
                <li v-for="(item, index) in picLists" :key="index">
                  <img :src="item" alt="" />
                  <div class="caozuos">
                    <i
                      @click="deleteImgq(item, index)"
                      class="el-icon-delete"
                    ></i>
                  </div>
                </li>

                <li
                  v-if="picListEses == 1"
                  style="border: 1px solid black"
                  class="add-imgs el-icon-plus"
                >
                  <input @change="fileChangeqw" type="file" multiple />
                  <i v-if="!loadinges" class="iconfont icon-tianjia"></i>
                  <i v-else class="iconfont loadings icon-jiazai"></i>
                </li>
              </ul>
              <div
                class="preview-boxs"
                v-if="ispreviews"
                @click.self="ispreviews = false"
              >
                <img :src="previewItems" alt="" />
              </div>
            </div>

JS片段:

data() {
    return {
      picLists: [],

      picListEses: 1,

      loadinges: false,

      ispreviews: false,

      previewItems: "", //用于预览
   }
},
methods:{
          fileChangeqw(e) {
      if (this.picLists.length > 20) {
        this.$message({
          message: "最多只能上传20张图片",
          type: "warning",
        });
        return;
      }
      var file = e.target.files[0];
      var list = e.target.files;
      var picLists = this.localPreview(list);
      for (let i = 0; i < picLists.length; i++) {
        var aa = picLists[i];
      }
      var formData = new FormData();
      this.ary.push(file);
      this.formDataes = formData;
      if (this.picLists.length == 19) {
        this.picListEses = "2";
      }
      this.picLists.push(aa);
      // this.$emit("changepic", this.picLists);
    },
 deleteImgq(item, index) {
      this.picLists.splice(index, 1);
      this.picListsa.splice(index, 1);
      //如果删除的图片小于20张了就把+显示出来
      if (this.picLists.length < 20) {
        this.picListEses = "1";
      }
      if (this.picListsa.length < 3) {
        this.picListsae = "1";
      }
      this.$emit("changepic", this.picListsa);
      this.$emit("changepic", this.picLists);
    },

SubmitCreationOrder() {
      var fomrDates=new FormData();
       //这里FormData用来给后台发送数据
      fomrDates.append(要给后台传的名字,给后台传的值);
      //这里的ListInsertorder是我封装好的接口  换成你的或者直接发axios请求就行
      // ListInsertorder(this.formDataes).then((res) => {
      //   console.log(res);
      // });
      this.openq = false;//因为我这个添加是一个Element里面的Dialog弹框,openq用来控制弹框是否显示
    },
  }
经验分享 程序员 微信小程序 职场和发展