<template>
|
<div class="ico">
|
<fx-header :showLeft="false">
|
<template v-slot:title>
|
<div>STO</div>
|
</template>
|
<template v-slot:right>
|
<van-icon name="todo-list-o" @click="$router.push('/ICO/icoRecord')" />
|
</template>
|
</fx-header>
|
|
<div class="ico_list">
|
<div class="ico_item mb-5" v-for="i in icoList" :key="i.id">
|
<div class="item_1">
|
{{ i.symbol }} ({{ i.name }})
|
</div>
|
<div class="item_2 flex justify-between">
|
<div class="mr-5">{{$t('申购时间')}}</div>
|
<div>{{ i.startDate }} ~ {{ i.endDate }}</div>
|
</div>
|
<div class="item_2 flex justify-between">
|
<div>{{$t('listingDate')}}</div>
|
<div>{{ i.marketDate }}</div>
|
</div>
|
<div class="item_2 flex justify-between">
|
<div>{{$t('每张金额')}}</div>
|
<div>{{ i.unitAmount }}</div>
|
</div>
|
<div class="item_2 flex justify-between">
|
<div>{{$t('每张手续费')}}</div>
|
<div>{{ i.unitFee }}</div>
|
</div>
|
<div class="item_3 flex justify-center">
|
<van-button type="default" round size="large" @click="openBuy(i)">{{$t('申购')}}</van-button>
|
</div>
|
</div>
|
</div>
|
|
|
<!-- 购买弹窗 -->
|
<van-popup v-model:show="show" round >
|
<div class="buy_popup">
|
<div class="buy_title flex justify-center">{{ itemObj.symbol }}</div>
|
|
<van-field v-model="sgNum" type="digit" :label="$t('申购数量')" />
|
|
<div class="flex justify-center mt-5">
|
<van-button type="default" size="large" round @click="buy">{{$t('confirm')}}</van-button>
|
</div>
|
</div>
|
</van-popup>
|
</div>
|
</template>
|
|
<script setup>
|
import { ref } from "vue";
|
import { showToast } from 'vant'
|
import { _icoList, _icoSubscribe } from "@/service/ico.api.js";
|
import { useI18n } from "vue-i18n";
|
const { t } = useI18n()
|
|
// 获取列表
|
const icoList = ref([])
|
_icoList().then(res => {
|
icoList.value = res.records
|
}).catch(err => {
|
showToast(err.msg)
|
})
|
|
// 打开申购弹窗
|
const show = ref(false) // 控制弹窗显示
|
const itemObj = ref({}) // ico列表项
|
const sgNum = ref(0) // 申购数量
|
const openBuy = (i) => {
|
show.value = true
|
itemObj.value = i
|
}
|
|
// 申购
|
const buy = () => {
|
let opt = {
|
icoProjectId:itemObj.value.id,
|
subscribeNums: sgNum.value,
|
subscriptionType:1,
|
}
|
_icoSubscribe(opt).then(res => {
|
showToast(t('submitSuccess'))
|
show.value = false
|
}).catch(err => {
|
showToast(err)
|
})
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
.ico{
|
padding: 0rem 1.2rem 2rem 1.2rem;
|
font-size: 1.5rem;
|
.buy_popup{
|
width: 40rem;
|
padding: 1rem;
|
|
.buy_title{
|
font-size: 2.5rem;
|
font-weight: 700;
|
border-bottom: #aaa solid 1px;
|
padding: 1rem;
|
}
|
}
|
|
.ico_list{
|
padding: 1rem 0rem;
|
.ico_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>
|