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
}
},