引入

  1. {
  2. "usingComponents": {
  3. "x-picker": "waft-ui/assembly/picker/picker"
  4. }
  5. }

代码示例

  1. <x-picker
  2. show="{{ showPicker }}"
  3. pickerData="{{ pickerData }}"
  4. change="handleChange"
  5. clickConfirm="clickConfirm"
  6. clickCancel="clickCancel"
  7. ></x-picker>

效果展示

picker.png

组件样式

html

  1. <view class="wrapper">
  2. <x-nav-bar showArrow="{{true}}" title="测试Picker"></x-nav-bar>
  3. <view style="height: 30rpx"></view>
  4. <x-picker
  5. show="{{ showPicker }}"
  6. pickerData="{{ pickerData }}"
  7. onChange="handleChange"
  8. onConfirm="onConfirm"
  9. onCancel="onCancel"
  10. ></x-picker>
  11. <x-button text="显示通用选择器" onTap="clickPickerButton" type="primary"></x-button>
  12. </view>

css

.wrapper {
  background-color:#eeeeee;
  height: 100vh;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

json

{
    "usingComponents": {
    "x-nav-bar": "../assembly/nav-bar/nav-bar",
    "x-picker": "../assembly/picker/picker",
    "x-button":"../assembly/button/button",
  },
  "state":{
    "showPicker": false,
    // 多列选择器
    "pickerData": [
      {
        "options":["选项a","选项b","选项c","选项d"],
        "index":0
      },
      {
          "options":["选项e","选项f","选项g","选项h"],
            "index":0
        }
    ]
  }

}

ts

import { Event, Page, Props, console } from "waft";
import { JSON, JSONObject } from "waft-json";

export class TestPicker extends Page {
  constructor(props: Props) {
    super(props);
  }

  onConfirm(e: Event): void{
    console.log("===test-picker的onConfirm事件===");
    console.log(e.toString());
    this.setState(
      JSON.parseObject(`{"showPicker":false}`)
    );
    this.setState(
      JSON.parseObject(`{"showTimePicker":false}`)
    );
  }

  onCancel(e: Event): void{
    console.log("===test-picker的onCancel事件===");
    console.log(e.toString());
    this.setState(
      JSON.parseObject(`{"showPicker":false}`)
    );
    this.setState(
      JSON.parseObject(`{"showTimePicker":false}`)
    );
  }

  handleChange(e: Event): void{
    console.log("===test-picker的handleChange事件===");
    console.log(e.toString());
  }

  clickTimeButton(e: Event): void{
    this.setState(
      JSON.parseObject(`{"showTimePicker":true}`)
    );
  }

  clickPickerButton(e: Event):void{
    this.setState(
      JSON.parseObject(`{"showPicker":true}`)
    );
  }
}

API

  • props | 参数 | 说明 | 类型 | 默认值 | | —- | —- | —- | —- | | show | 是否显示选择器 | | | | title | 选择器标题 | | | | pickerData | 选择器数据 | | |

  • Event | 事件名 | 说明 | 返回值 | | —- | —- | —- | | clickConfirm | 点击确定按钮触发 | 当前选中数据 | | clickCancel | 点击取消按钮触发 | 当前选中数据 | | change | 数据发生改变时触发 | 发生改变的列选中的数据 |