요소 ui는 수동으로 그림을 업로드할 수 있으며 단일 그림만 업로드할 수 있으며 업로드를 덮어쓸 수 있습니다

12378 단어 elementUI

수동으로 클릭하여 업로드, 한 장만 업로드, 이미지 미리보기 가능


위 코드:html
<el-form-item label="  " prop="HFname">
              <el-upload
                class="upload-demo"
                :action="' '"//       
                accept=".png"//         
                :auto-upload="false"//      ,false   
                :file-list="HFfileList"//    list
                :on-remove="HFhandleRemove"
                :on-change="HFhandleChangeImg"//      
              >
               <el-button size="small" type="primary" class="ml10">    </el-button>
              </el-upload>
</el-form-item><div >
      <img :src="hfpng" alt v-if="hfpng || dredgeServe.HFname" />
      <img v-else src="    " alt />
 </div>

js
HFhandleChangeImg(file, fileList) {
      const isPNG = file.raw.type === "image/png";
      const isLt2M = file.raw.size / 1024 / 1024 < 0.5;
      if (fileList.length > 0) {
      //      
        this.HFfileList = [fileList[fileList.length - 1]]; //    ,           csv  
        if (!isPNG) {
          this.$message.error("        PNG   !");
          return false;
        } else if (!isLt2M) {
          this.$message.error("           200kb!");
          this.HFfileList = []
          return false;
        } else if (isLt2M && isPNG) {
          this.HFformData.file = file.raw;//      url
          this.dredgeServe.HFname = file.name;
        }
      }
      //  
      var file = file.raw;
      var reader = new FileReader();
      var that = this;
      reader.readAsDataURL(file);
      reader.onload = function(e) {
        that.hfpng = this.result;//          
      };
    },

css: 단일 덮어쓰기 업로드로 변경, 스타일 이전 동적 전환, 단일 업로드 스타일 전환 필요 없음, 변경 가능
<style lang="scss" scoped>
    .upload-demo {
      display: flex;
    }
    /deep/ .el-list-enter-active,
    /deep/ .el-list-leave-active {
      transition: none;
    }
 
    /deep/ .el-list-enter,
    /deep/ .el-list-leave-active {
      opacity: 0;
    }
    /deep/ .el-upload-list {
      height: 40px;
    }
</style>

/deep/는 요소ui 등 제3자 구성 요소의 내부 양식을 수정하여 침투시킨다.scss를 사용하지 않으면 >>> 기호를 사용하여 제3자 구성 요소 내부 스타일을 수정할 수 있습니다

좋은 웹페이지 즐겨찾기