【经验分享】 自定义picker组件,拿走即用。

简介: 【经验分享】 自定义picker组件,拿走即用。

支付宝小程序的UI样式向原生靠齐,picker组件不满足设计小姐姐的要求,然后卑微的切图仔出来搞了个自定义的picker组件样式。

老规矩效果图:


实现方案:

组件抛出四个属性:

属性

默认值

描述

pickerIndex

[]

默认选中下标,即弹起时默认选中第几项

show

false

是否显示picker弹窗

list

[]

picker可选项列表

title

picker标题

组件JS, 接收父组件传递的值,以及抛出点击取消回调

Component({
  data: {},
  props: {
    pickerIndex: [], // 默认选中下标
    show: false, // 是否显示
    list: [], // 列表
    title: '' // 标题
  },
  methods: {
    // 取消按钮点击
    handlePickerCancle() {
      this.props.onCancle()
    },
    // 确定按钮点击
    handlePickerConfirm() {
      this.props.onConfirm({ key: this.data.pickerKey, value: this.data.pickerValue })
    },
    // picker切换
    handlePickerChange(e) {
      this.setData({
        pickerKey: e.detail.value[0],
        pickerValue: this.props.list[e.detail.value]
      })
    }
  }
})

页面引用方式:需注意默认选中第几项是个数组。

<qts-picker title="{{title}}" show="{{show}}" list="{{list}}" pickerIndex="{{index}}" onCancle="handleClick" onConfirm="handleConfirm" />
Page({
  data: {
    show: false, // 是否显示picker
    title: '薪资单位', // picker标题
    index: [2], // 默认选中第几项
    list: ['日','周','月','季','年'],
    key: '',
    value: ''
  },
  handleClick() {
    this.setData({
      show: !this.data.show
    })
  },
  handleConfirm(e) {
    console.log(e)
    this.setData({
      key: e.key,
      value: e.value
    })
    this.handleClick()
  }
})

完整代码片段如下:

https://pen.mini-code.com/s/dce92ada-f3c6-429a-8139-14ee583020bf

目录
相关文章
|
JavaScript
【Vue3从零开始-实战】S16:详情页样式优化及tab栏内容联动功能实现
【Vue3从零开始-实战】S16:详情页样式优化及tab栏内容联动功能实现
293 0
【Vue3从零开始-实战】S16:详情页样式优化及tab栏内容联动功能实现
|
存储 JSON druid
使用阿里云相关组件总结
总结我个人使用过的阿里组件
|
2月前
|
编解码 数据可视化 API
DIY可视化UniApp表格组件
DIY可视化UniApp表格组件
44 0
|
4月前
|
开发框架 JSON 缓存
基于SqlSugar的开发框架循序渐进介绍(22)-- Vue3+TypeScript的前端工作流模块中实现统一的表单编辑和表单详情查看处理
基于SqlSugar的开发框架循序渐进介绍(22)-- Vue3+TypeScript的前端工作流模块中实现统一的表单编辑和表单详情查看处理
|
JSON 小程序 JavaScript
小程序中如何使用自定义组件应用及搭建个人中心布局
小程序中如何使用自定义组件应用及搭建个人中心布局
68 0
|
7月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的付费问答系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的付费问答系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
7月前
|
移动开发 小程序 前端开发
【5月开发者日回顾】自定义TabBar、自定义组件支持 observers两大功能即将上线
【5月开发者日回顾】自定义TabBar、自定义组件支持 observers两大功能即将上线
53 11
|
7月前
|
JavaScript 小程序 Android开发
【经验分享】如何实现自定义的actionSheet组件
【经验分享】如何实现自定义的actionSheet组件
124 6
|
数据格式
宜搭自定义页面组件 TablePc 渲染错误
宜搭自定义页面组件 TablePc 渲染错误
253 4
|
7月前
|
API
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
265 0