layout.addReady(function(){
//重写 base_simple.js中的方法 这里是单点登录企业微信
layout.openLogin = function () {
console.log("开始login。。。。。。。。。。。。。");
var uri = locate.href.toURI();
var redirect = uri.getData("redirect");
var processId = uri.getData("processId");
var applicationId = uri.getData("appId");
MWF.require("MWF.xDesktop.Actions.RestActions", function () {
console.log("执行单点。。。。。。。。。。");
var action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_authentication", "");
action.getActions = function (actionCallback) {
this.actions = { "sso": { "uri": "/jaxrs/qiyeweixin/code/{code}", "method": "GET" } };
if (actionCallback) actionCallback();
};
action.invoke({
"name": "sso", "async": true, "parameter": { "code": uri.getData("code") }, "success": function (json) {
console.log("单点成功。");
console.log(json);
//基础数据。。。。
layout.session.user = json.data;
layout.content = $(document.body);
layout.app = layout;
//开始启动
layout.startProcess(applicationId, processId, redirect);
}.bind(this), "failure": function (xhr, text, error) {
var n = document.getElementById("loaddingArea");
if (n) { n.destroy(); }
document.id("layout").set("html", "
企业微信单点异常!
")
}.bind(this)
});
});
};
layout.startProcess = function (appId, pId, redirect) {
console.log("开始startProcess。。。。。。。。");
console.log(appId);
console.log(pId);
MWF.Actions.get("x_processplatform_assemble_surface").getProcessByName(pId, appId, function (json) {
if (json.data) {
MWF.xDesktop.requireApp("process.TaskCenter", "ProcessStarter", function () {
var starter = new MWF.xApplication.process.TaskCenter.ProcessStarter(json.data, layout.app, {
"workData": {},
"identity": null,
"latest": false,
"onStarted": function (data, title, processName) {
console.log("进入 onStarted。。。。");
debugger;
if (data.work){
layout.startProcessDraft(data, title, processName, redirect);
}else{
layout.startProcessInstance(data, title, processName, redirect);
}
}.bind(this)
});
var mask = document.getElementById("loaddingArea");
if (mask) mask.destroy();
starter.load();
}.bind(this));
}
}.bind(this));
};
layout.startProcessDraft = function(data, title, processName, redirect){
console.log("草稿模式。。。。");
console.log(data);
o2.require("o2.widget.UUID", function () {
var work = data.work;
var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
//先修改当前url为配置的门户地址
if (redirect) {
history.replaceState(null, "startProcess", redirect);
} else {
history.replaceState(null, "startProcess", "../x_desktop/appMobile.html?app=process.TaskCenter");
}
debugger;
// layout.openApplication(null, "process.Work", options);
layout.openWorkIn(options);
});
};
layout.startProcessInstance = function(data, title, processName, redirect){
console.log("实例模式。。。。");
console.log(data);
var currentTask = [];
data.each(function (work) {
if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
}.bind(this));
if (currentTask.length == 1) {
var options = { "workId": currentTask[0], "appId": currentTask[0] };
//先修改当前url为配置的门户地址
if (redirect) {
history.replaceState(null, "startProcess", redirect);
} else {
history.replaceState(null, "startProcess", "../x_desktop/appMobile.html?app=process.TaskCenter");
}
// layout.openApplication(null, "process.Work", options);
layout.openWorkIn(options);
} else { }
};
layout.openWorkIn = function(options){
o2.requireApp("Common", "", function() {
var uri = new URI(window.location.href);
var redirectlink = uri.getData("redirectlink");
if (!redirectlink) {
redirectlink = encodeURIComponent(locate.pathname + locate.search);
} else {
redirectlink = encodeURIComponent(redirectlink);
}
var appName="process.Work", m_status=null;
options.redirectlink = redirectlink;
layout.app = null;//创建工作界面
layout.openApplication(null, appName, options, m_status);
}, true);
};
layout.notice = function (content, type, target, where, offset) {
if (!where) where = { "x": "right", "y": "top" };
if (!target) target = this.content;
if (!type) type = "ok";
var noticeTarget = target || $(document.body);
var off = offset;
if (!off) {
off = {
x: 10,
y: where.y.toString().toLowerCase() == "bottom" ? 10 : 10
};
}
new mBox.Notice({
type: type,
position: where,
move: false,
target: noticeTarget,
delayClose: (type == "error") ? 10000 : 5000,
offset: off,
content: content
});
};
(function(layout){
console.log("开始执行。。。。。。。。");
var uri = locate.href.toURI();
var redirect = uri.getData("redirect");
var processId = uri.getData("processId");
var applicationId = uri.getData("appId");
console.log(uri);
layout.content = $(document.body);
layout.app = layout;
layout.startProcess(applicationId, processId, redirect);
})(layout);
});