Pending.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <v-card elevation="1">
  3. <!-- 顶部组件 -->
  4. <Top :query='query' :page='page' :table='table'></Top>
  5. <!-- 中间表格组件 -->
  6. <Table :query='query' :page='page' :table='table' :tx="tx" :explorer="chain.explorer" ref="table"></Table>
  7. </v-card>
  8. </template>
  9. <script>
  10. import Top from '@/components/viewer/pending/Top'
  11. import Table from '@/components/viewer/pending/Table'
  12. import TxModel from '@/plugins/model/TxModel'
  13. export default {
  14. name: 'Pending',
  15. components: {Top, Table},
  16. props: ['chain'],
  17. data: () => ({
  18. tx: undefined,
  19. query: {
  20. tx: {
  21. block: '',
  22. hash: '',
  23. from: '',
  24. to: ''
  25. },
  26. transfer: {
  27. from: '',
  28. to: '',
  29. token: ''
  30. },
  31. autoFlushTime: 0
  32. },
  33. page: {
  34. name: 'Pending Page'
  35. },
  36. table: {
  37. search: '',
  38. loading: false,
  39. groupBy: 'blockNumber',
  40. groupDesc: true,
  41. sortBy: ['blockNumber', 'gasPrice', 'timestamp'],
  42. sortDesc: [true, true, false],
  43. pageSize: process.env.NODE_ENV === 'development' ? 20 : 200,
  44. pageNum: 1,
  45. pageLength:99,
  46. data: [],
  47. headers: [
  48. {text: "Option", value: 'option'},
  49. {text: 'Block', value: 'block'},
  50. {text: 'Hash', value: 'hash', width: '10%'},
  51. {text: 'From', value: 'from'},
  52. {text: 'To', value: 'to'},
  53. {text: 'GasPrice', value: 'gasPrice'},
  54. {text: 'Type', value: 'type'},
  55. {text: 'Index', value: 'index'},
  56. {text: 'maybeBot', value: 'maybeBot'},
  57. {text: 'ping', value: 'ping'},
  58. {text: 'timestamp', value: 'timestamp'},
  59. {text: 'transfer', value: 'transferList'},
  60. {text: 'comment', value: 'comment'}
  61. ]
  62. }
  63. }),
  64. methods: {
  65. // 获取数据
  66. async generateTableData() {
  67. this.createTx()
  68. this.table.loading = true
  69. this.table.data.length = 0
  70. const rst = await this.tx.find(this.query, this.table.pageNum, this.table.pageSize)
  71. if (rst.state) {
  72. this.table.data = TxModel.parseLocalRecordList(rst.data)
  73. this.$msgkit.success(rst.msg)
  74. } else {
  75. this.$msgkit.error(rst.msg)
  76. }
  77. this.table.loading = false
  78. },
  79. createTx() {
  80. if (!this.tx) this.tx = new TxModel(this.chain.id, TxModel.MODULES.PENDING)
  81. },
  82. async prePackQuery() {
  83. // await this.$refs.table.remButRegroupAll()
  84. // await this.$refs.table.remButClick()
  85. },
  86. async packQuery() {
  87. await this.prePackQuery()//查询数据之前移除 多余的临时标签
  88. await this.generateTableData()//拿到数据
  89. await this.afterPackQuery()//添加标签 ,添加点击按钮事件
  90. },
  91. async afterPackQuery() {
  92. },
  93. },
  94. provide() {
  95. return {
  96. packQuery: this.packQuery
  97. }
  98. },
  99. async mounted() {
  100. await this.packQuery()
  101. }
  102. }
  103. </script>