6 /* text-align: center; */
11 margin: 20px 8px 0 20px;
13 .account .btn-toggle {
17 border: 2px solid #fff;
32 text-overflow: ellipsis;
41 .balance .token-icon {
45 /* background: #fff; */
46 /* border: 1px solid #dedede; */
47 /* border-radius: 25px; */
54 .balance .token-amount {
59 vertical-align: middle;
72 /* line-height: 40px; */
73 /* display: contents; */
86 border-bottom: 1px solid #5e5e5e;
98 <section class="bg-green">
99 <div class="row account">
100 <a class="btn-menu" href="#"><i class="iconfont icon-menu" @click="openMenu"></i></a>
101 <span class="btn-toggle">
103 <option value="">BYTOM主网络</option>
104 <option value="">BYTOM测试网络</option>
107 <span class="alias">{{accountInfo.alias}}</span>
109 <div class="row balance">
110 <img src="../../assets/logo.png" class="token-icon">
112 <div class="token-amount">{{accountInfo.balance}} BTM</div>
113 <p class="account-address">{{accountInfo.address_short}}<i class="iconfont qrcode" @click="showQrcode"></i></p>
115 <a href="#" class="btn btn-primary btn-transfer" @click="transferOpen">转账</a>
119 <section class="transactions">
120 <h3 class="color-gray">交易记录</h3>
122 <li class="list-item" v-for="(transcation, index) in latestTranscations" v-if="index < 4">
124 <div class="time">{{transcation.timestamp | moment}}</div>
125 <div class="addr">{{transcation.address}}</div>
127 <div class="value">{{transcation.direct}} {{transcation.val}} BTM</div>
129 <span v-else style="width: 22px; margin: 0px auto; font-weight: bold; font-size: 22px;">...</span>
134 <div v-show="maskOpen" class="mask"></div>
135 <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
136 <transition name="left-menu"
137 enter-active-class="animated slideInLeft faster"
138 leave-active-class="animated slideOutLeft faster"
139 v-on:after-leave="afterLeave">
140 <Menu v-show="menuOpen" @closed="menuOpen=false" @account-change="selectedAccountChange"></Menu>
143 <Qrcode ref="qrcode"></Qrcode>
144 <Transfer ref="transfer" @on-success="refreshTransactions"></Transfer>
150 import Menu from "./menu";
151 import Qrcode from "./components/qrcode";
152 import Transfer from "./components/transfer";
153 import TransList from "./components/trans-list";
154 import TransDetail from "./components/trans-detail";
155 import bytom from "../script/bytom";
169 latestTranscations: []
173 openMenu: function() {
174 this.maskOpen = true;
175 this.menuOpen = true;
176 this.$refs.qrcode.close();
178 shortAddress(address) {
180 address.substr(0, 7) + "..." + address.substr(address.length - 7, 7)
183 selectedAccountChange: function(accountInfo) {
184 console.log(accountInfo);
186 this.accountInfo = accountInfo;
187 this.accountInfo.address_short = this.shortAddress(
188 this.accountInfo.address
190 this.refreshTransactions();
192 afterLeave: function() {
193 this.maskOpen = false;
195 showQrcode: function() {
196 this.$refs.qrcode.open(this.accountInfo.address);
198 transferOpen: function() {
199 this.$refs.transfer.open(this.accountInfo);
201 refreshTransactions: function() {
202 bytom.Transaction.list(
203 this.accountInfo.guid,
204 this.accountInfo.address
206 let transactions = ret.data.transactions;
207 if (transactions == null) {
208 this.latestTranscations = [];
212 transactions.forEach(transaction => {
215 let inputAddresses = [],
216 outputAddresses = [];
217 transaction.inputs.forEach(input => {
218 if (input.address == this.accountInfo.address) {
219 inputSum += input.amount;
223 inputAddresses.push(input.address);
226 transaction.outputs.forEach(output => {
227 if (output.address == this.accountInfo.address) {
228 outoutSum += output.amount;
232 outputAddresses.push(output.address);
234 console.log(112, inputAddresses, outputAddresses);
236 let val = outoutSum - inputSum;
238 transaction.direct = "+";
239 transaction.address = this.shortAddress(inputAddresses.pop());
241 val = inputSum - outoutSum;
242 transaction.direct = "-";
243 transaction.address = this.shortAddress(outputAddresses.pop());
245 transaction.val = Number(val / 100000000).toFixed(8);
246 // console.log(111, transaction, val);
248 console.log(transactions);
249 this.latestTranscations = transactions;
254 this.refreshTransactions();