|
|
|
|
(function(owner) {
|
|
|
|
|
//c2c微服务访问url前缀
|
|
|
|
|
owner.C2CUrl = "http://192.168.105.108:8901/";
|
|
|
|
|
//币币微服务
|
|
|
|
|
owner.CCTUrl = "http://47.74.158.47/cct/";
|
|
|
|
|
//user微服务访问url前缀
|
|
|
|
|
owner.walletFileUrl = "http://192.168.105.108/file/";
|
|
|
|
|
owner.confBaseUrl = "http://47.74.158.47/sysconf/";
|
|
|
|
|
owner.currencyBaseUrl = "http://47.74.158.47/currency/";
|
|
|
|
|
// 本地user地址
|
|
|
|
|
owner.UserUrl = "http://47.74.158.47/user/";
|
|
|
|
|
owner.walletBaseUrl = "http://47.74.158.47/user/";
|
|
|
|
|
// 本地登录地址
|
|
|
|
|
owner.loginBaseUrl = "http://47.74.158.47/user/";
|
|
|
|
|
// ########钱包模块的服务器#######
|
|
|
|
|
owner.btcBaseUrl = "http://47.74.158.47/btc/";
|
|
|
|
|
owner.ethBaseUrl = "http://47.74.158.47/eth/";
|
|
|
|
|
owner.eosBaseUrl = "http://47.74.158.47/eos/";
|
|
|
|
|
|
|
|
|
|
// 本地user地址
|
|
|
|
|
|
|
|
|
|
// owner.UserUrl = "http://192.168.105.82:10121/";
|
|
|
|
|
// // 本地登录地址
|
|
|
|
|
// owner.loginBaseUrl = "http://192.168.105.52:8101/";
|
|
|
|
|
// // ########钱包模块的服务器#######
|
|
|
|
|
// owner.btcBaseUrl = "http://192.168.105.52:8301/";
|
|
|
|
|
// owner.ethBaseUrl = "http://192.168.105.52:8201/";
|
|
|
|
|
// owner.eosBaseUrl = "http://192.168.105.52:8401/";
|
|
|
|
|
|
|
|
|
|
//自选行情
|
|
|
|
|
owner.marketChoiceKey = "$market-choice";
|
|
|
|
|
|
|
|
|
|
//默认打开页面方式
|
|
|
|
|
owner.aniShow = "pop-in";
|
|
|
|
|
|
|
|
|
|
//已经预加载的页面
|
|
|
|
|
owner.preate = {};
|
|
|
|
|
|
|
|
|
|
//预加载页面过期时间(ms)
|
|
|
|
|
owner.preateTimeout = 1000 * 60 * 5;
|
|
|
|
|
|
|
|
|
|
// //预加载倒计时列表
|
|
|
|
|
// owner.timeouts = {};
|
|
|
|
|
|
|
|
|
|
//避免快速点击打开多个页面
|
|
|
|
|
owner.openw = null;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储数据到本地
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
* @param {Object} values : 数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setLocalStorage = function(key, values) {
|
|
|
|
|
values = values || {};
|
|
|
|
|
if(typeof values == 'object') {
|
|
|
|
|
localStorage.setItem(key, JSON.stringify(values));
|
|
|
|
|
} else {
|
|
|
|
|
localStorage.setItem(key, values);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取本地存储数据
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getLocalStorage = function(key) {
|
|
|
|
|
var settingsText = localStorage.getItem(key) || "{}";
|
|
|
|
|
return JSON.parse(settingsText);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除存储数据
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeLocalStorage = function(key) {
|
|
|
|
|
localStorage.removeItem(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 不合法数据格式化
|
|
|
|
|
* @param {String} val
|
|
|
|
|
*/
|
|
|
|
|
owner.escapeString = function(val) {
|
|
|
|
|
if(val) {
|
|
|
|
|
val = val.replace(/\\/g, "\\\\");
|
|
|
|
|
val = val.replace(/\"/g, "\\\"");
|
|
|
|
|
val = val.replace(/\?/g, "?");
|
|
|
|
|
val = val.replace(/\n|\r|\t/g, function() {
|
|
|
|
|
var a = arguments[0];
|
|
|
|
|
return(a == '\n') ? '\\n' : (a == '\r') ? '\\r' :
|
|
|
|
|
(a == '\t') ? '\\t' : ""
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 不合法数据格式化
|
|
|
|
|
* @param {String} val
|
|
|
|
|
*/
|
|
|
|
|
owner.escapeValue = function(val) {
|
|
|
|
|
if(val) {
|
|
|
|
|
if($.isArray(val)) { // 数组类型
|
|
|
|
|
for(var i = 0, len = val.length; i < len; i++) {
|
|
|
|
|
var value = val[i];
|
|
|
|
|
if(typeof value == 'string') {
|
|
|
|
|
val[i] = owner.escapeString(value); // 设置新值
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if(typeof val == 'string') { // 字符类型
|
|
|
|
|
val = owner.escapeString(val); // 设置新值
|
|
|
|
|
} // 其他不处理
|
|
|
|
|
}
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* form表单序列化
|
|
|
|
|
* @param {Document} formDcument : 表单dcument对象
|
|
|
|
|
*/
|
|
|
|
|
owner.serialize = function(formDcument) {
|
|
|
|
|
var valueList = []; //保存待处理的值,结构为: name , value
|
|
|
|
|
var data = {}; //返回结果的json数组
|
|
|
|
|
|
|
|
|
|
//唯一值的
|
|
|
|
|
var queryCSS = "input[type='color'][name]" + ",input[type='date'][name]" + ",input[type='datetime'][name]" +
|
|
|
|
|
",input[type='datetime-local'][name]" + ",input[type='email'][name]" + ",input[type='hidden'][name]" +
|
|
|
|
|
",input[type='month'][name]" + ",input[type='number'][name]" + ",input[type='password'][name]" +
|
|
|
|
|
",input[type='range'][name]" + ",input[type='search'][name]" + ",input[type='tel'][name]" +
|
|
|
|
|
",input[type='text'][name]" + ",input[type='time'][name]" + ",input[type='url'][name]" +
|
|
|
|
|
",input[type='week'][name]" + ",input[type='radio'][name]:checked" + ",textarea[name]";
|
|
|
|
|
var onlyValList = formDcument.querySelectorAll(queryCSS);
|
|
|
|
|
for(var i = 0; i < onlyValList.length; i++) {
|
|
|
|
|
var dom = onlyValList[i];
|
|
|
|
|
var name = dom.getAttribute("name"); //键名
|
|
|
|
|
var value = owner.escapeString(dom.value); //值
|
|
|
|
|
data[name] = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//checkbox
|
|
|
|
|
var checkboxList = formDcument.querySelectorAll("input[type='checkbox'][name]:checked");
|
|
|
|
|
var existCheckbox = {}; //已处理过的checkbox
|
|
|
|
|
for(var i = 0; i < checkboxList.length; i++) {
|
|
|
|
|
var name = checkboxList[i].getAttribute("name");
|
|
|
|
|
//判断是否已处理
|
|
|
|
|
if(existCheckbox[name]) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
var value = new Array();
|
|
|
|
|
//获取相同的checkbox
|
|
|
|
|
var doms = formDcument.querySelectorAll("input[type='checkbox'][name='" + name + "']:checked");
|
|
|
|
|
for(var j = 0; j < doms.length; j++) {
|
|
|
|
|
var val = owner.escapeString(doms[j].value);
|
|
|
|
|
value.push(val);
|
|
|
|
|
}
|
|
|
|
|
data[name] = value;
|
|
|
|
|
existCheckbox[name] = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//select
|
|
|
|
|
var selectList = formDcument.querySelectorAll("select[name]");
|
|
|
|
|
for(var i = 0; i < selectList.length; i++) {
|
|
|
|
|
var dom = selectList[i];
|
|
|
|
|
var name = dom.getAttribute("name"); //键名
|
|
|
|
|
//多选select
|
|
|
|
|
if(dom.getAttribute("multiple")) {
|
|
|
|
|
var value = new Array();
|
|
|
|
|
for(j = 0; j < dom.length; j++) {
|
|
|
|
|
if(dom.options[j].selected) {
|
|
|
|
|
var val = owner.escapeString(dom[j].value);
|
|
|
|
|
value.push(val);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
data[name] = value;
|
|
|
|
|
} else {
|
|
|
|
|
var index = dom.selectedIndex;
|
|
|
|
|
var value = owner.escapeString(dom.options[index].value);
|
|
|
|
|
data[name] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param {Object} formDcument : form表单
|
|
|
|
|
* @param {Object} data : JS对象
|
|
|
|
|
*/
|
|
|
|
|
owner.formFilling = function(formDcument, data) {
|
|
|
|
|
//输入值的
|
|
|
|
|
var queryCSS = "input[type='color'][fillName]" + ",input[type='date'][fillName]" + ",input[type='datetime'][fillName]" +
|
|
|
|
|
",input[type='datetime-local'][fillName]" + ",input[type='email'][fillName]" + ",input[type='hidden'][fillName]" +
|
|
|
|
|
",input[type='month'][fillName]" + ",input[type='number'][fillName]" + ",input[type='password'][fillName]" +
|
|
|
|
|
",input[type='range'][fillName]" + ",input[type='search'][fillName]" + ",input[type='tel'][fillName]" +
|
|
|
|
|
",input[type='text'][fillName]" + ",input[type='time'][fillName]" + ",input[type='url'][fillName]" +
|
|
|
|
|
",input[type='week'][fillName]" + ",textarea[fillName]";
|
|
|
|
|
var fillOne = formDcument.querySelectorAll(queryCSS);
|
|
|
|
|
for(var i = 0; i < fillOne.length; i++) {
|
|
|
|
|
var dom = fillOne[i];
|
|
|
|
|
var fillName = dom.getAttribute("fillName"); //键名
|
|
|
|
|
var value = data[fillName]; //值
|
|
|
|
|
if(value) { //若有此值则填充数据
|
|
|
|
|
dom.value = data[fillName];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//radio,checkbox
|
|
|
|
|
var fillTwo = formDcument.querySelectorAll("input[type='radio'][fillName],input[type='checkbox'][fillName]");
|
|
|
|
|
var existFillTwo = {}; //已处理过的
|
|
|
|
|
for(var i = 0; i < fillTwo.length; i++) {
|
|
|
|
|
var dom = fillTwo[i];
|
|
|
|
|
var fillName = dom.getAttribute("fillName"); //键名
|
|
|
|
|
//判断是否已处理
|
|
|
|
|
if(existFillTwo[fillName]) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
var value = data[fillName]; //值
|
|
|
|
|
if(value) { //若有此值
|
|
|
|
|
//判断是否是数组
|
|
|
|
|
if(typeof value === 'object' && Array == value.constructor) {
|
|
|
|
|
for(var j = 0; j < value.length; j++) {
|
|
|
|
|
var val = value[j];
|
|
|
|
|
//获取相同的radio,checkbox
|
|
|
|
|
var domsCSS = "input[type='radio'][fillName='" + fillName + "'][value='" + val + "']" +
|
|
|
|
|
",input[type='checkbox'][fillName='" + fillName + "'][value='" + val + "']"
|
|
|
|
|
var doms = formDcument.querySelectorAll(domsCSS);
|
|
|
|
|
for(var k = 0; k < doms.length; k++) { //选中
|
|
|
|
|
doms[j].checked = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//获取相同的radio,checkbox
|
|
|
|
|
var domsCSS = "input[type='radio'][fillName='" + fillName + "'][value='" + value + "']" +
|
|
|
|
|
",input[type='checkbox'][fillName='" + fillName + "'][value='" + value + "']"
|
|
|
|
|
var doms = formDcument.querySelectorAll(domsCSS);
|
|
|
|
|
for(var j = 0; j < doms.length; j++) { //选中
|
|
|
|
|
doms[j].checked = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
existFillTwo[fillName] = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//select
|
|
|
|
|
var selectList = formDcument.querySelectorAll("select[fillName]");
|
|
|
|
|
for(var i = 0; i < selectList.length; i++) {
|
|
|
|
|
var dom = selectList[i];
|
|
|
|
|
var fillName = dom.getAttribute("fillName"); //键名
|
|
|
|
|
var value = data[fillName]; //值
|
|
|
|
|
if(value) { //若有此值
|
|
|
|
|
//判断是否是数组
|
|
|
|
|
if(typeof value === 'object' && Array == value.constructor) {
|
|
|
|
|
for(j = 0; j < value.length; j++) {
|
|
|
|
|
for(k = 0; k < dom.length; k++) {
|
|
|
|
|
var opt = dom.options[k];
|
|
|
|
|
if(opt.value == value[j]) {
|
|
|
|
|
opt.selected = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
for(j = 0; j < dom.length; j++) {
|
|
|
|
|
var opt = dom.options[j];
|
|
|
|
|
if(opt.value == value) {
|
|
|
|
|
opt.selected = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param {String} url : 页面地址
|
|
|
|
|
* @param {String} id :窗口标识
|
|
|
|
|
* @param {Object} styles : 窗口样式
|
|
|
|
|
* @param {Object} extras : 传递参数
|
|
|
|
|
* @param {String} aniShow : 显示方式
|
|
|
|
|
* @param {String} isHide : 是否显示
|
|
|
|
|
*/
|
|
|
|
|
owner.openWin = function(url, id, styles, extras, aniShow, isHide) {
|
|
|
|
|
//避免快速点击打开多个页面
|
|
|
|
|
if(owner.openw) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
owner.openw = id;
|
|
|
|
|
//默认是右进显示
|
|
|
|
|
aniShow || (aniShow = owner.aniShow);
|
|
|
|
|
styles || (styles = {});
|
|
|
|
|
extras || (extras = {});
|
|
|
|
|
var page = plus.webview.create(url, id, styles, extras);
|
|
|
|
|
page.addEventListener("loaded", function() {
|
|
|
|
|
if(!isHide) {
|
|
|
|
|
var data2 = new Date();
|
|
|
|
|
page.show(aniShow);
|
|
|
|
|
}
|
|
|
|
|
}, false);
|
|
|
|
|
page.addEventListener("hide", function() {
|
|
|
|
|
owner.openw = null;
|
|
|
|
|
}, false);
|
|
|
|
|
page.addEventListener("close", function() {
|
|
|
|
|
owner.openw = null;
|
|
|
|
|
}, false);
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param {String} url : 页面地址
|
|
|
|
|
* @param {String} id :窗口标识
|
|
|
|
|
* @param {Object} styles : 窗口样式
|
|
|
|
|
* @param {Object} extras : 传递参数
|
|
|
|
|
* @param {String} aniShow : 显示方式
|
|
|
|
|
* @param {String} isHide : 是否显示
|
|
|
|
|
*/
|
|
|
|
|
owner.preloadWin = function(url, id, styles, extras, aniShow, isHide) {
|
|
|
|
|
//避免快速点击打开多个页面
|
|
|
|
|
if(owner.openw) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
owner.openw = id;
|
|
|
|
|
//默认是右进显示
|
|
|
|
|
aniShow || (aniShow = owner.aniShow);
|
|
|
|
|
styles || (styles = {});
|
|
|
|
|
extras || (extras = {});
|
|
|
|
|
var page = owner.preate[id];
|
|
|
|
|
//若此页面已在预加载列表中
|
|
|
|
|
if(page) {
|
|
|
|
|
page.show(aniShow);
|
|
|
|
|
// delete owner.timeouts[id];
|
|
|
|
|
// clearTimeout(owner.timeouts[id]);
|
|
|
|
|
return page;
|
|
|
|
|
} else {
|
|
|
|
|
styles.scrollIndicator = 'none'; //隐藏滚动条
|
|
|
|
|
styles.scalable = false; //窗口不可缩放
|
|
|
|
|
styles.popGesture = 'hide'; //右划隐藏
|
|
|
|
|
//预加载页面
|
|
|
|
|
page = mui.preload({
|
|
|
|
|
url: url,
|
|
|
|
|
id: id,
|
|
|
|
|
styles: styles,
|
|
|
|
|
extras: extras
|
|
|
|
|
});
|
|
|
|
|
page.addEventListener("loaded", function() {
|
|
|
|
|
if(!isHide) {
|
|
|
|
|
page.show(aniShow);
|
|
|
|
|
}
|
|
|
|
|
}, false);
|
|
|
|
|
owner.preate[id] = page;
|
|
|
|
|
//页面隐藏监听,
|
|
|
|
|
page.addEventListener("hide", function() {
|
|
|
|
|
owner.openw = null;
|
|
|
|
|
//默认页面隐藏过了一定时间后没有再次打开则关闭
|
|
|
|
|
// var timeout = setTimeout(function() {
|
|
|
|
|
// page.close();
|
|
|
|
|
// }, owner.preateTimeout);
|
|
|
|
|
// owner.timeouts[id] = timeout;
|
|
|
|
|
}, false);
|
|
|
|
|
//页面关闭监听
|
|
|
|
|
page.addEventListener("close", function() {
|
|
|
|
|
owner.openw == id ? owner.openw = null : "";
|
|
|
|
|
delete owner.preate[id];
|
|
|
|
|
}, false);
|
|
|
|
|
}
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
owner.formatDate = function(time) {
|
|
|
|
|
var date = new Date(time);
|
|
|
|
|
var year = date.getFullYear();
|
|
|
|
|
var month = date.getMonth() + 1;
|
|
|
|
|
var day = date.getDate();
|
|
|
|
|
var hours = date.getHours();
|
|
|
|
|
var minutes = date.getMinutes();
|
|
|
|
|
var seconds = date.getSeconds();
|
|
|
|
|
return year + "-" + (month < 10 ? ('0' + month) : month) + "-" +
|
|
|
|
|
(day < 10 ? ('0' + day) : day) + " " +
|
|
|
|
|
(hours < 10 ? ('0' + hours) : hours) + ":" +
|
|
|
|
|
(minutes < 10 ? ('0' + minutes) : minutes) + ":" +
|
|
|
|
|
(seconds < 10 ? ('0' + seconds) : seconds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化eth显示
|
|
|
|
|
* @param {Object} eth
|
|
|
|
|
*/
|
|
|
|
|
owner.formatEth = function(eth) {
|
|
|
|
|
if(eth == '0') {
|
|
|
|
|
return eth;
|
|
|
|
|
}
|
|
|
|
|
var index = eth.indexOf('.');
|
|
|
|
|
if(index != -1) {
|
|
|
|
|
var point = eth.substring(index + 1);
|
|
|
|
|
if(point.length > 6) {
|
|
|
|
|
eth = eth.substring(0, index + 7);
|
|
|
|
|
eth = parseFloat(eth) + '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return eth;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化cny显示
|
|
|
|
|
* @param {Object} cny
|
|
|
|
|
*/
|
|
|
|
|
owner.formatCny = function(cny) {
|
|
|
|
|
if(cny == 0) {
|
|
|
|
|
return cny;
|
|
|
|
|
}
|
|
|
|
|
cny += "";
|
|
|
|
|
var index = cny.indexOf('.');
|
|
|
|
|
if(index != -1) {
|
|
|
|
|
var point = cny.substring(index + 1);
|
|
|
|
|
if(cny.length > 2) {
|
|
|
|
|
cny = cny.substring(0, index + 3);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
cny += '.00';
|
|
|
|
|
}
|
|
|
|
|
return cny;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储用户数据到本地
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setUserLocalStorage = function(values) {
|
|
|
|
|
values = values || {};
|
|
|
|
|
localStorage.setItem("userInfo", JSON.stringify(values));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取本地存储的用户数据
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getUserLocalStorage = function() {
|
|
|
|
|
var settingsText = localStorage.getItem("userInfo") || "{}";
|
|
|
|
|
return JSON.parse(settingsText);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除存储数据
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeUserLocalStorage = function(key) {
|
|
|
|
|
localStorage.removeItem("userInfo");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储Token
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setTokenStorage = function(values) {
|
|
|
|
|
values = values || '';
|
|
|
|
|
localStorage.setItem("user_token", values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取Token
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getTokenStorage = function() {
|
|
|
|
|
return localStorage.getItem("user_token");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除Token
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeTokenStorage = function(key) {
|
|
|
|
|
localStorage.removeItem("user_token");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储托管用户资金密码是否设置的标识
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setIsWalletPassLocalStorage = function(values) {
|
|
|
|
|
values = values || false;
|
|
|
|
|
localStorage.setItem("isWalletPass", values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取托管用户资金密码是否设置的标识
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getIsWalletPassLocalStorage = function() {
|
|
|
|
|
var isStatus = (localStorage.getItem("isWalletPass") == null || localStorage.getItem("isWalletPass") == 'false');
|
|
|
|
|
return isStatus ? false : true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除托用户资金密码是否设置的标识
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeIsWalletPassLocalStorage = function() {
|
|
|
|
|
localStorage.removeItem("isWalletPass");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储托管用户数据到本地
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setCoinWalletInfoLocalStorage = function(values) {
|
|
|
|
|
values = values || [];
|
|
|
|
|
localStorage.setItem("ethWalletInfo", JSON.stringify(values));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取本地存储的托管用户数据
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getCoinWalletInfoLocalStorage = function() {
|
|
|
|
|
var settingsText = localStorage.getItem("ethWalletInfo") || "[]";
|
|
|
|
|
return JSON.parse(settingsText);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除托管用户存储数据
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeCoinWalletInfoLocalStorage = function() {
|
|
|
|
|
localStorage.removeItem("ethWalletInfo");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储托管用户数据到本地
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setEthWalletTokenListLocalStorage = function(values) {
|
|
|
|
|
values = values || [];
|
|
|
|
|
localStorage.setItem("ethWalletTokenList", JSON.stringify(values));
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 获取本地存储的托管用户数据
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getEthWalletTokenListLocalStorage = function() {
|
|
|
|
|
var settingsText = localStorage.getItem("ethWalletTokenList") || "[]";
|
|
|
|
|
return JSON.parse(settingsText);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除托管用户存储数据
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeEthWalletTokenListLocalStorage = function() {
|
|
|
|
|
localStorage.removeItem("ethWalletTokenList");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储用户数据到本地
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setC2cUserLocalStorage = function(values) {
|
|
|
|
|
values = values || {};
|
|
|
|
|
localStorage.setItem("c2cUserInfo", JSON.stringify(values));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取本地存储的用户数据
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getC2cUserLocalStorage = function() {
|
|
|
|
|
var settingsText = localStorage.getItem("c2cUserInfo") || "{}";
|
|
|
|
|
return JSON.parse(settingsText);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据key值删除存储数据
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeC2cUserLocalStorage = function(key) {
|
|
|
|
|
localStorage.removeItem("c2cUserInfo");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储国际化标识
|
|
|
|
|
* @param {Object} values : 用户数据
|
|
|
|
|
*/
|
|
|
|
|
owner.setLanguageLocalStorage = function(values) {
|
|
|
|
|
values = values || "zh_CN";
|
|
|
|
|
localStorage.setItem("language", values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取国际化标识
|
|
|
|
|
* @param {String} key : 数据标识
|
|
|
|
|
*/
|
|
|
|
|
owner.getLanguageLocalStorage = function() {
|
|
|
|
|
var settingsText = localStorage.getItem("language") || "zh_CN";
|
|
|
|
|
return settingsText;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除国际化标识缓存
|
|
|
|
|
* @param {Object} key
|
|
|
|
|
*/
|
|
|
|
|
owner.removeLanguageLocalStorage = function(key) {
|
|
|
|
|
localStorage.removeItem("language");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储app汇率
|
|
|
|
|
* @param {Object} values : app最新版本
|
|
|
|
|
*/
|
|
|
|
|
owner.setExchangeRateLocalStorage = function(values) {
|
|
|
|
|
values = values || "CNY";
|
|
|
|
|
localStorage.setItem("$exchangeRate", values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* app汇率
|
|
|
|
|
*/
|
|
|
|
|
owner.getExchangeRateLocalStorage = function() {
|
|
|
|
|
return localStorage.getItem("$exchangeRate") || "CNY";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 存储app最新版本
|
|
|
|
|
* @param {Object} values : app最新版本
|
|
|
|
|
*/
|
|
|
|
|
owner.setVersionLocalStorage = function(values) {
|
|
|
|
|
values = values || "";
|
|
|
|
|
localStorage.setItem("$version", values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* app最新版本
|
|
|
|
|
*/
|
|
|
|
|
owner.getVersionLocalStorage = function() {
|
|
|
|
|
return localStorage.getItem("$version") || "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* mui.toast重写
|
|
|
|
|
*/
|
|
|
|
|
owner.toast = function(msg) {
|
|
|
|
|
plus.nativeUI.toast(msg, {
|
|
|
|
|
verticalAlign: 'center'
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化数据值
|
|
|
|
|
* @param {Object} value
|
|
|
|
|
*/
|
|
|
|
|
owner.formatValue = function(value) {
|
|
|
|
|
if(value == 0) return '0.00';
|
|
|
|
|
var val = parseFloat(value);
|
|
|
|
|
if(val < 0) {
|
|
|
|
|
val = -val;
|
|
|
|
|
}
|
|
|
|
|
if(val < 0.1) {
|
|
|
|
|
value = (parseInt(value * 1e6) / 1e6).toFixed(6);
|
|
|
|
|
} else if(val < 10) {
|
|
|
|
|
value = (parseInt(value * 1e4) / 1e4).toFixed(4);
|
|
|
|
|
} else if(val >= 10) {
|
|
|
|
|
value = (parseInt(value * 1e2) / 1e2).toFixed(2);
|
|
|
|
|
} else {
|
|
|
|
|
value = (parseInt(value * 1e8) / 1e8).toFixed(8);
|
|
|
|
|
}
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}(window.app = {}));
|
|
|
|
|
|
|
|
|
|
window.addEventListener("resize", function() {
|
|
|
|
|
if(document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "TEXTAREA") {
|
|
|
|
|
document.activeElement.scrollIntoViewIfNeeded();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method js控制input框只能输入数字和一位小数点和小数点后面n位小数
|
|
|
|
|
*
|
|
|
|
|
* @param {Object} obj 文本框对象
|
|
|
|
|
* @param {Object} _decimals 小数点位数
|
|
|
|
|
*/
|
|
|
|
|
function formatNumber(obj, _decimals) {
|
|
|
|
|
obj.value = obj.value.replace(/[^\d\.]/g, ""); //清除“数字”和“.”以外的字符
|
|
|
|
|
if(/\d+\.\d*\./.test(obj.value)) {
|
|
|
|
|
var secondPonitIndex = obj.value.indexOf(".", obj.value.indexOf(".") + 1);
|
|
|
|
|
obj.value = obj.value.substring(0, secondPonitIndex); //只保留第一个. 清除多余的
|
|
|
|
|
}
|
|
|
|
|
//obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
|
|
|
|
|
var reg = new RegExp("^(\\d+)\\.(\\d{" + _decimals + "}).*$");
|
|
|
|
|
obj.value = obj.value.replace(reg, '$1.$2'); //只能输入n个小数
|
|
|
|
|
if(obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
|
|
|
|
obj.value = parseFloat(obj.value);
|
|
|
|
|
}
|
|
|
|
|
if(obj.value.indexOf(".") == 0) { //如果输入类似.123 变为0.123
|
|
|
|
|
obj.value = "0" + obj.value;
|
|
|
|
|
}
|
|
|
|
|
}
|