提交 111b761e 编写于 作者: NoSubject's avatar NoSubject

表单性能优化的一些改动

上级 52294af3
......@@ -460,6 +460,8 @@ function build_concat_xform(){
'o2web/source/' + path + '/DatagridPC.js',
'o2web/source/' + path + '/Textfield.js',
'o2web/source/' + path + '/Personfield.js',
'o2web/source/' + path + '/Button.js',
'o2web/source/' + path + '/ViewSelector.js',
'o2web/source/' + path + '/*.js',
'o2web/source/x_component_process_Work/Processor.js',
'!o2web/source/' + path + '/Office.js'
......
......@@ -154,6 +154,8 @@ function createXFormConcatTask(path, isMin, thisOptions) {
'source/' + path + '/DatagridPC.js',
'source/' + path + '/Textfield.js',
'source/' + path + '/Personfield.js',
'source/' + path + '/Button.js',
'source/' + path + '/ViewSelector.js',
'source/' + path + '/*.js',
'source/x_component_process_Work/Processor.js',
'!source/' + path + '/Office.js'
......
......@@ -1481,15 +1481,24 @@
return arr;
}
Date.implement({
"getFromServer": function(){
// "getFromServer": function(){
// var d;
// o2.Actions.get("x_program_center").echo(function(json){
// d = Date.parse(json.data.serverTime);
// }, null, false);
// return d;
// }
"getFromServer": function(callback){
var async = !!callback;
var d;
o2.Actions.get("x_program_center").echo(function(json){
var r = o2.Actions.get("x_program_center").echo(function(json){
d = Date.parse(json.data.serverTime);
}, null, false);
return d;
if (callback) callback(d);
}, null, async);
return d || r;
}
});
});
})();
o2.core = true;
......
......@@ -146,17 +146,27 @@ MWF.xApplication.process.Work.Main = new Class({
//var getWorkLogMothed = (this.options.worklogType.toLowerCase()==="worklog") ? "getWorkLog" : "getRecordLog";
var loadFormFlag = false;
var loadWorkFlag = false;
var loadModuleFlag = false;
var json_work, json_log, json_control, json_form;
var check = function(){
if (loadWorkFlag && loadFormFlag){
if (loadWorkFlag && loadFormFlag && loadModuleFlag){
if (json_work && json_control && json_form && json_log){
this.parseData(json_work.data, json_control.data, json_form.data, json_log.data, json_work.data.recordList, json_work.data.attachmentList);
if (this.mask) this.mask.hide();
//if (layout.mobile) this.loadMobileActions();
this.openWork();
this.unLoading();
if (layout.session && layout.session.user){
this.openWork();
this.unLoading();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
this.openWork();
this.unLoading();
}.bind(this));
}
}
} else{
if (this.options.jobId || this.options.jobid || this.options.job){
delete this.options.workCompletedId;
......@@ -196,14 +206,24 @@ MWF.xApplication.process.Work.Main = new Class({
loadFormFlag = true;
check();
}else{
this.action[((layout.mobile) ? "getFormV2Mobile": "getFormV2")](formId, function(formJson){
json_form = formJson;
loadFormFlag = true;
check();
}, function(){
loadFormFlag = true;
check();
});
//临时查看效果
// if (formId=="4f8b4fde-d963-468c-b6c9-9e7b919f0bd0"){
// o2.JSON.get("../x_desktop/res/form/4f8b4fde-d963-468c-b6c9-9e7b919f0bd0.json", function(formJson){
// json_form = formJson;
// loadFormFlag = true;
// check();
// });
// }else{
this.action[((layout.mobile) ? "getFormV2Mobile": "getFormV2")](formId, function(formJson){
json_form = formJson;
loadFormFlag = true;
check();
}, function(){
loadFormFlag = true;
check();
});
// }
}
}.bind(this), function(){
......@@ -225,6 +245,11 @@ MWF.xApplication.process.Work.Main = new Class({
}.bind(this)}, id
);
}
var cl = "$all";
MWF.xDesktop.requireApp("process.Xform", cl, function(){
loadModuleFlag = true;
check();
});
// if (this.options.form && this.options.form.id && this.options.form.app){
// o2.Actions.invokeAsync([
......@@ -646,8 +671,8 @@ MWF.xApplication.process.Work.Main = new Class({
this.formNode.setStyles(this.css.formNode);
var uri = window.location.href;
//var cl = (uri.indexOf("$all")!=-1) ? "$all" : "Form";
var cl = "$all";
MWF.xDesktop.requireApp("process.Xform", cl, function(){
// var cl = "$all";
// MWF.xDesktop.requireApp("process.Xform", cl, function(){
//MWF.xDesktop.requireApp("process.Xform", "Form", function(){
this.appForm = new MWF.APPForm(this.formNode, this.form, {});
this.appForm.businessData = {
......@@ -700,7 +725,7 @@ debugger;
this.fireEvent("postLoadForm");
}.bind(this));
}.bind(this));
//}.bind(this));
}
},
......
......@@ -26,6 +26,17 @@ layout.addReady(function(){
}
layout.openApplication(null, appName, option||{}, m_status);
};
_load();
if (layout.session && layout.session.user){
_load();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
_load();
});
}
}
//_load();
})(layout);
});
......@@ -420,18 +420,43 @@ o2.addReady(function () {
}
};
var _setLayoutService = function(service, center){
layout.serviceAddressList = service;
layout.centerServer = center;
layout.desktop.serviceAddressList = service;
layout.desktop.centerServer = center;
};
var _getDistribute = function (callback) {
debugger;
if (layout.config.app_protocol === "auto") {
layout.config.app_protocol = window.location.protocol;
}
o2.xDesktop.getServiceAddress(layout.config, function (service, center) {
layout.serviceAddressList = service;
layout.centerServer = center;
layout.desktop.serviceAddressList = service;
layout.desktop.centerServer = center;
_loadProgressBar();
if (callback) callback();
}.bind(this));
if (layout.config.configMapping && layout.config.configMapping[window.location.host]){
var mapping = layout.config.configMapping[window.location.host];
if (mapping.servers){
layout.serviceAddressList = mapping.servers;
layout.desktop.serviceAddressList = mapping.servers;
if (mapping.center) center = (o2.typeOf(mapping.center)==="array") ? mapping.center[0] : mapping.center;
layout.centerServer = center;
layout.desktop.centerServer = center;
if (callback) callback();
}else{
if (mapping.center) layout.config.center = (o2.typeOf(mapping.center)==="array") ? mapping.center : [mapping.center];
o2.xDesktop.getServiceAddress(layout.config, function (service, center) {
_setLayoutService(service, center);
_loadProgressBar();
if (callback) callback();
}.bind(this));
}
}else{
o2.xDesktop.getServiceAddress(layout.config, function (service, center) {
_setLayoutService(service, center);
_loadProgressBar();
if (callback) callback();
}.bind(this));
}
};
var _load = function () {
......@@ -447,6 +472,7 @@ o2.addReady(function () {
_loadProgressBar(true);
while (layout.readys && layout.readys.length) {
console.log("load app ...")
layout.readys.shift().apply(window);
}
};
......@@ -458,36 +484,71 @@ o2.addReady(function () {
Cookie.write("x-token", options["x-token"]);
}
_loadApp();
layout.sessionPromise = {
"resolveList": [],
"rejectList": [],
"init": function(resolve, reject){
if (resolve) this.resolveList.push(resolve);
if (reject) this.rejectList.push(reject);
this.status = "pending";
this.resolveReturn = this;
//先判断用户是否登录
o2.Actions.get("x_organization_assemble_authentication").getAuthentication(function (json) {
this.status = "fulfilled";
this.resolveReturn = json.data;
this.runResolve(this.resolveReturn);
}.bind(this), function (xhr, text, error) {
this.status = "rejected";
this.resolveReturn = {"xhr": xhr, "text": text, "error": error};
this.runReject(this.resolveReturn);
}.bind(this));
},
"runResolve": function(json){
while (this.resolveList.length){
var r = this.resolveList.shift()(this.resolveReturn);
if (r) this.resolveReturn = r;
}
},
"runReject": function(json){
while (this.rejectList.length){
var r = this.rejectList.shift()(json);
if (r) this.resolveReturn = r;
}
},
"then": function(resolve, reject){
if (resolve) this.resolveList.push(resolve);
if (reject) this.rejectList.push(reject);
switch (this.status){
case "fulfilled":
this.runResolve();
break;
case "rejected":
this.runReject();
break;
default:
//nothing
}
return this;
}
}
//先判断用户是否登录
o2.Actions.get("x_organization_assemble_authentication").getAuthentication(function (json) {
layout.sessionPromise.init(function(data){
//已经登录
//_loadProgressBar();
layout.user = json.data;
layout.user = data;
layout.session = layout.session || {};
layout.session.user = json.data;
layout.session.token = json.data.token;
layout.session.user = data;
layout.session.token = data.token;
layout.desktop.session = layout.session;
//_loadApp(json);
}.bind(this), function (json) {
//_loadProgressBar();
}, function(){
//允许匿名访问
if (layout.anonymous) {
//_loadProgressBar(true);
// _loadApp({
// data : {
// user: "anonymous",
// session: {
// user: {
// name: "anonymous",
// roleList: []
// }
// }
// }
// });
var data = { user: "anonymous", session: { user: { name: "anonymous", roleList: [] } } };
layout.user = data;
layout.session = layout.session || {};
layout.session.user = data;
layout.session.token = data.token;
layout.desktop.session = layout.session;
} else {
_loadProgressBar(true);
if (layout.yqwx) {
......@@ -497,6 +558,47 @@ o2.addReady(function () {
}
}
});
_loadApp();
// //先判断用户是否登录
// o2.Actions.get("x_organization_assemble_authentication").getAuthentication(function (json) {
// //已经登录
// //_loadProgressBar();
//
// layout.user = json.data;
// layout.session = layout.session || {};
// layout.session.user = json.data;
// layout.session.token = json.data.token;
// layout.desktop.session = layout.session;
//
// //_loadApp(json);
// }.bind(this), function (json) {
// //_loadProgressBar();
// //允许匿名访问
// if (layout.anonymous) {
// //_loadProgressBar(true);
// // _loadApp({
// // data : {
// // user: "anonymous",
// // session: {
// // user: {
// // name: "anonymous",
// // roleList: []
// // }
// // }
// // }
// // });
// } else {
// _loadProgressBar(true);
// if (layout.yqwx) {
// layout.openLoginQywx();
// } else {
// layout.openLogin();
// }
// }
// });
layout.openLogin = function () {
layout.authentication = new o2.xDesktop.Authentication({
......
......@@ -29,10 +29,19 @@ layout.addReady(function(){
layout.openApplication(null, appName, option||{}, m_status);
};
_load();
if (layout.session && layout.session.user){
_load();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
_load();
});
}
}
//_load();
window.addEventListener('popstate', function (event) {
debugger
uri = new URI(document.location.href);
id = uri.getData("id");
page = uri.getData("page");
......
......@@ -31,6 +31,14 @@ layout.addReady(function(){
layout.openApplication(null, appName, option||{}, m_status);
};
_load();
if (layout.session && layout.session.user){
_load();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
_load();
});
}
}
})(layout);
});
\ No newline at end of file
});
......@@ -117,6 +117,15 @@ layout.addReady(function(){
layout.openApplication(null, appName, option||{}, m_status);
}
};
_load();
if (layout.session && layout.session.user){
_load();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
_load();
});
}
}
})(layout);
});
\ No newline at end of file
});
......@@ -7,33 +7,45 @@ layout.addReady(function(){
layout.desktop.type = "layout";
var loadingNode = $("browser_loading");
MWF.xDesktop.getUserLayout(function(){
layout.userLayout = layout.userLayout || {};
var uri = new URI(window.location.href);
var viewMode = uri.getData("view");
var flatStyle = uri.getData("style");
if (flatStyle) layout.userLayout.flatStyle = flatStyle;
if (!viewMode) viewMode = (layout.userLayout && layout.userLayout.viewMode) ? layout.userLayout.viewMode : "homepage";
viewMode = viewMode.toLowerCase();
//viewMode = (["flat", "home", "homepage", "default"].indexOf(viewMode)!==-1) ? "Default" : "Layout";
viewMode = (["layout", "desktop"].indexOf(viewMode)!==-1) ? "Layout" : "Default";
layout.viewMode = viewMode.capitalize();
//var layoutClass = "Homepage";
$("appContent").destroy();
MWF.require("MWF.xDesktop."+layout.viewMode, function(){
layout.desktop = new MWF.xDesktop[layout.viewMode]("layout_main", {});
layout.desktop.load();
if (!layout.desktop.openApplication) layout.desktop.openApplication = layout.openApplication;
if (!layout.desktop.refreshApp) layout.desktop.refreshApp = layout.refreshApp;
var _load = function(){
MWF.xDesktop.getUserLayout(function(){
layout.userLayout = layout.userLayout || {};
var uri = new URI(window.location.href);
var viewMode = uri.getData("view");
var flatStyle = uri.getData("style");
if (flatStyle) layout.userLayout.flatStyle = flatStyle;
if (!viewMode) viewMode = (layout.userLayout && layout.userLayout.viewMode) ? layout.userLayout.viewMode : "homepage";
viewMode = viewMode.toLowerCase();
//viewMode = (["flat", "home", "homepage", "default"].indexOf(viewMode)!==-1) ? "Default" : "Layout";
viewMode = (["layout", "desktop"].indexOf(viewMode)!==-1) ? "Layout" : "Default";
layout.viewMode = viewMode.capitalize();
//var layoutClass = "Homepage";
$("appContent").destroy();
MWF.require("MWF.xDesktop."+layout.viewMode, function(){
layout.desktop = new MWF.xDesktop[layout.viewMode]("layout_main", {});
layout.desktop.load();
if (!layout.desktop.openApplication) layout.desktop.openApplication = layout.openApplication;
if (!layout.desktop.refreshApp) layout.desktop.refreshApp = layout.refreshApp;
});
if (loadingNode){
new Fx.Tween(loadingNode).start("opacity", 0).chain(function(){
loadingNode.destroy();
loadingNode = null;
});
}
});
if (loadingNode){
new Fx.Tween(loadingNode).start("opacity", 0).chain(function(){
loadingNode.destroy();
loadingNode = null;
};
if (layout.session && layout.session.user){
_load();
}else{
if (layout.sessionPromise){
layout.sessionPromise.then(function(){
_load();
});
}
});
}
})(layout);
});
......
......@@ -3,7 +3,7 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" type="text/css" href="css/style_all.css" charset="UTF-8" />
<link rel="icon" href="data:;">
<title>WORK</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
......
......@@ -7,13 +7,6 @@
<link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
<link rel="icon" href="data:;">
<script src="../o2_core/o2.min.js"></script>
<script src="js/base_work.min.js"></script>
<script src="js/o2m.api.js"></script>
<script src="js/work.min.js"></script>
<script src="../o2_lib/Decimal.js"></script>
<script>layout.mobile = true;</script>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
......@@ -27,5 +20,12 @@
<div id="loaddingArea" style="overflow: hidden;width:0px; height:2px; background-color:#4e82bd; position: absolute; top: 0; z-index: 100"></div>
<div id="layout" style="overflow: hidden; -webkit-transform: translateZ(0); "></div>
</div>
<script src="../o2_core/o2.min.js"></script>
<script src="js/base_work.min.js"></script>
<script src="js/o2m.api.js"></script>
<script src="js/work.min.js"></script>
<script src="../o2_lib/Decimal.js"></script>
<script>layout.mobile = true;</script>
</body>
</html>
......@@ -8,13 +8,6 @@
<link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
<link rel="icon" href="data:;">
<script src="../o2_core/o2.min.js"></script>
<script src="js/base_work.min.js"></script>
<script src="js/o2m.api.js"></script>
<script src="js/work.min.js"></script>
<script src="../o2_lib/Decimal.js"></script>
<script>layout.mobile = true;</script>
<meta content="width=device-width, initial-scale=1.0,user-scalable=0" name="viewport" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
......@@ -37,6 +30,12 @@
</div>
<script src="../o2_core/o2.min.js"></script>
<script src="js/base_work.min.js"></script>
<script src="js/o2m.api.js"></script>
<script src="js/work.min.js"></script>
<script src="../o2_lib/Decimal.js"></script>
<script>layout.mobile = true;</script>
<script type="text/javascript" src="../o2_lib/wechat/jweixin-1.6.0.js"></script>
</body>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册