Commit eb9f685e authored by wenglk's avatar wenglk

update

parent ea6f8199
......@@ -320,7 +320,7 @@ export default Vue.extend({
},
pageChange2(page: number) {
this.pages2.currentPage = page;
console.log('page2');
this.loadingVote = true
getVoterAddr(
this.$route.query.address as string,
......@@ -329,13 +329,20 @@ export default Vue.extend({
).then((res) => {
if (res.error === null) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.voteList = res.result.map((i: any) => ({
...i,
sender: i.from,
receiver: i.to,
time: i.block_time,
}));
const txHashes = res.result.map((i: any) => i.hash);
let obj = {} as any
// eslint-disable-next-line @typescript-eslint/no-explicit-any
res.result.forEach((i: any) => {
i.voter_addr.forEach((item: string) => {
// i.voter_detail[item]++
if (!obj[item]) obj[item] = 1
else obj[item]++
})
i.voter_detail = obj
obj = {}
})
this.voteList = res.result
this.loadingVote = false
// const txHashes = res.result.map((i: any) => i.hash);
// this.setVoteReward(txHashes);
}
});
......@@ -373,36 +380,6 @@ export default Vue.extend({
return "";
}
},
setVoteReward(txHashes: string[]) {
getTxByHashes("ycc", yccApi, txHashes).then((txRes) => {
const list = txRes
.map((i: any, index: number) => {
return {
txHash: txHashes[index],
receipt: i.receipt,
};
})
.map((i: any) => {
const res = getConsensusList([i]);
return {
txHash: i.txHash,
reward: res
.filter((m) => m.type === "vote")
.reduce((p, c) => {
return p + c.reward;
}, 0),
};
});
list.forEach((item: { txHash: string; reward: number }) => {
const the = this.voteList.find((i) => i.hash === item.txHash);
if (the) {
the.reward = item.reward;
}
});
this.voteList = [...this.voteList];
});
},
getVoter() {
getVoterAddrCount(this.$route.query.address as string).then((res) => {
if (res.error === null) {
......@@ -413,13 +390,19 @@ export default Vue.extend({
this.pages2.pageSize
).then((res) => {
if (res.error === null) {
// console.log(res, 'vote');
let obj = {} as any
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.voteList = res.result.map((i: any) => ({
...i,
sender: i.from,
receiver: i.to,
time: i.block_time,
}));
res.result.forEach((i: any) => {
i.voter_addr.forEach((item: string) => {
// i.voter_detail[item]++
if (!obj[item]) obj[item] = 1
else obj[item]++
})
i.voter_detail = obj
obj = {}
})
this.voteList = res.result
}
});
}
......
......@@ -487,3 +487,127 @@ export function numOfOnChainTx(times: { start: number; end: number }[]) {
},
});
}
// 获取区块下非共识交易总数
export function getBlocksUnConsensusTxsCount(height: number) {
return axios(expandApi, {
method: "post",
params: {
id: 1,
method: "Tx.TxCount",
params: [
{
"not": [
{
"key": "action_name",
"value": "miner"
}
],
match: [
{
key: "height",
value: height,
}
],
},
],
},
});
}
// 获取区块下非共识交易列表
export function getBlocksUnConsensusTxs(height: number, number: number, size: number) {
return axios(expandApi, {
method: "post",
params: {
id: 1,
method: "Tx.TxList",
params: [
{
sort: [
{
key: "height",
ascending: false,
},
],
"not": [
{
"key": "action_name",
"value": "miner"
}
],
match: [
{
key: "height",
value: height,
}
],
page: {
number,
size,
},
},
],
},
});
}
// 获取区块下共识交易总数
export function getBlocksConsensusTxsCount(height: number) {
return axios(expandApi, {
method: "post",
params: {
id: 1,
method: "Tx.TxCount",
params: [
{
match: [
{
"key": "action_name",
"value": "miner"
},
{
key: "height",
value: height,
}
],
},
],
},
});
}
// 获取区块下共识交易列表
export function getBlocksConsensusTxs(height: number, number: number, size: number) {
return axios(expandApi, {
method: "post",
params: {
id: 1,
method: "Tx.TxList",
params: [
{
sort: [
{
key: "height",
ascending: false,
},
],
match: [
{
"key": "action_name",
"value": "miner"
},
{
key: "height",
value: height,
}
],
page: {
number,
size,
},
},
],
},
});
}
\ No newline at end of file
......@@ -9,10 +9,7 @@
:handleSelectChange="(v) => (selectedExecer = v)"
:frozen="frozen"
></m-address-overview>
<div
class="rounded-twoPx shadow-shadow1 bg-white"
style="margin-top: 15px;"
>
<div class="rounded-twoPx shadow-shadow1 bg-white" style="margin-top: 15px">
<m-tabs
:focusedTab="focusedTab"
:setFocusedTab="($event) => (focusedTab = $event)"
......@@ -49,8 +46,8 @@
:status="n.success"
></m-tx-item>
</div>
<div v-if="focusedTab === 'votingRecord'">
<vote-pack-table
<div v-if="focusedTab === 'consensus'">
<MVotePack
v-for="(v, i) in voteList"
:key="i"
:height="v.height"
......@@ -59,19 +56,7 @@
:txHash="v.hash"
:rewardAmount="v.reward"
type="vote"
></vote-pack-table>
</div>
<div v-if="focusedTab === 'packingRecord'">
<m-vote-pack
v-for="(n, i) in packList"
:key="i"
:height="n.height"
:timeBlock="n.time"
:sender="n.sender"
:txHash="n.hash"
:rewardAmount="n.reward"
type="pack"
></m-vote-pack>
></MVotePack>
</div>
</div>
<m-page-container
......@@ -85,7 +70,7 @@
class="mt-5"
></m-page-container>
<m-page-container
v-if="focusedTab === 'votingRecord'"
v-if="focusedTab === 'consensus'"
@pageChange="pageChange2"
@sizeChange="sizeChange2"
:simple="false"
......@@ -94,28 +79,18 @@
:total="pages2.total"
class="mt-5"
></m-page-container>
<m-page-container
v-if="focusedTab === 'packingRecord'"
@pageChange="pageChange3"
@sizeChange="sizeChange3"
:simple="false"
:currentPage="pages3.currentPage"
:pageSize="pages3.pageSize"
:total="pages3.total"
class="mt-5"
></m-page-container>
</div>
</template>
<script lang="ts">
import MChainSearch from '@/components/mobile/m-chainSearch.vue'
import MTabs from '@/components/mobile/m-tabs.vue'
import MPageContainer from '@/components/mobile/m-pageContainer.vue'
import MVotePack from '@/components/mobile/m-vote-pack.vue'
import address from '@/mixin/address'
import VueTypedMixins from 'vue-typed-mixins'
import MAddressOverview from './components/m-address-overview/index.vue'
import MTxItem from '@/components/mobile/m-txItem.vue'
import Select from '@/components/pc/Select.vue'
import MChainSearch from "@/components/mobile/m-chainSearch.vue";
import MTabs from "@/components/mobile/m-tabs.vue";
import MPageContainer from "@/components/mobile/m-pageContainer.vue";
import MVotePack from "@/components/mobile/m-vote-pack.vue";
import address from "@/mixin/address";
import VueTypedMixins from "vue-typed-mixins";
import MAddressOverview from "./components/m-address-overview/index.vue";
import MTxItem from "@/components/mobile/m-txItem.vue";
import Select from "@/components/pc/Select.vue";
export default VueTypedMixins(address).extend({
components: {
......@@ -127,7 +102,7 @@ export default VueTypedMixins(address).extend({
Select,
MTxItem,
},
})
});
</script>
<style lang="scss" scoped>
.c-address {
......
<template>
<div class="c-votePackTable">
<el-table :data="list" v-loading="loading" stripe>
<el-table
:data="list"
v-loading="loading"
element-loading-text="Loading..."
element-loading-spinner="el-icon-loading"
stripe
>
<!-- <TableColumn label width="40"></TableColumn> -->
<TableColumn type="expand">
<template slot-scope="props">
<div
class="line"
v-for="item in props.row.voter_addr"
:key="item.hash"
v-for="(item, index) in Object.keys(props.row.voter_detail)"
:key="index"
>
<p class="adr">{{ item | filterHash(10) }}</p>
<span>投票节点</span>
<span> YCC</span>
<router-link
class="adr"
:to="{
path: '/address',
query: {
address: item,
},
}"
>
{{ item | filterHash(10) }}
</router-link>
<span class="vote-node">投票节点</span>
<span class="reward"
>{{ Number(props.row.voter_detail[item]) * 0.25 }} YCC</span
>
</div>
</template>
</TableColumn>
......@@ -38,11 +56,11 @@
:to="{
path: '/address',
query: {
address: row.sender,
address: row.maker_addr[0],
},
}"
>
{{ row.sender | filterHash(10) }}
{{ row.maker_addr[0] | filterHash(10) }}
</router-link>
</div>
</template>
......@@ -64,7 +82,7 @@
<TableColumn :label="$t('lang.trade.time')" align="right" width="220">
<template slot-scope="{ row }">
<div class="text-text-color">
{{ row.time | formatTime }}
{{ row.block_time | formatTime }}
</div>
</template>
</TableColumn>
......@@ -93,11 +111,22 @@ export default Vue.extend({
align-items: center;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
color: #1f3470;
line-height: 40px;
line-height: 50px;
color: rgb(124, 136, 173);
.adr {
margin-left: 355px;
width: 300px;
color: #2545cb;
transition: 0.3s;
}
.adr:hover {
color: #1890ff;
}
.vote-node {
margin-left: 30px;
}
.reward {
margin-left: 95px;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment