首页 > 其他分享 >iview daterange动态设置可选范围

iview daterange动态设置可选范围

时间:2023-01-16 14:33:27浏览次数:36  
标签:tar daterange 30 first var 日期 date 动态 iview

需求:iview中日期选择控件daterange 动态设置日期可选范围,如选择一个月内。当用户选择第一个日期后,往前、往后,都只能选择一个月内的日期。

思路:

1、当用户选中第一个日期时,我们要获取用户选中的那个值(假设为A)

2、计算出   往前(A-30天)、往后(A+30)一个月的日期

3、日期控制中,有个options属性,属性中可设置disabledDate来控制 日期是否可选择

4、disabledDate是一个函数,返回ture为可选择,返回false为不可选择

 

当用户选中某个日期时(通过点击事件触发),获取选中的值,计算出往前30天、往后30天的日期。然后动态的设置options属性即可。

<DatePicker
        ref="date"
        type="daterange"
        @click.native="nativeClick"
        :options="options2"
      ></DatePicker>

 

// 日期选择 动态设置可选范围
    nativeClick() {
      setTimeout(() => {
        //从click改成使用mouseup,需要延时,等click事件触发,组件处理完click事件,相应属性有时间值
        var tar = this.$refs["date"].$refs["pickerPanel"];
        if (tar["rangeState"]["from"] && !tar["rangeState"]["to"]) {
          //选择了第一个日期
          var first = tar["rangeState"]["from"];
          this.options2 = {
            disabledDate: function(value) {
              var date_start = new Date(first);
              var date_end = new Date(first);
              date_start.setDate(first.getDate() - 30);
              date_end.setDate(first.getDate() + 30);
              return !(value >= date_start && value <= date_end);
            }
          };
        } else if (tar["rangeState"]["from"] == null) {
          //点击输入框还原所有日期可选
          this.options2 = {
            disabledDate: function() {
              return false;
            }
          };
        }
      }, 0);
    },

 

标签:tar,daterange,30,first,var,日期,date,动态,iview
From: https://www.cnblogs.com/Mrrabbit/p/17055328.html

相关文章

  • linux加载动态库.so的3种方法
        昨天同事联系我,他部署新版本的MS软件提示找不到动态库。但是他能找到这个动态库文件,但不知道如何加载。这样的问题对于我来说是个再简单不过的问题,但对于一个新......
  • python和C++调用动态库
    python和C++调用动态库python和C++相互调用动态库的方法有4种:python调用C/C++编译的动态库python调用python编译的动态库C/C++调用python编译的动态库C/C++调用C/C++......
  • Java对象转JSON动态设置字段
    需求User类:@DatapublicclassUser{ privateStringname; privateIntegerage;}序列化成JSON时,处理动态增加一个sex字段{ "name":"张三", "age":20, "sex......
  • 如何动态修改属性文件×××.properties的某些内容
    我们在项目中可以把一些属性配置到×××.properties中,比如数据库连接信息。现在问题来了,我的属性文件中有一些值是需要根据后台得到的数据来动态改变的,请问这个要怎么实现......
  • 使用动态输出打印内核的DEBUG信息
    简介printk()是很多嵌入式开发者喜欢用的调试手段之一,但是,使用printk()每次都要重新编译内核,很不方便。使用动态输出在不需要重新编译内核的情况下,方便的打印出内核的debu......
  • 【转】PageOffice动态生成Word文件并转换为PDF
    说明:PageOffice是客户端插件,做不到纯后台调用把word转为pdf。但是pageoffice的FileMaker对象可以实现不在客户端打开文件直接转换文件为pdf并保存到服务器端,看起来跟服务器......
  • C#动态调用外部程序集(该程序集在dll文件中)
    先说一下我的情况,我将一个dll做为资源文件放到了程序中,程序运行时将其释放到指定的目录,然后再调用该dll中的一个类的一个方法或设置该类的属性的值,这里我主要说的是如何设置......
  • 动态规划笔记(三):其它的常见线性问题(未整理完)
    最长公共子序列(HDU-1159)注意子序列和子串的区别用\(dp[i][j]\)表示序列\(X\)前\(i\)项和序列\(Y\)的前\(j\)项的最长子序列的长度当\(x[i]=x[j]\)时,\(dp[i][j]=dp[i......
  • Flex4分模块下样式动态加载步骤及相关问题的解决
    1.     给应用程序编写CSS文件(1)         在项目下创建CSS文件(任意路径,可以多个)。本例在src下创建了5个样式文件(2)         Flex支持的CSS文件定义......
  • Java使用MyBatis-Plus生成动态数据库表XML配置
    <updateid="createSpiderTable"parameterType="com.quanchengle.app.spider.CreateSpiderTableAndTableName">CREATETABLEIFNOTEXISTS${tableName}(<if......