react 时间DatePicker处理Ant Design和Ant Design Mobile禁用选项
DatePicker手机端和pc端使用的属性不一样
mobile: min={},max={}
pc: disabledDate=this.disabledDate
管理端配置表单
手机端代码
{
//这里的fieldDeclares 是从管理端配置拿到的每一项数据结构
fieldDeclares && fieldDeclares.length > 0 && fieldDeclares.map((item, index) => {
if (item.visible) return null
let inputType = null
let itemLimit = {
};
let patt = /max|min/;
//options为maxappointmentEndTime配置项
if (item.options && patt.test(item.options)) {
let conditionKey = item.options.match(patt)[0];
// conditionKey 返回值为min/max
let conditionField = item.options.replace(patt, '');
//conditionField 返回值为 appointmentEndTime
let targetField = fieldDeclares.find(field => field.fieldName === conditionField);
if(conditionKey + '' ==='min') {
// 这里的moment是时间库moment.js插件
itemLimit[conditionKey] = targetField && targetField.value ? new Date(moment(targetField.value)) : new Date();
} else {
itemLimit[conditionKey] = targetField && targetField.value ? new Date(moment(targetField.value)) : undefined;
}
}
let regExp = item.inputFormat ? eval(item.inputFormat) :