vue項目中結合element ui解決連續上傳多張圖片及圖片編輯問題

来源:https://www.cnblogs.com/gaoxingx/archive/2018/05/30/9111575.html
-Advertisement-
Play Games

編碼都是以需求為導向的,所以編碼前一定要弄清楚需要的結果是什麼,然後再開始編碼。 現在簡單的說下需求:如下圖所示,點擊藍色的“+”按鈕,可以連續生成多個圖片上傳框,每個圖片上傳框都是單獨上傳圖片,編輯互不影響。 現在說下我的代碼實現過程: 註意:像這種可以生成多個數據的,首先想到使用數組的v-for ...


編碼都是以需求為導向的,所以編碼前一定要弄清楚需要的結果是什麼,然後再開始編碼。

現在簡單的說下需求:如下圖所示,點擊藍色的“+”按鈕,可以連續生成多個圖片上傳框,每個圖片上傳框都是單獨上傳圖片,編輯互不影響。

現在說下我的代碼實現過程:

element ui:
<div class="form-right">
                        <div class="right_btns">轉賬匯款信息
                            <el-button type="primary" @click="addupload" v-if="adduploadShow">+</el-button>
                        </div>
                        <div class="upload_parent" v-if="uploadShow" v-for="(item, index) in datas_upload" :key="index">
                            <div class="defind_img_s">
                                <img :src="item.url" class="defind">
                                <el-upload
                                        :ref='"upload" + index'
                                        name="img_b"
                                        class="upload-demo"
                                        :action="uploadUrl"
                                        :headers="upload_hearder"
                                        :on-remove='handleRemove'
                                        :on-success='uploadSuc'
                                        :file-list='fileList'
                                        :show-file-list="false">
                                    <div @click='getUploadTag(item, index)' class="up_btns">{{item.up_btn}}</div>
                                </el-upload>
                                <span v-show="item.upbtnGroup" class="upbtnGroups"
                                      @click="delupload(item,index)">刪除</span>
                            </div>
                        </div>
                    </div>
 data() {
      return {
 // 上傳成功後的id
        uploadId: '',
        // 重新上傳成功後的id
        resetUploadId: '',
        // upload控制項tag
        uploadTag: 0,
        // 上傳圖片文件列表
        fileList: [],
        upItem: {},
//        所有賬號-select
        accVal: '1',
//        圖片上傳框初始數組
        datas_upload: [{ up_btn: '上傳圖片', upbtnGroup: false, imgId: '', url: '' }],
// 圖片初始id數組 imgArryid: [], } }, methods: {
// 點擊“+”按鈕生成圖片上傳框 addupload() { this.datas_upload.push({ up_btn: '上傳圖片', upbtnGroup: false, imgId: '', url: '' }) }, // 獲取圖片id getimgId() { for (var i = 0; i < this.datas_upload.length; i++) { this.imgArryid.push(this.datas_upload[i].imgId) } console.log(this.imgArryid, 785) return this.imgArryid }, // 圖片上傳 getUploadTag(item, index) { // console.log(response, file, fileList, 564) this.uploadTag = index console.log(index, 220) this.upItem = item }, // 圖片上傳成功 uploadSuc(response, file, fileList) { console.log(1230, response, response.id) console.log(file, fileList, 6630) // 把圖片id添加到 uploadId 數據中 this.datas_upload[this.uploadTag].imgId = response.id this.uploadId = response.id this.upItem.up_btn = '重新上傳圖片' this.upItem.upbtnGroup = true var imgs = 'imgs' + this.uploadTag console.log(this.$refs.imgs, 267) this.upItem.url = file.url }, // 上傳圖片-刪除 delupload(item, index) { console.log(index, 562) for (var i = 0; i < this.datas_upload.length; i++) { if (i != 0) { if (index == i) { this.datas_upload.splice(i, 1) this.datas_upload[index].imgId = '' } } else if (i == 0) { console.log(index, item, 563) this.datas_upload[index].imgId = '' this.datas_upload[index].url = '' item.up_btn = '上傳圖片' item.upbtnGroup = false } } }, // 重新上傳-success resetUploadSuc(response, file, fileList) { this.resetUploadId = response.id this.conResUploadView = false this.conRessubmitView = true } }

註意:像這種可以生成多個數據的,首先想到使用數組的v-for迴圈遍歷來實現,初始化預設有一個圖片上傳框,那就給數組一個初始化的對象,每當點擊按鈕就往數組中添加新的對象,利用數據的雙向綁定,便能生成相應的dom元素,達到想要的效果。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Selenium 簡介 Selenium是ThroughtWorks公司一個強大的開源Web功能測試工具系列,提供一套測試函數,用於支持Web自動化測試。函數非常靈活,能夠完成界面元素定位、視窗跳轉、結果比較。他支持IE、Firefox、Safari、Chrome、Android手機瀏覽器,也支 ...
  • Vue2原生始輪播圖組件,支持寬度自適應、高度設置、輪播時間設置、左右箭頭按鈕控制,圓點按鈕切換,以及箭頭、圓點按鈕是否顯示。 ...
  • 加入繪製字母 ...
  • #########################################################################################Node.js 事件迴圈Node.js 是單進程單線程應用程式,但是因為 V8 引擎提供的非同步執行回調介面,通過這些介面可 ...
  • My97DatePicker是一個非常優秀的日曆插件,不僅支持多種調用模式,還支持日期範圍限制。 常規的調用比較簡單,如下所示: 1 <input class="Wdate" id="d1" onclick="WdatePicker()" /> 下麵重點說明日期範圍限制: 1)靜態限制 你可以給通過 ...
  • 2009年, 就已經出現,但是直到IE11的發佈,全部的主流瀏覽器才統一支持新的用法 。 這裡只說應用,瀏覽器的相容處理會附在文章的末尾。 起步 在現代主流瀏覽器中,只需要給一個元素加上一行 就可以讓他擁有彈性佈局的魔力。 軸的方向 定義了主軸的方向,在html中,預設值是 ,即子元素橫向排列,但是 ...
  • 既然是根據當前的時間,那麼我們第一步就是獲取當前時間,然後拼接一個隨機數,這樣便實現了隨機生成一個流水號,註意由於要求每個流水號都是獨一無二的,生成後提交的過程中還是需要驗證當前的流水號是否存在,如果存在則需要提示用戶或者再次生成。 ...
  • 傳統的前後端: 後端是跟資料庫跟伺服器打交道的,前端是跟瀏覽器打交道的。但似乎他們的職責在以前甚至於現在都並不明確,雖然前端是跟瀏覽器打交道,但是最終瀏覽器拿到的頁面是伺服器通過模板生成的一個臨時靜態頁面而已。所以,實際上後端也摻和進來了,因為他要處理模板。當然,一般傳統上的開發協作模式有兩種: 一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...