You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
614 lines
16 KiB
614 lines
16 KiB
<template>
|
|
<view class="section">
|
|
<view class="title_header">
|
|
<view>
|
|
<view class="position_cicles"
|
|
:style="{'background-image': `url( ${avatar == null || avatar == ''? no_avatar: avatar} )` }">
|
|
</view>
|
|
<view style="color: #fff;">
|
|
{{nickname == null || nickname == ''? '未登录': nickname }}
|
|
</view>
|
|
</view>
|
|
<view class="position_recharge" v-if="isLogin">
|
|
<view>
|
|
<view>账户余额</view>
|
|
<view>
|
|
<text style="font-weight: 600;">{{balance}}</text>
|
|
<text style="margin-left: 8rpx">元</text>
|
|
</view>
|
|
</view>
|
|
<view class="btn_recharge" @click="handle_recharge">充值</view>
|
|
</view>
|
|
</view>
|
|
<!-- -->
|
|
<view class="cu-card " :style="isLogin? 'margin-top: 100rpx': 'margin-top: 50rpx' ">
|
|
<view class="cu-item shadow padding-lr-sm">
|
|
<view class="flex padding-tb-sm justify-between" @click="accountBalance(1)"
|
|
v-if="now_version == '个人版'">
|
|
<view class="flex">
|
|
<uv-icon name="level" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">个人账户</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="accountBalance(2)"
|
|
v-if="now_version == '车队版' ">
|
|
<view class="flex">
|
|
<uv-icon name="level" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">个人账户</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="accountBalance(3)"
|
|
v-if="now_version == '车队版' ">
|
|
<view class="flex">
|
|
<uv-icon name="level" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">车队账户</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="personalDetails">
|
|
<view class="flex">
|
|
<uv-icon name="home" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">个人信息</view>
|
|
</view>
|
|
<view class="flex">
|
|
<text class="lg text-gray cuIcon-right padding-top-xs"></text>
|
|
</view>
|
|
</view>
|
|
<!-- <view class="flex padding-tb-sm justify-between" @click="gobillingPage">
|
|
<view class="flex">
|
|
<uv-icon name="shopping-cart" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">套餐购买</view>
|
|
</view>
|
|
<view class="flex">
|
|
<text class="lg text-gray cuIcon-right padding-top-xs"></text>
|
|
</view>
|
|
</view> -->
|
|
<!-- <view class="flex padding-tb-sm justify-between" @click="gobillingPage_my">
|
|
<view class="flex">
|
|
<uv-icon name="folder" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">我的套餐</view>
|
|
</view>
|
|
<view class="flex">
|
|
<text class="lg text-gray cuIcon-right padding-top-xs"></text>
|
|
</view>
|
|
</view> -->
|
|
<view class="flex padding-tb-sm justify-between" @click="vehicleCertification"
|
|
v-if="now_version == '个人版' ">
|
|
<view class="flex">
|
|
<uv-icon name="car-fill" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">车辆认证</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="personnelCertification">
|
|
<view class="flex">
|
|
<uv-icon name="file-text" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">个人身份认证</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<!-- solids-bottom -->
|
|
<view :class="{'flex':true, 'padding-tb-sm':true, 'justify-between':true}" @click="gomotorCade"
|
|
v-if="now_version == '个人版' ">
|
|
<view class="flex">
|
|
<uv-icon name="car" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">车队绑定</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view :class="{'flex':true, 'padding-tb-sm':true, 'justify-between':true}" @click="gomotorCade_mycar">
|
|
<view class="flex">
|
|
<uv-icon name="photo" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">{{ now_version == '车队版'? '车队车辆': '我的车辆' }}</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<!-- -->
|
|
<view class="flex padding-tb-sm justify-between" @click="goShiftTurnover">
|
|
<view class="flex">
|
|
<uv-icon name="attach" color="#2cc06c" size="20"></uv-icon>
|
|
<view class="titleFont">修改密码</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="goAddinvoice">
|
|
<view class="flex">
|
|
<uv-icon name="file-text" color="#2cc06c" size="20"></uv-icon>
|
|
<!-- <view class="titleFont">其他设置</view> -->
|
|
<view class="titleFont">开票记录</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
<view class="flex padding-tb-sm justify-between" @click="goSetting">
|
|
<view class="flex">
|
|
<uv-icon name="setting" color="#2cc06c" size="20"></uv-icon>
|
|
<!-- <view class="titleFont">其他设置</view> -->
|
|
<view class="titleFont">联系我们</view>
|
|
</view>
|
|
<view><text class="lg text-gray cuIcon-right padding-top-xs"></text></view>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
<!-- -->
|
|
<view class="outLoginBtn" v-if="isLogin">
|
|
<u-button @click="logOut" shape='circle'>退出登录</u-button>
|
|
</view>
|
|
<uv-notify ref="errornotify" message="当前无操作权限,请审核通过后再试" type="error"></uv-notify>
|
|
<up-loading-page loading-text="退出中...请稍后" color="#666" :loading="version_loading"></up-loading-page>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import config from '@/common/config/config.js';
|
|
import {
|
|
reactive,
|
|
ref,
|
|
} from "vue";
|
|
import {
|
|
onLoad,
|
|
onShow,
|
|
onReachBottom
|
|
} from "@dcloudio/uni-app";
|
|
|
|
import {
|
|
globalStore
|
|
} from '../../stores/globalData.js';
|
|
const loginStore = globalStore()
|
|
const version_loading = ref(false)
|
|
// 声明变量
|
|
// const dataCode = ref()
|
|
const isLogin = ref(false) //判断是否登录
|
|
const nickname = ref(null)
|
|
const phone = ref()
|
|
const avatar = ref()
|
|
const no_avatar = ref(
|
|
'https://zzpower.net//admin-api/infra/file/4/get/6e642a15c0bad98793f342a5ca83317cfcd62ed8b84fa5fd4c5d6f4176bd3a14.png'
|
|
)
|
|
const balance = ref(0.00)
|
|
const realNameAuthFlag = ref(0)
|
|
|
|
|
|
const now_version = ref()
|
|
|
|
onLoad(() => {
|
|
|
|
})
|
|
onShow(() => {
|
|
isLogin.value = loginStore.isLogin
|
|
now_version.value = uni.getStorageSync("version")
|
|
if (isLogin.value == true) {
|
|
// 展示头像与用户信息
|
|
handle_user_info()
|
|
if (now_version.value == '车队版') {
|
|
handle_wallet_team()
|
|
} else {
|
|
handle_wallet_personnel()
|
|
}
|
|
}
|
|
})
|
|
|
|
const handle_wallet_team = async () => {
|
|
let data = {
|
|
bindType: 2
|
|
}
|
|
let config_url = 'app-api/pay/wallet/get'
|
|
await uni.$request({
|
|
url: config.baseUrl + config_url,
|
|
data
|
|
}).then(res => {
|
|
balance.value = res.data.data.balance / 100
|
|
})
|
|
}
|
|
|
|
const handle_wallet_personnel = async () => {
|
|
let data = {
|
|
bindType: 1
|
|
}
|
|
await uni.$request({
|
|
url: config.baseUrl + "app-api/pay/wallet/get",
|
|
data
|
|
}).then(res => {
|
|
balance.value = res.data.data.balance / 100
|
|
})
|
|
}
|
|
|
|
const handle_user_info = async () => {
|
|
await uni.$request({
|
|
url: config.baseUrl + 'app-api/member/user/get',
|
|
}).then((res) => {
|
|
if (res.data.code == 0) {
|
|
avatar.value = res.data.data.avatar
|
|
nickname.value = res.data.data.nickname
|
|
phone.value = res.data.data.mobile
|
|
// realNameAuthFlag.value = res.data.data.realNameAuthFlag
|
|
// uni.setStorageSync("realNameAuthFlag", res.data.data.realNameAuthFlag)
|
|
uni.setStorageSync("teamId", res.data.data.teamId)
|
|
uni.setStorageSync("mobile", res.data.data.mobile)
|
|
uni.setStorageSync("captainOrNot", res.data.data.captainOrNot)
|
|
|
|
}
|
|
})
|
|
}
|
|
const errornotify = ref(null)
|
|
// 去设置页面
|
|
const goSetting = () => {
|
|
uni.navigateTo({
|
|
// url: './setting/setting'
|
|
url: '/pages/userCenter/about/about'
|
|
})
|
|
}
|
|
|
|
const goAddinvoice = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: '/pagesCenter/billingPage/billingRecord/billingRecord'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
}
|
|
|
|
const gologin = () => {
|
|
uni.navigateTo({
|
|
url: '../../pagesCenter/login/enter'
|
|
})
|
|
}
|
|
const personalDetails = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: './personalDetails/personalDetails'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
|
|
|
|
}
|
|
const gobillingPage = () => {
|
|
// console.log('点击了')
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: '../../pagesCenter/billingPage/billingPage'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
|
|
const gobillingPage_my = () => {
|
|
// console.log('点击了')
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: '/pagesCenter/billingPage/billingMean/billingMean'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
const vehicleCertification = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: './carIdentification/carIdentification'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
|
|
const personnelCertification = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: './personneldentification/personneldentification'
|
|
})
|
|
}
|
|
|
|
}
|
|
const accountBalance = (type) => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
let url_push = ''
|
|
if (type == 1) {
|
|
url_push = '/pagesCenter/accountBalance/accountBalance'
|
|
} else if (type == 2) {
|
|
url_push = '/pagesCenter/accountBalancePersonnelCar/accountBalancePersonnelCar'
|
|
} else {
|
|
url_push = '/pagesCenter/accountBalanceTeam/accountBalanceTeam'
|
|
}
|
|
uni.navigateTo({
|
|
url: url_push
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
const goAbout = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: './about/about'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
|
|
}
|
|
const gomotorCade = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: '../../pagesCenter/motorCade/motorCade'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
|
|
const gomotorCade_mycar = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: '../../pagesCenter/motorCadeMy/motorCadeMy'
|
|
})
|
|
}
|
|
// else if (realNameAuthFlag.value != 1) {
|
|
// errornotify.value.show()
|
|
// return
|
|
// }
|
|
|
|
}
|
|
const goShiftTurnover = () => {
|
|
if (!uni.getStorageSync("userInfo")) {
|
|
uni.showToast({
|
|
title: '请先完成登录',
|
|
duration: 2000,
|
|
icon: 'error'
|
|
});
|
|
return;
|
|
} else {
|
|
uni.navigateTo({
|
|
url: `/pagesCenter/login/changepassword?mobile=123`
|
|
})
|
|
}
|
|
}
|
|
|
|
const logOut = () => {
|
|
uni.hideTabBar()
|
|
version_loading.value = true
|
|
uni.removeStorageSync("userInfo");
|
|
uni.removeStorageSync("token");
|
|
uni.removeStorageSync("refreshToken");
|
|
uni.removeStorageSync("teamId");
|
|
uni.removeStorageSync("realNameAuthFlag");
|
|
uni.removeStorageSync("version");
|
|
loginStore.isLogin = false
|
|
setTimeout(() => {
|
|
uni.showTabBar()
|
|
version_loading.value = false
|
|
uni.reLaunch({
|
|
url: '/pages/index/index'
|
|
})
|
|
}, 2000)
|
|
|
|
}
|
|
|
|
const handle_recharge = () => {
|
|
if (now_version.value == '车队版') {
|
|
uni.setStorageSync("ispersonnel", 1);
|
|
}
|
|
uni.navigateTo({
|
|
url: '/pages/index/recharge/recharge'
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<style lang='scss' scoped>
|
|
.png {
|
|
width: 50rpx;
|
|
height: 50rpx;
|
|
}
|
|
|
|
.section {
|
|
width: 100%;
|
|
height: 100vh;
|
|
/* background: linear-gradient(180deg, #E4EFFF 0%, rgba(228, 239, 255, 0) 100%); */
|
|
background: #f3f7fa;
|
|
position: relative;
|
|
}
|
|
|
|
.titleImg {
|
|
width: 50rpx;
|
|
height: 50rpx;
|
|
}
|
|
|
|
.titleFont {
|
|
font-size: 28rpx;
|
|
color: #000;
|
|
/* margin-top: 8rpx; */
|
|
margin-left: 20rpx;
|
|
}
|
|
|
|
.cu-card>.cu-item {
|
|
margin: 0 30rpx 30rpx 30rpx;
|
|
}
|
|
|
|
.tops_view {
|
|
width: 100%;
|
|
height: 200rpx;
|
|
border-bottom-left-radius: 60rpx;
|
|
border-bottom-right-radius: 60rpx;
|
|
background: #2cc06c;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 16px;
|
|
color: #fff;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.position_cicles {
|
|
width: 120rpx;
|
|
height: 120rpx;
|
|
border-radius: 50%;
|
|
background-size: 100% 100%;
|
|
box-shadow: 1px 1px 1px #ccc;
|
|
}
|
|
|
|
.setting_position {
|
|
position: absolute;
|
|
top: 20rpx;
|
|
right: 20rpx;
|
|
}
|
|
|
|
.title_header {
|
|
display: flex;
|
|
align-items: start;
|
|
/* justify-content: space-between; */
|
|
width: 100%;
|
|
height: 440rpx;
|
|
border-bottom-left-radius: 60rpx;
|
|
border-bottom-right-radius: 60rpx;
|
|
/* background: #2cc06c; */
|
|
background-image: url('https://zzpower.net//admin-api/infra/file/4/get/99bd21413e53b2474f01e40a76d41b103a72db8aab106b2af6ffa59e3016ff80.jpg');
|
|
/* background-image: url('https://zzpower.net//admin-api/infra/file/4/get/9e7cdfed4eb3775bf248cd0ac7496cedea7a2af21a9ab384d3819dc5944dd0a1.jpg'); */
|
|
/* background-image: url('https://zzpower.net//admin-api/infra/file/4/get/dc0d69995b79fb13fe1baf61d6e2570fcabdd3e47cce7ae302d6d8e51f260834.jpg'); */
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: 100% 100%;
|
|
padding: 200rpx 30rpx 0 30rpx;
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
|
|
>view:first-child {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.position_recharge {
|
|
width: calc(100% - 60rpx);
|
|
height: 130rpx;
|
|
background: #fff;
|
|
position: absolute;
|
|
bottom: -60rpx;
|
|
border-radius: 10rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20rpx;
|
|
box-sizing: border-box;
|
|
|
|
>view:first-child {
|
|
color: #000;
|
|
}
|
|
|
|
.btn_recharge {
|
|
padding: 10rpx 20rpx;
|
|
background: linear-gradient(to right, #72ef3f, #41ce2d);
|
|
color: #fff;
|
|
border-radius: 10rpx;
|
|
font-size: 14px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.outLoginBtn {
|
|
width: calc(100% - 60rpx);
|
|
position: absolute;
|
|
bottom: 50rpx;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
}
|
|
</style> |