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.
 
 
 
 

311 lines
10 KiB

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>钱包</title>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
<link href="../../../lib/css/mui.min.css" rel="stylesheet" />
<!--引入公共样式-->
<link href="../../../lib/css/basic.css" rel="stylesheet" />
<link href="../../../lib/css/swiper.min.css" rel="stylesheet" />
<link href="../css/wallet.css" rel="stylesheet" />
<script type="text/javascript" src="../../../lib/js/vue.min.js"></script>
<script src="../../../lib/js/rem-layout.js"></script>
<script type="text/javascript" src="../../../lib/js/mui.min.js"></script>
<script type="text/javascript" src="../../../lib/js/app.js"></script>
<script src="../../../lib/js/require2.1.11.js"></script>
<script type="text/javascript" src="../js/base.config.js"></script>
</head>
<style>
[v-cloak] {
display: none;
}
</style>
<body>
<div id="js-data-info" v-cloak>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">{{langue.title}}</h1>
</header>
<div class="mui-content">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(row,index) in wallets" :id="'item' + index">
<div class="top-bg">
<div class="valuation">
<div class="account">{{row | filetWalletType}}</div>
<span class="valuation-txt">{{langue.valuation}}({{valuation[row].baseCoin}})</span>
<span class="valuation-price">{{valuation[row].countCoin}}</span>
<span class="valuation-rate">≈{{valuation[row].countAmount}} {{valuation[row].moneyKey}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="coin">
<ul class="coin-ul">
<!--币币账户-->
<li class="coin-item-list" v-for="(coin,index) in coins[wallets[0]]" v-if="coinStatus && coin.tokenSymbol != 'PC'" :data-index="index" :data-type="wallets[0]">
<div class="coin-kind" >
<div class="coin-kind-img"><img :src="coin.src" /></div>
<span class="coin-kind-txt">{{coin.tokenSymbol}}</span>
</div>
<div class="coin-situation">
<span class="coin-remain">{{langue.free}}:{{coin.freeBalance}}</span>
<span class="coin-reeze">{{langue.freeze}}:{{coin.freezeBalance}}</span>
</div>
</li>
<!--法币账户-->
<li class="coin-item-list" v-for="(coin,index) in coins[wallets[1]]" v-if="!coinStatus && coin.tokenSymbol != 'PC'" :data-index="index" :data-type="wallets[1]">
<div class="coin-kind">
<div class="coin-kind-img"><img :src="coin.src" /></div>
<span class="coin-kind-txt">{{coin.tokenSymbol}}</span>
</div>
<div class="coin-situation">
<span class="coin-remain">{{langue.free}}:{{coin.freeBalance}}</span>
<span class="coin-reeze">{{langue.freeze}}:{{coin.freezeBalance}}</span>
</div>
</li>
</ul>
</div>
</div>
</div>
</body>
<script type="text/javascript">
define('langues', {
zh_CN: {
title: "钱包",
valuation: "估值",
addCredit: "充值",
withdrawCoin: "提现",
free: "可用",
freeze: "冻结",
walletTypeC2C: "法币交易",
walletTypeCCT: "币币交易",
coinWallet: "币币钱包",
currencyWallet: "法币钱包"
},
zh_HK: {
title: "錢包",
valuation: "估值",
addCredit: "充值",
withdrawCoin: "提現",
free: "可用",
freeze: "凍結",
coinWallet: "幣幣錢包",
currencyWallet: "法幣錢包",
},
en_US: {
title: "Wallet",
valuation: "Valuation",
addCredit: "Recharge",
withdrawCoin: "Withdraw",
free: "Free",
freeze: "Freeze",
coinWallet: "CCT",
currencyWallet: "OTC"
}
})
</script>
<script type="text/javascript">
mui.init({
swipeBack: false
});
var dataInfo = new Vue({
el: "#js-data-info",
data: {
langue: {},
wallets: ["CCT", "C2C"],
currentWallets: "CCT",
coinStatus: true, //切换账户的状态
coins: {
CCT: app.getCoinWalletInfoLocalStorage(),
C2C: app.getC2CCoinWalletInfoLocalStorage()
},
valuation: {
CCT: {
countCoin: "0.00000000", // 估值
countAmount: "0.00", //估值多少币种
moneyKey: app.getExchangeRateLocalStorage(),
baseCoin: "USDT"
},
C2C: {
countCoin: "0.00000000", // 估值
countAmount: "0.00", //估值多少币种
moneyKey: app.getExchangeRateLocalStorage(),
baseCoin: "USDT"
}
},
marketData: {},
marketList: {}
},
filters: {
filetWalletType:function(val) {
if(Object.is("CCT", val)) {
return dataInfo.langue.coinWallet;
}
if(Object.is("C2C", val)) {
return dataInfo.langue.currencyWallet;
}
}
}
})
require(['walletApi', 'langues', 'Swiper', 'muiPullToRefresh', 'muiPullToRefreshMaterial'], function(walletApi, langues, Swiper) {
dataInfo.langue = langues[app.getLanguageLocalStorage()];
dataInfo.$nextTick(function() {
mui.init();
var swiper = new Swiper('.swiper-container', {
grabCursor: true,
centeredSlides: true,
slidesPerView: 'auto',
on: {
transitionEnd: function() {
//根据切换卡片的activeIndex索引来显示不同账户的币种
if(this.activeIndex === 0) {
dataInfo.coinStatus = true;
} else {
dataInfo.coinStatus = false;
}
}
},
});
var deceleration = mui.os.ios ? 0.003 : 0.0009; // 阻尼系数
mui('.mui-scroll-wrapper').scroll({
bounce: false,
indicators: true, //是否显示滚动条
deceleration: deceleration
});
mui('.mui-content').pullToRefresh({
down: {
callback: function() {
var self = this;
walletApi.voidServieWalletPass();
// 发送用户信息查询请求
saveWallet();
setTimeout(function() {
// 关闭下拉加载圈
self.endPullDownToRefresh();
}, 3000);
}
}
});
//代币资产页面监听
mui(".coin-ul").on("tap", "li", function() {
var index = this.getAttribute('data-index');
var type = this.getAttribute('data-type');
app.openWin('assets.html', 'assets.html', {}, {
coin: dataInfo.coins[type][index],
type: type
});
});
saveWallet();
function saveWallet() {
walletApi.getCCTWallets(function(data) {
dataInfo.coins.CCT = data;
console.log(JSON.stringify(dataInfo.coins.CCT));
coinsEvenPush(data);
valuationFun(dataInfo.marketList, walletApi.walletType.CCT);
})
walletApi.getC2CWallets(function(data) {
dataInfo.coins.C2C = data;
valuationFun(dataInfo.marketList, walletApi.walletType.C2C);
})
}
walletApi.voidServieWalletPass();
// 国际化统一方法
window.addEventListener('switchLangueData', function(e) {
dataInfo.langue = langues[e.detail];
});
/**
* 监听获取行情列表
*/
window.addEventListener("marketList", function(event) {
var marketList = event.detail;
valuationFun(marketList, walletApi.walletType.CCT);
valuationFun(marketList, walletApi.walletType.C2C);
});
// 钱包数据更新的监听
window.addEventListener('walletSaveEvent', function(e) {
walletApi.voidServieWalletPass();
walletApi.getCCTWallets(function(data) {
dataInfo.coins.CCT = data;
coinsEvenPush(data);
valuationFun(dataInfo.marketList, walletApi.walletType.CCT);
})
walletApi.getC2CWallets(function(data) {
dataInfo.coins.C2C = data;
otcCoinsEvenPush(data);
valuationFun(dataInfo.marketList, walletApi.walletType.C2C);
})
});
function valuationFun(data, type) {
if(data == null) return;
var coinKey = dataInfo.valuation[type].baseCoin; // 当前兑换币种
var money = app.getExchangeRateLocalStorage();
var moneyKey = app.getExchangeRateLocalStorage().toLowerCase() + "Amount"; // 获取系统币种Key值;
var marketData = data[coinKey]; // 获取行情数据
if(marketData == null) return;
var coins = dataInfo.coins[type];
var countCoin = 0;
var countAmount = 0;
var moneyExchange = 0; // 汇率
var isMoneyV = true;
for(var i = 0; i < coins.length; i++) {
var coinName = coins[i].tokenSymbol;
if(coinName in marketData) {
if(isMoneyV) {
marketData[coinKey] = {};
marketData[coinKey].basecoin = marketData[coinName].basecoin;
marketData[coinKey].marketObj = JSON.parse(JSON.stringify(marketData[coinName].marketObj));
marketData[coinKey].marketObj.amount = 1;
moneyExchange = parseFloat(marketData[coinName].marketObj[moneyKey]);
isMoneyV = false;
}
countCoin += parseFloat(coins[i].balance) * parseFloat(marketData[coinName].marketObj.amount);
} else if(coinKey == coinName) {
countCoin += parseFloat(coins[i].balance);
}
}
countAmount = app.formatValue(parseFloat(countCoin) * moneyExchange);
dataInfo.valuation[type].countAmount = countAmount;
dataInfo.valuation[type].countCoin = app.formatValue(countCoin);
dataInfo.valuation[type].moneyKey = app.getExchangeRateLocalStorage();
dataInfo.marketData = marketData;
dataInfo.marketList = data;
}
/**
* 币币币种信息推送
* @param {Array} coins
*/
function coinsEvenPush(coins) {
if(coins == null || coins.length == 0) return;
var coinMap = {};
for(var i = 0; i < coins.length; i++) {
coinMap[coins[i].tokenSymbol] = coins[i];
}
mui.fire(plus.webview.getWebviewById("html/cct/html/cct_index.html"), "saveCoinsEven", coinMap);
}
/**
* 法币币种信息推送
* @param {Array} coins
*/
function otcCoinsEvenPush(coins) {
if(coins == null || coins.length == 0) return;
var coinMap = {};
for(var i = 0; i < coins.length; i++) {
coinMap[coins[i].tokenSymbol] = coins[i];
}
mui.fire(plus.webview.getWebviewById("merchant.html"), "saveCoinsEven", coinMap);
}
})
})
</script>
</html>