zoukankan      html  css  js  c++  java
  • vue 监听两个时间插件都变化后执行

    1.

                               <DatePicker  id="startTime" v-on:on-change="getTaxDate" type="month" placement="bottom-start"
                                        placeholder="选择日期"></DatePicker>
                                <!-- <input class="timeInput" type="text" id="startTime"> -->
                                <span></span>
                                <DatePicker v-on:on-change="getTaxEndDate" type="month" placement="bottom-start"
                                        placeholder="选择日期" id="endTime"></DatePicker>

    methods: {
                getTaxDate: function (date) {
                    this.startTime = date
                },
                getTaxEndDate: function (date) {
                    this.endTime = date
                }
    }
     data () {
                return {
                    id: 'echartsBarType',
                    id2: 'echartsPieType',
                    option: {},
                    option2: {},
                    startTime: '',
                    endTime: ''
                }
            },
    watch:{
        startTime() {
                    if (this.startTime) {
                       console.log('开始时间',this.startTime)
                    } else {
                        this.actTaxDate = '';
                    }
                }
    }

    二:

    同时监听两个输入框,如果两个都有值才执行一些方法

    用computed

            computed: {
                timeChange() {
                    const { startTime, endTime } = this
                    return {
                        startTime,
                        endTime
                    }
                }
            },
            watch: {
                timeChange: {
                    handler: function(val) {
                        console.log('address change: ', val)
                    },
                    deep: true
                }
            },

     判断两个时间都有

    watch: {
                timeChange: {
                    handler: function(val) {
                        if(val.startTime!=''&&val.endTime!=''){
                            if(typeof val.startTime == 'string'&&typeof val.endTime=='string'){
                                console.log('address change1: ',val)
                            }
                        }
                    },
                    deep: true
                }
            },

     加判断,结束时间必须大于开始时间(数据双向绑定)

    getTaxDate: function (date) {
                    if(date>this.endTime&&this.endTime!=''){
                        this.startTime = ''
                        alert('开始时间不能大于结束时间');
                    }else{
                        this.startTime = date
                    }
                },
                getTaxEndDate: function (date) {
                    if(date<this.startTime){
                        alert('结束时间必须大于开始时间');
                        this.endTime = ''
                    }else{
                        this.endTime = date
                    }
                },
    <DatePicker  v-model="startTime" id="startTime" v-on:on-change="getTaxDate" type="month" placement="bottom-start"
                                        placeholder="选择日期"></DatePicker>
                                <span></span>
                                <DatePicker v-model="endTime"  v-on:on-change="getTaxEndDate" type="month" placement="bottom-start"
                                        placeholder="选择日期" id="endTime"></DatePicker>

     完整代码:

    export default {
            name: 'incomeTotal',
            data () {
                return {
                    id: 'echartsBarType',
                    id2: 'echartsPieType',
                    option: {},
                    option2: {},
                    startTime: '',
                    endTime: ''
                }
            },
            components: {
                IncomeHeader,
                Echarts
            },
            mounted () {
                this.getAjax()
            },
            computed: {
                timeChange() {
                    const { startTime, endTime } = this
                    return {
                        startTime,
                        endTime
                    }
                }
            },
            watch: {
                timeChange: {
                    handler: function(val) {
                        if(val.startTime!=''&&val.endTime!=''){
                            if(typeof val.startTime == 'string'&&typeof val.endTime=='string'){
                                console.log('address change1: ',val)
                            }
                        }
                    },
                    deep: true
                }
            },
            methods: {
                getTaxDate: function (date) {
                    if(date>this.endTime&&this.endTime!=''){
                        this.startTime = ''
                        alert('开始时间不能大于结束时间');
                    }else{
                        this.startTime = date
                    }
    			},
                getTaxEndDate: function (date) {
                    if(date<this.startTime){
                        alert('结束时间必须大于开始时间');
                        this.endTime = ''
                    }else{
                        this.endTime = date
                    }
    			},
    

      

  • 相关阅读:
    sqlserver2005存储汉字成问号解决办法:
    .net c# 日期格式和常用处理
    文件夹无法访问拒绝访问,无法删除文件的,快速有效解决方法
    打印出所有的 info.plist 中的 keys、values
    利用时间戳来准确计算某个时间点具现在的时间差
    项目中的技巧经验汇总
    "Base SDK Missing"问题的解决
    UIPopoverController的使用
    给ios自带控件添加圆角边的方法
    实现程序内截屏功能的代码
  • 原文地址:https://www.cnblogs.com/SunShineM/p/9046616.html
Copyright © 2011-2022 走看看