element-ui时间组件同一个月内选择/30天内选择

element-ui时间组件同一个月内选择/30天内选择

同一个月

vue 复制代码
<el-date-picker v-model="time" type="datetimerange"
                                    range-separator="至" start-placeholder="开始时间"
                                    value-format="timestamp" :picker-options="pickerOptions"
                        end-placeholder="结束时间" @change="bizPayLog(1)">
                    </el-date-picker>


//写在data return
selectData:'',
          //日期选择范围在一个月内
          pickerOptions: {
            onPick: ({ maxDate, minDate }) => {
              this.selectData = minDate.getTime()
              if (maxDate) {
                // 选择了最大日期后,清除已选日期,解除限制。
                this.selectData = ''
              }
            },
            disabledDate: (time) => {
              // 是否禁用日期选择
              if (this.selectData) {
                let date = new Date(this.selectData)
                // true:不可以选择该日期;false:可以选择该日期。
                // 大于或者小于本月的日期被禁用
                return date.getMonth() > new Date(time).getMonth() || date.getMonth() < new Date(time).getMonth()
              } else {
                return false;
              }
            }
          },
  

30天以内

vue 复制代码
 pickerMinDate:'',
          //日期选择范围在一个月内
          pickerOptions: {
            onPick: ({ maxDate, minDate }) => {
              console.log(this.pickerMinDate,'this.pickerMinDate')
              this.pickerMinDate = minDate.getTime();
              if (maxDate) {
                this.pickerMinDate = '';
              }
            },
            disabledDate: time => {
              console.log(this.pickerMinDate,'this.pickerMinDate1')
              if (this.pickerMinDate !== "") {
                const day30 = (31 - 1) * 24 * 3600 * 1000;
                // 只选后30天,minTime不用加day30,只选前30天,maxTime不用加day30
                let maxTime = this.pickerMinDate + day30;
                let minTime = this.pickerMinDate - day30;
                if (maxTime > new Date()) {
                  maxTime = new Date();
                }
                return time.getTime() > maxTime || time.getTime() < minTime;
              }
              return time.getTime() > Date.now();
            }
            },
相关推荐
w_t_y_y2 分钟前
vue父子组件通信(一)父子调用和通信(2)VUE3
前端·javascript·vue.js
ZC跨境爬虫6 分钟前
跟着 MDN 学CSS day_42:等分轨道、层叠放置与混合布局
前端·javascript·css·ui·html
Cheney95017 分钟前
Vue 项目字体文件打包后 fonts 文件夹“消失”?原因分析与解决方案
前端·javascript·vue.js
daols8826 分钟前
vxe-table 实现数据分组统计与表尾合计
前端·javascript·vue.js·vxe-table
向日的葵00627 分钟前
Vue 函数定义、事件绑定与列表渲染精讲
前端·javascript·vue.js
小陈同学呦10 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
开发者每周简报11 小时前
网海三部曲·无名宗师传
javascript·人工智能
喵个咪11 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
qq_25183645712 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
之歆13 小时前
Day01_ES6+ 专业指南:从基础到实战的现代JavaScript开发(下)
前端·javascript·es6