基于 mpvue 框架的小程序选择控件,支持单列,多列,联动
最近在学着写mpvue小程序,在做选择控件时候遇到了点问题,按照微信小程序方法picker,很不方便!
在网上搜到一个很好用的组件下面给大家分享:
组件说明文档链接:https://go.ctolib.com/article/wiki/84754
我想说的是:按照说明文档并不能实现picker,后来幸运的是,作者有一个
源码链接:https://github.com/MPComponent/mpvue-picker
通过读源码,最后实现了picker
我用的是二级联动:
方法是:
首先:
安装 mpvue-picker
npm install mpvue-picker --save
然后页面代码为:
<template>
<div class="time-box male">
<mpvue-picker class="time-box male" :mode="mode" :deepLength=deepLength ref="mpvuePicker" :pickerValueArray="pickerValueArray" :pickerValueDefault="pickerValueDefault" @onConfirm="onConfirm"></mpvue-picker>
<div class="time-box" @click="showPicker">
<image class="time-img" src='../../static/images/newest/time.png'/>
<text class="time-text">按期查询</text>
</div>
</div>
</template> <script>
import mpvuePicker from "mpvue-picker"; export default {
components: {
mpvuePicker
},
data() {
return {
allBulletin: [],
mode: 'selector',
deepLength: 0, // 几级联动
pickerValueDefault: [], // 初始化值
pickerValueArray: [], // picker 数组值
pickerText: '',
mulLinkageTwoPicker: [
{
label: '飞机',
value: 0,
children: [
{
label: '经济舱',
value: 1
},
{
label: '商务舱',
value: 2
}
]
},
{
label: '火车票',
value: 1,
children: [
{
label: '卧铺',
value: 1
},
{
label: '坐票',
value: 2
},
{
label: '站票',
value: 3
}
]
},
{
label: '汽车票',
value: 3,
children: [
{
label: '快班',
value: 1
},
{
label: '普通',
value: 2
}
]
}
],
pickerValueDefault: [0,0]
};
},
onLoad() {
var newest = String(this.$mp.query.type);
this.$http
.post(
"https://tashimall.miniprogram.weixin-api-test.yokead.com/bulletin/getBulletin.json",
"type=" + newest
)
.then(res => {
//输出请求数据
this.allBulletin = res.data.data;
})
.catch(err => {
console.log(err.status, err.message);
});
},
methods: {
showPicker() {
this.pickerValueArray = this.mulLinkageTwoPicker;
this.mode = 'multiLinkageSelector';
this.deepLength = 2;
this.pickerValueDefault = [1, 0];
this.$refs.mpvuePicker.show();
console.log(this);
},
onConfirm(e) {
console.log(e);
}
}
};
</script> <style>
.time-box {
display: flex;
align-items: center;
justify-content: center;
float: left;
width: 210rpx;
height: 64rpx;
background: #ff8308;
border-radius: 15rpx;
}
.male {
margin-left: 22rpx;
}
.time-img {
width: 36rpx;
height: 36rpx;
}
.time-text {
font-size: 28rpx;
color: #fff;
margin-left: 10rpx;
}
</style>
需要注意的是:如果你是其他(单列,多列,二级联动,三级联动)中的任意一种,务必看源码。
地址是:
https://github.com/MPComponent/mpvue-picker
基于 mpvue 框架的小程序选择控件,支持单列,多列,联动的更多相关文章
- mpvue框架的小程序和H5同时开发
demo链接1.样式统一为了达到共用一套样式,采用px2rem-loader和px2rpx-loader进行代码的打包,细节如下: 由于UI设计图是在蓝湖上标注,宽度750,选择像素 PX 样式中直接 ...
- 基于mpvue搭建微信小程序
mpvue是美团开源的一套语法,语法与vue.js一致,快速开发小程序的前端框架.框架基于vue.js核心,修改了vue.js的runtime和compiler实现,使用此框架,开发者可以完全使用vu ...
- 微信小程序地图控件篇 ---自定义图标被地图覆盖的问题
今天在做微信小程序的时候遇到这个这样的问题 需要在地图上加个一个自定义的图标控件 类似这样的 刚开始的时候怎图片一直会被地图组件覆盖 ,要怎么解决这个问题 我去翻了下小程序的文档 有个cover ...
- Clean小程序(控件消息)
一 . 准备工作 创建一个基于对话框的MFC项目 删除对话框上的工具 二 . 实现将seven图片贴到上面,按一下则换一张图片 1.在资源视图中添加位图资源,通过属性修改图片ID 2.将对话框拉长,防 ...
- 关于小程序button控件上下边框的显示和隐藏问题
问题: 小程序的button控件上下有一条淡灰色的边框,在空件上加上了样式 border:(none/0); 都没办法让button上下的的边框隐藏: 代码如下 <button class=&q ...
- 微信小程序设置控件权重
项目中最常用的两种布局方式,水平布局和垂直布局,在微信小程序中实现起来也比较简单. 1.横向水平布局: 实现水平布局,需要四个view容器组件,其中一个是父容器.如下: & ...
- 微信小程序常用控件汇总
1.图片标签: <image src="/images/aaa.png"></image> 2.文本标签: <text>Hello</te ...
- 微信小程序 Button控件 点击传值给JavaScript
直接看例子吧: WXML:直接看Button,用“data-”(data-total)传值,后台如何获取,继续看下面JS代码. <view class="infothird" ...
- JQuery好用的日期选择控件 DatePicker
近期发现一个很好的基于JQ的前端UI日期选择控件Jquery.DatePicker.js 下载地址:jquery.DatePIcker.js 演示地址:DatePicker - 基于jQuery 1. ...
随机推荐
- PBM error occurred during PreCloneCheckCallback: 由于目标计算机积极拒绝,无法连接
问题如下: 迁移存储和主机的时候发生错误,错误如下: 出现了常规系统错误: PBM error occurred during PreCloneCheckCallback: 由于目标计算机积极拒绝,无 ...
- mybatis返回自增主键踩坑记
背景 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map ...
- Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)
Airport Simulation 是数据结构与算法教材中用于演示Queue的一个小程序(大多数教师似乎会跳过这个练习).主程序会通过输入总的运行时间.队列里可以等待的最多飞机数量,平均每个时间单元 ...
- Socket编程简介
目录 背景 基础 流程 参考 本文系读书笔记,非深入研究,也无代码,如非所需,请见谅. 哦,这里有份不错的:Linux的SOCKET编程详解 背景 花了好久的时间(大约一周,我太垃圾)看完了一篇英文文 ...
- django-jwt token校验源码简析
一. jwt token校验源码简析 1.1 前言 之前使用jwt签发了token,里面的头部包含了加密的方式.是否有签名等,而载荷中包含用户名.用户主键.过期时间等信息,最后的签名还使用了摘要算法进 ...
- SpringCloud系列之服务注册发现(Eureka)应用篇
@ 目录 前言 项目版本 Eureka服务端 Eureka客户端 服务访问 前言 大家好,距离上周发布的配置中心基础使用已过去差不多一周啦,趁着周末继续完善后续SpringCloud组件的集成,本次代 ...
- c语言课程设计--图书/音乐管理系统
这个代码因为配置信息的原因不能直接整个拿去用(o゜▽゜)o☆ 这个代码因为配置信息的原因不能直接整个拿去用(o゜▽゜)o☆ 这个代码因为配置信息的原因不能直接整个拿去用(o゜▽゜)o☆ 只能提供一个思 ...
- UCF Local Programming Contest 2016 J题(二分+bfs)
题目链接如下: https://nanti.jisuanke.com/t/43321 思路: 显然我们要采用二分的方法来寻找答案,给定一个高度如果能确定在这个高度时是否可以安全到达终点,那我们就可以很 ...
- 进制-Iterative-进制转换
2019-12-02 21:15:31 进制转换是计算机科学里的一个基础算法,通常可以使用如下的模版来进行计算. 下面我们来讨论一些关于进制的题目. 1271. Hexspeak 问题描述: 问题求 ...
- Linux系统c语言开发环境
项目 内容 这个作业属于哪个课程 班级地址 这个作业要求在哪里 作业要求地址 学号-姓名 17041506-张政 学习目标 Linux系统下C语言开发环境搭建,学习Linux系统环境C语言开发过程 L ...