zoukankan      html  css  js  c++  java
  • elementUI 日期选择器之禁止年份事件二

    elementUI 日期选择器之禁止年份事件

    <script>
    export default {
        data() {
            return {
                selectYear: null,
            }
        },
        mounted() {
        },
        methods:{
            initStyle() {
                this.$nextTick(() => {
                    this.initTime();
                })
            },
            initTime() {
                let right = document.querySelector('.el-icon-d-arrow-right');
                let left = document.querySelector('.el-icon-d-arrow-left');
                let label = document.querySelector('.el-date-picker__header-label');
                label.addEventListener('click', (e) => {
                    console.log('e', e);
                    e.preventDefault();
                    return false;
                })
                let currentYearEl = document.querySelector('.el-date-picker__header-label');
                let currentYear = document.querySelector('.el-date-picker__header-label').innerText.slice(0, 4)
                currentYearEl.addEventListener('click', (e) => {
                    let currentYearEl = document.querySelector('.el-date-picker__header-label');
                    currentYearEl.innerText = this.selectYear;
                })
                left.addEventListener('click', (e) => {
                    let currentYearEl = document.querySelector('.el-date-picker__header-label');
                    this.selectYear--;
                    currentYearEl.innerText = this.selectYear;
                    this.calcArrow();
                })
                right.addEventListener('click', (e) => {
                    let currentYearEl = document.querySelector('.el-date-picker__header-label');
                    let currentYear = document.querySelector('.el-date-picker__header-label').innerText.slice(0, 4);
                    this.selectYear++;
                    currentYearEl.innerText = this.selectYear;
                    this.calcArrow();
                })
                currentYearEl.innerText = this.selectYear;
                this.calcArrow();
            },
            calcArrow() {
                let right = document.querySelector('.el-icon-d-arrow-right');
                let left = document.querySelector('.el-icon-d-arrow-left');
                let currentYearEl = document.querySelector('.el-date-picker__header-label');
                let currentYear = Number(document.querySelector('.el-date-picker__header-label').innerText.slice(0, 4));
                let start = this.selectDateAll.minTime && this.selectDateAll.minTime.indexOf('-') !== -1 ? Number(this.selectDateAll.minTime.split('-')[0]) : '';
                let time = this.selectYear;
                let end = this.selectDateAll.maxTime && this.selectDateAll.maxTime.indexOf('-') !== -1 ? Number(this.selectDateAll.maxTime.split('-')[0]) : '';
    
                if (time > start ) {
                    this.addStyle(left, 'left-arrow');
                }
                if (time < end) {
                    this.addStyle(left, 'right-arrow');
                }
                if (time === start) {
                    this.addStyle(left, 'empty');
                }
                if (time === end) {
                    this.addStyle(right, 'empty');
                }
            },
            addStyle(el, name) {
                let allClass = el.className.indexOf(' ') !== -1 ? el.className.split(' ') : [];
                allClass.push(name);
                el.className = allClass.join(' ');
            },
            removeStyle(el) {
                let allClass = el.className;
                let newClass = allClass.replace('empty', '');
                newClass = newClass.replace('left-arrow', '');
                newClass = newClass.replace('right-arrow', '');
                el.className = newClass;
            },
            // 时间选择
            dateChange(time) {
                this.selectYear = this.selectDateAll.selectDate && this.selectDateAll.selectDate.indexOf('-') !== -1 ? this.selectDateAll.selectDate.split('-')[0] : '';
                this.initStyle();
                this.$emit('dateChange',time)
            }
        },
        created() {
            this.selectYear = this.selectDateAll.selectDate && this.selectDateAll.selectDate.indexOf('-') !== -1 ? Number(this.selectDateAll.selectDate.split('-')[0]) : '';
        },
        props: ['selectDateAll','loadingFlag'],
        components: {
        }
    }
    </script>
    

    其他内容项可参考上一篇博文!!!

  • 相关阅读:
    使用C++11实现线程池的两种方法
    二分查找算法的几种实现
    UNP多线程编程技巧简单总结
    使用带外数据设置 C/S 心跳机制
    无法修正错误,因为您要求某些软件包保持现状
    2012.12-操作系统-吕晓鑫-计算机操作系统综述
    2013.03-多核操作系统-梁荣晓-多核操作系统发展综述
    2011.09-多核操作系统-李彦冬-多核操作系统发展综述
    Simultaneous Multithreading: Maximizing On-Chip Parallelism(精读)
    Simultaneous Multithreading: Maximizing On-Chip Parallelism(泛读)
  • 原文地址:https://www.cnblogs.com/min77/p/14808427.html
Copyright © 2011-2022 走看看