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();
            }
            },
相关推荐
前端御书房2 小时前
前端PDF转图片技术调研实战指南:从踩坑到高可用方案的深度解析
前端·javascript
程序员黄同学4 小时前
请谈谈 Vue 中的响应式原理,如何实现?
前端·javascript·vue.js
宁波阿成5 小时前
vue3里组件的v-model:value与v-model的区别
前端·javascript·vue.js
柯腾啊5 小时前
VSCode 中使用 Snippets 设置常用代码块
开发语言·前端·javascript·ide·vscode·编辑器·代码片段
Jay丶萧邦5 小时前
el-select:有关多选,options选项值不包含绑定值的回显问题
javascript·vue.js·elementui
pixle05 小时前
Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
前端·javascript·3d
我爱学习_zwj6 小时前
后台管理系统-月卡管理
javascript·vue.js·elementui
录大大i6 小时前
HtML之JavaScript BOM编程
前端·javascript·html
customer087 小时前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
乐多_L7 小时前
使用vue3框架vue-next-admin导出表格excel(带图片)
前端·javascript·vue.js