136 lines
3.4 KiB
Vue
136 lines
3.4 KiB
Vue
|
<template>
|
|||
|
<van-nav-bar title="用户信息" />
|
|||
|
<div class="container">
|
|||
|
<div class="userinfo">
|
|||
|
<div class="title">用户昵称:<span>{{ userInfo.nikename }}</span></div>
|
|||
|
<div class="title">Telegram ID:<span>{{ userInfo.telegram_id }}</span></div>
|
|||
|
<div class="title">Telegram联系方式:<span>{{ userInfo.telegram_tel }}</span></div>
|
|||
|
<div class="title">Email:<span>{{ userInfo.email }}</span></div>
|
|||
|
<div class="edit" @click="editUserInfo()"><van-icon name="edit" /></div>
|
|||
|
</div>
|
|||
|
<div class="dashboard">
|
|||
|
<div class="box">
|
|||
|
<div class="account">{{ dashboard.taskCount }}</div>
|
|||
|
<div class="title">总任务数</div>
|
|||
|
</div>
|
|||
|
<div class="shu"></div>
|
|||
|
<div class="box">
|
|||
|
<div class="account">{{ dashboard.orderMoney }}</div>
|
|||
|
<div class="title">USDT付款总额</div>
|
|||
|
</div>
|
|||
|
<div class="shu"></div>
|
|||
|
<div class="box">
|
|||
|
<div class="account">{{ dashboard.taskUnpayCount }}</div>
|
|||
|
<div class="title">待支付任务数</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="tool">
|
|||
|
<div class="tool-box" @click="goPage('/h5/mass_send')">
|
|||
|
<div><van-icon name="notes-o" class="icon" /></div>
|
|||
|
<div class="title">群发记录</div>
|
|||
|
</div>
|
|||
|
<div class="tool-box" @click="goPage('/h5/notice')">
|
|||
|
<div><van-icon name="other-pay" class="icon" /></div>
|
|||
|
<div class="title">通知历史</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</template>
|
|||
|
<script setup>
|
|||
|
import { ref, reactive, computed, watch, onMounted, onBeforeUnmount } from 'vue'
|
|||
|
import { getUserinfo, getDashboard } from '@/axios/request'
|
|||
|
import { useRouter } from 'vue-router'
|
|||
|
const router = useRouter()
|
|||
|
const userInfo = ref({})
|
|||
|
const dashboard = ref({})
|
|||
|
onMounted(async () => {
|
|||
|
userInfo.value = await getUserinfo()
|
|||
|
dashboard.value = await getDashboard()
|
|||
|
console.log('userInfo', userInfo.value, dashboard.value)
|
|||
|
})
|
|||
|
|
|||
|
const editUserInfo = () => {
|
|||
|
router.push('/h5/detail')
|
|||
|
}
|
|||
|
const goPage = (url) => {
|
|||
|
router.push(url)
|
|||
|
}
|
|||
|
</script>
|
|||
|
<style scoped lang="scss">
|
|||
|
.container {
|
|||
|
background-color: #f5f8fa !important;
|
|||
|
height: 100vh;
|
|||
|
padding-top: 12px;
|
|||
|
}
|
|||
|
|
|||
|
.userinfo {
|
|||
|
margin: 12px;
|
|||
|
border-radius: 12px;
|
|||
|
background-color: #ffffff;
|
|||
|
padding: 12px;
|
|||
|
color: #666;
|
|||
|
position: relative;
|
|||
|
margin-top: 0;
|
|||
|
|
|||
|
span {
|
|||
|
color: #999;
|
|||
|
}
|
|||
|
|
|||
|
.edit {
|
|||
|
position: absolute;
|
|||
|
top: 45%;
|
|||
|
right: 12px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.dashboard {
|
|||
|
display: flex;
|
|||
|
justify-content: space-around;
|
|||
|
align-items: center;
|
|||
|
text-align: center;
|
|||
|
margin: 12px;
|
|||
|
padding: 12px;
|
|||
|
background-color: #ffffff;
|
|||
|
border-radius: 8px;
|
|||
|
|
|||
|
.shu {
|
|||
|
width: 1px;
|
|||
|
height: 40px;
|
|||
|
background: #eee;
|
|||
|
}
|
|||
|
|
|||
|
.account {
|
|||
|
font-weight: 600;
|
|||
|
color: #666;
|
|||
|
}
|
|||
|
|
|||
|
.title {
|
|||
|
color: #333;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.tool {
|
|||
|
margin: 12px;
|
|||
|
padding: 12px;
|
|||
|
background-color: #ffffff;
|
|||
|
border-radius: 8px;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
flex-wrap: wrap;
|
|||
|
text-align: center;
|
|||
|
|
|||
|
.tool-box {
|
|||
|
width: 30%;
|
|||
|
|
|||
|
.icon {
|
|||
|
font-size: 20px;
|
|||
|
}
|
|||
|
|
|||
|
.title {
|
|||
|
font-size: 12px;
|
|||
|
color: #999;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|