【泛微】流程提交控制明细某一列字段值必须一致,不一致禁止提交
明细行选择时很多流程需要控制一单只能选择相同的科目, 或者相同的部门,需要控制不可以明细行同一个字段出现多个不同的值
实现效果:提交时提示错误信息
<script>
//只需修改字段名和明细表数字即可
var fieldname = "LGORT_OUT"; //明细表字段名
var xmtable = "detail_1"; //明细表1就是detail_1,明细2就是detail_2
jQuery(document).ready(function() {
WfForm.registerCheckEvent(WfForm.OPER_SUBMIT,
function(callback) {
var fieldid = WfForm.convertFieldNameToId(fieldname, xmtable) var rowArr = WfForm.getDetailAllRowIndexStr(xmtable).split(",");
var beforvalue = "";
for (var i = 0; i < rowArr.length; i++) {
var rowIndex = rowArr[i];
if (rowIndex !== "") {
var fieldMark = fieldid + "_" + rowIndex; //遍历明细行字段
var fieldvalue = WfForm.getFieldValue(fieldMark);
if (i == 0) {
beforvalue = fieldvalue;
} else {
if (fieldvalue != beforvalue) {
WfForm.showMessage("明细字段存在不同值,请重新选择", 2, 5);
return;
}
}
}
}
callback(); //继续提交需调用callback,不调用代表阻断
});
});
</script>
注册拦截事件,指定动作执行前触发,并可阻断/放行后续操作
支持多次注册,按注册顺序依次执行;支持异步ajax,避免请求卡住
场景1:表单提交、保存、退回、转发、强制收回等操作执行前,执行自定义逻辑并阻断/放行后续操作
场景2:明细添加行、删除行前,执行自定义逻辑并阻断/允许后续操作
动作类型 | 说明 | 最低版本要求 |
---|---|---|
WfForm.OPER_SAVE | 保存 | |
WfForm.OPER_SUBMIT | 提交/批准/提交需反馈/不需反馈等 | |
WfForm.OPER_SUBMITCONFIRM | 提交至确认页面,如果是确认界面,点确认触发的是SUBMIT | |
WfForm.OPER_REJECT | 退回 | |
WfForm.OPER_REMARK | 批注提交 | |
WfForm.OPER_INTERVENE | 干预 | |
WfForm.OPER_FORWARD | 转发 | |
WfForm.OPER_TAKEBACK | 强制收回 | |
WfForm.OPER_DELETE | 删除 | |
WfForm.OPER_ADDROW | 添加明细行,需拼明细表序号 | |
WfForm.OPER_DELROW | 删除明细行,需拼明细表序号 | |
WfForm.OPER_PRINTPREVIEW | 打印预览 | KB900190501 |
WfForm.OPER_EDITDETAILROW | 移动端-编辑明细 | KB900191101 |
WfForm.OPER_BEFOREVERIFY | 校验必填前触发事件 | KB900191201 |
WfForm.OPER_TURNHANDLE | 转办 | KB900201101 |
WfForm.OPER_ASKOPINION | 意见征询 | KB900201101 |
WfForm.OPER_TAKFROWARD | 征询转办 | KB900201101 |
WfForm.OPER_TURNREAD | 传阅 | KB900201101 |
WfForm.OPER_FORCEOVER | 强制归档 | KB900201101 |
WfForm.OPER_BEFORECLICKBTN | 点右键按钮前 | KB900201101 |
WfForm.OPER_SAVECOMPLETE | 保存后页面跳转前 | KB900210501 |
WfForm.OPER_WITHDRAW | 撤回 | KB900201101 |
WfForm.OPER_CLOSE | 页面关闭 | KB900201101 |
接口名称及参数说明:registerCheckEvent:function(type,fun)
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
type | String | 是 | 动作类型(详见上表),多个逗号分隔 |
fun | Function | 是 | 自定义函数,此函数入参为callback,执行自定义逻辑完成或异步ajax的success函数体内,放行需调用callback,不调用代表阻断后续操作 |
样例:
<script>
jQuery().ready(function(){
WfForm.registerCheckEvent(WfForm.OPER_SUBMIT, function(callback){
var field15201 = WfForm.getFieldValue("field15201");
if(field15201 > 0 ){
WfForm.showMessage("已发起过退料流程", 2, 5);
return ;
}
callback();
});
});
</script>
jQuery().ready(function(){
WfForm.registerCheckEvent(WfForm.OPER_SAVE, function(callback){
jQuery("#field27495").val("保存自动赋值");
callback(); //继续提交需调用callback,不调用代表阻断
});
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
//... 执行自定义逻辑
callback();
});
WfForm.registerCheckEvent(WfForm.OPER_ADDROW+"1", function(callback){
alert("添加明细1前执行逻辑,明细1则是OPER_ADDROW+1,依次类推")
callback(); //允许继续添加行调用callback,不调用代表阻断添加
});
WfForm.registerCheckEvent(WfForm.OPER_DELROW+"2", function(callback){
alert("删除明细2前执行逻辑")
callback(); //允许继续删除行调用callback,不调用代表阻断删除
});
WfForm.registerCheckEvent(WfForm.OPER_PRINTPREVIEW, function(callback){
alert("控制默认弹出的打印预览窗口")
alert("当打印含签字意见列表,此接口需要放到跳转路由前执行,组件库提供此机制");
window.WfForm.printTimeout = 3000; //产品是默认延时1s自动弹出,可通过此方式控制延时时间
callback(); //允许继续弹出调用callback,不调用代表不自动弹预览
});
WfForm.registerCheckEvent(WfForm.OPER_EDITDETAILROW, function(callback,params){
alert(JSON.stringify(params)); //参数含当前点击哪个明细表哪一行
callback(); //允许跳转明细编辑窗口,不调用阻断跳转
});
});
THE END
0
二维码
打赏
海报
【泛微】流程提交控制明细某一列字段值必须一致,不一致禁止提交
明细行选择时很多流程需要控制一单只能选择相同的科目, 或者相同的部门,需要控制不可以明细行同一个字段出现多个不同的值
实现效果:提交时提示错误信息
<……
共有 0 条评论