picker

更新时间:

滚动选择器,支持四种选择器,普通选择器,日期选择器,时间选择器,索引栏选择器。

子组件

不支持

属性

支持通用属性

普通选择器

名称 类型 默认值 必填 描述
type text - 不支持动态修改
range <array> - 选择器的取值范围
selected <string> 0 选择器的默认取值,取值为 range 的索引
loop <boolean> false 是否开启循环模式,选项数量大于 2 时生效

日期选择器

名称 类型 默认值 必填 描述
type date - 不支持动态修改
start <time> 1970-1-1 起始时间,格式为 yyyy-MM-dd
end <time> 2100-12-31 结束时间,格式为 yyyy-MM-dd
selected <string> 当前时间 选择器的默认取值,格式为 yyyy-MM-dd
loop <boolean> false 是否开启循环模式,选项数量大于 2 时生效

时间选择器

名称 类型 默认值 必填 描述
type time - 不支持动态修改
selected <string> 当前时间 选择器的默认取值,格式为 "HH:mm:ss"
format <string> HH:mm:ss 展示的时间格式,默认 24 小时制,12 小时制目前支持"h:mm A",不支持"h:mm:ss A"
loop <boolean> false 是否开启循环模式,选项数量大于 2 时生效

索引栏选择器

名称 类型 默认值 必填 描述
type index-bar - 不支持动态修改
range <array> - 选择器的取值范围。建议每个选项内容为 1 个字符。
selected <string> 0 选择器的默认取值,取值为 range 的索引

样式

支持通用样式

名称 类型 默认值 必填 描述
font-size <length> 40px 未选中项文本尺寸
selected-font-size <length> 56px 选中项文本尺寸
color <color> #ffffffff 未选中项文本颜色
selected-color <color> #ffffffff 选中项文本颜色
selected-background-color <color> #ff415fff 选中项背景颜色
linecolor <color> - 下划线的颜色

事件

不支持 click 事件,支持通用事件

普通选择器

名称 参数 描述
change {newValue:newValue, newSelected:newSelected} 滚动选择器选择值后触发(newSelected 为索引)

日期选择器

名称 参数 描述
change {year:year, month:month, day:day} 滚动选择器选择值后触发

时间选择器

名称 参数 描述
change {hour:hour, minute:minute,second:second} 滚动选择器选择值后触发

索引栏选择器

名称 参数 描述
change {newValue:newValue, newSelected:newSelected} 滚动选择器选择值后触发(newSelected 为索引)

方法

索引栏选择器

名称 参数 描述
scrollTo { index: number } 索引栏选择器平滑的滚动到 index 位置,index 为选项值的序号(从0开始),调用后会触发change事件。scrollTo 和赋值属性 selected 的区别:selected 赋值是瞬间到达索引位置,scrollTo 方法是平滑的到索引位置

picker组件示例

弧形选择器
<template>
  <stack>
    <text class="container" style="background-color:{{ range[content] }};">
      {{ content }}
    </text>
    <picker
      class="picker"
      type="arc"
      onchange="pickHandler"
      range="{{ Object.keys(range) }}"
    ></picker>
  </stack>
</template>

<script>
export default {
  data() {
    return {
      range: {
        红: '#FF0000',
        橙: '#FFA500',
        黄: '#FFFF00'
      },
      content: '红'
    }
  },
  pickHandler(evt) {
    this.content = evt.newValue
    console.log(
      `picker newSelected:${evt.newSelected}, newValue:${evt.newValue}`
    )
  }
}
</script>

<style>
.container,
.picker {
  width: 480px;
  height: 480px;
}
.container {
  font-size: 100px;
  text-align: center;
}
.picker {
  pointer-events: none;
}
</style>
复制代码
图标图标
图标图标
图标
日期选择器
<template>
  <picker class="picker" type="date" onchange="pickHandler"></picker>
</template>

<script>
export default {
  pickHandler(evt) {
    console.log(`picker year:${evt.year}, month:${evt.month}, day:${evt.day}`)
  }
}
</script>

<style>
.picker {
  width: 480px;
  height: 480px;
  background-color: #000000;
}
</style>
复制代码
图标图标
图标图标
图标
普通选择器
<template>
  <picker
    class="picker"
    type="text"
    range="{{ range }}"
    onchange="pickHandler"
  ></picker>
</template>

<script>
export default {
  data() {
    return {
      range: ['中国', '美国', '英国', '日本', '韩国', '西班牙']
    }
  },
  pickHandler(evt) {
    console.log(
      `picker newSelected:${evt.newSelected}, newValue:${evt.newValue}`
    )
  }
}
</script>

<style>
.picker {
  width: 480px;
  height: 480px;
  background-color: #000000;
}
</style>
复制代码
图标图标
图标图标
图标
时间选择器
<template>
  <picker class="picker" type="time" onchange="pickHandler"></picker>
</template>

<script>
export default {
  pickHandler(evt) {
    console.log(
      `picker hour:${evt.hour}, minute:${evt.minute}, second:${evt.second}`
    )
  }
}
</script>

<style>
.picker {
  width: 480px;
  height: 480px;
  background-color: #000000;
}
</style>
复制代码
图标图标
图标图标
图标
上一篇
label
下一篇
slider
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈