/**
|
* 演示程序当前的 “注册/登录” 等操作,是基于 “本地存储” 完成的
|
* 当您要参考这个演示程序进行相关 app 的开发时,
|
* 请注意将相关方法调整成 “基于服务端Service” 的实现。
|
**/
|
(function($, owner) {
|
//数组指定移除
|
Array.prototype.remove = function(val) {
|
var index = this.indexOf(val);
|
if (index > -1) {
|
this.splice(index, 1);
|
}
|
};
|
var appwebsitename;
|
mui.arlist = function(funi) {
|
//var ar1 = new Array('1/a', '2/b', '3/c');
|
//var ar2 = new Array('3/a', '1/b', '2/c');
|
var jo1 = {
|
'ND/NetDiskSignIn': 'DMS/NetDiskSignIn',
|
'ND/appND_CatRightList': 'DMS/appND_CatRightList',
|
"dms/appCatDocList": "dms/appCatDocList",
|
"ND/UnShare": "DMS/UnShare",
|
"dms/AppDview": "dms/AppDview",
|
"nd/AddDoc": "dms/ndAddDoc",
|
"dms/AddDoc": "dms/dmsAddDoc",
|
'UpFile/Upp': 'upfile/index',
|
"dms/cabinetlist": "dms/cabinetlist",
|
'nd/ShareOutList': 'dms/ShareOutList',
|
'nd/ShareInList': 'dms/ShareInList',
|
'nd/CatDocDelete': 'dms/ndCatDocDelete',
|
'dms/DeleteCatDoc': 'dms/DeleteCatDoc',
|
"dms/Disk_info": "dms/Disk_info",
|
"nd/Catchange": "dms/ndCatchange",
|
'dms/renamecatalog': 'dms/renamecatalog',
|
"ND/Catcre": "dms/ndCatcre",
|
'dms/addcatalog': 'dms/addcatalog',
|
"nd/addatten": "dms/ndAddAtten",
|
"ND/GetShareUser": "dms/ndGetShareUser",
|
"ND/Shareshare": "dms/ndShareshare",
|
"sysadmin/getPSNROLE": "dms/getPSNROLE",
|
"SelPsn/SysRole":'project/SysRole',
|
}
|
var state = owner.getState();
|
// console.log(state.appwebsitename);
|
if (state.appwebsitename == 'OIGunghoWebSite')
|
return jo1[funi] || funi;
|
else
|
return funi
|
}
|
/**
|
* 用户登录
|
**/
|
//outcallback 成功时执行的继续回调,
|
//callback 失败执行的
|
owner.login = function(loginInfo, xhr, outcallback, callback) {
|
callback = callback || $.noop;
|
loginInfo = loginInfo || {};
|
loginInfo.account = loginInfo.account || '';
|
loginInfo.password = loginInfo.password || '';
|
if (loginInfo.account.length < 2) {
|
return callback('账号最短为 2 个字符');
|
}
|
if (loginInfo.password.length < 1) {
|
return callback('密码最短为 1个字符');
|
}
|
var login_soap =
|
'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
|
'<soap:Body>' +
|
'<User-VerifyPassword xmlns="urn:OrgWebS">' +
|
'<pszRequest xmlns="">' +
|
'<![CDATA[<Req><DataInfo><UserLogin>' + loginInfo.account + '</UserLogin><UserPsw>' + loginInfo.password +
|
'</UserPsw><PswType>0</PswType><UserKey /><IncludeAdmin>1</IncludeAdmin><AppType>DMS</AppType><Client Type="1" ConnIP="" ConnCName="' +
|
loginInfo.host_name + '" IP="" MAC="" CName="" Num="" /></DataInfo></Req>]]>' +
|
'</pszRequest>' +
|
'</User-VerifyPassword>' +
|
// '<ns:Hello>'+
|
// '<pszValue><![CDATA[<Req><text>text</text></Req>]]></pszValue>'+
|
// '</ns:Hello>'+
|
'</soap:Body></soap:Envelope>';
|
//--webservice
|
// var xhr=new plus.net.XMLHttpRequest();
|
//alert(login_soap);
|
var cgi = "http://" + loginInfo.server; //+"/OrgWebS"
|
if (loginInfo.server.split(':').length < 2)
|
cgi = "http://" + loginInfo.server + ":5010"; ///OrgWebS
|
xhr.onreadystatechange = function() {
|
if (xhr.readyState == 4) {
|
if (xhr.status == 200) {
|
var ret = {};
|
var xmlele = xhr.responseXML;
|
var domParser = new DOMParser();
|
var xmldoc = domParser.parseFromString(xmlele.getElementsByTagName("pszResponse")[0].firstChild.nodeValue,
|
'text/xml');
|
|
var errcode = xmldoc.getElementsByTagName('ErrCode')[0].firstChild.nodeValue;
|
if (errcode != '0')
|
return callback(xmldoc.getElementsByTagName('ErrInfo')[0].firstChild.nodeValue);
|
else {
|
ret.code = errcode;
|
ret.data = {};
|
ret.data.Name = owner.getNodeValue(xmldoc, "UserName");
|
ret.data.ID = owner.getNodeValue(xmldoc, "UserLogin");
|
ret.data.SessionID = owner.getNodeValue(xmldoc, "SessionID");
|
ret.data.ConnIP = owner.getNodeValue(xmldoc, "ConnIP");
|
var org = xmldoc.getElementsByTagName('Org')[0];
|
var unit = xmldoc.getElementsByTagName('Unit')[0];
|
var admin = xmldoc.getElementsByTagName('Admin')[0];
|
ret.data.OrgID = owner.getNodeValue(org, "ID");
|
ret.data.OrgName = owner.getNodeValue(org, "Name");
|
ret.data.UnitID = owner.getNodeValue(unit, "ID");
|
ret.data.UnitName = owner.getNodeValue(unit, "Name");
|
ret.data.Admin = owner.getNodeValue(admin, "SysAdmin");
|
return outcallback(ret);
|
// owner.getAppinfo(xhhr,loginInfo,cgi,ret,callback);
|
}
|
}
|
}
|
};
|
xhr.onerror = function(e) {
|
return callback("登录失败,无效的网络地址");
|
}
|
xhr.open('POST', cgi, true);
|
xhr.setRequestHeader('Content-Type', "text/xml;charset=UTF-8");
|
xhr.send(login_soap);
|
|
//
|
//mui.ajax({
|
// url:loginInfo.server+'account/signin',
|
// data:{
|
// uname:loginInfo.account,
|
// pwd:loginInfo.password,
|
// cname:loginInfo.host_name
|
// },
|
// crossDomain: true, //强制使用5+跨域
|
// dataType:'json',//服务器返回json格式数据
|
// type:'post',//HTTP请求类型
|
// timeout:6000,//超时时间设置为10秒;
|
// success:function(data){
|
// //服务器返回响应,根据响应结果,分析是否登录成功;
|
// alert(JSON.stringify(data));
|
// var ret = data;
|
// if(ret.code=='00000'){
|
// return owner.createState(loginInfo.server,loginInfo.account,ret.data, loginInfo.password,callback);
|
// }else{
|
// return callback(ret.msg);
|
// }
|
// },
|
// error:function(xhr,type,errorThrown){
|
// //异常处理;
|
// alert(JSON.stringify(type));
|
// return callback(type);
|
// }
|
// });
|
|
// $.post(loginInfo.server+'account/signin',{
|
// uname:loginInfo.account,
|
// pwd:loginInfo.password,
|
// cname:loginInfo.host_name,
|
// },function(data){
|
// //服务器返回响应,根据响应结果,分析是否登录成功;
|
// var ret = data;
|
// if(ret.code=='00000'){
|
// return owner.createState(loginInfo.server,loginInfo.account,ret.data, loginInfo.password,callback);
|
// }else{
|
// return callback(ret.msg);
|
// }
|
// },'json'
|
// );
|
|
// var users = JSON.parse(localStorage.getItem('$users') || '[]');
|
// var authed = users.some(function(user) {
|
// return loginInfo.account == user.account && loginInfo.password == user.password;
|
// });
|
// if (authed) {
|
// return owner.createState(loginInfo.account, callback);
|
// } else {
|
// return callback('用户名或密码错误');
|
// }
|
|
};
|
owner.getAppinfo = function(xhr, Mobox_true_Gungho_false, loginInfo, userret, callback) {
|
if (Mobox_true_Gungho_false)
|
appwebsitename = 'OIMoboxWebSite';
|
else
|
appwebsitename = 'OIGunghoWebSite';
|
var state = owner.getState();
|
state.appwebsitename = appwebsitename;
|
owner.setState(state);
|
var appgetinfo =
|
'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><App-GetInfo xmlns="urn:OrgWebS"><pszRequest xmlns="">';
|
appgetinfo += '<![CDATA[<Req><DataInfo><AppName>' + appwebsitename +
|
'</AppName><Ver></Ver></DataInfo><UserInfo Login="' + userret.data.ID + '" SessionID="' + userret.data.SessionID +
|
'" /></Req>]]>';
|
appgetinfo += '</pszRequest></App-GetInfo></soap:Body></soap:Envelope>';
|
|
//alert(appgetinfo);
|
var cgi = "http://" + loginInfo.server + "/OrgWebS";
|
if (loginInfo.server.split(':').length < 2)
|
cgi = "http://" + loginInfo.server + ":5010/OrgWebS";
|
xhr.onreadystatechange = function() {
|
if (xhr.readyState == 4) {
|
if (xhr.status == 200) {
|
var xmlele = xhr.responseXML;
|
var domParser = new DOMParser();
|
var xmldoc = domParser.parseFromString(xmlele.getElementsByTagName("pszResponse")[0].firstChild.nodeValue,
|
'text/xml');
|
var errcode = xmldoc.getElementsByTagName('ErrCode')[0].firstChild.nodeValue;
|
if (errcode != '0')
|
return callback(xmldoc.getElementsByTagName('ErrInfo')[0].firstChild.nodeValue);
|
else {
|
var app = xmldoc.getElementsByTagName('App')[0];
|
var ret = userret;
|
ret.data.AppID = owner.getAttValue(app, "ID");
|
ret.data.AppName = owner.getAttValue(app, "Name");
|
ret.data.AppIP = owner.getAttValue(app, "ServerIP");
|
ret.data.AppPort = owner.getAttValue(app, "ServerPort");
|
ret.data.AppUrl = owner.getNodeValue(app, "URL");
|
return owner.webLogin(loginInfo, ret.data, ret.data.AppUrl + '/', callback);
|
}
|
}
|
}
|
};
|
xhr.onerror = function(e) {
|
return callback("获取网站地址失败,无效的网络地址");
|
}
|
xhr.open('POST', cgi, true);
|
xhr.setRequestHeader('Content-Type', "text/xml;charset=UTF-8");
|
xhr.send(appgetinfo);
|
}
|
|
owner.getNodeValue = function(xmldoc, nodeval) {
|
try {
|
return xmldoc.getElementsByTagName(nodeval)[0].firstChild.nodeValue;
|
} catch (e) {
|
return "";
|
}
|
|
}
|
owner.getAttValue = function(xmldoc, attval) {
|
try {
|
return xmldoc.getAttribute(attval);
|
} catch (e) {
|
return "";
|
}
|
}
|
//web login
|
owner.webLogin = function(loginInfo, r_d, appurl, callback) {
|
//appurl="http://10.0.2.2:30961/work/"; //模拟器 + VS 调试
|
//appurl="http://192.168.1.115:30961/work/"; //真机 + VS 调试
|
// console.log(appurl + mui.arlist('ND/NetDiskSignIn'));
|
// console.log(JSON.stringify({
|
// uname: loginInfo.account,
|
// pwd: loginInfo.password,
|
// cname: loginInfo.host_name
|
// }));
|
mui.ajax({
|
url: appurl + mui.arlist('ND/NetDiskSignIn'),
|
data: {
|
uname: loginInfo.account,
|
pwd: loginInfo.password,
|
cname: loginInfo.host_name
|
},
|
crossDomain: true, //强制使用5+跨域
|
dataType: 'json', //服务器返回json格式数据
|
type: 'post', //HTTP请求类型
|
timeout: 10000, //超时时间设置为10秒;
|
success: function(data) {
|
//服务器返回响应,根据响应结果,分析是否登录成功;
|
// alert(JSON.stringify(data));
|
var ret = data;
|
if (ret.code == '00000') {
|
return owner.createState(loginInfo.server, loginInfo.account, loginInfo.password, ret, appurl, callback);
|
} else {
|
return callback(ret.msg);
|
}
|
},
|
error: function(xhr, type, errorThrown) {
|
//异常处理;
|
//alert(type)
|
return callback(type);
|
}
|
});
|
}
|
//登陆成功
|
owner.createState = function(server, account, password, ret, url, callback) {
|
var appcookie = ret.msg;
|
ret = ret.data;
|
var state = owner.getState();
|
state.account = ret.Name;
|
state.token = ret.ID;
|
state.Interadr = url;
|
state.appcookie = appcookie;
|
state.lastaddress = server;
|
state.lastuser = {
|
account: account,
|
password: password
|
};
|
state.ret = ret;
|
state.prjenventype = "";
|
state.shownstar = "0";
|
var pjson = state.seruser || '{}';
|
if (pjson == '{}')
|
pjson = JSON.parse(pjson);
|
var users = pjson[server] || "[]";
|
if (users == '[]')
|
users = JSON.parse(users);
|
var hasaccount = true;
|
users.some(function(user) {
|
if (user.account == account && user.password == password)
|
hasaccount = false;
|
})
|
if (hasaccount)
|
users.push({
|
account: account,
|
password: password,
|
name: ret.Name
|
});
|
pjson[server] = users;
|
state.seruser = pjson;
|
state.shownstar = "0";
|
owner.setState(state);
|
//写入缓存 记录
|
return callback();
|
};
|
|
/**
|
* 新用户注册
|
**/
|
owner.reg = function(regInfo, callback) {
|
callback = callback || $.noop;
|
regInfo = regInfo || {};
|
regInfo.account = regInfo.account || '';
|
regInfo.password = regInfo.password || '';
|
if (regInfo.account.length < 5) {
|
return callback('用户名最短需要 5 个字符');
|
}
|
if (regInfo.password.length < 6) {
|
return callback('密码最短需要 6 个字符');
|
}
|
if (!checkEmail(regInfo.email)) {
|
return callback('邮箱地址不合法');
|
}
|
var users = JSON.parse(localStorage.getItem('$users') || '[]');
|
users.push(regInfo);
|
localStorage.setItem('$users', JSON.stringify(users));
|
return callback();
|
};
|
|
/**
|
* 获取当前状态
|
**/
|
owner.getState = function() {
|
var stateText = localStorage.getItem('$state') || "{}";
|
return JSON.parse(stateText);
|
};
|
|
/**
|
* 设置当前状态
|
**/
|
owner.setState = function(state) {
|
state = state || {};
|
localStorage.setItem('$state', JSON.stringify(state));
|
};
|
|
var checkEmail = function(email) {
|
email = email || '';
|
return (email.length > 3 && email.indexOf('@') > -1);
|
};
|
|
/**
|
* 找回密码
|
**/
|
owner.forgetPassword = function(email, callback) {
|
callback = callback || $.noop;
|
if (!checkEmail(email)) {
|
return callback('邮箱地址不合法');
|
}
|
return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。');
|
};
|
|
/**
|
* 获取应用本地配置
|
**/
|
owner.setSettings = function(settings) {
|
settings = settings || {};
|
localStorage.setItem('$settings', JSON.stringify(settings));
|
}
|
|
/**
|
* 设置应用本地配置
|
**/
|
owner.getSettings = function() {
|
var settingsText = localStorage.getItem('$settings') || "{}";
|
return JSON.parse(settingsText);
|
}
|
/**
|
* 获取本地是否安装客户端
|
**/
|
owner.isInstalled = function(id) {
|
if (id === 'qihoo' && mui.os.plus) {
|
return true;
|
}
|
if (mui.os.android) {
|
var main = plus.android.runtimeMainActivity();
|
var packageManager = main.getPackageManager();
|
var PackageManager = plus.android.importClass(packageManager)
|
var packageName = {
|
"qq": "com.tencent.mobileqq",
|
"weixin": "com.tencent.mm",
|
"sinaweibo": "com.sina.weibo"
|
}
|
try {
|
return packageManager.getPackageInfo(packageName[id], PackageManager.GET_ACTIVITIES);
|
} catch (e) {}
|
} else {
|
switch (id) {
|
case "qq":
|
var TencentOAuth = plus.ios.import("TencentOAuth");
|
return TencentOAuth.iphoneQQInstalled();
|
case "weixin":
|
var WXApi = plus.ios.import("WXApi");
|
return WXApi.isWXAppInstalled()
|
case "sinaweibo":
|
var SinaAPI = plus.ios.import("WeiboSDK");
|
return SinaAPI.isWeiboAppInstalled()
|
default:
|
break;
|
}
|
}
|
}
|
/**
|
* 获取网络类型状态
|
**/
|
owner.getNetwork = function() {
|
var networkTypes = {};
|
networkTypes[plus.networkinfo.CONNECTION_UNKNOW] = "未知";
|
networkTypes[plus.networkinfo.CONNECTION_NONE] = "未连接网络";
|
networkTypes[plus.networkinfo.CONNECTION_ETHERNET] = "有线网络";
|
networkTypes[plus.networkinfo.CONNECTION_WIFI] = "WiFi网络";
|
networkTypes[plus.networkinfo.CONNECTION_CELL2G] = "2G网络"; //2G蜂窝网络
|
networkTypes[plus.networkinfo.CONNECTION_CELL3G] = "3G网络"; //3G蜂窝网络
|
networkTypes[plus.networkinfo.CONNECTION_CELL4G] = "4G网络"; //4G蜂窝网络
|
return networkTypes[plus.networkinfo.getCurrentType()];
|
}
|
owner.isNetWork = function() {
|
if (owner.getNetwork() == '未知' || owner.getNetwork() == '未连接网络')
|
return false;
|
return true;
|
}
|
owner.ajaxErr = function(xhr, type, tipmsg, cb) {
|
if (type == 'timeout') {
|
var btnArray = ['返回', '重试'];
|
mui.confirm('返回上页还是重新获取', tipmsg + '超时', btnArray, function(e) {
|
if (e.index == 0) {
|
mui.back();
|
}
|
if (e.index == 1) {
|
cb();
|
}
|
})
|
} else if (type == 'error') {
|
var btnArray = ['返回', '重试'];
|
mui.confirm('返回上页还是重新获取', tipmsg + '错误', btnArray, function(e) {
|
if (e.index == 0) {
|
mui.back();
|
}
|
if (e.index == 1) {
|
cb();
|
}
|
})
|
} else if (type == 'parseerror') {
|
if (xhr) {
|
if (xhr.status == 500) {
|
mui.alert('服务端内部错误', tipmsg + "失败");
|
}
|
alert(xhr.responseText);
|
}
|
} else mui.alert(tipmsg + "失败");
|
}
|
owner.appopenURL = function(url) {
|
plus.runtime.openURL(url);
|
}
|
owner.appcreateDownload = function(urll, docinfoname) {
|
//alert(urll);
|
dtask = plus.downloader.createDownload(urll, {
|
filename: '_doc/' + docinfoname
|
}, function(d, status) {
|
if (!dtask) {
|
return;
|
} //没有下载任务或已完成已清除
|
// 下载完成
|
if (status == 200) {
|
dtask = null;
|
owner.appopenfile('_doc/' + docinfoname);
|
} else {
|
mui.alert('文件下载失败', '', function() {});
|
}
|
});
|
|
dtask.addEventListener("statechanged", function(task, status) {
|
if (!dtask) {
|
return;
|
}
|
var time = new Date();
|
switch (task.state) {
|
case 1: // 开始
|
plus.nativeUI.toast("开始下载...");
|
break;
|
case 2: // 已连接到服务器
|
plus.nativeUI.toast("链接到服务器...");
|
var t = new Date();
|
if ((t - time) / 1000 > 5) {
|
dtask.abort();
|
mui.alert('长时间未链接,已取消', '', function() {
|
// plus.downloader.clear();
|
if (dtask) {
|
dtask.abort();
|
dtask = null;
|
}
|
});
|
return false;
|
}
|
break;
|
case 3: // 已接收到数据
|
plus.nativeUI.toast('文件正在下载中..');
|
break;
|
case 4: // 下载完成
|
plus.nativeUI.toast('下载完成!');
|
break;
|
}
|
});
|
dtask.start();
|
}
|
|
owner.appopenfile = function(filename) {
|
//alert(filename);
|
plus.runtime.openFile(filename, {}, function(e) {
|
console.log(e);
|
console.log(e.message);
|
plus.nativeUI.alert("无法打开此文件:" + ((e.memssage == 'undefined' || e.message == "not found 3th activity") ?
|
"没发现能打开此文件的程序" : e.message));
|
});
|
}
|
|
owner.appcreateUpload = function(serverurl, files, cb) {
|
console.log(files.length);
|
for (var i = 0; i < files.length; i++) {
|
file = files[i];
|
console.log(file);
|
var utask = plus.uploader.createUpload(serverurl, {
|
method: "POST"
|
},
|
function(t, status) {
|
//上传完成
|
// alert(status);
|
if (status == 200) {
|
// alert(t.responseText);
|
var ret = JSON.parse(t.responseText);
|
// return;
|
console.log(ret)
|
console.log(ret.code == '00000')
|
if (ret.code == '00000') {
|
plus.nativeUI.toast("上传完成");
|
cb(ret.data, i == files.length);
|
} else {
|
mui.alert(ret.msg, '', function() {
|
return;
|
})
|
}
|
} else {
|
mui.alert(ret.msg, '', function() {
|
return;
|
})
|
}
|
}
|
);
|
utask.addEventListener("statechanged", function(tas, status) {
|
if (!utask) {
|
return;
|
}
|
switch (tas.state) {
|
case 3: // 已接收到数据
|
// if(!utask) {
|
// return;
|
// }
|
// var B=(parseInt(tas.uploadedSize)/parseInt(tas.totalSize)).toFixed(2)*100;
|
// plus.nativeUI.toast("上传中..."+B+"%");
|
break;
|
}
|
});
|
utask.addFile(file, {
|
key: 0
|
});
|
utask.start();
|
}
|
}
|
owner.loadXML = function(xmlString) {
|
var xmlDoc = null;
|
//判断浏览器的类型
|
//支持IE浏览器
|
if (!window.DOMParser && window.ActiveXObject) { //window.DOMParser 判断是否是非ie浏览器
|
var xmlDomVersions = ['MSXML.2.DOMDocument.6.0', 'MSXML.2.DOMDocument.3.0', 'Microsoft.XMLDOM'];
|
for (var i = 0; i < xmlDomVersions.length; i++) {
|
try {
|
xmlDoc = new ActiveXObject(xmlDomVersions[i]);
|
xmlDoc.async = false;
|
xmlDoc.loadXML(xmlString); //loadXML方法载入xml字符串
|
break;
|
} catch (e) {}
|
}
|
}
|
//支持Mozilla浏览器
|
else if (window.DOMParser && document.implementation && document.implementation.createDocument) {
|
try {
|
/* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
|
* 要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法
|
* parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本的内容类型
|
* 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"。
|
*/
|
domParser = new DOMParser();
|
xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
|
} catch (e) {}
|
} else {
|
return null;
|
}
|
|
return xmlDoc;
|
}
|
owner.loadXMLgetattributevalue = function(tag, atr) {
|
try {
|
return tag.getAttribute(atr);
|
} catch (e) {
|
return ""
|
};
|
}
|
owner.loadXMLgetnodelue = function(tag) {
|
try {
|
return tag.firstChild.nodeValue
|
} catch (e) {
|
return ""
|
};
|
}
|
|
owner.reloadwebview = function(pageId) {
|
if (pageId) {
|
var _page = plus.webview.getWebviewById(pageId);
|
if (_page) {
|
_page.reload(true);
|
}
|
}
|
}
|
/**
|
* @param {Object} func 参数为方法调用 function(){thisfun(args1,args2)})
|
*/
|
|
//跳转登录
|
owner.jump_login = function() {
|
var loginweb = plus.webview.getWebviewById(plus.runtime.appid);
|
mui.fire(loginweb, 'show', null);
|
loginweb.show("pop-in");
|
}
|
owner.relogined = function(func) {
|
//调用方式
|
//app.relogined(function(){thisfun(args1,args2)}))
|
var masklogin = mui.createMask();
|
var state = owner.getState();
|
masklogin.show(); //显示遮罩
|
setTimeout(function() {
|
masklogin.close(); //关闭遮罩
|
}, 50000)
|
var loginInfo = {
|
server: state.lastaddress,
|
account: state.lastuser.account,
|
password: state.lastuser.password,
|
host_name: plus.device.model
|
};
|
owner.login(loginInfo, (new plus.net.XMLHttpRequest()), function(ret) {
|
if (JSON.stringify(ret) != '{}' && ret.code == '0') {
|
owner.getAppinfo((new plus.net.XMLHttpRequest()), loginInfo, ret, function(errr) {
|
masklogin.close(); //关闭遮罩
|
if (errr) {
|
plus.nativeUI.toast(errr + "可能您的网络状态不太好");
|
return;
|
}
|
if (typeof func == 'function') {
|
func();
|
}
|
});
|
}
|
}, function(err) {
|
mask.close(); //关闭遮罩
|
if (err) {
|
owner.jump_login();
|
plus.nativeUI.toast(err + "可能您的网络状态不太好");
|
return;
|
}
|
});
|
}
|
|
owner.dateUtils = {
|
UNITS: {
|
'年': 31557600000,
|
'月': 2629800000,
|
'天': 86400000,
|
'小时': 3600000,
|
'分钟': 60000,
|
'秒': 1000
|
},
|
humanize: function(milliseconds) {
|
var humanize = '';
|
mui.each(this.UNITS, function(unit, value) {
|
if (milliseconds >= value) {
|
humanize = Math.floor(milliseconds / value) + unit + '前';
|
return false;
|
}
|
return true;
|
});
|
return humanize; // || '刚刚';
|
},
|
format: function(dateStr, notime) {
|
var date = this.parse(dateStr)
|
return this.openinfo_formatter_ttime(dateStr, 'notime');
|
var diff = Date.now() - date.getTime();
|
if (diff < this.UNITS['天']) {
|
return this.humanize(diff);
|
} else
|
return this.openinfo_formatter_ttime(dateStr, notime)
|
var _format = function(number) {
|
return (number < 10 ? ('0' + number) : number);
|
};
|
return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' + _format(
|
date.getHours()) + ':' + _format(date.getMinutes());
|
},
|
parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
|
var a = str.split(/[^0-9]/);
|
return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
|
},
|
openinfo_formatter_ttime: function(cellvalue, nowhat) {
|
if(!cellvalue)
|
return "";
|
var cv_o = cellvalue.split(' ')[0];
|
var cv_t = cellvalue.split(' ')[1];
|
if (nowhat) {
|
cv_t = "";
|
}
|
var date = new Date();
|
var time = cv_o;
|
var h_m = "";
|
if (cv_t)
|
h_m = cv_t.split(':')[0] + ':' + cv_t.split(':')[1];
|
if (cv_o.split('-').length == 3)
|
if (date.getFullYear() == cv_o.split('-')[0]) {
|
time = " " + cv_o.split('-')[1] + '-' + cv_o.split('-')[2];
|
if (date.getMonth() + 1 == cv_o.split('-')[1]) {
|
if (date.getDate() == cv_o.split('-')[2])
|
time = "今天";
|
if (date.getDate() - 1 == cv_o.split('-')[2])
|
time = '昨天';
|
if (date.getDate() - 2 == cv_o.split('-')[2])
|
time = '前天';
|
}
|
} else {
|
time = cv_o.split('-')[1] + '-' + cv_o.split('-')[2];
|
if (date.getFullYear() - 1 == cv_o.split('-')[0]) {
|
//time = time + " 去年";
|
}
|
if (date.getFullYear() - 2 == cv_o.split('-')[0]) {
|
//time = time + " 前年";
|
}
|
time = cv_o.split('-')[0] + '-' + time;
|
}
|
return time + " " + h_m;
|
},
|
formatSize: function(cellvalue) {
|
var div = cellvalue;
|
if (parseInt(cellvalue)) {
|
var intsize = parseInt(cellvalue);
|
if (intsize < 1024 * 1024)
|
div = (parseInt(cellvalue) / 1024).toFixed('1') + 'k';
|
else if (intsize < 1024 * 1024 * 1024)
|
div = (parseInt(cellvalue) / 1024 / 1024).toFixed('2') + 'M';
|
else
|
div = (parseInt(cellvalue) / 1024 / 1024 / 1024).toFixed('2') + 'M';
|
}
|
return div;
|
}
|
};
|
|
owner.Pjax=function(url,data,opt={}){
|
return new Promise(function(res,rej){
|
$.ajax({
|
url: url,
|
data: data,
|
crossDomain: true, //强制使用5+跨域
|
dataType: 'json', //服务器返回json格式数据
|
type: opt.method||'post', //HTTP请求类型
|
timeout: 10000, //超时时间设置为10秒;
|
headers: {
|
"appcookie": opt.headers||state.appcookie
|
},
|
success: function(data) {
|
res(data);
|
},
|
error: function(xhr, type, errorThrown) {
|
//异常处理
|
rej(type);
|
}
|
})
|
})
|
}
|
// var Pjax=class{
|
// constructor(url) {
|
// this.url=url;
|
// this.opta={};
|
// this.dataType='json';
|
// this.type='post';
|
// }
|
// static data(da){
|
// this.opta=da||{}; console.log(this.opta);return this;
|
// }
|
// static do(){
|
// console.log(this.url);
|
// console.log(this.opta);
|
// console.log(this.dataType);
|
// console.log(this.type);
|
// }
|
// }
|
|
}(mui, window.app = {}));
|