91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue和Element怎么自定義上傳封面組件功能

發布時間:2023-01-11 09:17:14 來源:億速云 閱讀:136 作者:iii 欄目:開發技術

這篇文章主要講解了“Vue和Element怎么自定義上傳封面組件功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue和Element怎么自定義上傳封面組件功能”吧!

先來看一下效果:

Vue和Element怎么自定義上傳封面組件功能

Vue和Element怎么自定義上傳封面組件功能

Vue和Element怎么自定義上傳封面組件功能

第一張圖片是上傳之前,第二張圖片是上傳成功后,第3張圖片是鼠標放上去之后的效果!首先整理需求,圖片上傳我們使用照片墻的方式,只能上傳一張圖片,圖片上傳成功后不能繼續上傳,如果想要更換圖片,則需要將圖片刪除后重新上傳。點擊圖片上面的放大鏡可以查看大圖。需要限制圖片上傳的格式,圖片的大小。組件代碼:

<template>
  <div class="upload">
    <el-upload
      :class="{'hidden':mFileList.length > 0}"
      list-type="picture-card"
      :on-remove="handleRemove"
      :action="action"
      :before-upload="beforeUploadHandle"
      :on-success="successHandle"
      :on-change="changeHandle"
      :limit="1"
      :accept="accept"
      :on-exceed="handleExceed"
      :file-list="fileList"
      :on-preview="handlePictureCardPreview"
    >
      <i class="el-icon-plus"></i>
    </el-upload>
    <el-dialog :visible.sync="dialogVisible">
      <img width="100%" :src="dialogImageUrl" alt="" />
    </el-dialog>
  </div>
</template>

<script>
export default {
  props: {
    action: {
      type: String,
      default: "",
    },
    accept: {
      type: String,
      default: "",
    },
    fileList:{
      type: Array,
      default: () => [],
    },
  },
  watch: {
    fileList(newValue, oldValue) {
      this.mFileList = newValue
    }
  },
  data() {
    return {
      dialogVisible: false, //圖片放大
      fileImg: "", //上傳圖片
      dialogImageUrl: "", //圖片地址
      mFileList:this.fileList,
    };
  },
  methods: {
    handleRemove(file, fileList) {
      this.$emit("upload-remove", file);
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    // 上傳之前
    beforeUploadHandle(file) {
      if (file.type !== "image/jpeg" && file.type !== "image/png") {
        this.$message({
          message: "只支持jpg、png格式的圖片!",
          type: "warning",
        });
        return false;
      }
      const isLt2M = file.size / 1024 / 1024 < 2;
      if (!isLt2M) {
        this.$message({
          message: "上傳文件大小不能超過 2MB!",
          type: "warning",
        });
        return false;
      }
    },
    // 上傳成功
    successHandle(response, file, fileList) {
      this.mFileList = fileList;
      if (response && response.code === 200) {
        this.$message.success("圖片上傳成功!");
        this.$emit("upload-success", response, file);
      } else {
        this.$message.error(response.msg);
      }
    },
    changeHandle(file, fileList) {
      if(file.response && file.response.code == 500) {
         this.$emit("upload-error",file);
      }
    },
    handleExceed(files, fileList) {
        this.$message.warning("只能上傳1張圖片!");
      },
  },
};
</script>
<style lang="scss">
.upload .hidden .el-upload--picture-card {
  display: none;
}
</style>

調用組件代碼:

<template>
    <div>
        <el-form ref="dataForm"    label-width="80px">
            <el-form-item label="封面" prop="cover" class="is-required">
                <upload list-type="picture-card" :action="url" :accept="'.jpg,.png,.JPG,.PNG'" :fileList="fileList"
                    :limit="1" @upload-success="uploadFile" @upload-remove="removeFile" @upload-error="uploadError">
                </upload>
            </el-form-item>
        </el-form>
    </div>
</template>

<script>
    import Upload from '../components/cover-upload/index.vue'
    export default {
        components: {
            Upload
        },
        data() {
            return {
                url: "",
                fileList: [],
            }
        },
        methods: {
            uploadUrl() {
                this.url = "http://xxx.xxx.xxx.xxx:xxx/yyxt/admin/course/courseInfo/upload?token=075de0303b15a38833a30a7a3b494794"//上傳圖片的后臺接口
            },
            uploadError(file) {
                this.fileList = [];
            },
            uploadFile(response, file) {
                this.fileList = [{
                    url: response.data,
                }, ];
            },
            removeFile(file) {
                this.fileList = [];
            },
        },
        mounted() {
            this.uploadUrl();
        }
    }
</script>

感謝各位的閱讀,以上就是“Vue和Element怎么自定義上傳封面組件功能”的內容了,經過本文的學習后,相信大家對Vue和Element怎么自定義上傳封面組件功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东平县| 扎鲁特旗| 东乡县| 安塞县| 林西县| 临颍县| 西峡县| 长兴县| 黑龙江省| 丰原市| 五莲县| 康平县| 都匀市| 泰兴市| 思茅市| 宁武县| 海安县| 得荣县| 乐都县| 天镇县| 扎囊县| 武乡县| 奈曼旗| 阿拉善右旗| 肇源县| 仙居县| 阜新| 施甸县| 郁南县| 曲阜市| 个旧市| 高青县| 天长市| 岫岩| 泗水县| 北川| 杭州市| 花莲市| 平阳县| 临夏市| 建宁县|