最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue element-ui v-for循環(huán)el-upload上傳圖片 動態(tài)添加、刪除方式

 更新時間:2023年10月16日 15:02:18   作者:杰瑞LJ  
這篇文章主要介紹了vue element-ui v-for循環(huán)el-upload上傳圖片 動態(tài)添加、刪除方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

element-ui v-for循環(huán)el-upload上傳圖片 動態(tài)添加、刪除

表單元素

<el-row v-for="(v,i) in RecordOperation.imgList" :key="i">
                <el-col :span='11'>
                    <el-form-item label="圖片">
                        <el-upload
                                accept="image/jpeg,image/png"
                                class="avatar-uploader"
                                :action="uploadUrl()"
                                :show-file-list="false"
                                :on-success="dynamicPicSuccess.bind(null, {'index':i,'data':v})"
                                :before-upload="beforeUploadImageDynamicPic">
                            <img v-if="v.picUrl" :src="v.picUrl" class="avatar dynamic">
                            <i v-else class="el-icon-plus avatar-uploader-icon dynamic"></i>
                        </el-upload>
                    </el-form-item>
                </el-col>
                <el-col :span="11">
                    <el-form-item label="圖片介紹">
                        <el-input minlength="4" maxlength="20" v-model.trim="v.content"></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="2" align="right" v-show="RecordOperation.imgList.length<=2?false:true">
                    <el-button type="text" style="color:red;line-height:32px;" @click="delDynamicPic(i,RecordOperation.imgList)">刪除</el-button>
                </el-col>
            </el-row>

圖片上傳驗證,上傳圖片處理,刪除圖片

// 動態(tài)圖片驗證
            beforeUploadImageDynamicPic(file){
                var _this = this;
                var isLt10M = file.size / 1024 / 1024  < 10;
                if (['image/jpeg', 'image/png'].indexOf(file.type) == -1) {
                    _this.$message.error('請上傳正確的圖片格式');
                    return false;
                }
                if (!isLt10M) {
                    _this.$message.error('上傳圖片大小不能超過10MB哦!');
                    return false;
                }
            },

            //動態(tài)圖上傳成功
            dynamicPicSuccess(obj,res,file) {
                var imgList = this.RecordOperation.imgList
                var index = obj.index;
                imgList[index].picUrl = res.data.filePath;
                // 少于5張圖時,自動添加一行
                if(imgList.length<5)
                imgList.push({content: '', picUrl: ""});
            },

            // 移除動態(tài)建設(shè)圖片
            delDynamicPic(i,list) {
                this.$confirm('確認(rèn)刪除該條記錄?', '提示', {
                    confirmButtonText: '確定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    list.splice(i, 1);
                });
            },

vue+Element-ui(el-upload) 上傳圖片/文件

文件上傳時攜帶參數(shù)

文件上傳時,想要在上傳的時候攜帶參數(shù),可直接使用:

:data={參數(shù)} ,參數(shù)為鍵值對的形式{key1:value1,key2:value2}

<el-upload
	:data={pid:this.pid}
	>
</el-upload>

upload

  • open: 是否顯示彈出層,該屬性的值為布爾型,false表示不顯示,true表示顯示。
  • title: 彈出層標(biāo)題,該屬性的值為字符串類型。
  • updateSupport: 是否更新已經(jīng)存在的用戶數(shù)據(jù),該屬性的值為整型。若為0,則不更新;若為1,則更新。
  • headers: 設(shè)置上傳的請求頭部,該屬性的值為一個對象類型,包含了一個Authorization屬性,在請求頭部中將會添加Authorization屬性的值為"Bearer "加上getToken()方法的返回值,此處的返回值就是token(根據(jù)自己需求改?。?。
  • url: 上傳的地址,該屬性的值為一個字符串類型,值process.env.VUE_APP_BASE_API + "/api/common/upload"。
  • 其中,process.env.VUE_APP_BASE_API是一個環(huán)境變量,其值在不同的環(huán)境中可能會有所不同,表示應(yīng)用程序的基本API地址。
<el-upload
          :headers="upload.headers"
          :action="upload.url"
          :on-success="handleFileSuccess"
          list-type="picture-card"
          :on-preview="handlePictureCardPreview"
          :on-remove="handleRemove"
          :file-list="completionPhotoList"
          :on-change="changeFile"
        >
        <i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible" :modal="false">
   <img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
<script>
export default {
  data() {
    return {
      // 用戶導(dǎo)入?yún)?shù)
      upload: {
        // 是否顯示彈出層(用戶導(dǎo)入)
        open: false,
        // 彈出層標(biāo)題(用戶導(dǎo)入)
        title: "",
        // 是否更新已經(jīng)存在的用戶數(shù)據(jù)
        updateSupport: 0,
        // 設(shè)置上傳的請求頭部
        headers: { Authorization: "Bearer " + getToken() },
        // 上傳的地址
        url: process.env.VUE_APP_BASE_API + "/api/common/upload",
      },
 } 
}

before-remove來阻止文件被刪除的操作

<el-upload
  :before-remove="beforeRemove"
  >
</el-upload>
<script>
  export default {
    data() {
      return {
        
      };
    },
    methods: {
      beforeRemove(file, fileList) {
        return this.$confirm(`確定移除 ${ file.name }?`);
      },
    }
  }
</script>

multiple、limit、on-exceed屬性

給控件加了multiple屬性,就表示可以多選;

通過limit設(shè)置多選的個數(shù)限制,當(dāng)不需要多選(只想單選文件)時,不加multiple屬性;

可多選,無個數(shù)限制,不設(shè)置limit這個屬性即可;

on-exceed:超出限制時會調(diào)用此方法;

超出三個文件給予提示信息,如圖:

<el-upload
  multiple
  :limit="3"
  :on-exceed="handleExceed"
  >
</el-upload>
<script>
  export default {
    data() {
      return {
        
      };
    },
    methods: {
      handleExceed(files, fileList) {
        this.$message.warning(`當(dāng)前限制選擇 3 個文件,本次選擇了 ${files.length} 個文件,共選擇了 ${files.length + fileList.length} 個文件`);
      },
    }
  }
</script>

before-upload屬性以及on-success屬性

注意auto-upload屬性的坑::auto-upload="false"時,before-upload 不起作用;

為啥?

  • before-upload: 文件上傳之前觸發(fā),指當(dāng)文件已經(jīng)被選中,提交時才會觸發(fā)此事件
  • auto-upload:設(shè)置為false時,選中文件不會觸發(fā)上傳事件

解決方法:

將before-upload里面要寫的內(nèi)容放到on-change事件中去實現(xiàn)

:auto-upload="false"設(shè)置為true

<el-upload
  class="avatar-uploader"
  action="https://jsonplaceholder.typicode.com/posts/"
  :show-file-list="false"
  :on-success="handleAvatarSuccess"
  :before-upload="beforeAvatarUpload">
  <img v-if="imageUrl" :src="imageUrl" class="avatar">
  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<script>
  export default {
    data() {
      return {
        imageUrl: ''
      };
    },
    methods: {
      handleAvatarSuccess(res, file) {
        this.imageUrl = URL.createObjectURL(file.raw);
      },
      beforeAvatarUpload(file) {
        const isJPG = file.type === 'image/jpeg';
        const isLt2M = file.size / 1024 / 1024 < 2;
 
        if (!isJPG) {
          this.$message.error('上傳頭像圖片只能是 JPG 格式!');
        }
        if (!isLt2M) {
          this.$message.error('上傳頭像圖片大小不能超過 2MB!');
        }
        return isJPG && isLt2M;
      }
    }
  }
</script>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue輸入框組件開發(fā)過程詳解

    vue輸入框組件開發(fā)過程詳解

    這篇文章主要為大家詳細(xì)介紹了vue輸入框組件開發(fā)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue3中watchEffect和watch的基礎(chǔ)應(yīng)用詳解

    Vue3中watchEffect和watch的基礎(chǔ)應(yīng)用詳解

    watch是一個偵聽器,默認(rèn)是懶偵聽的,即僅在偵聽源發(fā)生變化時才執(zhí)行回調(diào)函數(shù),watchEffect是會自動收集函數(shù)里面變量的響應(yīng)式依賴,本文主要來講講二者的區(qū)別,感興趣的可以了解一下
    2023-07-07
  • vue源碼解析之事件機(jī)制原理

    vue源碼解析之事件機(jī)制原理

    這篇文章主要介紹了vue源碼解析之事件機(jī)制原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 8個非常實用的Vue自定義指令

    8個非常實用的Vue自定義指令

    這篇文章主要介紹了8個非常實用的Vue自定義指令,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • 淺談element中InfiniteScroll按需引入的一點注意事項

    淺談element中InfiniteScroll按需引入的一點注意事項

    這篇文章主要介紹了淺談element中InfiniteScroll按需引入的一點注意事項,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue中keep-alive內(nèi)置組件緩存的實例代碼

    vue中keep-alive內(nèi)置組件緩存的實例代碼

    這篇文章主要介紹了vue中的keep-alive內(nèi)置組件緩存,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 詳解如何編寫一個Vue3響應(yīng)式系統(tǒng)

    詳解如何編寫一個Vue3響應(yīng)式系統(tǒng)

    這篇文章主要為大家學(xué)習(xí)介紹了如何編寫一個Vue3響應(yīng)式系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • vue 移動端適配方案詳解

    vue 移動端適配方案詳解

    這篇文章主要介紹了vue 移動端適配方案詳解,詳細(xì)的介紹2種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vue3中的組件數(shù)據(jù)懶加載

    Vue3中的組件數(shù)據(jù)懶加載

    這篇文章主要介紹了Vue3中的組件數(shù)據(jù)懶加載問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 解決Vue響應(yīng)式數(shù)據(jù)已獲取而視圖不更新的問題

    解決Vue響應(yīng)式數(shù)據(jù)已獲取而視圖不更新的問題

    這篇文章主要介紹了解決Vue響應(yīng)式數(shù)據(jù)已獲取而視圖不更新的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

茶陵县| 卓资县| 徐州市| 云阳县| 普安县| 凤台县| 兴海县| 万载县| 深州市| 汉阴县| 澄迈县| 青铜峡市| 江津市| 唐河县| 云浮市| 迁安市| 靖边县| 通辽市| 文登市| 大渡口区| 闽侯县| 四会市| 射洪县| 新泰市| 会同县| 化州市| 诏安县| 阿巴嘎旗| 铁岭市| 尚义县| 玉树县| 札达县| 台湾省| 广西| 依兰县| 江城| 巴中市| 萝北县| 济宁市| 呼伦贝尔市| 惠安县|