【经验分享】 自定义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

目录
相关文章
|
8月前
|
JSON 前端开发 数据可视化
AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程
AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程
1145 0
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
196 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
4月前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
108 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
3月前
|
移动开发 JSON 数据可视化
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
精选八款包括可视化CMS,jquery可视化表单,vue可视化拖拉,react可视化源码
66 0
|
5月前
|
搜索推荐 数据库
最新UI六零导航系统源码 | 多模版全开源
使用PHP+MySql,增加后台管理 多模板选择,支持在后台切换模板 增加常用搜索引擎,如:知乎、哔哩哔哩、在线翻译等(支持自定义) 支持用户提交收录申请,地址:http://域名/apply 部分模板优化和增加部分功能,如返回顶部、获取输入框焦点、时间日期显示等
88 1
|
6月前
|
存储 开发框架 前端开发
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
|
8月前
|
移动开发 小程序 前端开发
【5月开发者日回顾】自定义TabBar、自定义组件支持 observers两大功能即将上线
【5月开发者日回顾】自定义TabBar、自定义组件支持 observers两大功能即将上线
60 11
|
8月前
|
JavaScript 小程序 Android开发
【经验分享】如何实现自定义的actionSheet组件
【经验分享】如何实现自定义的actionSheet组件
130 6
|
8月前
|
缓存 JavaScript 测试技术
Vue 3实战:打造交互丰富的任务管理应用
Vue 3实战:打造交互丰富的任务管理应用
187 0
|
8月前
|
API
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
303 0