矿机租赁系统代码更新
This commit is contained in:
220
power_leasing/src/views/account/index.vue
Normal file
220
power_leasing/src/views/account/index.vue
Normal file
@@ -0,0 +1,220 @@
|
||||
<template>
|
||||
<div class="account-page">
|
||||
<!-- <div class="account-header">
|
||||
<h1 class="title">个人中心</h1>
|
||||
</div> -->
|
||||
|
||||
<div class="account-layout">
|
||||
<!-- 左侧导航 -->
|
||||
<aside class="sidebar">
|
||||
<nav class="side-nav">
|
||||
<div class="user-info-card" role="region" v-show="userEmail" aria-label="用户信息" tabindex="0">
|
||||
<div class="user-meta">
|
||||
<div class="user-email" :title="userEmail || '未登录'">{{ userEmail || '未登录' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-role">
|
||||
<button>买家相关</button>
|
||||
<button>卖家相关</button>
|
||||
</div>
|
||||
<router-link
|
||||
to="/account/wallet"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>我的钱包</router-link
|
||||
>
|
||||
<!-- <router-link
|
||||
to="/account/shop-new"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>新增店铺</router-link
|
||||
> -->
|
||||
<router-link
|
||||
to="/account/shop-config"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>钱包绑定</router-link
|
||||
>
|
||||
<router-link
|
||||
to="/account/shops"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>我的店铺</router-link
|
||||
>
|
||||
<router-link
|
||||
to="/account/products"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>商品列表</router-link
|
||||
>
|
||||
<router-link
|
||||
to="/account/purchased"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>已购商品</router-link
|
||||
>
|
||||
<router-link
|
||||
to="/account/seller-orders"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>已售出订单</router-link>
|
||||
<router-link
|
||||
to="/account/orders"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>已购买订单列表</router-link>
|
||||
|
||||
<router-link
|
||||
to="/account/rechargeRecord"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>充值记录</router-link>
|
||||
<router-link
|
||||
to="/account/withdrawalHistory"
|
||||
class="side-link"
|
||||
active-class="active"
|
||||
>提现记录</router-link>
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
<!-- 右侧内容 -->
|
||||
<section class="content">
|
||||
<router-view />
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "AccountPage",
|
||||
data() {
|
||||
return {
|
||||
activeIndex: '1',
|
||||
userEmail: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
/**
|
||||
* 计算用户邮箱首字母(用于头像)
|
||||
* @returns {string}
|
||||
*/
|
||||
userInitial() {
|
||||
const email = (this.userEmail || '').trim()
|
||||
return email ? email[0].toUpperCase() : '?'
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
const getVal = (key) => {
|
||||
const raw = localStorage.getItem(key)
|
||||
if (raw == null) return null
|
||||
try { return JSON.parse(raw) } catch (e) { return raw }
|
||||
}
|
||||
const val = getVal('userName') || getVal('userEmail') || ''
|
||||
this.userEmail = typeof val === 'string' ? val : String(val)
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.account-page {
|
||||
padding: 20px;
|
||||
}
|
||||
.account-header {
|
||||
background: #fff;
|
||||
/* border: 1px solid #eee; */
|
||||
border-radius: 8px;
|
||||
padding: 16px 20px;
|
||||
margin-bottom: 16px;
|
||||
text-align: left;
|
||||
padding-left: 3vw;
|
||||
|
||||
}
|
||||
.title {
|
||||
margin: 0;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: #2c3e50;
|
||||
|
||||
}
|
||||
|
||||
.account-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 220px 1fr;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
background: #fff;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
min-height: 80vh;
|
||||
}
|
||||
.side-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
/* 用户信息卡片:置于导航最前,展示邮箱与首字母头像 */
|
||||
.user-info-card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
gap: 10px;
|
||||
padding: 12px;
|
||||
background: #f8fafc;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.avatar {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(135deg, #42b983, #67c23a);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
}
|
||||
.user-email {
|
||||
font-size: 14px;
|
||||
color: #2c3e50;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.side-link {
|
||||
display: block;
|
||||
padding: 10px 12px;
|
||||
color: #2c3e50;
|
||||
text-decoration: none;
|
||||
border-radius: 6px;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.side-link:hover {
|
||||
background: #f6f8fa;
|
||||
}
|
||||
.side-link.active {
|
||||
background: #42b983;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.content {
|
||||
background: #fff;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 8px;
|
||||
padding: 16px;
|
||||
min-height: 420px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.account-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user