中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

微信小程序選擇器怎么用

發布時間:2022-03-10 14:39:22 來源:億速云 閱讀:225 作者:iii 欄目:開發技術

這篇文章主要介紹“微信小程序選擇器怎么用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“微信小程序選擇器怎么用”文章能幫助大家解決問題。

頁面結構

  1. <!--pages/warn/index.wxml-->

  2. <view class="container">

  3.     <view class="choose">

  4.         <view class="title">請選擇故障類型</view>

  5.         <checkbox-group bindchange="checkboxChange" class="choose-grids">

  6.             <!-- itemsValue是data對象里定義的數組,item代表數組的每一項,此處語法為循環輸出數組的每一項并渲染到每一個復選框。下面還有類似語法 -->

  7.             <block wx:for="{{itemsValue}}" wx:key="{{item}}">

  8.                 <view class="grid">

  9.                     <checkbox value="{{item.value}}" checked="{{item.checked}}" color="{{item.color}}" />{{item.value}}

  10.                 </view>

  11.             </block>

  12.         </checkbox-group>        

  13.     </view>

  14.     <view class="action">

  15.         <view class="title">拍攝單車周圍環境,便于維修師傅找車</view>

  16.         <view class="action-photo">

  17.         <block wx:for="{{picUrls}}" wx:key="{{item}}" wx:index="{{index}}">

  18.             <image src="{{item}}"><icon type="cancel" data-index="{{index}}" color="red" size="18" class ="del" bindtap="delPic" /></image>

  19.         </block>

  20.             <text class="add" bindtap="bindCamera">{{actionText}}</text>

  21.         </view>

  22.         <view class="action-input">

  23.             <input bindinput="numberChange" name="number" placeholder="車牌號(車牌損壞不用填)" />

  24.             <input bindinput="descChange" name="desc" placeholder="備注" />            

  25.         </view>

  26.         <view class="action-submit">

  27.             <button class="submit-btn" type="default" loading="{{loading}}" bindtap="formSubmit" style="background-color: {{btnBgc}}">提交</button>

  28.         </view>

  29.     </view>

  30. </view>

復制代碼


這里用到的組件和指令有:

  • 復選框組件 <checkbox-group>

  • 單個復選框<checkbox>

  • 輸入框組件<input>

  • 按鈕組件<button>

  • 圖標組件<icon>

  • 循環指令:wx:for = "itemValues" wx:key="item" 表示 :

  • 循環一個數組itemValues,數組每一項為item,item是一個對象,具體渲染到模板可能是對象的某個key的value,如:{{item.value}}


組件什么的看看組件文檔就知道了唄

頁面樣式

  1. /* pages/wallet/index.wxss */

  2. .choose{

  3.         background-color: #fff;

  4. }

  5. .choose-grids{

  6.         display: flex;

  7.         flex-wrap: wrap;

  8.         justify-content: space-around;

  9.         padding: 50rpx;

  10. }

  11. .choose-grids .grid{

  12.         width: 45%;

  13.         height: 100rpx;

  14.         margin-top: 36rpx;

  15.         border-radius: 6rpx;

  16.         line-height: 100rpx;

  17.         text-align: center;

  18.         border: 2rpx solid #b9dd08;

  19. }

  20. .choose-grids .grid:first-child,

  21. .choose-grids .grid:nth-of-type(2){

  22.         margin-top: 0;

  23. }

  24. .action .action-photo{

  25.         background-color: #fff;

  26.         padding: 40rpx 0px 40rpx 50rpx;

  27. }

  28. .action .action-photo image{

  29.         position: relative;

  30.         display: inline-block;

  31.         width: 120rpx;

  32.         height: 120rpx;

  33.         overflow: visible;

  34.         margin-left: 25rpx;

  35. }

  36. .action .action-photo image icon.del{

  37.         display: block;

  38.         position: absolute;

  39.         top: -20rpx;

  40.         right: -20rpx;

  41. }

  42. .action .action-photo text.add{

  43.         display: inline-block;

  44.         width: 120rpx;

  45.         height: 120rpx;

  46.         line-height: 120rpx;

  47.         text-align: center;

  48.         font-size: 24rpx;

  49.         color: #ccc;

  50.         border: 2rpx dotted #ccc;

  51.         margin-left: 25rpx;

  52.         vertical-align: top;

  53. }

  54. .action .action-input{

  55.         padding-left: 50rpx;

  56.         margin-top: 30rpx;

  57.         background-color: #fff;

  58. }

  59. .action .action-input input{

  60.         width: 90%;

  61.         padding-top: 40rpx;

  62.         padding-bottom: 40rpx;

  63. }

  64. .action .action-input input:first-child{

  65.         border-bottom: 2rpx solid #ccc;

  66.         padding-bottom: 20rpx;

  67. }

  68. .action .action-input input:last-child{

  69.         padding-top: 20rpx;

  70. }

  71. .action .action-submit{

  72.         padding: 40rpx 40rpx;

  73.         background-color: #f2f2f2;

  74. }

復制代碼


頁面數據邏輯

  1. // pages/wallet/index.js

  2. Page({

  3.   data:{

  4.     // 故障車周圍環境圖路徑數組

  5.     picUrls: [],

  6.     // 故障車編號和備注

  7.     inputValue: {

  8.       num: 0,

  9.       desc: ""

  10.     },

  11.     // 故障類型數組

  12.     checkboxValue: [],

  13.     // 選取圖片提示

  14.     actionText: "拍照/相冊",

  15.     // 提交按鈕的背景色,未勾選類型時無顏色

  16.     btnBgc: "",

  17.     // 復選框的value,此處預定義,然后循環渲染到頁面

  18.     itemsValue: [

  19.       {

  20.         checked: false,

  21.         value: "私鎖私用",

  22.         color: "#b9dd08"

  23.       },

  24.       {

  25.         checked: false,

  26.         value: "車牌缺損",

  27.         color: "#b9dd08"

  28.       },

  29.       {

  30.         checked: false,

  31.         value: "輪胎壞了",

  32.         color: "#b9dd08"

  33.       },

  34.       {

  35.         checked: false,

  36.         value: "車鎖壞了",

  37.         color: "#b9dd08"

  38.       },

  39.       {

  40.         checked: false,

  41.         value: "違規亂停",

  42.         color: "#b9dd08"

  43.       },

  44.       {

  45.         checked: false,

  46.         value: "密碼不對",

  47.         color: "#b9dd08"

  48.       },

  49.       {

  50.         checked: false,

  51.         value: "剎車壞了",

  52.         color: "#b9dd08"

  53.       },

  54.       {

  55.         checked: false,

  56.         value: "其他故障",

  57.         color: "#b9dd08"

  58.       }

  59.     ]

  60.   },

  61. // 頁面加載

  62.   onLoad:function(options){

  63.     wx.setNavigationBarTitle({

  64.       title: '報障維修'

  65.     })

  66.   },

  67. // 勾選故障類型,獲取類型值存入checkboxValue

  68.   checkboxChange: function(e){

  69.     let _values = e.detail.value;

  70.     if(_values.length == 0){

  71.       this.setData({

  72.         btnBgc: ""

  73.       })

  74.     }else{

  75.       this.setData({

  76.         checkboxValue: _values,

  77.         btnBgc: "#b9dd08"

  78.       })

  79.     }   

  80.   },

  81. // 輸入單車編號,存入inputValue

  82.   numberChange: function(e){

  83.     this.setData({

  84.       inputValue: {

  85.         num: e.detail.value,

  86.         desc: this.data.inputValue.desc

  87.       }

  88.     })

  89.   },

  90. // 輸入備注,存入inputValue

  91.   descChange: function(e){

  92.     this.setData({

  93.       inputValue: {

  94.         num: this.data.inputValue.num,

  95.         desc: e.detail.value

  96.       }

  97.     })

  98.   },

  99. // 提交到服務器

  100.   formSubmit: function(e){

  101.     // 圖片和故障類型必選

  102.     if(this.data.picUrls.length > 0 && this.data.checkboxValue.length> 0){

  103.       wx.request({

  104.         url: 'https://www.easy-mock.com/mock/59098d007a878d73716e966f/ofodata/msg',

  105.         data: {

  106.           // 如果是post請求就把這些數據傳到服務器,這里用get請求模擬一下假裝獲得了服務器反饋

  107.           // picUrls: this.data.picUrls,

  108.           // inputValue: this.data.inputValue,

  109.           // checkboxValue: this.data.checkboxValue

  110.         },

  111.         method: 'get', //

  112.         // header: {}, // 設置請求的 header

  113.         success: function(res){

  114.           wx.showToast({

  115.             title: res.data.data.msg,

  116.             icon: 'success',

  117.             duration: 2000

  118.           })

  119.         }

  120.       })

  121.     }else{

  122.       wx.showModal({

  123.         title: "請填寫反饋信息",

  124.         content: '看什么看,趕快填反饋信息,削你啊',

  125.         confirmText: "我我我填",

  126.         cancelText: "勞資不填",

  127.         success: (res) => {

  128.           if(res.confirm){

  129.             // 繼續填

  130.           }else{

  131.             console.log("back")

  132.             wx.navigateBack({

  133.               delta: 1 // 回退前 delta(默認為1) 頁面

  134.             })

  135.           }

  136.         }

  137.       })

  138.     }

  139.    

  140.   },

  141. // 選擇故障車周圍環境圖 拍照或選擇相冊

  142.   bindCamera: function(){

  143.     wx.chooseImage({

  144.       count: 4,

  145.       sizeType: ['original', 'compressed'],

  146.       sourceType: ['album', 'camera'],

  147.       success: (res) => {

  148.         let tfps = res.tempFilePaths; // 圖片本地路徑

  149.         let _picUrls = this.data.picUrls;

  150.         for(let item of tfps){

  151.           _picUrls.push(item);

  152.           this.setData({

  153.             picUrls: _picUrls,

  154.             actionText: "+"

  155.           });

  156.         }

  157.       }

  158.     })

  159.   },

  160. // 刪除選擇的故障車周圍環境圖

  161.   delPic: function(e){

  162.     let index = e.target.dataset.index;

  163.     let _picUrls = this.data.picUrls;

  164.     _picUrls.splice(index,1);

  165.     this.setData({

  166.       picUrls: _picUrls

  167.     })

  168.   }

  169. })

關于“微信小程序選擇器怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

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

AI

鄂州市| 安宁市| 宁波市| 伽师县| 北辰区| 惠水县| 庄浪县| 汉中市| 中江县| 绿春县| 淮北市| 竹北市| 黑河市| 定结县| 临城县| 平遥县| 柳河县| 普宁市| 晋江市| 呈贡县| 比如县| 忻城县| 托克逊县| 深泽县| 柳江县| 九江市| 夹江县| 漳州市| 揭阳市| 泾川县| 泰兴市| 太湖县| 秦皇岛市| 介休市| 镇宁| 高州市| 德保县| 泸西县| 威宁| 拉孜县| 焉耆|