• 微信小程序时间标签与范围联动设计实现


    微信小程序时间标签与范围联动设计实现?最近忙于一个有关数据管理的微信小程序开发,遇到了上图情况,虽然很简单,还是整理一下。若有错误,请广大朋友们指正。

    使用微信小程序组件radio-group、picker,用wxss对radio按照需求进行重构,picker里边的start和end时间是根据radio来显示的。将start、end时间放在data里,radio发生改变时,改变data中的时间。当picker中的值发生改变时,如果时间范围已经超出了radio中的范围,需要对radio的显示进行实时修改。

    话不多说,接下来上代码。

    index.wxml

    <view class="con_screen">
    <text class="cons_ti">日期范围</text>
    <!-- 单选时间 -->
    <radio-group class="radio-group" bindchange="radioCheckedChange">
    <block >
    <label class="cons_radio {{radioCheckVal==1?'active':''}}" >
    <radio value="1" hidden="true"/>
    <text>今日</text>
    </label> 
    <label class="cons_radio {{radioCheckVal==4?'active':''}}" >
    <radio value="4" hidden="true" />
    <text>近7日</text>
    </label> 
    <label class="cons_radio {{radioCheckVal==6?'active':''}}" >
    <radio value="6" hidden="true"/>
    <text>近30日</text>
    </label> 
    </block>
    </radio-group>
    <!-- 时间段 -->
    <view class="picker_group">
    <picker mode="date" value="{{date}}" start="2015-09-01" end="{{date2}}" bindchange="bindDateChange">
    <view class="picker">
    {{date}}
    <image src="../../image/home_zsr_icon.png"></image>
    </view>
    </picker>
    
    <picker mode="date" value="{{date2}}" start="{{date}}" end="2018-01-24" bindchange="bindDateChange2">
    <view class="picker">
    {{date2}}
    <image src="../../image/home_zsr_icon.png"></image>
    </view>
    </picker> 
    </view>
    
    </view>


    index.wxss

    .radio-group{
    display: inline-block;
    }
    .cons_radio{
    margin-left: 30rpx;
    }
    .cons_radio text{
    font-size: 26rpx;
    color: #c8c8c8;
    height: 40rpx;
    /*  93rpx; */
    border: #c8c8c8 solid 2rpx;
    padding:0 20rpx;
    text-align: center;
    line-height: 40rpx;
    display: inline-block;
    border-radius: 20rpx;
    }
    /* 黄色 */
    .cons_radio.active text{
    color: #F5A623;
    border-color: #F5A623;
    }
    /* 红色 */
    .cons_radio.activered text{
    color: #FA2B21;
    border-color: #FA2B21;
    }
    /* 蓝色 */
    .cons_radio.activeblue text{
    color: #4AAFDD;
    border-color: #4AAFDD;
    }
    /* 黄绿色 */
    .cons_radio.activeyg text{
    color: #BABC1A;
    border-color: #BABC1A;
    }
    
    /* 日期选择 */
    .picker_group{
    display: block;
    font-size: 28rpx;
    color: #c8c8c8;
    margin-left: 20rpx;
    margin-top: 15rpx;
    }
    .picker_group picker{
    display: inline-block;
    margin:0 20rpx 0 20rpx;
    position: relative;
    color: #232323;
    }
    .picker_group picker image{
    width: 20rpx;
    height: 20rpx;
    }
    .cons_zsr{
    display: block;
    font-size: 32rpx;
    color: #232323;
    margin-left: 40rpx;
    margin-bottom: 15rpx;
    }
    .cons_zsr picker image{
    width: 30rpx;
    height: 30rpx;
    }

    index.js

    Page({
    data:{
    page:'',
    Loading:false,
    isLogin:false,
    radioCheckVal:0,//收益占比单选
    date: '2015-09-01',//收益占比时间段起始时间
    date2:'2018-01-24',//收益占比时间段终止时间
    }, 
    // 收益占比单选时间 ring
    radioCheckedChange(e){ 
    let that=this; 
    that.setData({ 
    radioCheckVal:e.detail.value 
    }) 
    console.log(that.data.radioCheckVal)
    if(that.data.radioCheckVal=='1'){
    that.setData({
    date:timedate.formatDate(now),
    date2:timedate.formatDate(now),
    })
    // console.log(that.data.date+'------'+that.data.date2)
    that.timeFn(that.data.arrayindex,that.data.date,that.data.date2)
    }
    if(that.data.radioCheckVal=='4'){
    that.setData({
    date:timedate.sevenDays().t2,
    date2:timedate.sevenDays().t1,
    })
    // console.log(that.data.date+'------'+that.data.date2)
    that.timeFn(that.data.arrayindex,that.data.date,that.data.date2)
    }
    if(that.data.radioCheckVal=='6'){
    that.setData({
    date:timedate.thirtyDays().t2,
    date2:timedate.thirtyDays().t1,
    })
    // console.log(that.data.date+'------'+that.data.date2)
    that.timeFn(that.data.arrayindex,that.data.date,that.data.date2)
    }
    },
    // 收益占比时间段选择
    bindDateChange(e){
    let that=this;
    console.log(e.detail.value)
    that.setData({
    date: e.detail.value,
    radioCheckVal:0,
    })
    that.timeFn(that.data.arrayindex,that.data.date,that.data.date2)
    },
    bindDateChange2(e){
    let that=this;
    that.setData({
    date2: e.detail.value,
    radioCheckVal:0,
    })
    that.timeFn2(that.data.arrayindex,that.data.date,that.data.date2)
    },
  • 相关阅读:
    QUBIC 双聚类学习以及代码编写运行
    ICPC NEAU Programming Contest 2020 A.盘他!题解
    CodeForces
    牛客练习赛64 A-D题解
    论文阅读1:QUBIC2 A novel and robust biclustering algorithm for analyses
    Educational Codeforces Round 87 (Rated for Div. 2)
    MinGW安装教程(make安装教程)解决cmd中make不是内部命令的问题
    “科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 A-L 解题报告
    “科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 A-L 解题报告
    spark2.4+elasticsearch6.1.1搭建一个推荐系统
  • 原文地址:https://www.cnblogs.com/hsccxt/p/10419604.html
Copyright © 2020-2023  润新知