Picker 选择器

此选择器有两种弹出模式

  1. 一是时间模式,可以配置年,日,月,时,分,秒参数
  2. 二是地区模式,可以配置省,市,区参数

提示

由于右侧的演示是通过iframe标签引入的,缺少了手机端运行的相关API,或者因为演示区域太小,或者电脑分别率不够高 ,导致演示可能会有问题,手机端有不会这些问题,请在右上角的”演示”中用手机扫码查看对应的效果。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 通过mode参数设置为time或者region,区分时间和地区模式。
  • 通过v-model双向绑定一个值为布尔值的变量,来打开或者收起picker。
  1. <template>
  2. <u-picker v-model="show" mode="time"></u-picker>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. show: false
  9. }
  10. }
  11. }
  12. </script>

设置默认时间或地区

  • 如果modetime,可以通过default-time参数设置打开时的默认时间,格式如”2025-07-02 13:01:00”、”2025-07-02 13:01”
  • 如果moderegion,可以通过default-region(Array格式)中文的省市区名称,如:[“河北省”, “秦皇岛市”, “北戴河区”],或者代号的 省市区,如:[“13”, “1303”, “130304”]。

注意:这些省市区的名称和代码,须是uView的Picker组件自身提供的,否则可能无法匹配

  1. <template>
  2. <u-picker mode="time" v-model="show" default-time="2025-07-02 13:01"></u-picker>
  3. <u-picker mode="region" v-model="show" :area-code='["13", "1303", "130304"]'></u-picker>
  4. </template>

设置需要显示的参数

  • 时间模式时:通过params参数传入一个对象给组件,给需要显示的参数属性置为true,可选的参数有:yearmonthdayhourminutesecond。 其中,hourminutesecond值默认为false,其他值默认为true
  • 地区模式时:可选的参数有:provincecityarea,默认都为true

下方示例时间模式,只会显示年,月,日3个参数可供选择:

  1. <template>
  2. <u-picker mode="time" v-model="show" :params="params"></u-picker>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. params: {
  9. year: true,
  10. month: true,
  11. day: true,
  12. hour: false,
  13. minute: false,
  14. second: false
  15. },
  16. show: false
  17. }
  18. }
  19. }
  20. </script>

回调参数

当点击picker的”取消”或者”确定”按钮时,会分别产生回调事件cancelconfirm,均为会返回组件内部的当前值。 回调的参数为一个对象,属性和传递给picker组件的params对象为true的属性一致。
注意:moderegion时,回调对象属性为一个对象,分别有labelvalue属性,见如下说明:

  1. // 组件内部parmas参数默认值:
  2. let params = {
  3. year: true,
  4. month: true,
  5. day: true,
  6. hour: false,
  7. minute: false,
  8. second: false,
  9. province: true,
  10. city: true,
  11. area: true
  12. }
  13. // 如果params值如下(时间选择模式)::
  14. let params = {
  15. year: true,
  16. month: true,
  17. day: true,
  18. hour: false,
  19. minute: false,
  20. second: false
  21. }
  22. // 那么回调的参数可能如下:
  23. {
  24. year: '2020',
  25. month: '05',
  26. day: '10'
  27. }
  28. // 如果params值如下(地区选择模式):
  29. let params = {
  30. province: true,
  31. city: true,
  32. area: true
  33. }
  34. // 那么回调的参数可能如下:
  35. {
  36. area: {
  37. label: "宝安区",
  38. value: "440306"
  39. },
  40. city: {
  41. label: "深圳市",
  42. value: "4403"
  43. },
  44. province: {
  45. label: "广东省",
  46. value: "44"
  47. },
  48. }

API

Props

注意:props中没有控制Picker打开与收起的参数,因为这是通过v-model绑定变量实现的,见上方说明。

参数说明类型默认值可选值
params需要显示的参数,见上方说明Object--
mode模式选择,region-地区类型,time-时间类型Stringtimeregion
start-year可选的开始年份,mode=time时有效String | Number1950-
end-year可选的结束年份,mode=time时有效String | Number2050-
safe-area-inset-bottom是否开启底部安全区适配Booleanfalsetrue
cancel-color取消按钮的颜色String#606266-
confirm-color确认按钮的颜色String#2979ff-
default-time默认选中的时间,mode=time时有效String--
default-region默认选中的地区,中文形式,mode=region时有效Array--
area-code默认选中的地区,编号形式,mode=region时有效Array--
mask-close-able是否允许通过点击遮罩关闭PickerBooleantruefalse
show-time-tag时间模式时,是否显示后面的年月日中文提示Booleantruefalse
z-index弹出时的z-indexString | Number1075-

Events

事件名说明回调参数版本
confirm点击确定按钮,返回当前选择的值Object: 见上方”回调参数”部分说明-
cancel点击取消按钮,返回当前选择的值Object: 见上方”回调参数”部分说明-