主頁 > 企業開發 > 前端vue uni-app多圖片上傳組件,支持單個檔案,多個檔案上傳 步驟條step使用

前端vue uni-app多圖片上傳組件,支持單個檔案,多個檔案上傳 步驟條step使用

2023-06-13 08:16:29 企業開發

快速實作多圖片上傳組件,支持單個檔案,多個檔案上傳 步驟條step使用; 下載完整代碼請訪問uni-app插件市場地址:https://ext.dcloud.net.cn/plugin?id=12747

效果圖如下:

使用方法

  使用方法

// 添加多張圖片(少于6張)

addPhotoClick() {

uni.hideLoading();

let myThis = this;

if (myThis.photoList.length >= 6) {

myThis.photoList = [];

}

uni.chooseImage({

count: 6,

sizeType: ['compressed'], //可以指定是原圖還是壓縮圖,默認二者都有

sourceType: ['album'], //從相冊選擇

success: function(res) {

for (let j = 0; j < res.tempFilePaths.length; j++) {

// name:服務端檔案接受key  filePath: 需與服務端檔案接收欄位保持一致

let tmpdict = {

'name': 'image',

'filePath': res.tempFilePaths[j]

};

myThis.photoList.push(tmpdict);

}

console.log('選擇圖片 =' + JSON.stringify(myThis.photoList));

}

});

}

// 服務器地址上傳地址 僅為示例,非真實的介面地址

let baseUrl = "http://gzcc.com/cc//appSc/up"

console.log('圖片資源 = ' + JSON.stringify(this.photoList))

console.log('請求引數 = ' + JSON.stringify(this.myParamData));

uni.uploadFile({

url: baseUrl, //僅為示例,非真實的介面地址

files: this.photoList,

formData: this.myParamData,

success: (uploadFileRes) => {

uni.hideLoading();

console.log('上傳成功 = ' + uploadFileRes.data);

}

});

HTML代碼部分

  html

<template>

<view class="content" v-if="seen">

<uni-steps style="margin-top: 16px; margin-bottom: 16px;"

:options="[{title: '基本資訊'}, {title: '房源資訊'}, {title: '補充資訊'}, {title: '提交成功'}]" :active="2"

active-color='#007AFF'></uni-steps>

<view class="lineView"></view>

<form @submit="formSubmit" @reset="formReset">

<view class="inputView">

<text class="leftTitle">交通指引</text>

</view>

<textarea class="rightTextarea" name="direct" placeholder=" 請輸入交通指引" />

<view class="inputView">

<text class="leftTitle">房屋介紹</text>

</view>

<textarea class="rightTextarea" name="village" placeholder=" 請輸入房屋介紹" />

<view class="inputView">

<text class="leftTitle">添加房源照片(最多可添加6張)</text>

</view>

<view class="tagView">

<!-- 自定義了一個data-id的屬性,可以通過js獲取到它的值!  hover-class 指定按下去的樣式類-->

<image class="addPhotoV" mode="aspectFill" v-for="(item, index) in photoList" :key="index"

:src=https://www.cnblogs.com/ccVue/archive/2023/06/10/"item.filePath">

</image>

<image class="addPhotoV" mode="center" @click="addPhotoClick" src=https://www.cnblogs.com/ccVue/archive/2023/06/10/"../../static/repair_camera.png">

</image>

</view>

<view class="uni-btn-v">

<button class="botBtn" type="primary" form-type="submit">提交</button>

<view class="tipText"> 注意事項: 請確保您填寫的房屋資訊真實無誤 </view>

</view>

</form>

</view>

</template>

JS代碼 (引入組件 填充資料)

  javascript

<script>

import Vue from 'vue';

export default {

data() {

return {

photoList: [],

seen: true,

myParamData: {},

isClick: false,

};

},

onLoad: function(e) {

if (typeof(e.myParamData) === 'string') {

this.myParamData = https://www.cnblogs.com/ccVue/archive/2023/06/10/JSON.parse(e.myParamData);

console.log('頁面3 資料 = ' + JSON.stringify(e));

}

},

methods: {

formSubmit: function(e) {

console.log('form發生了submit事件,攜帶資料為:' + JSON.stringify(e.detail.value));

if (this.isClick) {

let that = this;

setTimeout(function() {

that.isClick = false;

}, 600)

return;

}

this.isClick = true;

var formdata = https://www.cnblogs.com/ccVue/archive/2023/06/10/e.detail.value;

this.myParamData = https://www.cnblogs.com/ccVue/archive/2023/06/10/Object.assign(this.myParamData, formdata);

console.log('頁面3 myParamData='https://www.cnblogs.com/ccVue/archive/2023/06/10/+ JSON.stringify(this.myParamData));

if (formdata['direct'].length < 2) {

uni.showModal({

content: '請輸入交通指引',

showCancel: false

});

return;

}

if (formdata['village'].length < 2) {

uni.showModal({

content: '請輸入所在小區介紹',

showCancel: false

});

return;

}

if (this.photoList.length < 1) {

uni.showModal({

content: '請添加房源照片',

showCancel: false

});

return;

}

if (this.photoList.length > 6) {

uni.showModal({

content: '最多只能選擇提交6張圖片',

showCancel: false

});

return;

}

uni.showLoading({

title: '上傳中'

})

// 服務器地址上傳地址 僅為示例,非真實的介面地址

let baseUrl = "http://gzcc.com/cc//appSc/up"

console.log('圖片資源 = ' + JSON.stringify(this.photoList))

console.log('請求引數 = ' + JSON.stringify(this.myParamData));

uni.uploadFile({

url: baseUrl, //僅為示例,非真實的介面地址

files: this.photoList,

formData: this.myParamData,

success: (uploadFileRes) => {

uni.hideLoading();

console.log('上傳成功 = ' + uploadFileRes.data);

}

});

},

// 添加多張圖片(少于6張)

addPhotoClick() {

uni.hideLoading();

let myThis = this;

if (myThis.photoList.length >= 6) {

myThis.photoList = [];

}

uni.chooseImage({

count: 6,

sizeType: ['compressed'], //可以指定是原圖還是壓縮圖,默認二者都有

sourceType: ['album'], //從相冊選擇

success: function(res) {

for (let j = 0; j < res.tempFilePaths.length; j++) {

// name:服務端檔案接受key  filePath: 需與服務端檔案接收欄位保持一致

let tmpdict = {

'name': 'image',

'filePath': res.tempFilePaths[j]

};

myThis.photoList.push(tmpdict);

}

console.log('選擇圖片 =' + JSON.stringify(myThis.photoList));

}

});

}

}

};

</script>

CSS

  CSS

<style>

.uni-form-item .title {

padding: 20rpx 0;

}

.content {

display: flex;

flex-direction: column;

width: 100%;

height: auto;

}

.inputView {

flex-direction: row;

display: flex;

height: 40px;

align-items: center;

width: 100%;

}

.line {

width: 90%;

height: 2rpx;

margin-left: -2rpx;

background-color: #f8f8f8;

margin-left: 5%;

}

.leftTitle {

margin-left: 40rpx;

width: 284px;

height: 32px;

line-height: 32px;

font-size: 28rpx;

color: #333333;

}

.rightTextarea {

margin-left: 5%;

width: 90%;

height: 106px;

line-height: 40rpx;

border-radius: 12rpx;

border: solid 1px #F5F5F5;

font-size: 15px;

}

.addPhotoV {

margin-top: 7px;

margin-bottom: 7px;

width: calc((100vw - 70px)/3);

height: calc((100vw - 70px)/3.16);

margin-left: 17.5px;

border-radius: 12rpx;

border: solid 1px rgba(58.04%, 76.08%, 88.24%, 0.6);

}

.uni-btn-v {

width: 100%;

height: auto;

}

.botBtn {

width: 90%;

margin-top: 36px;

height: 48px;

}

.tipText {

width: 100%;

margin-left: 0px;

text-align: center;

color: #666666;

margin-top: 36px;

margin-bottom: 36px;

font-size: 28rpx;

}

</style>
  <style>.uni-form-item .title { } .content { display: flex; flex-direction: column; width: 100%; height: auto } .inputView { flex-direction: row; display: flex; height: 40px; align-items: center; width: 100% } .line { width: 90%; background-color: rgba(248, 248, 248, 1); margin-left: 5% } .leftTitle { width: 284px; height: 32px; line-height: 32px; color: rgba(51, 51, 51, 1) } .rightTextarea { margin-left: 5%; width: 90%; height: 106px; border: 1px solid rgba(245, 245, 245, 1); font-size: 15px } .addPhotoV { margin-top: 7px; margin-bottom: 7px; width: calc((100vw - 70px) / 3); height: calc((100vw - 70px) / 3.16); margin-left: 17.5px } .uni-btn-v { width: 100%; height: auto } .botBtn { width: 90%; margin-top: 36px; height: 48px } .tipText { width: 100%; margin-left: 0; text-align: center; color: rgba(102, 102, 102, 1); margin-top: 36px; margin-bottom: 36px }</style>

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/555008.html

標籤:其他

上一篇:前端vue 宮格組件提供常見九宮格選單組件,擴充性好,可切換九宮格 十二宮格 十五宮格

下一篇:返回列表

標籤雲
其他(160873) Python(38222) JavaScript(25493) Java(18225) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7247) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5874) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4589) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1964) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 前端vue uni-app多圖片上傳組件,支持單個檔案,多個檔案上傳 步驟條

    快速實作多圖片上傳組件,支持單個檔案,多個檔案上傳 步驟條step使用; 下載完整代碼請訪問uni-app插件市場地址:https://ext.dcloud.net.cn/plugin?id=12747 效果圖如下: 使用方法 使用方法 // 添加多張圖片(少于6張) addPhotoClick() ......

    uj5u.com 2023-06-13 08:16:29 more
  • 前端vue 宮格組件提供常見九宮格選單組件,擴充性好,可切換九宮格

    #### 快速實作vue uni-app宮格組件提供常見九宮格選單組件,擴充性好,可切換九宮格 十二宮格 十五宮格; 下載完整代碼請訪問uni-app插件市場地址:https://ext.dcloud.net.cn/plugin?id=12680 效果圖如下: ![](https://p3-juej ......

    uj5u.com 2023-06-13 08:16:23 more
  • js 0.07*100竟然是7.000000000000001

    無意中發現了一個問題:0.07*100=7.000000000000001,而不是7。 結果為什么是7.0000000000000001? 其實JavsScript中,變數在存盤時并不區分number和float型別,而是統一按float存盤。而javascript使用IEEE 754-2008 標 ......

    uj5u.com 2023-06-13 08:16:08 more
  • 記錄--詳解 XSS(跨站腳本攻擊)

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 前言:我們知道同源策略可以隔離各個站點之間的 DOM 互動、頁面資料和網路通信,雖然嚴格的同源策略會帶來更多的安全,但是也束縛了 Web。這就需要在安全和自由之間找到一個平衡點,所以我們默認頁面中可以參考任意第三方資源,然后又引入 CSP ......

    uj5u.com 2023-06-13 08:10:31 more
  • 前端vue 宮格組件提供常見九宮格選單組件,擴充性好,可切換九宮格

    #### 快速實作vue uni-app宮格組件提供常見九宮格選單組件,擴充性好,可切換九宮格 十二宮格 十五宮格; 下載完整代碼請訪問uni-app插件市場地址:https://ext.dcloud.net.cn/plugin?id=12680 效果圖如下: ![](https://p3-juej ......

    uj5u.com 2023-06-13 08:09:00 more
  • 前端彈性布局神器display:flex【轉】

    在進行網頁前端設計時,需要垂直居中顯示文本,但CSS似乎沒有明確的垂直居中的代碼方法,由于目前的頁面不再考慮以前的瀏覽器了,因此采用CSS3的display:flex方法來實作。現記錄一下flex屬性的相關資料。 ......

    uj5u.com 2023-06-12 08:03:20 more
  • 前端彈性布局神器display:flex【轉】

    在進行網頁前端設計時,需要垂直居中顯示文本,但CSS似乎沒有明確的垂直居中的代碼方法,由于目前的頁面不再考慮以前的瀏覽器了,因此采用CSS3的display:flex方法來實作。現記錄一下flex屬性的相關資料。 ......

    uj5u.com 2023-06-12 08:02:03 more
  • CSS_三大特性下_優先級

    # CSS三大特性 ## 1、繼承性 [CSS_特性繼承和層疊 - Bublly - 博客園 (cnblogs.com)](https://www.cnblogs.com/ZWeva/p/17471809.html) ## 2、層疊性 [CSS_特性繼承和層疊 - Bublly - 博客園 (cnb ......

    uj5u.com 2023-06-11 08:00:03 more
  • CSS_特性繼承和層疊

    # CSS特性 ## 1、繼承性 ##### 特性: 1、子元素有默認繼承父元素樣式的特點(**子承父業**) 2、可以繼承的常見屬性(文字控制屬性都可以繼承) 1.color 2.font-style、font-weight、font-size、font-family 3.text-indent, ......

    uj5u.com 2023-06-11 07:59:57 more
  • CSS_顯示某塊和標簽嵌套

    # 一、顯示模塊 ## 1、塊級元素 #### 特點: 1.獨占一行(一行只能顯示一個) 2.寬度默認是父元素的寬度,高度默認由內容撐開 3.可以設定寬高 #### 例如: ``` div、p、h系列、ul、li、dl、dt、dd、form、header、.nav、footer. ``` ## 2、 ......

    uj5u.com 2023-06-11 07:59:54 more