Pārlūkot izejas kodu

History模块基础基础部分完成

skyfffire 3 gadi atpakaļ
vecāks
revīzija
f2320df20a

+ 6 - 6
src/App.vue

@@ -9,8 +9,8 @@
       </div>
 
       <v-tabs v-if="calcPwdMD5() === pwdMD5" v-model="tab">
-        <v-tab key="pending">Pending</v-tab>
         <v-tab key="history">History</v-tab>
+        <v-tab key="pending">Pending</v-tab>
       </v-tabs>
 
       <v-spacer></v-spacer>
@@ -57,12 +57,12 @@
         </v-container>
       </v-tabs-items>
       <v-tabs-items v-else v-model="tab">
-        <v-tab-item key="pending">
-          <Pending :chain="chain"></Pending>
-        </v-tab-item>
         <v-tab-item key="history">
           <History :chain="chain"></History>
         </v-tab-item>
+        <v-tab-item key="pending">
+          <Pending :chain="chain"></Pending>
+        </v-tab-item>
       </v-tabs-items>
     </v-main>
   </v-app>
@@ -82,7 +82,7 @@ export default {
     Pending
   },
   data: () => ({
-    tab: 'pending',
+    tab: 'history',
     chain: {
       id: '',
       networkName: ''
@@ -90,7 +90,7 @@ export default {
     selected: false,
     chainList: [],
     pwdMD5: '7f5029bbd4daae18f3ae4cd910f0f4f0',
-    pwd: ''
+    pwd: 'qwe410410'
   }),
   methods: {
     calcPwdMD5 () {

+ 17 - 16
src/components/History.vue

@@ -31,27 +31,28 @@ export default {
     table: {
       search: '',
       loading: false,
-      groupBy: 'block',
+      groupBy: 'blockNumber',
       groupDesc: true,
-      sortBy: ['block', 'index'],
+      sortBy: ['blockNumber', 'index'],
       sortDesc: [true, false],
       pageSize: 200,
       pageNum: 1,
       data: [],
       headers: [
-        { text: "Option", value: 'option', width: '7%' },
-        { text: 'Block', value: 'block' },
-        { text: 'Hash', value: 'hash', width: '7%' },
-        { text: 'From', value: 'from', width: '7%'  },
-        { text: 'To', value: 'to', width: '7%' },
-        { text: 'GasPrice', value: 'gasPrice', width: '6%' },
-        { text: 'Type', value: 'type', width: '3%' },
-        { text: 'Index', value: 'index', width: '3%' },
-        { text: 'State', value: 'state', width: '3%' },
-        { text: 'Mev', value: 'mev', width: '3%' },
-        { text: 'Pending', value: 'pending', width: '7%' },
-        { text: 'TradeInfo', value: 'tradeInfo'},
-        { text: 'memo', value: 'memo'}
+        {text: "Option", value: 'option'},
+        {text: 'Block', value: 'blockNumber'},
+        {text: 'Hash', value: 'hash', width: '10%'},
+        {text: 'From', value: 'from'},
+        {text: 'To', value: 'to'},
+        {text: 'GasPrice', value: 'gasPrice'},
+        {text: 'Type', value: 'type'},
+        {text: 'Index', value: 'index'},
+        {text: 'status', value: 'status'},
+        {text: 'isMev', value: 'isMev'},
+        {text: 'isBot', value: 'isBot'},
+        {text: 'timestamp', value: 'timestamp'},
+        {text: 'transfer', value: 'transferList'},
+        {text: 'comment', value: 'comment'}
       ]
     },
   }),
@@ -66,7 +67,7 @@ export default {
       const rst = await this.tx.findByPaginate(this.table.pageNum, this.table.pageSize)
 
       if (rst.state) {
-        this.table.data = rst.data
+        this.table.data = Tx.parseLocalRecordList(rst.data)
         this.$msgkit.success(rst.msg)
       } else {
         this.$msgkit.error(rst.msg)

+ 16 - 15
src/components/viewer/Table.vue

@@ -79,21 +79,22 @@
             [index]
           </div>
         </template>
-        <template v-slot:item.state="{ item }">
+        <template v-slot:item.status="{ item }">
           <div v-if="item.state !== undefined">
-            {{ item.state }}
+            {{ item.status }}
           </div>
           <div v-else>
-            [state]
+            [status]
           </div>
         </template>
-        <template v-slot:item.mev="{ item }">
-          <div v-if="item.mev !== undefined">
-            {{ item.mev }}
-          </div>
-          <div v-else>
-            [mev]
-          </div>
+        <template v-slot:item.isMev="{ item }">
+          {{ item.isMev }}
+        </template>
+        <template v-slot:item.isBot="{ item }">
+          {{ item.isBot }}
+        </template>
+        <template v-slot:item.maybeBot="{ item }">
+          {{ item.maybeBot }}
         </template>
         <template v-slot:item.pending="{ item }">
           <div v-if="item.pending !== undefined">
@@ -104,7 +105,7 @@
           </div>
         </template>
         <!--tradeInfo-->
-        <template v-slot:item.tradeInfo="{ item }">
+        <template v-slot:item.transferList="{ item }">
           <div v-if="page.name === 'Pending Page'">
             <div class="tradeInfoBtn" @click="showTradeInfo(item)">
               <v-chip v-for="tokenAddress in item.tokenAddressList" :key='tokenAddress'
@@ -117,12 +118,12 @@
             <TradeInfo :item="item"></TradeInfo>
           </div>
         </template>
-        <template v-slot:item.memo="{ item }">
-          <div v-if="item.memo !== undefined">
-            <span class="memo-span">{{ item.memo }}</span>
+        <template v-slot:item.comment="{ item }">
+          <div v-if="item.comment">
+            <span class="memo-span">{{ item.comment }}</span>
           </div>
           <div v-else>
-            [memo]
+            [comment]
           </div>
         </template>
       </v-data-table>

+ 1 - 1
src/components/viewer/table/TradeInfoDetails.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <v-container>
-      <div v-for="trade in item.tradeInfoList">
+      <div v-for="trade in item.transferList">
         <v-row>
           <!--token symbol-->
           <v-chip v-if="!trade.tokenSymbol"

+ 39 - 0
src/plugins/model/Tx.js

@@ -33,4 +33,43 @@ export default class Tx {
 
     return rst.data
   }
+
+  static parseLocalRecordList(remoteRecordList) {
+    let localRecordList = []
+    for (let remoteRecord of remoteRecordList) {
+      let localRecord = Tx.parseLocalRecord(remoteRecord)
+
+      if (localRecord) localRecordList.push(localRecord)
+    }
+
+    return localRecordList
+  }
+
+  static parseLocalRecord(remoteRecord) {
+    try {
+      let localRecord = {}
+
+      localRecord.hash = remoteRecord.hash
+      localRecord.blockNumber = remoteRecord.blockNumber
+      localRecord.comment= remoteRecord.comment
+      localRecord.from = remoteRecord.fromAddress
+      localRecord.to = remoteRecord.toAddress
+      localRecord.gasPrice = remoteRecord.gasPriceStr
+      localRecord.timestamp = remoteRecord.timestamp
+      localRecord.transferList = remoteRecord.transferList
+
+      // transferList的format
+      for (const transfer of localRecord.transferList) {
+        transfer.amount = parseInt(transfer.amountStr)
+      }
+      localRecord.isMev = remoteRecord.isMev === true
+      localRecord.isBot = remoteRecord.isBot === true
+      localRecord.maybeBot = remoteRecord.maybeBot === true
+
+      return localRecord
+    } catch (e) {
+      console.log(e)
+      return undefined
+    }
+  }
 }