去掉多文档超链接(ecode)
-
没有 href 属性是如何完成跳转的
-
使用 window.location.hash.indexOf() 判断是哪个页面
-
通过 WfForm.getBaseInfo 可以获取当前流程中的信息
-
通过节点信息的html鼠标聚集,可以看到对应节点id
ecodeSDK.overwritePropsFnQueueMapSet('WeaBrowser', {
fn: function(newProps, name){
if (window.location.hash.indexOf('#/main/workflow/req')==0) {
console.log(3,newProps.linkUrl)
var workflowid = WfForm.getBaseInfo().workflowid;
if(workflowid != 66){
return newProps;
}
var nodeid = WfForm.getBaseInfo().nodeid;
if(nodeid != 1238){
newProps.linkUrl='';
}
}
return newProps;
}
});
隐藏流程的保存按钮(ecode)
- 在这里面用 querySelectorAll 拿不到按钮数据
- 不能通过 display = 'none' 或者 opcity = 1.0 隐藏按钮
- 成功实现代码案例如下:register.js 需要前置加载
// 通过组件复写的方式隐藏指定流程的保存按钮
//利用组件复写作为代码块执行钩子,这种方案可以支持覆盖到所有流程,也可以判断到指定流程指定节点
ecodeSDK.overwritePropsFnQueueMapSet('Button',{
fn:(newProps)=>{
if(!window.location.hash.startsWith('#/main/workflow/req')) return ; //判断页面地址
if(!ecCom.WeaTools.Base64) return ; //完整组件库加载完成
if(!WfForm) return ; //表单sdk加载完成
if(WfForm.getBaseInfo().workflowid!==46) return ; //判断流程id
// 页面加载完成
jQuery().ready(function(){
$("button[title='保存']").hide(); // 调用 show 方法显示
});
}
});
// 通过拦截组件,删除所有流程的保存按钮
let interceptEnable = true;
ecodeSDK.rewriteApiDataQueueSet({
fn: (url, params, data) => {
if(!interceptEnable) return data; // 限制条件
if (window.location.hash.indexOf('#/main/workflow/req') < 0 || url.indexOf('/api/workflow/reqform/rightMenu') < 0) return data;
data.rightMenus.splice(1, 1);
return data;
},
desc: '拦截接口参数,同一个接口会在多个页面请求,需注意路径的判断'
});
// 上面的案例适用于已知按钮的索引,如果索引未知,可以根据按钮名称过滤
let interceptEnable = true;
ecodeSDK.rewriteApiDataQueueSet({
fn: (url, params, data) => {
if(!interceptEnable) return data; // 限制条件
if (window.location.hash.indexOf('#/main/workflow/req') < 0 || url.indexOf('/api/workflow/reqform/rightMenu') < 0) return data;
// data.rightMenus.splice(1, 1);
let res = data.rightMenus.filter(item => {
return item.menuName !== '保存';
});
data.rightMenus = res;
return data;
},
desc: '拦截接口参数,同一个接口会在多个页面请求,需注意路径的判断'
});
修改出生人员信息的出生日期字段
// 拦截组件响应体,然后修改对应dom对象的内容
let interceptEnable = true;
ecodeSDK.rewriteApiDataQueueSet({
fn: (url, params, data) => {
if(!interceptEnable) return data; // 限制条件
if (window.location.hash.indexOf('#/main/hrm/card/cardPersonal') < 0 || url.indexOf('api/hrm/usericon/getHasRight') < 0) return data;
document.querySelector('.wea-form-item-label').innerHTML = '日期出生';
return data;
},
desc: '拦截接口参数,同一个接口会在多个页面请求,需注意路径的判断'
});
将流程中的直角文本框替换成圆角的
- 对于我发使用 style 属性的问题,在添加根据 url 过滤之后就能使用了
// 前置加载 register.js
let interceptEnable = true;
ecodeSDK.rewriteApiDataQueueSet({
fn: (url, params, data) => {
if(!interceptEnable) return data; // 限制条件
if (window.location.hash.indexOf('#/main/workflow/req') < 0 || url.indexOf('/api/workflow/reqform/rightMenu') < 0) return data;
const inputs = document.querySelectorAll("[type='text']");
inputs.forEach(function(item,index,input){
// input[index].style.borderRadius = '10px';
item.style.borderRadius = '10px';
})
return data;
},
desc: '拦截接口参数,同一个接口会在多个页面请求,需注意路径的判断'
});
标签:片段,return,workflow,indexOf,代码,interceptEnable,url,data
From: https://www.cnblogs.com/20200109-zwh/p/17677112.html