要解决这个问题,你可以使用计算属性来动态设置picker-options的disabledDate函数。在计算属性中判断当前的时间是否满足条件,如果满足条件则返回true,表示该时间不可选。\n\n首先,在data中定义一个新的属性,用于记录当前是否正在编辑时间:\n\njavascript\ndata() {\n return {\n isEditingTime: false,\n ...\n }\n},\n\n\n然后,在编辑时间的方法中,设置isEditingTime为true:\n\njavascript\neditTime() {\n this.isEditingTime = true;\n // 其他逻辑\n},\n\n\n接下来,在计算属性中根据isEditingTime的值来动态设置picker-options的disabledDate函数:\n\njavascript\ncomputed: {\n pickerOptions() {\n const self = this;\n return {\n disabledDate(time) {\n if (self.isEditingTime) {\n return false;\n }\n return self.form.endAccountingTime && time.getTime() > new Date(self.form.endAccountingTime).getTime() ||\n self.form.startAccountingTime && time.getTime() < new Date(self.form.startAccountingTime).getTime();\n },\n };\n },\n},\n\n\n最后,在el-date-picker组件中使用计算属性pickerOptions来设置picker-options属性:\n\nhtml\n<el-date-picker\n ref="startPicker"\n clearable\n size="mini"\n v-model="form.startAccountingTime"\n type="date"\n value-format="yyyy-MM-dd"\n placeholder="选择起始日期"\n style="width: 130px"\n :picker-options="pickerOptions"\n></el-date-picker>\n\n\n同样的,在结束日期的el-date-picker组件中也要设置picker-options属性为pickerOptions。\n\n这样,当isEditingTime为true时,disabledDate函数会返回false,即可选择任意时间。当isEditingTime为false时,disabledDate函数会根据起始和结束日期进行判断,禁止选择不符合要求的时间。

解决Vue Element UI DatePicker 无法选择时间问题

原文地址: https://www.cveoy.top/t/topic/qx5Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录