iview框架中datepicker根据接口数据修改禁用日期
问题描述
页面内容
一个input框输入编号,一个datepicker框选择时间
根据input框中的编号调用后台接口,接口返回一个日期,如果返回日期为1970-01-01,则今天之前的日期被禁用,否则返回日期前的时间被禁用。
尝试方法
在input框on-blur时调用接口,获取到日期,设置datepicker禁用
存在问题
第一次输入编号时,datepicker禁用设置正常
若直接删除原来编号,再次触发on-blur时,接口获取日期正常但datepicker禁用依然是上一次的结果。
不知道是不是iview存在options的值只能设置一次的bug?
相关代码
html(省略一些无用的class placeholder等)
<Input v-model="searchForm.no" @on-blur="changeDisabled"></Input>
<DatePicker v-model="searchForm.date" type="date" :options="dateCanChoose"></DatePicker>
js
changeDisabled() {
if (this.searchForm.blNo != "") {
// 先把原来的日期清空
this.isDatePickDisabled = true
let params = {
refNum: this.searchForm.blNo
}
this.$axios.post(后台接口, params,
(code,result) => {
if (code == 200) {
let extendTo = result.data.date
if (extendTo == '1970-01-01') {
// 今天之后的日期可选
this.dateCanChoose = {
disabledDate: function (date)
return date && date.valueOf() < Date.now() - 86400000
}
}
} else {
// 此天之后的日期可选
this.dateCanChoose = {
disabledDate: function (date) {
let extendDate = new Date(extendTo).getTime()
return date && date.valueOf() < extendDate
}
}
}
}
}, (err) => {
console.log(err)
})
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我是把options写到computed里面,你可以试试
仔细看看iview官网