文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序选择器怎么用

2023-06-26 08:44

关注

这篇文章主要介绍“微信小程序选择器怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序选择器怎么用”文章能帮助大家解决问题。

页面结构

  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>

复制代码


这里用到的组件和指令有:


组件什么的看看组件文档就知道了呗

页面样式

  1. .choose{

  2.         background-color: #fff;

  3. }

  4. .choose-grids{

  5.         display: flex;

  6.         flex-wrap: wrap;

  7.         justify-content: space-around;

  8.         padding: 50rpx;

  9. }

  10. .choose-grids .grid{

  11.         width: 45%;

  12.         height: 100rpx;

  13.         margin-top: 36rpx;

  14.         border-radius: 6rpx;

  15.         line-height: 100rpx;

  16.         text-align: center;

  17.         border: 2rpx solid #b9dd08;

  18. }

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

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

  21.         margin-top: 0;

  22. }

  23. .action .action-photo{

  24.         background-color: #fff;

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

  26. }

  27. .action .action-photo image{

  28.         position: relative;

  29.         display: inline-block;

  30.         width: 120rpx;

  31.         height: 120rpx;

  32.         overflow: visible;

  33.         margin-left: 25rpx;

  34. }

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

  36.         display: block;

  37.         position: absolute;

  38.         top: -20rpx;

  39.         right: -20rpx;

  40. }

  41. .action .action-photo text.add{

  42.         display: inline-block;

  43.         width: 120rpx;

  44.         height: 120rpx;

  45.         line-height: 120rpx;

  46.         text-align: center;

  47.         font-size: 24rpx;

  48.         color: #ccc;

  49.         border: 2rpx dotted #ccc;

  50.         margin-left: 25rpx;

  51.         vertical-align: top;

  52. }

  53. .action .action-input{

  54.         padding-left: 50rpx;

  55.         margin-top: 30rpx;

  56.         background-color: #fff;

  57. }

  58. .action .action-input input{

  59.         width: 90%;

  60.         padding-top: 40rpx;

  61.         padding-bottom: 40rpx;

  62. }

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

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

  65.         padding-bottom: 20rpx;

  66. }

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

  68.         padding-top: 20rpx;

  69. }

  70. .action .action-submit{

  71.         padding: 40rpx 40rpx;

  72.         background-color: #f2f2f2;

  73. }

复制代码


页面数据逻辑

  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. })

关于“微信小程序选择器怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯