当前位置:   article > 正文

uniapp的picker组件demo_uniapp picker

uniapp picker

一、效果图

1.普通选择器 

 

2.多列选择器 

3.日期选择器 

4.时间选择器 

5.省市区选择器

二、代码

  1. <template>
  2. <view>
  3. <!-- 普通选择器(普通数组) -->
  4. <view class="sectionBox">
  5. <view class="sectionType">普通选择器(普通数组)</view>
  6. <picker @change="pickerChange" :value="index" :range="array">
  7. <view class="picker">
  8. 当前选择:{{array[index]}}
  9. </view>
  10. </picker>
  11. </view>
  12. <!-- 普通选择器(json格式数组) -->
  13. <view class="sectionBox">
  14. <view class="sectionType">普通选择器(json格式数组)</view>
  15. <picker @change="objectPickerChange" :value="objectIndex" :range="objectArray" range-key="name">
  16. <view class="picker">
  17. 当前选择:{{objectArray[objectIndex].name}}
  18. </view>
  19. </picker>
  20. </view>
  21. <!-- 多列选择器 -->
  22. <view class="sectionBox">
  23. <view class="sectionType">多列选择器:</view>
  24. <picker mode="multiSelector" @change="multiPickerChange" @columnchange="multiPickerColumnChange"
  25. :value="multiIndex" :range="multiArray">
  26. <view class="picker">
  27. 当前选择:{{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}}
  28. </view>
  29. </picker>
  30. </view>
  31. <!-- 日期选择器 -->
  32. <view class="sectionBox">
  33. <view class="sectionType">日期选择器:</view>
  34. <picker mode="date" :value="date" @change="dateChange">
  35. <view class="picker">
  36. 当前选择: {{date}}
  37. </view>
  38. </picker>
  39. </view>
  40. <!-- 时间选择器 -->
  41. <view class="sectionBox">
  42. <view class="sectionType">时间选择器:</view>
  43. <picker mode="time" :value="time" start="09:01" end="21:01" @change="timeChange">
  44. <view class="picker">
  45. 当前选择: {{time}}
  46. </view>
  47. </picker>
  48. </view>
  49. <!-- 省市区选择器 -->
  50. <view class="sectionBox">
  51. <view class="sectionType">省市区选择器:</view>
  52. <picker mode="region" @change="regionChange" :value="region">
  53. <view class="picker">
  54. 当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
  55. </view>
  56. </picker>
  57. </view>
  58. </view>
  59. </template>
  60. <script>
  61. export default {
  62. data() {
  63. return {
  64. // 普通选择器(普通数组)
  65. array: ['香蕉', '苹果', '葡萄', '蓝莓'],
  66. index: 0, //默认索引
  67. // 普通选择器(json格式数组)
  68. objectArray: [{
  69. id: 0,
  70. name: '语文'
  71. },
  72. {
  73. id: 1,
  74. name: '数学'
  75. },
  76. {
  77. id: 2,
  78. name: '历史'
  79. },
  80. {
  81. id: 3,
  82. name: '地理'
  83. }
  84. ],
  85. objectIndex: 0, //默认索引
  86. // 多列选择器
  87. multiArray: [
  88. ['音频', '视频'],
  89. ['mp3', '评书']
  90. ], //二维数组,长度是多少是几列
  91. multiIndex: [0, 0],
  92. // 日期选择器:
  93. date: '2023-06-06',
  94. // 时间选择器:
  95. time: '12:01',
  96. // 省市区选择器
  97. region: ['请选择', '请选择', '请选择'],
  98. }
  99. },
  100. methods: {
  101. // 普通选择器(普通数组)
  102. pickerChange(e) {
  103. console.log('picker发送选择改变,携带值为', e.detail.value)
  104. this.index = e.detail.value;
  105. },
  106. // 普通选择器(json格式数组)
  107. objectPickerChange(e) {
  108. console.log('picker发送选择改变,携带值为', e.detail.value)
  109. this.objectIndex = e.detail.value;
  110. },
  111. // 多列选择器
  112. multiPickerChange(e) {
  113. console.log('picker发送选择改变,携带值为', e.detail.value)
  114. this.multiIndex = e.detail.value;
  115. },
  116. multiPickerColumnChange(e) {
  117. console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
  118. if (e.detail.column == 0) { //1
  119. if (e.detail.value == 0) { //音频
  120. this.multiArray = [
  121. ['音频', '视频'],
  122. ['mp3', '评书']
  123. ];
  124. };
  125. if (e.detail.value == 1) { //视频
  126. this.multiArray = [
  127. ['音频', '视频'],
  128. ['电影', '电视剧']
  129. ];
  130. };
  131. };
  132. },
  133. // 日期选择器
  134. dateChange(e) {
  135. console.log('picker发送选择改变,携带值为', e.detail.value)
  136. this.date = e.detail.value;
  137. },
  138. // 时间选择器
  139. timeChange(e) {
  140. console.log('picker发送选择改变,携带值为', e.detail.value)
  141. this.time = e.detail.value;
  142. },
  143. // 省市区选择器
  144. regionChange(e) {
  145. console.log('picker发送选择改变,携带值为', e.detail.value)
  146. this.region = e.detail.value;
  147. }
  148. }
  149. }
  150. </script>
  151. <style scoped>
  152. .sectionBox {
  153. margin-bottom: 40rpx;
  154. }
  155. .sectionType {
  156. font-size: 30rpx;
  157. font-weight: bold;
  158. overflow: hidden;
  159. margin-bottom: 20rpx;
  160. }
  161. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/571098
推荐阅读
相关标签
  

闽ICP备14008679号