泛微E9时间组件(浏览框中的时间类型以及日期时间类型)改造,设置指定时间间隔实现以半小时为单位
改造前的效果为:
改造后的效果为:
具体实现方案:
通过ecode改写时间组件参数实现该效果
ecodeSDK.overwritePropsFnQueueMapSet('WeaTimePicker',{ //组件名WeaDatePicker
fn:(newProps)=>{ //newProps代表组件参数
const {hash} = window.location;
if(!hash.startsWith('#/main/workflow/req'))return;
const baseInfo = WfForm.getBaseInfo();
//判断流程id
const excludedIds = [191];
if (!excludedIds.includes(baseInfo.workflowid)) {
return;
}
//组件操作,可追加或者更换或者注入组件
newProps.minuteStep = 30;
return newProps; //修改之后返回数据
},
order:1, //排序字段,如果存在同一个页面复写了同一个组件,控制顺序时使用
desc:'设置以半小时为基本单位'
});
同理改写日期时间组件
ecodeSDK.overwritePropsFnQueueMapSet('WeaDatePicker',{ //组件名WeaDatePicker
fn:(newProps)=>{ //newProps代表组件参数
const {hash} = window.location;
if(!hash.startsWith('#/main/workflow/req'))return;
const baseInfo = WfForm.getBaseInfo();
//判断流程id
const excludedIds = [165, 122, 123, 158, 159, 60,191];
if (!excludedIds.includes(baseInfo.workflowid)) {
return;
}
//组件操作,可追加或者更换或者注入组件
newProps.showTime = { minuteStep: 30 };
return newProps; //修改之后返回数据
},
order:1, //排序字段,如果存在同一个页面复写了同一个组件,控制顺序时使用
desc:'设置以半小时为基本单位'
});
效果如图: