基于Vant UI的微信小程序開發(隨時更新的寫手)

基于Vant UI的微信小程序開發?

    • (一)懸浮浮動
      • 1、效果圖:只要無腦引用樣式就可以了
      • 2、頁面代碼
      • 3、js代碼
      • 4、樣式代碼
    • (二)底部跳轉
      • 1、效果圖:點擊我要發布跳轉到發布的頁面
      • 2、js代碼
      • 3、頁面代碼
      • 4、app.json代碼配置底部導航:tabBar
    • (三)上傳組件:實現圖片/文件上傳預覽、上傳數量限制、大小限制、刪除、點擊之后列表查看
      • 1、效果圖
      • 2、js代碼:借助的是微信小程序開發工具的緩存路徑的代碼,返回的微信小程序圖片路徑進行預覽,下面第三個才是回調自己的上傳接口進行預覽操作,我會再寫一篇關于阿里云對象存儲的文章幫助大家實現
      • 3、上傳的重要代碼:替換了借助的是微信小程序開發工具的緩存路徑的代碼部分
      • 4、頁面代碼
    • (四)圖片預覽
      • 1、使用vant組件:van-image
        • (1)js代碼
        • (2)html代碼
      • 2、使用image

食用本篇文章的前提是你引入了Vant-UI,自己看如何引入,一定要注意是小程序版,up已經貼心的附上了鏈接:Vant Weapp輕量、可靠的小程序 UI 組件庫

(一)懸浮浮動

1、效果圖:只要無腦引用樣式就可以了

在這里插入圖片描述

2、頁面代碼

<view class="float-icon" bind:tap="toQiuZhiFaBu"><van-icon name="add" color="#31df80" info="求職發布" size="50px" />
</view>

3、js代碼

 /**跳轉到我的發布-求職發布 */toQiuZhiFaBu() {wx.navigateTo({url: '/pages/record/QiuZhiFaBu/index',})},

4、樣式代碼

.float-icon {position: fixed;bottom: 10%;right: 10%;z-index: 99;border-radius: 50rpx;background-color: white;display: flex;justify-content: center;
}

(二)底部跳轉

1、效果圖:點擊我要發布跳轉到發布的頁面

在這里插入圖片描述

2、js代碼

toWoyaofabu() {wx.switchTab({url: '/pages/record/index',})},

3、頁面代碼

<view style="width: 23%;height: 200rpx;text-align: center;" bind:tap="toWoyaofabu"><view style="width: 100rpx;height: 100rpx;margin: 10rpx auto;background-image: url('https://zhihuifile.oss-cn-qingdao.aliyuncs.com/chacheyoufu/assets/carousel/%E6%88%91%E8%A6%81%E5%8F%91%E5%B8%83%E7%BB%BF%E7%89%88.png');background-size: 100% 100%;border-radius: 20rpx; "></view><text style="font-size: 13px;">我要發布</text>
</view>

4、app.json代碼配置底部導航:tabBar

"tabBar": {"color": "#000","selectedColor": "#31df80","borderStyle": "black","backgroundColor": "#ffffff","list": [{"pagePath": "pages/index/index","text": "首頁","iconPath": "/assets/tabBar/index1.png","selectedIconPath": "/assets/tabBar/index1-select.png","iconSize": 10},{"pagePath": "pages/exam/index/index","text": "商城","iconPath": "/assets/tabBar/shopping.png","selectedIconPath": "/assets/tabBar/shopping-select.png"},{"pagePath": "pages/record/index","text": "發布","iconPath": "/assets/tabBar/publish.png","selectedIconPath": "/assets/tabBar/publish-select.png"},{"pagePath": "pages/shoppingCart/index","text": "購物車","iconPath": "/assets/tabBar/shoppingcart.png","selectedIconPath": "/assets/tabBar/shoppingcart-select.png"},{"pagePath": "pages/my/index/index","text": "個人中心","iconPath": "/assets/tabBar/my1.png","selectedIconPath": "/assets/tabBar/my1-select.png"}]},

(三)上傳組件:實現圖片/文件上傳預覽、上傳數量限制、大小限制、刪除、點擊之后列表查看

1、效果圖

上傳數量限制點擊預覽刪除大小限制
在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述

2、js代碼:借助的是微信小程序開發工具的緩存路徑的代碼,返回的微信小程序圖片路徑進行預覽,下面第三個才是回調自己的上傳接口進行預覽操作,我會再寫一篇關于阿里云對象存儲的文章幫助大家實現

/**上傳文件 */afterRead(event) {let that = this;const {file} = event.detail;console.log("file=========", file);// 此處借助的是微信小程序開發工具的緩存路徑wx.getFileSystemManager().saveFile({tempFilePath: file.url, // 臨時文件路徑success(res) {// 保存文件成功后,將文件的本地路徑添加到 imageCoverPath 數組中const savedFilePath = res.savedFilePath;const newImage  = {url: savedFilePath,isImage: true,}const imageCoverPath = that.data.imageCoverPath;imageCoverPath.push(newImage);that.setData({imageCoverPath: imageCoverPath});console.log("");},fail(err) {// 保存文件失敗的處理console.log('保存文件失敗', err);}});},/**刪除文件 */deleteFile(event) {const {index} = event.detail; // 獲取要刪除的文件索引const imageCoverPath = this.data.imageCoverPath;imageCoverPath.splice(index, 1); // 從數組中移除指定索引的文件this.setData({imageCoverPath: imageCoverPath // 更新數據});},/**預覽圖片 */previewImage(event) {// 獲取點擊的圖片索引const {index} = event.detail;// 獲取當前圖片的預覽路徑const current = this.data.imageCoverPath[index];// 預覽圖片console.log("預覽圖片========", current, event.detail.index, this.data.imageCoverPath);wx.previewImage({current: current, // 當前顯示圖片的鏈接urls: this.data.imageCoverPath // 所有圖片的鏈接數組});},/**方法通用 *//**上傳前校驗 */beforeRead(event) {const {file,callback} = event.detail;callback(file.type === 'image');if (file.type != 'image') {wx.showToast({title: '請上傳圖片',})}},/**文件尺寸過大 */overSizeI() {wx.showToast({title: '尺寸過大',icon: "error"})},

3、上傳的重要代碼:替換了借助的是微信小程序開發工具的緩存路徑的代碼部分

afterRead(event) {let that = this;const {file} = event.detail;const token = wx.getStorageSync('token');console.log("file=========", file,"token",token);// 設置請求頭部信息const header = {'token': token,};// 上傳圖片wx.uploadFile({url: app.globalData.baseAPI+'/api/wx/student/file/upload', // 服務器地址filePath: file.tempFilePath, // 圖片的路徑name: 'file', // 文件對應的 key,開發者在服務器端通過這個 key 可以獲取到文件formData: { // HTTP 請求中其他額外的 form data'user': 'test'},header: header,success: function (res) {// 服務器成功響應處理if (res.statusCode == 200) {var data = res.data; // 服務器返回的數據console.log(data);// 在這里處理服務器返回的數據,例如,解析JSONvar jsonData = JSON.parse(data);if (jsonData.code === 1) {// 保存文件成功后,將文件的本地路徑添加到 imageCoverPath 數組中const savedFilePath = jsonData.response;const newImage = {url: savedFilePath,isImage: true,}const imageCoverPath = that.data.certificate;imageCoverPath.push(newImage);that.setData({certificate: imageCoverPath});} else {wx.showToast({title: '發布失敗',icon: 'error',})}}},fail: function (error) {// 請求失敗處理wx.showToast({title: '上傳失敗',icon: 'none',})console.error('uploadFile fail', error);}});},

4、頁面代碼

<view style="margin-top: 20px;background-color: white;"><van-field label="車輛圖片(正、后、左、右方)/描述" required title-width="500rpx" readonly></van-field><view style="margin-left: 2%;margin-right: 2%;"><van-uploader file-list="{{ imageCoverPath }}" accept="image" max-count="4"use-before-read="true" deletable="{{ true }}" preview-size="120px" upload-text="上傳4M以內的圖片" bind:delete="deleteFile" bind:before-read="beforeRead" preview-image="true" bind:after-read="afterRead" bind:click-preview="previewImage" bind:oversize="overSizeI" capture="camera" max-size="4194304" /></view></view>

(四)圖片預覽

1、使用vant組件:van-image

(1)js代碼
 /**點擊圖片顯示預覽 */previewImage(e) {console.log(e,e.currentTarget);const currentSrc = e.currentTarget.dataset.src;const urls = this.data.releaseSheBeiRentalInfo.imageCoverPath; // releaseDetailsInfo.certificate是一個包含所有圖片URL的數組wx.previewImage({current: currentSrc, // 當前顯示圖片的鏈接urls: urls // 需要預覽的圖片鏈接列表});},
(2)html代碼
<view style="background-color: white;"><view style="font-weight: bold;margin: 0 0 20rpx 30rpx;padding-top: 30rpx;">前后左右照片:</view><view wx:for="{{releaseSheBeiRentalInfo.imageCoverPath}}" wx:key="index" style="display: flex;flex-direction: column;line-height: 1.5;align-items: center;justify-content: center;padding: 20rpx;"><van-image wx:if="{{item}}" width="620rpx" height="400rpx" fit="fill" src="{{item}}" data-src="{{item}}" lazy-load bind:click="previewImage" /></view><!-- <view wx:if="{{releaseSheBeiRentalInfo.imageCoverPath===0}}" wx:key="index" style="display: flex;flex-direction: column;line-height: 1.5;align-items: center;justify-content: center;padding: 20rpx;"><view width="620rpx" height="400rpx"><text style="color:#ccc;">未上傳照片</text></view></view> --></view>

2、使用image

 <image style="width: 100%; height: 200rpx;" bind:tap="previewImage" data-src="{{item}}" fit="fill" src="{{item}}" />

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/9941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/9941.shtml
英文地址,請注明出處:http://en.pswp.cn/web/9941.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue項目設置主題色

在vue開發過程中&#xff0c;很多頁面為了保持主題顏色統一&#xff0c;且方便后期管理&#xff0c;通常會設有主題色&#xff0c;通過主題色可以使得頁面上的按鈕單選框等控件保持顏色統一。 接下來介紹其中一種方法&#xff1a; 1.先建立一個js文件用于存放主題色&#xff…

我覺得POC應該貼近實際

今天我看到一位老師給我一份測試數據。 這是三個國產數據庫。算是分布式的。其中有兩個和我比較熟悉&#xff0c;但是這個數據看上去并不好。看上去第一個黃色的數據庫數據是這里最好的了。但是即使如此&#xff0c;我相信大部分做數據庫的人都知道。MySQL和PostgreSQL平時拿出…

Spark Streaming筆記總結(保姆級)

萬字長文警告&#xff01;&#xff01;&#xff01; 目錄 一、離線計算與流式計算 1.1 離線計算 1.1.1 離線計算的特點 1.1.2 離線計算的應用場景 1.1.3 離線計算代表技術 1.2 流式計算 1.2.1 流式計算的特點 1.2.2 流式計算的應用場景 1.2.3 流式計算的代表技術 二…

最小生成樹刷題筆記

算法基礎&#xff1a; 首先是prim算法三部曲&#xff1a; &#xff08;1&#xff09;找到距離最小生成樹最近的節點。 &#xff08;2&#xff09;將距離最小生成樹最近的節點加入到最小生成樹中。 &#xff08;3&#xff09;更新非最小生成樹節點到最小生成樹的距離。 實現…

HTML批量文件上傳3—Servlet批量文件處理FileUpLoad

作者:私語茶館 1.開源的文件上傳組件介紹 本文使用的是Apache Commons下面的一個子項目FileUpload,另外一個常見組件是SmartUpload。FileUpload遵循RFC 1897,即“Form-based File Upload in HTML”,對于請求需要滿足:HTTP協議,Post請求,content Type=“multipart/form-d…

Kafka 面試題(五)

1. kafka的消費者是pull(拉)還是push(推)模式&#xff0c;這種模式有什么好處&#xff1f; Kafka的消費者是pull&#xff08;拉&#xff09;模式。在這種模式下&#xff0c;消費者主動從Kafka的broker中拉取數據來進行消費。 這種pull模式的好處主要體現在以下幾個方面&#…

人工智能是什么

人工智能是一個廣泛的領域&#xff0c;其中包括了機器學習和深度學習。 - 機器學習&#xff1a; 是人工智能的一個子領域&#xff0c;它關注的是讓計算機系統通過學習數據&#xff0c;從中獲取知識并做出預測或決策&#xff0c;而無需明確地編寫特定的規則。機器學習的方法包括…

kernel32.dll丟失要如何解決?電腦kernel32.dll文件下載方法

kernel32.dll丟失要怎么解決才好&#xff1f;其實針對這個問題還是有很多種的解決方法的&#xff0c;只要你明白了kernel32.dll的作用&#xff0c;了解kernel32.dll&#xff0c;那么就可以有很多種方法去解決&#xff0c;下面一起來看看吧。 一.了解kernel32.dll文件 kernel32…

6個超TM好用的神仙App推薦!

1. AI文本視頻生成工具——Jurilu Jurilu 是一款功能強大的 AI 文本視頻生成器&#xff0c;允許用戶快速將文本內容轉換成極具吸引力的視頻。它的使用非常簡單&#xff1a;只需要輸入文字&#xff0c;選擇想要的樣式和模板&#xff0c;Jurilu 就會自動將文字轉換成生動的視頻。…

Vue項目npm install certificate has expired報錯解決方法

1.Vue項目 npm install 安裝依賴突然報錯&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/zrender/download/zrender-4.3.0.tgz failed, reason: certificate has expired npm ERR! A com…

代碼隨想錄-算法訓練營day35【貪心算法05:無重疊區間、劃分字母區間、合并區間】

代碼隨想錄-035期-算法訓練營【博客筆記匯總表】-CSDN博客 第八章 貪心算法 part05● 435. 無重疊區間 ● 763.劃分字母區間 ● 56. 合并區間 詳細布置 今天的三道題目&#xff0c;都算是 重疊區間 問題&#xff0c;大家可以好好感受一下。 都屬于那種看起來好復雜&#xff…

AI預測福彩3D+排3實戰化賺米驗證第6彈2024年5月10日第6次測試

由于最近幾天會比較忙&#xff0c;空閑時間較少&#xff0c;為了盡快的發布預測結果&#xff0c;今天繼續把3D和排3合并至一篇文章進行發布。好了&#xff0c;直接上結果吧&#xff5e; 1.5月10日3D預測結果 百位&#xff1a;4、5、6、3、1、0 十位&#xff1a;4、2、5、7、…

一個可以同時使用USB和WIFI傳輸文件到電腦的軟件

雙軌快傳 結合USB2.0和WIFI6技術&#xff0c;通過1000Mbps網口實現每秒高達150MB的傳輸速率&#xff08;理論上可達40MB/s通過USB和110MB/s通過WIFI&#xff09;。 使用 模式 支持普通模式和Root模式&#xff0c;Root模式可訪問~/Android/data/與/data/data/目錄下的文件。 …

ETL-kettle數據轉換及組件使用詳解

目錄 一、txt文本轉換成excel 1、新建、轉換 2、構建流程圖 3、配置數據流圖中的各個組件 3.1、配置文件文本輸入組件 3.2、 配置Excel輸出組件 4、保存執行 二、excel轉換成mysql &#xff08;1&#xff09;在MySQL數據庫中創建數據庫&#xff0c;這個根據自身情況。我…

一文了解spring的aop知識

推薦工具 objectlog 對于重要的一些數據&#xff0c;我們需要記錄一條記錄的所有版本變化過程&#xff0c;做到持續追蹤&#xff0c;為后續問題追蹤提供思路。objectlog工具是一個記錄單個對象屬性變化的日志工具,工具采用spring切面和mybatis攔截器相關技術編寫了api依賴包&a…

機器學習實戰寶典:用scikit-learn打造智能應用

書接上文——《數據探險家的終極指南&#xff1a;用Python挖掘機器學習的奧秘》 前文我們在這段精彩的機器學習探險之旅中&#xff0c;從基礎概念出發&#xff0c;深入探索了使用Python和scikit-learn庫進行數據分析和模型構建的全過程。 我們首先了解了機器學習的基本原理&am…

Mysql 鎖

鎖 從鎖的性能有樂觀鎖和悲觀鎖&#xff1b;鎖的粒度有行鎖、頁鎖、表鎖&#xff1b;鎖的對數據庫操作類型有讀鎖、寫鎖、意向鎖 樂觀鎖&#xff1a;采用cas機制&#xff0c;不會阻塞數據庫操作&#xff0c;只會針對當前事務進行失敗重試。(用于寫操作不多的情況)悲觀鎖&…

[c++]多態的分析

多態詳細解讀 多態的概念多態的構成條件 接口繼承和實現繼承: 多態的原理:動態綁定和靜態綁定 多繼承中的虛函數表 多態的概念 -通俗的來說&#xff1a;當不同的對象去完成某同一行為時&#xff0c;會產生不同的狀態。 多態的構成條件 必須通過基類的指針或者引用調用虛函數1虛…

【C++刷題】優選算法——遞歸第一輯

什么是遞歸&#xff1f; 函數自己調用自己的情況為什么會用到遞歸&#xff1f; 本質&#xff1a;在解決主問題的時候衍生出一個相同處理過程的子問題&#xff0c;子問題再繼續衍生子問題…如何理解遞歸&#xff1f; 第一層次的理解&#xff1a;遞歸展開的細節圖第二層次的理解&…

C語言/數據結構——(鏈表的回文結構)

一.前言 今天在牛客網上刷到了一道鏈表題——鏈表的回文結構https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?&#xff0c;巧合的是它的解題思路恰好是我們一起分享過兩道鏈表題的匯總。這兩道題分別是反轉鏈表和鏈表的中間節點。廢話不多數&#xff0c…