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

Posted 羽丫头不乖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

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

以上是关于elementUI 日期选择器之禁止年份事件二的主要内容,如果未能解决你的问题,请参考以下文章

ElementUI之DatePicker日期选择器小细节

ElementUI 之 DatePicker 年份选择限制范围 disabledDate

jquery里自带的时间控件,怎么禁止手动输入,只能选取控件上的日期,而且是两个时间控件选择一个时间段

elementui日期选择能支持按旬选择吗?

利用My97DatePicker实现年份多选

ElementUI日期选择器时间选择范围限制