通过界面设计器配置的日期信息,如何动态控制可选范围?
目前界面设计器的时间控件的最大和最小可以动态设定吗?例如限定只能挑选今天和28天后的日期 解决方案:
可以通过hooks来实现
假设开始时间时Start_time,结束时间时End_time,当调整开始时间时,要限制结束时间不能早于开始时间;示例如下:
1)移动端:
在Start_time上定义onChange事件的hooks,限制结束时间的最小值为开始时间的当前值
var startTime = curComponent.data.text;
var endTimeComp = proxyPage.getComponent("End_time");
endTimeComp.data.minDatetime = startTime;
endTimeComp.update();
反之,如果是要限制可选择的最大时间,就是设置xxxx.data.maxDatetime=xxxxx,等号右边的值必须是YYYY-MM-DD或者YYYY-MM-DD hh:mm:ss格式的字符串
2)PC端
给Start_time定义valueChangesHook的数据Hooks
var startTimeComp = dataControl.getComponentByPath("leave_application.Start_time");
var startTime = startTimeComp.getControl().value;
var endTimeComp = dataControl.getComponentByPath("leave_application.End_time");
endTimeComp.disabledDate = (current) => {
var currentDate = new Date(current);
var newDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 23, 59, 59);
var startTimeTemp = new Date(startTime);
return newDate.getTime() < startTimeTemp.getTime();
};
页:
[1]