引入

  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

axml

  1. <view class="wrapper">
  2. <x-nav-bar showArrow="{{true}}" title="测试Picker"></x-nav-bar>
  3. <!-- <x-header tip1="天猫精灵,打开勿扰模式" tip2="天猫精灵,关闭勿扰模式"></x-header> -->
  4. <view style="height: 30rpx"></view>
  5. <x-picker
  6. show="{{ showPicker }}"
  7. pickerData="{{ pickerData }}"
  8. change="handleChange"
  9. clickConfirm="clickConfirm"
  10. clickCancel="clickCancel"
  11. ></x-picker>
  12. <x-button text="显示通用选择器" click="clickPickerButton" type="primary"></x-button>
  13. <x-button text="显示时间选择器" click="clickTimeButton" type="secondary"></x-button>
  14. <x-button type="tip" text="天猫精灵,打开勿扰模式"></x-button>
  15. <x-image src="https://gw.alicdn.com/imgextra/i1/O1CN01Ol1xXi1zuXeMTVRjD_!!6000000006774-2-tps-305-305.png"></x-image>
  16. <x-time-picker
  17. show="{{ showTimePicker }}"
  18. clickConfirm="clickConfirm"
  19. clickCancel="clickCancel"
  20. change="handleChange"
  21. ></x-time-picker>
  22. <!-- <x-footer tip1="天猫精灵,回到顶部" tip2="天猫精灵,播放我的收藏" tip3="天猫精灵,打开最火综艺"></x-footer> -->
  23. </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-card": "../assembly/card/card",
    "x-picker": "../assembly/picker/picker",
    "x-time-picker": "../assembly/time-picker/time-picker",
    "x-button":"../assembly/button/button",
    "x-header":"../assembly/header/header",
    "x-footer":"../assembly/footer/footer",
    "x-image":"../assembly/image/image"
  },
  "state":{
    "showPicker": false,
    // 多列选择器
    "pickerData": [
      {
        "options": ["选项1", "选项2", "选项3", "选项4", "选项5", "选项6"],
        "index": 0
      },
      {
        "options": ["选项1", "选项2", "选项3"],
        "index": 0
      }
    ],
    // 单列选择器
    "pickerData": [
      {
        "options": ["选项1", "选项2", "选项3", "选项4", "选项5", "选项6"],
        "index": 0
      }
    ],
    // 级联选择器(目前只支持两级)
    "pickerData": {
      "选项1":{
        "options":["选项a","选项b","选项c","选项d"],
        "index":0
      },
      "选项2":{
          "options":["选项e","选项f","选项g","选项h"],
            "index":0
        }
    }
  }

}

ts

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

export class TestPicker extends Page {
  constructor(props: Props) {
    super(props);
    this.addEventListener("clickConfirm",(event,target) => {
      console.log("===test-picker的clickConfirm事件===")
      console.log(event.toString());
      (target as TestPicker).setState(
        JSON.parseObject(`{"showPicker":false}`)
      );
      (target as TestPicker).setState(
        JSON.parseObject(`{"showTimePicker":false}`)
      );
    })
    this.addEventListener("clickCancel",(event,target) => {
      console.log("===test-picker的clickCancel事件===")
      console.log(event.toString());
      (target as TestPicker).setState(
        JSON.parseObject(`{"showPicker":false}`)
      );
      (target as TestPicker).setState(
        JSON.parseObject(`{"showTimePicker":false}`)
      );
    })
    this.addEventListener("handleChange",(event,target) => {
      console.log("===test-picker的handleChange事件===")
      console.log(event.toString());
    })
    this.addEventListener("clickTimeButton", (e, target): void => {
      (target as TestPicker).setState(
        JSON.parseObject(`{"showTimePicker":true}`)
      );
    });
    this.addEventListener("clickPickerButton", (e, target): void => {
      (target as TestPicker).setState(
        JSON.parseObject(`{"showPicker":true}`)
      );
    });
  }
}

API

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

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