这个问题在平台上的难点在于:待办是在门户系统里,待办的处理是在另一个独立的前端工程里,两者是跨域关系。当然这两个系统都是同一个浏览器打开的。跨域页面通讯技术的核心是:消息监听。
1、门户主界面的vue页面的create中挂接消息监听:
let that = this
window.addEventListener("message", e => {
that.doMessage(e);
});
methods定义消息处理函数
doMessage(e) {
if (e.data == "refreshTodo") {
调用待办组件的刷新方法
}
}
2、业务系统
qlm_commonfuns.js中定义了刷新方法:
export function refreshTodo(){
if (window.opener){
window.opener.postMessage("refreshTodo","*")
}
}
调用后台处理业务成功后调用该函数即可。
这里的关键点是门户打开业务系统链接要使用window.open函数