You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

693 lines
19 KiB

(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;
}
}