微信小程序下拉框插件_微信小程序下拉框组件使用方法详解

本文详细介绍了微信小程序下拉框组件的使用,包括省市三级联动、出生日期选择和性别选择等场景,提供了相应的代码示例和绑定事件的方法。通过组件化的实现方式,帮助开发者更高效地实现下拉选择功能。
摘要由CSDN通过智能技术生成

本文实例为大家分享了微信小程序下拉框组件的使用方法,供大家参考,具体内容如下

适用场景

1、省市三级联动

2、出生日期选择

3、性别选择

4、一般性的下拉选择等

一、省市三级联动使用

注意mode = region,以及value = “一维数组”

//.wxml

data-method="bindSelect" data-name="region" value="{{region}}" custom-item="{{customItem}}">

当前选择:{{region[0]}},{{region[1]}},{{region[2]}}

二、出生日期选择

注意mode = date,以及value = “日期字符串”

{{date}}

三、性别选择

注意,不填mode默认为selector,range=”一维数组”,value=”当前选中索引”

{{gender[index]}}

以上都需要在.js里设置相关初始变量!

//.js

var app = getApp();

data: {

region:['河北','沧州','河间'],

date:'2010-10-10',

gender:['男','女'],

index:0

},

bindViewEvent:function(e){

app.process(this,e);

}

相关js类

//component.js

const select = require('../component/select.js');

const upload = require('../component/upload.js');

class component{

constructor(com, that) {

this.com = com;

this.that = that;

}

//绑定下拉框选择事件

bindSelect(data){

let self = this;

let mode = data.currentTarget.dataset.mode;

let name = data.currentTarget.dataset.name;

let picker = new select({

that: self.that,

mode: mode,

name: name

});

picker.change(data.detail.value);

}

//点击事件,传递参数为e.currentTarget.dataset

bindImageChoose(data){

//图片上传

this.uploader = new upload({

that: that,

name: data.name,

mode: data.mode,

count: data.count || 9

});

this.uploader.choose();

}

bindImageDel(data){

//图片上传

this.uploader = new upload({

that: that,

name: data.name,

mode: data.mode,

count: data.count || 9

});

this.uploader.del(data.index);

}

}

module.exports = component;

//select.js

/*

* 下拉框对象

*/

class picker{

constructor(data){

this.that = data.that;

this.name = data.name || 'date';

this.mode = data.mode || 'selector';

}

show(name,data){

let view = {};

view[name] = data;

this.that.setData(view);

}

change(data){

let self = this;

self.show(self.name, data);

}

}

module.exports = picker;

//upload.js

class picUploader {

constructor(data) {

this.that = data.that;

this.name = data.name;

this.mode = data.mode || 1;

this.count = this.model == 1 ? 1 : data.count || 9;

}

/*

* 选择图片

*/

choose() {

const self = this;

wx.chooseImage({

count: (self.count - self.that.data[self.name].length),

sizeType: ['original', 'compressed'],

sourceType: ['album', 'camera'],

success: function (res) {

var tempFilePaths = res.tempFilePaths;

self.append(tempFilePaths);

}

})

}

/*

* 显示图片

*/

show() {

let self = this;

let view = {};

view[self.name] = self.that.data[self.name];

self.that.setData(view);

}

/*

* 追加图片

*/

append(data) {

const self = this;

for (let i = 0; i < data.length; i++) {

self.that.data[self.name].push(data[i]);

}

self.show();

}

/*

* 删除图片

*/

del(index) {

let self = this;

self.that.data[self.name].splice(index, 1);

self.show();

}

}

module.exports = picUploader;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值