原生微信小程序自定义picker多列选择器:picker写法用法

这篇具有很好参考价值的文章主要介绍了原生微信小程序自定义picker多列选择器:picker写法用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

 文章来源地址https://www.toymoban.com/news/detail-736246.html

        

        最近用原生微信小程序写法写医疗相关项目微信小程序,在编辑个人资料的时候,需要很多选择器,比如城市地区选择器,职业职称选择器,科室选择器,学校选择器,学历选择器,年份日期选择器........

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

 

        总之用到的地方比较多,而微信文档里面这类的又很少,有的还不适合项目。需要进行改造。于是乎,便有了这篇文章。

 这是PC的编辑用户信息的选择器,小程序要做一样功能的,且调用PC选择器里面的接口返回的数据。

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序 

 微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

 

                                                         (pc的一些选择器样式功能)

先看看微信自有的一些选择器 

微信自带选择器直通车======》》》》》》  picker

 微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

 像上面的一些职称,年份,是可以直接用自带的普通选择器去做微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

 wxml

<view class="tui-picker-content">
			<view class="tui-picker-name">补全信息</view>
			<picker bindchange="changeOption" mode="selector"  range-key="label" value="{{optionindex}}" range="{{mobileOptions}}" style="width: 76%;">
				:<text class="tui-picker-detail">{{mobileOptions[optionindex].label}}</text>
				<image src="/images/select_down.png" mode=""></image>
	</picker>
</view>

js 

//数据	
mobileOptions: [{
			roleid: 1,
			label: '执业医师'
		}, {
			roleid: 5,
			label: '医学生'
		}, {
			roleid: 0,
			label: '其他'
		}],



	// 选择补充信息
	changeOption(e) {
		console.log(e, 'eeeee',this.data.mobileOptions[e.detail.value].roleid)
		this.setData({
			roleid: this.data.mobileOptions[e.detail.value].roleid,
			optionindex: e.detail.value
		});
		//职业医师
		if (this.data.mobileOptions[e.detail.value].roleid == 1) {

		}
		//医学生
		if (this.data.mobileOptions[e.detail.value].roleid == 1) {

		}
		//其他
		if (this.data.mobileOptions[e.detail.value].roleid == 0) {

		}
	},

多级选择器 

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序 

<!--pages/picker/picker.wxml-->
<view>
	<view class="tui-picker-content">
			 <view class="tui-picker-name">科室</view>
			<picker mode="multiSelector" bindchange="bindMultiPickerChange_keshi" bindcolumnchange="bindMultiPickerColumnChange_keshi"
			      value="{{multiIndex}}" range="{{newArr}}">
			    <view class="picker">
					:<van-button type="primary" style="font-size:28rpx;">{{division?division:'请选择科室'}}</van-button>
			    </view>
				<image  bindchange="changeRegin" src="/images/select_down.png" mode="" ></image>
			</picker>
		</view>
</view>

数据格式 

 微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

 

// pages/picker/picker.js
import {
	config
} from '../../config.js'
Page({
	onShareAppMessage() {
		return {
			title: 'picker',
		}
	},
	/**
	 * 页面的初始数据
	 */
	data: {
	    //科室
		multiArray:[],
		multiIndex: [0, 0, 0],
		multiIds: [],
		newArr: [],
	},
	onShow: function() {
		console.log('onShow')


	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function(options) {

	},

	bindMultiPickerChange_keshi(e) {
		console.log(this.data.multiIds);
		let name = this.data.multiIds.map(i=>i.name).join('/')
		console.log(name,'科室name===')
		this.setData({
			division:name
		})
	},
	bindMultiPickerColumnChange_keshi(e) {
		let data = {
			newArr: this.data.newArr,
			multiIndex: this.data.multiIndex,
			multiIds: this.data.multiIds,
		};
		data.multiIndex[e.detail.column] = e.detail.value;

		let searchColumn = () => {
			let arr1 = [];
			let arr2 = [];
			this.data.multiArray.map((v, vk) => {
				if (data.multiIndex[0] === vk) {
					data.multiIds[0] = {
						...v,
					};
					v.children.map((c, ck) => {
						arr1.push(c.name);
						if (data.multiIndex[1] === ck) {
							data.multiIds[1] = {
								...c,
							};
							// c.children.map((t, vt) => {
							// 	arr2.push(t.name);
							// 	if (data.multiIndex[2] === vt) {
							// 		data.multiIds[2] = {
							// 			...t,
							// 		};
							// 	}
							// });
						}
					});
				}
			});
			data.newArr[1] = arr1;
			data.newArr[2] = arr2;
		};
		switch (e.detail.column) {
			case 0:
				// 每次切换还原初始值
				data.multiIndex[1] = 0;
				data.multiIndex[2] = 0;
				// 执行函数处理
				searchColumn();
				break;
			case 1:
				data.multiIndex[2] = 0;
				searchColumn();
				break;
		}
		this.setData(data);
	},




	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function() {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {

	}
})

尾部,看看成品

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

微信小程序自定义picker,微信小程序,前端,javascript,微信小程序

看完记得点个赞呗~~

 

到了这里,关于原生微信小程序自定义picker多列选择器:picker写法用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用原生小程序组件Picker自定义日期时间选择器

    1、 Picker简单介绍 可以看到Picker类型有5种, 具体可以查看微信开放文档 picker。 Picker(选择器)是一种常见的用户界面控件,用于从多个选项中选择一个或多个选项。在小程序中,Picker 是一种可用于选择日期、时间、地点等信息的组件。 小程序中的 Picker 组件提供了几种不

    2024年02月09日
    浏览(45)
  • 微信小程序多列选择器实现日期+时间的选择

    2.实现原理   3.实现代码 自定义range数组:

    2024年02月16日
    浏览(50)
  • vue3 setup+Taro3 调用原生小程序自定义年月日时分多列选择器,NutUI改造

    NutUI 有日期时间选择器,但是滑动效果太差,卡顿明显。换成 原生小程序 很顺畅 上代码: 若需要自定义年开始时间,见 initColumn 方法 如作为组件,通过父级传递,可使用:

    2024年02月13日
    浏览(43)
  • 微信小程序原生写法传递参数

        data-xxx   自定义参数名  ,接收参数:方法(变量名)  如果需要传递多个,可以写多个data-[参数]的方式进行传递 多个参数写法 data-a ,data-b, 接收参数 :方法(变量名)    建议采用全小写命名,简短短拼~

    2024年02月09日
    浏览(55)
  • 【微信小程序】选择器组件picker

    picker组件是一种从底部向上弹起的滚动选择器。 在官方文档中,有提供五种类型的picker组件,如普通选择器,多列选择器,时间选择器,日期选择器和省市区选择器。 (猜测是,这些选择器时不同的且常用的某种类型,于是就产生固定的模版)。 而在写法上是这么写滴,

    2024年01月18日
    浏览(54)
  • 【微信小程序】picker 滚动选择器

    参考:picker | 微信开放文档 刚开始使用的是vantweap的picker,但是居然有蒙版还无法自定义样式。 Picker 选择器 - Vant Weapp 苦恼ing。最后看到原生组件有自定义蒙版样式,豁然开朗~ 激活项的蒙版在文字上方   利用relative的层级z-index:-1展示在文字下方。

    2024年02月16日
    浏览(38)
  • 在微信小程序使用picker实现日期选择

    而且选择开始时间后,选择结束时间,能够选择的日期不能比开始日期还要早。要实现以上效果可这样写: 在wxml中写

    2024年02月16日
    浏览(63)
  • uni小程序中 picker选择器的使用,如省市区样式的多列选择实现

    uni.app自带的滚动选择器。一共有五种方式,通过mode来区分,分别是:普通选择器、多列选择器、日期选择器、事件选择器和省市区选择器。 本文展示 多列选择器的使用 对你有用就给个赞。。。赞。。。赞。。

    2024年02月02日
    浏览(59)
  • 微信小程序picker表单选择器的使用

    微信小程序picker表单选择器的使用 微信小程序picker表单选择器的使用 bindchange:当选择项改变时触发的方法 range:选项数组可以是二维数组 range-key:如果是二维数组时,用此属性指定第二维数组的键以达到在选择项中显示这个键对应的键值 value:是当前值是当前选中的数组的索

    2024年02月16日
    浏览(50)
  • 【微信小程序】-- 表单组件 - picker 实现日期选择器(五十三)

    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,

    2023年04月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包