<template>
|
<div class="user_page">
|
<div class="content">
|
<div class="top_icon">
|
<div class="right_icon">
|
<div @click="goToTopUp()">
|
<img src="@/assets/img/qianbao.png" alt />
|
</div>
|
<div>
|
<img src="@/assets/img/kefu.png" alt />
|
</div>
|
</div>
|
</div>
|
<div class="users">
|
<div class="left_tou">
|
<div class="left_tx">
|
<div>
|
<img src="@/assets/img/eslogo.png" alt />
|
</div>
|
</div>
|
<div class="right_name" @click="$router.push('/wallet')">
|
<span>{{ userInfo.realName ? userInfo.realName : userInfo.phone }}</span>
|
</div>
|
</div>
|
<div class="right_go">
|
<img src="@/assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
<div class="center_card">
|
<div class="keyon">
|
<span>{{ '总资产' }}</span>
|
</div>
|
<div class="num_price">
|
<p
|
v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
|
class="account"
|
>
|
¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
|
$store.state.userInfo.userIndexAmt).toFixed(2)
|
}}
|
</p>
|
<p
|
v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
|
class="account"
|
>
|
¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
|
$store.state.userInfo.userFuturesAmt).toFixed(2)
|
}}
|
</p>
|
<p
|
v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
|
class="account"
|
>¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
|
</div>
|
<div class="yk es">
|
<div>
|
<span>{{ '盈亏' }}</span>
|
</div>
|
<div>
|
<span>{{ '可用余额(¥)' }}</span>
|
</div>
|
</div>
|
<div class="yk as">
|
<div>
|
<span v-if="!selectUserFlag">
|
<span
|
:class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''"
|
>{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose }}</span>
|
</span>
|
<span v-else>
|
<span
|
:class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''"
|
>{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
|
</span>
|
</div>
|
<div>
|
<span class="bzz" v-if="!selectUserFlag">{{ '¥ ' + $store.state.userInfo.userIndexAmt }}</span>
|
<span class="bzz" v-else>{{ '¥ ' + $store.state.userInfo.userAmt }}</span>
|
</div>
|
</div>
|
<div class="btns" @click="handleZh()" :class="selectUserFlag ? '' : 'active'">
|
<span>{{ selectUserFlag ? '切换指数账户' : '切换沪深账户' }}</span>
|
</div>
|
</div>
|
<div class="jy" @click="goToSettings()">
|
<div class="left_gn">
|
<div class="l_icon">
|
<img src="../../assets/img/xiugaimima.png" alt />
|
</div>
|
<div class="r_title">
|
<span>{{ '修改密码' }}</span>
|
</div>
|
</div>
|
<div class="right_gos">
|
<img src="../../assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
<div class="jy" @click="handleGoToTransfer()">
|
<div class="left_gn">
|
<div class="l_icon">
|
<img src="../../assets/img/huazhuan2.png" alt />
|
</div>
|
<div class="r_title">
|
<span>{{ '资金划转' }}</span>
|
</div>
|
</div>
|
<div class="right_gos">
|
<img src="../../assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
<div class="jy" @click="handleGoToAuthentication()">
|
<div class="left_gn">
|
<div class="l_icon">
|
<img src="../../assets/img/shiming.png" alt />
|
</div>
|
<div class="r_title">
|
<span>{{ '实名认证' }}</span>
|
</div>
|
</div>
|
<div class="right_gos">
|
<img src="../../assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
<div class="jy" @click="handleGoToBankCard()">
|
<div class="left_gn">
|
<div class="l_icon">
|
<img src="../../assets/img/shiming.png" alt />
|
</div>
|
<div class="r_title">
|
<span>{{ '绑定银行卡' }}</span>
|
</div>
|
</div>
|
<div class="right_gos">
|
<img src="../../assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
<div class="jy" @click="handleOutLoginClick()">
|
<div class="left_gn">
|
<div class="l_icon">
|
<img src="../../assets/img/out2.png" alt />
|
</div>
|
<div class="r_title">
|
<span>{{ '退出登录' }}</span>
|
</div>
|
</div>
|
<div class="right_gos">
|
<img src="../../assets/img/youjiantou.png" alt />
|
</div>
|
</div>
|
</div>
|
<van-popup v-model="settingDialog" position="bottom" :style="{ height: '40%' }">
|
<div class="setting_content">
|
<div class="old_password">
|
<div class="left_titles">
|
<span>{{ '旧密码:' }}</span>
|
</div>
|
<div class="right_password_input">
|
<input type="password" v-model="oldPassword" />
|
</div>
|
</div>
|
<div class="old_password">
|
<div class="left_titles">
|
<span>{{ '新密码:' }}</span>
|
</div>
|
<div class="right_password_input">
|
<input type="password" v-model="newPassword" />
|
</div>
|
</div>
|
<div class="old_password">
|
<div class="left_titles">
|
<span>{{ '确认新密码:' }}</span>
|
</div>
|
<div class="right_password_input">
|
<input type="password" v-model="cirNewPassword" />
|
</div>
|
</div>
|
<div class="btn_setting" @click="changeLoginPsd()">
|
<span>{{ '确认修改' }}</span>
|
</div>
|
</div>
|
</van-popup>
|
<loginPopup />
|
</div>
|
</template>
|
|
<script>
|
import * as api from "@/axios/api";
|
import { Toast } from "mint-ui";
|
import { isNull, pwdReg } from "@/utils/utils";
|
import loginPopup from "@/components/loginDialog.vue";
|
|
export default {
|
name: "newUser",
|
data() {
|
return {
|
name: "大狗子",
|
selectUserFlag: true,
|
settingDialog: false,
|
oldPassword: "", // 旧密码
|
newPassword: "", // 新密码
|
cirNewPassword: "", //确认新密码
|
userInfo: {},
|
};
|
},
|
components: {
|
loginPopup,
|
},
|
created() {
|
this.getUserInfo();
|
},
|
methods: {
|
handleZh() {
|
this.selectUserFlag = !this.selectUserFlag;
|
this.dialogVisible = true;
|
},
|
async getUserInfo() {
|
// 获取用户信息
|
let data = await api.getUserInfo();
|
if (data.status === 0) {
|
// 判断是否登录
|
this.$store.state.userInfo = data.data;
|
this.userInfo = data.data;
|
} else {
|
}
|
},
|
goToTopUp() {
|
this.$router.push("/wallet");
|
},
|
handleOutLoginClick() {
|
// 退出登录
|
this.toRegister();
|
},
|
goToSettings() {
|
// 每次打开dialog 清空密码数据
|
this.settingDialog = !this.settingDialog;
|
if (this.settingDialog) {
|
this.oldPassword = "";
|
this.newPassword = "";
|
this.cirNewPassword = "";
|
}
|
},
|
handleGoToTransfer() {
|
this.$router.push("/transfers");
|
},
|
handleGoToAuthentication() {
|
this.$router.push("/authentications");
|
},
|
handleGoToBankCard() {
|
this.$router.push("/bankCard");
|
},
|
async toRegister() {
|
// 注销登陆
|
window.localStorage.clear("USERTOKEN"); // 清空本地存储 USERTOKEN字段
|
this.clearCookie();
|
let data = await api.logout();
|
if (data.status === 0) {
|
// Toast(data.msg)
|
this.$router.push("/login");
|
} else {
|
Toast(data.msg);
|
}
|
this.$router.push("/login");
|
},
|
async changeLoginPsd() {
|
// 修改密码
|
if (
|
isNull(this.oldPassword) ||
|
isNull(this.newPassword) ||
|
isNull(this.cirNewPassword)
|
) {
|
Toast("请输入新旧密码");
|
this.settingDialog = false;
|
} else if (!pwdReg(this.newPassword)) {
|
Toast("密码为6~12位,数字、字母或符号");
|
this.settingDialog = false;
|
} else {
|
// 修改密码
|
if (this.newPassword === this.cirNewPassword) {
|
let opts = {
|
oldPwd: this.oldPassword,
|
newPwd: this.newPassword
|
};
|
let data = await api.changePassword(opts);
|
if (data.status === 0) {
|
this.changeLoginPsdBox = false;
|
Toast(data.msg);
|
this.settingDialog = false;
|
} else {
|
Toast(data.msg);
|
this.settingDialog = false;
|
}
|
} else {
|
Toast("新密码不一致");
|
this.settingDialog = false;
|
}
|
}
|
}
|
}
|
};
|
</script>
|
|
<style scoped lang="less">
|
.user_page {
|
width: 100%;
|
height: calc(100% - 1.3rem);
|
.content {
|
width: 100%;
|
height: 100%;
|
padding: 0 0.3rem;
|
.top_icon {
|
width: 100%;
|
height: 1.5rem;
|
display: flex;
|
justify-content: flex-end;
|
align-items: center;
|
.right_icon {
|
width: 25%;
|
height: 50%;
|
display: flex;
|
> div {
|
width: 50%;
|
height: 100%;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
img {
|
width: 0.6rem;
|
height: 0.6rem;
|
}
|
}
|
}
|
}
|
.users {
|
width: 100%;
|
height: 1.7949rem;
|
background: #fff;
|
border-radius: 0.15rem;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.left_tou {
|
width: 80%;
|
height: 70%;
|
display: flex;
|
.left_tx {
|
width: 20%;
|
height: 100%;
|
margin-left: 0.3rem;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
> div {
|
width: 1rem;
|
height: 1rem;
|
border-radius: 50%;
|
overflow: hidden;
|
background: rgb(211, 211, 211);
|
img {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
}
|
.right_name {
|
width: 80%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
font-size: 0.4415rem;
|
span {
|
font-weight: 600;
|
}
|
}
|
}
|
.right_go {
|
width: 20%;
|
height: 70%;
|
display: flex;
|
justify-content: flex-end;
|
align-items: center;
|
padding-right: 0.2rem;
|
img {
|
width: 0.6rem;
|
height: 0.6rem;
|
}
|
}
|
}
|
.center_card {
|
width: 100%;
|
height: 5.3846rem;
|
background-image: linear-gradient(to right bottom, #ffffff, #dfedfc);
|
// background-image: linear-gradient(to right, #ffffff , #dfedfc);
|
margin-top: 0.5rem;
|
border-radius: 0.15rem;
|
padding: 0.5rem 0.4rem;
|
.keyon {
|
width: 100%;
|
height: 0.5128rem;
|
font-size: 0.359rem;
|
display: flex;
|
align-items: center;
|
color: #3d4144;
|
span {
|
font-weight: 600;
|
}
|
}
|
.num_price {
|
width: 100%;
|
height: 0.6667rem;
|
margin-top: 0.1rem;
|
display: flex;
|
align-items: center;
|
font-size: 0.5528rem;
|
span {
|
font-weight: 600;
|
}
|
}
|
.yk {
|
width: 100%;
|
height: 0.5rem;
|
display: flex;
|
align-items: center;
|
> div {
|
width: 50%;
|
height: 100%;
|
color: #97989d;
|
display: flex;
|
align-items: center;
|
}
|
}
|
.yk.es {
|
margin-top: 0.3rem;
|
}
|
.yk.as {
|
font-size: 0.4033rem;
|
margin-top: 0.1rem;
|
span {
|
color: #000;
|
font-weight: 600;
|
}
|
.bzz {
|
color: #4ea364;
|
}
|
}
|
.btns {
|
width: 100%;
|
height: 1.2821rem;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
border-radius: 0.25rem;
|
background: #2d6ae9;
|
font-size: 0.4015rem;
|
color: #fff;
|
margin-top: 0.35rem;
|
span {
|
font-weight: 600;
|
}
|
}
|
.active {
|
background: #4ea364;
|
}
|
}
|
.jy {
|
width: 100%;
|
height: 1.5rem;
|
border-radius: 0.2rem;
|
background: #fff;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
padding: 0 0.3rem;
|
margin-top: 0.3rem;
|
.left_gn {
|
width: 40%;
|
height: 60%;
|
display: flex;
|
.l_icon {
|
width: 30%;
|
height: 100%;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
img {
|
width: 0.5041rem;
|
height: 0.5041rem;
|
}
|
}
|
.r_title {
|
width: 70%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
font-size: 0.4046rem;
|
color: #404040;
|
span {
|
font-weight: 600;
|
}
|
}
|
}
|
.right_gos {
|
width: 20%;
|
height: 60%;
|
display: flex;
|
align-items: center;
|
justify-content: flex-end;
|
img {
|
width: 0.6rem;
|
height: 0.6rem;
|
}
|
}
|
}
|
}
|
}
|
.setting_content {
|
width: 100%;
|
height: 5rem;
|
padding: 0.3rem;
|
.old_password {
|
width: 100%;
|
height: 1rem;
|
background: rgb(243, 243, 243);
|
border-radius: 0.15rem;
|
display: flex;
|
margin-top: 0.5rem;
|
.left_titles {
|
width: 25%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
padding-left: 0.2rem;
|
// justify-content: flex-end;
|
span {
|
font-weight: 600;
|
}
|
}
|
.right_password_input {
|
width: 80%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
input {
|
width: 100%;
|
height: 100%;
|
padding-left: 0.2rem;
|
}
|
}
|
}
|
.btn_setting {
|
width: 100%;
|
height: 1.3rem;
|
border-radius: 0.15rem;
|
background: #2d6ae9;
|
color: #fff;
|
font-size: 0.4615rem;
|
margin-top: 0.5rem;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
span {
|
font-weight: 600;
|
}
|
}
|
}
|
|
</style>
|