From 06f7b4493a19d7c244af32c529b75d0d73e2d5e0 Mon Sep 17 00:00:00 2001 From: joeyoyo <549400805@qq.com> Date: Wed, 6 Nov 2019 17:26:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/OTC/html/复制 ad_manager.html | 249 --- html/OTC/html/复制 payment.html | 789 ------- html/wallet/html/复制 assets.html | 338 --- .../html/复制 extract_coin_to_token.html | 213 -- html/wallet/html/复制 wallet.html | 280 --- lib/js/app.js | 1950 ++++++++--------- lib/js/复制 app.js | 693 ------ 7 files changed, 975 insertions(+), 3537 deletions(-) delete mode 100644 html/OTC/html/复制 ad_manager.html delete mode 100644 html/OTC/html/复制 payment.html delete mode 100644 html/wallet/html/复制 assets.html delete mode 100644 html/wallet/html/复制 extract_coin_to_token.html delete mode 100644 html/wallet/html/复制 wallet.html delete mode 100644 lib/js/复制 app.js diff --git a/html/OTC/html/复制 ad_manager.html b/html/OTC/html/复制 ad_manager.html deleted file mode 100644 index b5c5396..0000000 --- a/html/OTC/html/复制 ad_manager.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - 訂單 - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
-
- -
-
- -
-
-
- -
-
- - - - - - - - - - - \ No newline at end of file diff --git a/html/OTC/html/复制 payment.html b/html/OTC/html/复制 payment.html deleted file mode 100644 index cbb845f..0000000 --- a/html/OTC/html/复制 payment.html +++ /dev/null @@ -1,789 +0,0 @@ - - - - - - 付款页面 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- {{order.role | roleF}} - 单价 - 数量 - {{count_down}} - -
-
- -
-
- - - - - - - - - -
    -
  • -

    广告备注:{{ad_remark}}

    -

    广告备注:暂无

    -
  • -
-
-
-
- 取消订单 -
-
- 我已付款 -
-
- 确认收款 -
-
- 申诉 -
-
-
- -
-
-
-
    -
  • {{item.payType | payTypeF}}
  • -
-
-
-
- -
- -
-
-
- - 确认收款 -
-
- - -
-
- -
-
-
- - -
-
-
-

确认付款

-

未付款点击“我已付款”将被冻结账户

-

请确认已向卖方付款

-
-
-
取消
-
我已付款
-
-
-
-
-

取消订单

-

如您已向卖家付款,取消订单您将会损失付款资金!

-

-
-
-
取消
-
确认取消
-
-
-
-
-

确认收款

-

请确认已收到买家付款

-

点击“确认收款”放币给买家

-
-
-
取消
-
确认收款
-
-
-
- - -
- - -
-
- - - - - - - - - - \ No newline at end of file diff --git a/html/wallet/html/复制 assets.html b/html/wallet/html/复制 assets.html deleted file mode 100644 index 296090c..0000000 --- a/html/wallet/html/复制 assets.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - 资产 - - - - - - - - - - - - -
-
- -

{{coin.walletType | filetWalletType}} — {{coin.tokenSymbol}}{{langue.capital}}

-
-
- - -
-
-
- {{coin.tokenSymbol}} -
-
-
    -
  • - {{langue.amount}} - {{coin.balance}} -
  • -
  • - {{langue.freeBalance}} - {{coin.freeBalance}} -
  • -
  • - {{langue.freezeBalance}} - {{coin.freezeBalance}} -
  • - -
-
-
- - -
-

{{langue.record}}

-
-
-
{{langue.amount}}
-
{{langue.state}}
-
{{langue.dateTime}}
-
-
-
-
-
    -
  • -
    -
    {{row.amount | filtAmount}}
    -
    {{row.status | filtStatus}}
    -
    {{row.createTime || row.timestamp | filtDate}}
    -
    -
  • -
-
-
-
-
-
{{langue.addCredit}}
-
-
-
{{langue.withdrawCoin}}
-
-
-
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/html/wallet/html/复制 extract_coin_to_token.html b/html/wallet/html/复制 extract_coin_to_token.html deleted file mode 100644 index f8c13dc..0000000 --- a/html/wallet/html/复制 extract_coin_to_token.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- -

划转

-
-
-
- -
- -
- -
- -
- - -
-
- -
- -
- -
- - - - - \ No newline at end of file diff --git a/html/wallet/html/复制 wallet.html b/html/wallet/html/复制 wallet.html deleted file mode 100644 index d43ecd7..0000000 --- a/html/wallet/html/复制 wallet.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - 钱包 - - - - - - - - - - - - - - - -
-
- -

{{langue.title}}

-
-
-
-
- -
-
-
- - {{langue.valuation}}({{valuation.baseCoin}}) - {{valuation.countCoin}} - ≈{{valuation.countAmount}} {{valuation.moneyKey}} -
- -
- -
-
    -
  • -
    -
    - {{coin.tokenSymbol}} -
    -
    - {{langue.free}}:{{coin.freeBalance}} - {{langue.freeze}}:{{coin.freezeBalance}} -
    -
  • -
-
-
- -
-
-
-
- - - - - \ No newline at end of file diff --git a/lib/js/app.js b/lib/js/app.js index 24363d8..bacc47a 100644 --- a/lib/js/app.js +++ b/lib/js/app.js @@ -1,976 +1,976 @@ -(function(owner) { - //c2c微服务访问url前缀 - owner.C2CUrl = "http://www.zhixinchains.com/otc/"; - //币币微服务 - owner.CCTUrl = "http://www.zhixinchains.com/cct/"; - //user微服务访问url前缀 - owner.walletFileUrl = "http://www.zhixinchains.com/files/"; - owner.confBaseUrl = "http://www.zhixinchains.com/sysconf/"; - owner.currencyBaseUrl = "http://www.zhixinchains.com/currency/"; - // 本地user地址 - owner.UserUrl = "http://www.zhixinchains.com/user/"; - owner.walletBaseUrl = "http://www.zhixinchains.com/user/"; - // 本地登录地址 - owner.loginBaseUrl = "http://www.zhixinchains.com/user/"; - // ########钱包模块的服务器####### - owner.btcBaseUrl = "http://www.zhixinchains.com/btc/"; - owner.ethBaseUrl = "http://www.zhixinchains.com/eth/"; - owner.eosBaseUrl = "http://www.zhixinchains.com/eos/"; - - // 本地user地址 - // 极光聊天本地地址 - owner.Host_jm = "http://www.zhixinchains.com/imjg/" - // 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); - } else { - owner.openw = null; - } - }, 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.setC2CCoinWalletInfoLocalStorage = function(values) { - values = values || []; - localStorage.setItem("ethC2CWalletInfo", JSON.stringify(values)); - } - - /** - * 获取本地存储的托管用户数据 - * @param {String} key : 数据标识 - */ - owner.getC2CCoinWalletInfoLocalStorage = function() { - var settingsText = localStorage.getItem("ethC2CWalletInfo") || "[]"; - return JSON.parse(settingsText); - } - /** - * 根据key值删除托管用户存储数据 - * @param {Object} key - */ - owner.removeC2CCoinWalletInfoLocalStorage = function() { - localStorage.removeItem("ethC2CWalletInfo"); - } - - /** - * 存储国际化标识 - * @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") || "USD"; - } - - /** - * 存储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.000000'; - var val = parseFloat(value); - if(val < 0) { - val = -val; - } - if(val < 0.0001) { - value = compute.Mul(value, 1e8, 8); - value = compute.Div(value, 1e8, 8); - value = value.toFixed(8); - } else if(val < 0.1) { - value = compute.Mul(value, 1e6, 6); - value = compute.Div(value, 1e6, 6); - value = value.toFixed(6); - } else if(val < 10) { - value = compute.Mul(value, 1e4, 4); - value = compute.Div(value, 1e4, 4); - value = value.toFixed(4); - } else { - value = compute.Mul(value, 1e2, 2); - value = compute.Div(value, 1e2, 2); - value = value.toFixed(2); - } - return value; - } - - /*** - * 格式化数据值 - 通过字符串截取方式 - * @param value 值 - * @param decimal 小数最大长度 - */ - owner.formatValueStr = function (value, decimal) { - //默认长度为8 - if (decimal == null || decimal == '') { - decimal = 8; - } - //防止NaN - if (isNaN(value)) { - return Number(0); - } - value = value.toString(); - //小数点索引 - var valueIndex = value.indexOf('.'); - //存在小数的情况 - if (valueIndex != -1) { - //小数位数据 - var valueFloat = value.substring(valueIndex + 1); - - //判断格式化数据大小,保留小数 - value = parseFloat(value); - if (value < 0.0001) { - decimal = 8; - } else if (value < 0.1) { - decimal = 6; - } else if (value < 10) { - decimal = 4; - } else { - decimal = 2; - } - - //小数位长度大于格式化长度 - if (valueFloat.length > decimal) { - //需要保留的小数位 + 1 - var floatNum = parseFloat(value).toFixed(Number(decimal) + 1); - //截取数据,保留小数并不用四舍五入 - value = floatNum.substring(0, floatNum.length - 1); - } - } - return parseFloat(value); - } - - /*** - * 简单的小函数,只做了+ 、- 、* 、/四则运算,第一、二个参数为参与运算的两个数,第三个参数为运算符(+ - * /) - * 思路是运算前用字符串处理拿掉 '.' ,运算结束后还原倍数。 - * https://www.cnblogs.com/superjsman/p/10049528.html - * @param {Object} one - * @param {Object} two - * @param {Object} str - */ - owner.floatPoint = function(one, two, str) { - //转化为字符串 - one = '' + one - two = '' + two - //切割成整数部分和小数部分 - var oneStr = one.split('.') - var twoStr = two.split('.') - - // 处理参数一或二为整数的情况 - if(!oneStr[1]) { - oneStr[1] = '' - } - if(!twoStr[1]) { - twoStr[1] = '' - } - - var length = null - //比较小数部分的长度,以确定剥离小数点后放大的倍数 - var oneFloatLength = oneStr[1].length - var TwoFloatLength = twoStr[1].length - if(oneFloatLength > TwoFloatLength) { - length = oneFloatLength - twoStr[1] = twoStr[1].padEnd(length, '0') - } else if(TwoFloatLength > oneFloatLength) { - length = TwoFloatLength - twoStr[1] = oneStr[1].padEnd(length, '0') - } else { - length = TwoFloatLength - } - // 拼接成处理后的数字 - var oneBig = oneStr[0] + oneStr[1] - var twoBig = twoStr[0] + twoStr[1] - - //根据运算符决定运算后缩小的倍数 - var result = null - switch(str) { - case '+': - ; - case '-': - result = eval(oneBig + str + twoBig) / (10 * length) - break; - case '*': - result = eval(oneBig + str + twoBig) / (10 * (length * 2)) - break; - case '/': - result = eval(oneBig + str + twoBig) - } - return result - } - - /*** - * 数组排序 - * @param data 数据源 - * @param sort 排序规则 ASC升序 | DESC倒序 - * @param field 排序字段 - * @returns {sortData} 排序后的数据 - */ - owner.sortArray = function(data, sort, field) { - //数据源是否为空 - if(data == null) { - throw new Error('数据源为空!'); - } - //排序字段是否为空 - if(field == null || field == '') { - throw new Error('排序字段为空!'); - } - //默认排序为升序 - if(sort == null || sort == '') { - sort = 'ASC' - } - //排序逻辑函数 - var sortFun = null; - //升序排序逻辑函数 - if(sort == 'ASC' || sort == 'asc') { - sortFun = function(a, b) { - return a[field] - b[field]; - } - } - //倒序排序逻辑函数 - if(sort == 'DESC' || sort == 'desc') { - sortFun = function(a, b) { - return b[field] - a[field]; - } - } - //如果逻辑函数为空 - if(sortFun == null) { - throw new Error('排序参数异常!'); - } - //返回排序数据 - return data.sort(sortFun); - } - -}(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; - } -} - -/** - * splitValue 获取当前时间 - * @param value - * @returns {array} - */ -function formatDate(date, fmt) { - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); - } - - var o = { - 'M+': date.getMonth() + 1, - 'd+': date.getDate(), - 'h+': date.getHours(), - 'm+': date.getMinutes(), - 's+': date.getSeconds() - }; - - for (var k in o) { - if (new RegExp("(".concat(k, ")")).test(fmt)) { - var str = o[k] + ''; - fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : ('00' + str).substr(str.length)); - } - } - - return fmt; -} - -var compute = { - /* - 函数,加法函数,用来得到精确的加法结果 - 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 - 参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) - 调用:Calc.Add(arg1,arg2,d) - 返回值:两数相加的结果 - */ - Add: function(arg1, arg2, d) { - arg1 = arg1.toString(), arg2 = arg2.toString(); - var arg1Arr = arg1.split("."), - arg2Arr = arg2.split("."), - d1 = arg1Arr.length == 2 ? arg1Arr[1] : "", - d2 = arg2Arr.length == 2 ? arg2Arr[1] : ""; - var maxLen = Math.max(d1.length, d2.length); - var m = Math.pow(10, maxLen); - var result = Number(((arg1 * m + arg2 * m) / m).toFixed(maxLen)); - var d = arguments[2]; - return typeof d === "number" ? Number((result).toFixed(d)) : result; - }, - /* - 函数:减法函数,用来得到精确的减法结果 - 说明:函数返回较为精确的减法结果。 - 参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数 - 调用:Calc.Sub(arg1,arg2) - 返回值:两数相减的结果 - */ - Sub: function(arg1, arg2, d) { - return this.Add(arg1, -Number(arg2), arguments[2]); - }, - /* - 函数:乘法函数,用来得到精确的乘法结果 - 说明:函数返回较为精确的乘法结果。 - 参数:arg1:第一个乘数;arg2第二个乘数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) - 调用:Calc.Mul(arg1,arg2) - 返回值:两数相乘的结果 - */ - Mul: function(arg1, arg2, d) { - var r1 = arg1.toString(), - r2 = arg2.toString(), - m, resultVal, d = arguments[2]; - m = (r1.split(".")[1] ? r1.split(".")[1].length : 0) + (r2.split(".")[1] ? r2.split(".")[1].length : 0); - resultVal = Number(r1.replace(".", "")) * Number(r2.replace(".", "")) / Math.pow(10, m); - if(typeof d !== "number") { - return Number(resultVal) - } else { - var beiTen = Math.pow(10, parseInt(d)); - resultVal = (parseInt(resultVal * beiTen) / beiTen).toFixed(parseInt(d)); - return Number(resultVal); - } - }, - /* - 函数:除法函数,用来得到精确的除法结果 - 说明:函数返回较为精确的除法结果。 - 参数:arg1:除数;arg2被除数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) - 调用:Calc.Div(arg1,arg2) - 返回值:arg1除于arg2的结果 - */ - Div: function(arg1, arg2, d) { - var r1 = arg1.toString(), - r2 = arg2.toString(), - m, resultVal, d = arguments[2]; - m = (r2.split(".")[1] ? r2.split(".")[1].length : 0) - (r1.split(".")[1] ? r1.split(".")[1].length : 0); - resultVal = Number(r1.replace(".", "")) / Number(r2.replace(".", "")) * Math.pow(10, m); - if(typeof d !== "number") { - return Number(resultVal) - } else { - var beiTen = Math.pow(10, parseInt(d)); - resultVal = (parseInt(resultVal * beiTen) / beiTen).toFixed(parseInt(d)); - return Number(resultVal); - } - } +(function(owner) { + //c2c微服务访问url前缀 + owner.C2CUrl = "http://zhixinchains.com/otc/"; + //币币微服务 + owner.CCTUrl = "http://zhixinchains.com/cct/"; + //user微服务访问url前缀 + owner.walletFileUrl = "http://file.zhixinchains.com/"; + owner.confBaseUrl = "http://zhixinchains.com/sysconf/"; + owner.currencyBaseUrl = "http://zhixinchains.com/currency/"; + // 本地user地址 + owner.UserUrl = "http://zhixinchains.com/user/"; + owner.walletBaseUrl = "http://zhixinchains.com/user/"; + // 本地登录地址 + owner.loginBaseUrl = "http://zhixinchains.com/user/"; + // ########钱包模块的服务器####### + owner.btcBaseUrl = "http://zhixinchains.com/btc/"; + owner.ethBaseUrl = "http://zhixinchains.com/eth/"; + owner.eosBaseUrl = "http://zhixinchains.com/eos/"; + + // 本地user地址 + // 极光聊天本地地址 + owner.Host_jm = "http://zhixinchains.com/imjg/" + // 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); + } else { + owner.openw = null; + } + }, 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.setC2CCoinWalletInfoLocalStorage = function(values) { + values = values || []; + localStorage.setItem("ethC2CWalletInfo", JSON.stringify(values)); + } + + /** + * 获取本地存储的托管用户数据 + * @param {String} key : 数据标识 + */ + owner.getC2CCoinWalletInfoLocalStorage = function() { + var settingsText = localStorage.getItem("ethC2CWalletInfo") || "[]"; + return JSON.parse(settingsText); + } + /** + * 根据key值删除托管用户存储数据 + * @param {Object} key + */ + owner.removeC2CCoinWalletInfoLocalStorage = function() { + localStorage.removeItem("ethC2CWalletInfo"); + } + + /** + * 存储国际化标识 + * @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") || "USD"; + } + + /** + * 存储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.000000'; + var val = parseFloat(value); + if(val < 0) { + val = -val; + } + if(val < 0.0001) { + value = compute.Mul(value, 1e8, 8); + value = compute.Div(value, 1e8, 8); + value = value.toFixed(8); + } else if(val < 0.1) { + value = compute.Mul(value, 1e6, 6); + value = compute.Div(value, 1e6, 6); + value = value.toFixed(6); + } else if(val < 10) { + value = compute.Mul(value, 1e4, 4); + value = compute.Div(value, 1e4, 4); + value = value.toFixed(4); + } else { + value = compute.Mul(value, 1e2, 2); + value = compute.Div(value, 1e2, 2); + value = value.toFixed(2); + } + return value; + } + + /*** + * 格式化数据值 - 通过字符串截取方式 + * @param value 值 + * @param decimal 小数最大长度 + */ + owner.formatValueStr = function (value, decimal) { + //默认长度为8 + if (decimal == null || decimal == '') { + decimal = 8; + } + //防止NaN + if (isNaN(value)) { + return Number(0); + } + value = value.toString(); + //小数点索引 + var valueIndex = value.indexOf('.'); + //存在小数的情况 + if (valueIndex != -1) { + //小数位数据 + var valueFloat = value.substring(valueIndex + 1); + + //判断格式化数据大小,保留小数 + value = parseFloat(value); + if (value < 0.0001) { + decimal = 8; + } else if (value < 0.1) { + decimal = 6; + } else if (value < 10) { + decimal = 4; + } else { + decimal = 2; + } + + //小数位长度大于格式化长度 + if (valueFloat.length > decimal) { + //需要保留的小数位 + 1 + var floatNum = parseFloat(value).toFixed(Number(decimal) + 1); + //截取数据,保留小数并不用四舍五入 + value = floatNum.substring(0, floatNum.length - 1); + } + } + return parseFloat(value); + } + + /*** + * 简单的小函数,只做了+ 、- 、* 、/四则运算,第一、二个参数为参与运算的两个数,第三个参数为运算符(+ - * /) + * 思路是运算前用字符串处理拿掉 '.' ,运算结束后还原倍数。 + * https://www.cnblogs.com/superjsman/p/10049528.html + * @param {Object} one + * @param {Object} two + * @param {Object} str + */ + owner.floatPoint = function(one, two, str) { + //转化为字符串 + one = '' + one + two = '' + two + //切割成整数部分和小数部分 + var oneStr = one.split('.') + var twoStr = two.split('.') + + // 处理参数一或二为整数的情况 + if(!oneStr[1]) { + oneStr[1] = '' + } + if(!twoStr[1]) { + twoStr[1] = '' + } + + var length = null + //比较小数部分的长度,以确定剥离小数点后放大的倍数 + var oneFloatLength = oneStr[1].length + var TwoFloatLength = twoStr[1].length + if(oneFloatLength > TwoFloatLength) { + length = oneFloatLength + twoStr[1] = twoStr[1].padEnd(length, '0') + } else if(TwoFloatLength > oneFloatLength) { + length = TwoFloatLength + twoStr[1] = oneStr[1].padEnd(length, '0') + } else { + length = TwoFloatLength + } + // 拼接成处理后的数字 + var oneBig = oneStr[0] + oneStr[1] + var twoBig = twoStr[0] + twoStr[1] + + //根据运算符决定运算后缩小的倍数 + var result = null + switch(str) { + case '+': + ; + case '-': + result = eval(oneBig + str + twoBig) / (10 * length) + break; + case '*': + result = eval(oneBig + str + twoBig) / (10 * (length * 2)) + break; + case '/': + result = eval(oneBig + str + twoBig) + } + return result + } + + /*** + * 数组排序 + * @param data 数据源 + * @param sort 排序规则 ASC升序 | DESC倒序 + * @param field 排序字段 + * @returns {sortData} 排序后的数据 + */ + owner.sortArray = function(data, sort, field) { + //数据源是否为空 + if(data == null) { + throw new Error('数据源为空!'); + } + //排序字段是否为空 + if(field == null || field == '') { + throw new Error('排序字段为空!'); + } + //默认排序为升序 + if(sort == null || sort == '') { + sort = 'ASC' + } + //排序逻辑函数 + var sortFun = null; + //升序排序逻辑函数 + if(sort == 'ASC' || sort == 'asc') { + sortFun = function(a, b) { + return a[field] - b[field]; + } + } + //倒序排序逻辑函数 + if(sort == 'DESC' || sort == 'desc') { + sortFun = function(a, b) { + return b[field] - a[field]; + } + } + //如果逻辑函数为空 + if(sortFun == null) { + throw new Error('排序参数异常!'); + } + //返回排序数据 + return data.sort(sortFun); + } + +}(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; + } +} + +/** + * splitValue 获取当前时间 + * @param value + * @returns {array} + */ +function formatDate(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + + var o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + }; + + for (var k in o) { + if (new RegExp("(".concat(k, ")")).test(fmt)) { + var str = o[k] + ''; + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : ('00' + str).substr(str.length)); + } + } + + return fmt; +} + +var compute = { + /* + 函数,加法函数,用来得到精确的加法结果 + 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 + 参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) + 调用:Calc.Add(arg1,arg2,d) + 返回值:两数相加的结果 + */ + Add: function(arg1, arg2, d) { + arg1 = arg1.toString(), arg2 = arg2.toString(); + var arg1Arr = arg1.split("."), + arg2Arr = arg2.split("."), + d1 = arg1Arr.length == 2 ? arg1Arr[1] : "", + d2 = arg2Arr.length == 2 ? arg2Arr[1] : ""; + var maxLen = Math.max(d1.length, d2.length); + var m = Math.pow(10, maxLen); + var result = Number(((arg1 * m + arg2 * m) / m).toFixed(maxLen)); + var d = arguments[2]; + return typeof d === "number" ? Number((result).toFixed(d)) : result; + }, + /* + 函数:减法函数,用来得到精确的减法结果 + 说明:函数返回较为精确的减法结果。 + 参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数 + 调用:Calc.Sub(arg1,arg2) + 返回值:两数相减的结果 + */ + Sub: function(arg1, arg2, d) { + return this.Add(arg1, -Number(arg2), arguments[2]); + }, + /* + 函数:乘法函数,用来得到精确的乘法结果 + 说明:函数返回较为精确的乘法结果。 + 参数:arg1:第一个乘数;arg2第二个乘数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) + 调用:Calc.Mul(arg1,arg2) + 返回值:两数相乘的结果 + */ + Mul: function(arg1, arg2, d) { + var r1 = arg1.toString(), + r2 = arg2.toString(), + m, resultVal, d = arguments[2]; + m = (r1.split(".")[1] ? r1.split(".")[1].length : 0) + (r2.split(".")[1] ? r2.split(".")[1].length : 0); + resultVal = Number(r1.replace(".", "")) * Number(r2.replace(".", "")) / Math.pow(10, m); + if(typeof d !== "number") { + return Number(resultVal) + } else { + var beiTen = Math.pow(10, parseInt(d)); + resultVal = (parseInt(resultVal * beiTen) / beiTen).toFixed(parseInt(d)); + return Number(resultVal); + } + }, + /* + 函数:除法函数,用来得到精确的除法结果 + 说明:函数返回较为精确的除法结果。 + 参数:arg1:除数;arg2被除数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) + 调用:Calc.Div(arg1,arg2) + 返回值:arg1除于arg2的结果 + */ + Div: function(arg1, arg2, d) { + var r1 = arg1.toString(), + r2 = arg2.toString(), + m, resultVal, d = arguments[2]; + m = (r2.split(".")[1] ? r2.split(".")[1].length : 0) - (r1.split(".")[1] ? r1.split(".")[1].length : 0); + resultVal = Number(r1.replace(".", "")) / Number(r2.replace(".", "")) * Math.pow(10, m); + if(typeof d !== "number") { + return Number(resultVal) + } else { + var beiTen = Math.pow(10, parseInt(d)); + resultVal = (parseInt(resultVal * beiTen) / beiTen).toFixed(parseInt(d)); + return Number(resultVal); + } + } }; \ No newline at end of file diff --git a/lib/js/复制 app.js b/lib/js/复制 app.js deleted file mode 100644 index f1bd251..0000000 --- a/lib/js/复制 app.js +++ /dev/null @@ -1,693 +0,0 @@ -(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; - } -} \ No newline at end of file