2
李凌
2025-09-03 d69e499d0393c34986e9df73283aba58be266d9a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<template>
    <div class="icoRecord">
        <fx-header>
            <template v-slot:title>
                <div>{{$t('申购记录')}}</div>
            </template>
        </fx-header>
 
        <van-tabs v-model:active="active">
            <van-tab name="0" :title="$t('all')"></van-tab>
            <van-tab name="1" :title="$t('已认购')"></van-tab>
            <van-tab name="2" :title="$t('未中签')"></van-tab>
            <van-tab name="3" :title="$t('已中签')"></van-tab>
            <van-tab name="4" :title="$t('已缴纳')"></van-tab>
            <van-tab name="5" :title="$t('已分发')"></van-tab>
        </van-tabs>
 
        <div class="icoRecord_list">
            <div class="icoRecord_item mb-5" v-for="(item,index) in recordLIst" :key="index">
                <div class="item_1">
                    {{ item.symbol }} ({{ item.name }})
                </div>
                <div class="item_2 flex justify-between">
                    <div>{{ $t('state') }}</div>
                    <div>{{ getStatus(item.status) }}</div>
                </div>
                <div class="item_2 flex justify-between">
                    <div>{{ $t('申购数量') }}</div>
                    <div>{{ item.subscribeNums }}</div>
                </div>
                <div class="item_2 flex justify-between">
                    <div>{{ $t('中签数量') }}</div>
                    <div>{{ item.ballotNumber }}</div>
                </div>
            </div>
        </div>
    </div>
</template>
 
<script setup>
import { ref, watch } from "vue";
import { showToast } from 'vant'
import { _icoRecordList } from "@/service/ico.api.js";
import { useI18n } from "vue-i18n";
const { t } = useI18n()
 
// tab切换
const active = ref('0');
watch(active, (val) => {
    getList()
})
 
// 获取记录列表
const recordLIst = ref([]) // 记录列表
const getList = () => {
    let opt = {
        status: active.value
    }
    if(opt.status == '0') delete opt.status
    _icoRecordList(opt).then((res) => {
        console.log(res);
        recordLIst.value = res.records
    })
}
getList()
 
// 根据状态转换对应的文字
const getStatus = (status) => {
    let str = ''
    switch (status) {
        case 1:
            str = t('已认购')
            break;
        case 2:
            str = t('未中签')
            break;
        case 3:
            str = t('已中签')
            break;
        case 4:
            str = t('已缴纳')
            break;
        case 5:
            str = t('已分发')
            break;
        default:
            break;
    }
    return str
}
</script>
 
<style lang="scss" scoped>
.icoRecord{
    padding: 0rem 1.2rem 2rem 1.2rem;
    font-size: 1.5rem;
 
    .icoRecord_list{
        padding: 1rem 0rem;
        .icoRecord_item{
            background-color: #eee;
            padding:.5rem 1rem;
            border: #aaa solid 1px;
            border-radius: 1rem;
            .item_1{
                padding: 1rem .5rem;
                border-bottom: #ccc solid 1px;
                font-size: 2rem;
                font-weight: 700;
            }
            .item_2{
                padding: 1rem .5rem;
                border-bottom: #ccc solid 1px;
                font-size: 1.6rem;
                font-weight: 500;
 
                &>div:last-child{
                    color: #999;
                }
            }
            .item_3{
                padding: .5rem;
            }
        }
    }
}
</style>