经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序实现select二级下拉
来源:jb51  时间:2022/7/19 15:03:29  对本文有异议

本文实例为大家分享了微信小程序实现select二级下拉的具体代码,供大家参考,具体内容如下

xiala.wxml

  1. <!-- 列表选择 -->
  2. <view class="list" hover-class="none" hover-stop-propagation="false">
  3. ? ? <text class="listText dd">3.请选择门店</text>
  4. ? ? <view class="box" hover-class="none" hover-stop-propagation="false">
  5. ? ? ? ? <view class='select_box'>
  6. ? ? ? ? ? ? <view class='select' catchtap='dianTap'>
  7. ? ? ? ? ? ? ? ? <input type="number" class='select_text' disabled="true" adjust-position="flase"
  8. ? ? ? ? ? ? ? ? ? ? value="{{dian[index]}}" name="lie" />
  9. ? ? ? ? ? ? ? ? <image class='select_img {{dianShow&&"select_img_rotate"}}' src='/pages/image/b2.png'
  10. ? ? ? ? ? ? ? ? ? ? background-size="contain"></image>
  11. ? ? ? ? ? ? </view>
  12. ? ? ? ? ? ? <view class="option_bbox" hover-class="none" hover-stop-propagation="false">
  13. ? ? ? ? ? ? ? ?<view class='option_box' style='height:{{dianShow?(area.length>5?325:dian.length*70):0}}rpx;'>
  14. ? ? ? ? ? ? ? ? <text class='option' wx:for='{{area}}' wx:key='this' data-index='{{index}}' data-aid='{{item.id}}' ?catchtap='areaId'>{{item.name}}</text>
  15. ? ? ? ? ? ? </view>
  16. ? ? ? ? ? ? <view class='option_box' style='height:{{dianShow?(dian.length>5?325:dian.length*70):0}}rpx;'>
  17. ? ? ? ? ? ? ? ? <text class='option' wx:for='{{dian}}' wx:key='this' data-index='{{dian}}' catchtap='optionTap'>{{item}}</text>
  18. ? ? ? ? ? ? </view>?
  19. ? ? ? ? ? ? </view>
  20. ? ? ? ? ? ??
  21. ? ? ? ? </view>
  22. ? ? </view>
  23.  
  24. </view>

js页面

  1. // pages/xiala/xiala.js
  2. Page({
  3.  
  4. ? /**
  5. ? ?* 页面的初始数据
  6. ? ?*/
  7. ? data: {
  8. ? ? liebiao:[],
  9. ? ? price:[],
  10. ? ? index:0,
  11. ? ? area:[],
  12. ? ? areaId:'',
  13. ? ? dian:[]
  14. ? },
  15. ??
  16.  
  17. ? /**
  18. ? ?* 生命周期函数--监听页面加载
  19. ? ?*/
  20. ? onLoad: function (options) {
  21. ? ?var that = this;
  22. ? ?that.area();
  23. ? ?
  24. ? },
  25. // 获取区域
  26. area(){
  27. ? var that = this;
  28. ? ? wx.request({
  29. ? ? ? url: 'xxxxxx',
  30. ? ? ? header: {
  31. ? ? ? ? 'content-type': 'application/json' // 默认值
  32. ? ? ? },
  33. ? ? ? success(res) {
  34. ? ? ? ? console.log(res.data)
  35. ? ? ? ? let area = res.data.data;
  36. ? ? ? ? let obMut = [];
  37. ? ? ? ? let areaId;
  38. ? ? ? ? for(var i=0; i<area.length;i++){
  39. ? ? ? ? ? areaId = area[0].id;
  40. ? ? ? ? ? obMut.push({id:area[i].id,name:area[i].name});
  41. ? ? ? ? ? }
  42. ? ? ? ? ??
  43. ? ? ? ? ? that.setData({
  44. ? ? ? ? ? ? areaId:areaId,
  45. ? ? ? ? ? ? area:obMut
  46. ? ? ? ? ? ?})
  47. ? ? ? ? ? // ?console.log(that.data.areaId)
  48. ? ? ? ? ? that.dian();
  49. ? ? ? }
  50. ? ? ??
  51. ? ? })
  52. ? ??
  53. },
  54. // 点击改变区id
  55. areaId(e){
  56. ? var that = this;
  57. ? that.setData({
  58. ? ? areaId: e.currentTarget.dataset.aid,
  59. ? })
  60. ? that.dian();
  61. },
  62. // 获取店
  63. dian:function(){
  64. ? let that = this;
  65. ? let idx =that.data.areaId;
  66. ? let area = that.data.area;
  67. ? console.log(area)
  68. ? area.forEach((item, index) => {
  69. ? ? if (idx === item.id) {
  70. ? ? ? item.status = true
  71. ? ? ? wx.request({
  72. ? ? ? ? url: 'xxxxxxx',
  73. ? ? ? ? dataType: 'json',
  74. ? ? ? ? method: 'POST',
  75. ? ? ? ? header: {
  76. ? ? ? ? ?'Content-Type': 'application/x-www-form-urlencoded'
  77. ? ? ? ? },
  78. ? ? ? ? data: {
  79. ? ? ? ? ? aid: item.id
  80. ? ? ? ? },
  81. ? ? ? ? success(res) {
  82. ? ? ? ? ? // console.log(res)
  83. ? ? ? ? ? let fmutA = that.data.fmutA;
  84. ? ? ? ? ? if (res.data.status === 1) {
  85. ? ? ? ? ? console.log(res.data.shop)
  86. ? ? ? ? ??
  87. ? ? ? ? ? let dian = res.data.shop;
  88. ? ? ? ? ? let fDian = [];
  89. ? ? ? ? ??
  90. ? ? ? ? ? for(var i=0; i<dian.length;i++){
  91. ? ? ? ? ? ? fDian[i] = dian[i].name;
  92. ? ? ? ? ? ? }
  93. ? ? ? ? ? console.log(fDian)
  94. ? ? ? ? ? that.setData({
  95. ? ? ? ? ? ? dian: fDian,
  96. ? ? ? ? ? ?})
  97. ? ? ? ? }
  98. ? ? ? ? ??
  99. ??
  100. ? ? ? ? }
  101. ? ? ? })
  102. ? }else{
  103. ? ? item.status = false
  104. ? }
  105. ? })
  106. },
  107. ? // 点击下拉显示框
  108. ? dianTap() {
  109. ? ? this.setData({
  110. ? ? ? dianShow: !this.data.dianShow
  111. ? ? });
  112. ? },
  113. ? // 点击下拉列表
  114. ? optionTap(e) {
  115. ? ? let Index = e.currentTarget.dataset.index;//获取点击的下拉列表的下标
  116. ? ? this.setData({
  117. ? ? ? index: Index,
  118. ? ? ? dianShow: !this.data.dianShow
  119. ? ? });
  120. ? }
  121. })

wxss页面

  1. /* 列表 */
  2. /* pages/map/map.wxss */
  3. .select_box{
  4. ? width: 63%;
  5. ? height:70%;
  6. ? border-radius: 14rpx;
  7. ? position: relative;
  8. }
  9. .select_box .select{
  10. ? box-sizing: border-box;
  11. ? width: 100%;
  12. ? height: 100%;
  13. ? border-radius: 8rpx;
  14. ? display: flex;
  15. ? align-items: center;
  16. }
  17. .select_box .select .select_text{
  18. ? color: #777777;
  19. ? line-height: 28rpx;
  20. ? flex: 1;
  21. }
  22. .select_box .select .select_img{
  23. ? width: 20rpx;
  24. ? height: 20rpx;
  25. ? display: block;
  26. ? transition:transform 0.3s;
  27. ? position: absolute;
  28. ? right: 25rpx;
  29. }
  30. .select_box .select .select_img_rotate{
  31. ? transform:rotate(180deg);?
  32. }
  33. .select_box .option_box{
  34. position: absolute;
  35. top: calc(100% - 1px);
  36. width: 100%;
  37. box-sizing: border-box;
  38. height: 0;
  39. overflow-y: auto;
  40. background: #fff;
  41. transition: height 0.3s;
  42. border: 1px solid #efefef;
  43. border-right: 1px solid #efefef;
  44. background: #fcfcfc;
  45. }
  46. .select_box .option_box .option{
  47. ? display: block;
  48. ? line-height: 38rpx;?
  49. ? font-size: 9pt;
  50. ? border-top: 1px solid #efefef;
  51. ? border-bottom: 1px solid #efefef;
  52. ? padding: 10rpx;
  53. }
  54. .option_bbox{
  55. ? ? display: flex;
  56. ? ? justify-content: row;
  57. }
  58. .select_box .option_box {
  59. ? ? position: relative;
  60. }

界面比较原始,建议自行美化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号