连云港陪玩陪聊
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.
 
 
 
 
 
 
chunwan/pages/user/index.vue

667 lines
14 KiB

<template>
<view class="user">
<view class="user-navbar">
<u-navbar :is-back="false" title="我的" :background="background">
<view slot="right">
<view class="search" @click="openPage(1)">
<image src="@/static/icon-edit.png"></image>
</view>
</view>
</u-navbar>
</view>
<view class="user-info">
<view class="a">
<view class="pic" @click="openPage(2)">
<image :src="baseUrl+userInfo.img"></image>
</view>
<view class="info" @click="openPage(2)">
<view class="name">{{userInfo.nickname}}
<view class="vip" v-if="userInfo.memberflag>=1">vip{{userInfo.memberflag}}</view>
<view class="status" v-if="userInfo.acceptStatus == 1"><text></text>接单中</view>
</view>
<view class="id">ID:{{userInfo.id}}</view>
</view>
<view class="sign" @click="openPage(3)" v-if="userInfo.isSign == 0">签到</view>
<view class="sign" v-if="userInfo.isSign == 1">已签到</view>
</view>
<view class="b">
<view class="li">{{userInfo.friendNum}}<text>好友</text></view>
<view class="li">{{userInfo.careNum}}<text>关注</text></view>
<view class="li">{{userInfo.fansNum}}<text>粉丝</text></view>
<view class="li">{{userInfo.visitorNum}}<text>访客</text></view>
</view>
<view class="c">
<view class="dt">VIP会员中心<text v-if="userInfo.memberflag>=1">{{userInfo.memberEndTime}}到期</text></view>
<view class="dd">
<view class="item">
<image src="@/static/hongbao.png"></image>
<view class="txt">每日礼包<text>福利礼包</text></view>
</view>
<view class="item">
<image src="@/static/libao.png"></image>
<view class="txt">每日礼包<text>专属特权</text></view>
</view>
</view>
</view>
<view class="d">
<view class="item">
<image src="@/static/qianbao.png"></image>我的钱包
</view>
<view class="item">
<image src="@/static/chongzhi.png"></image>充值
</view>
</view>
</view>
<view class="user-menu">
<view class="title">
我的订单
<view class="more">
全部订单
<image src="@/static/icon-arrow.png"></image>
</view>
</view>
<view class="content">
<view class="item">
<image src="@/static/icon-order-01.png"></image>待支付<view class="num">2</view>
</view>
<view class="item">
<image src="@/static/icon-order-02.png"></image>待接单
</view>
<view class="item">
<image src="@/static/icon-order-03.png"></image>已接单
</view>
<view class="item">
<image src="@/static/icon-order-04.png"></image>服务中
</view>
<view class="item">
<image src="@/static/icon-order-05.png"></image>已完成
</view>
</view>
</view>
<view class="user-menu1" v-if="userInfo.role == 2">
<view class="title">
陪玩师订单
<view class="more">
全部订单
<image src="@/static/icon-arrow.png"></image>
</view>
</view>
<view class="content">
<view class="item">
<image src="@/static/icon-order-02.png"></image>待接单<view class="num">2</view>
</view>
<view class="item">
<image src="@/static/icon-order-03.png"></image>已接单
</view>
<view class="item">
<image src="@/static/icon-order-04.png"></image>服务中
</view>
<view class="item">
<image src="@/static/icon-order-05.png"></image>已完成
</view>
</view>
</view>
<view class="user-menu1">
<view class="title">
常用功能
</view>
<view class="content">
<view class="item">
<image src="@/static/icon-user-01.png"></image>美颜设置
</view>
<view class="item">
<image src="@/static/icon-user-02.png"></image>认证中心<view v-if="userInfo.realnameFlag == 1" class="status">已认证</view>
</view>
<view class="item">
<image src="@/static/icon-user-03.png"></image>陪玩设置
</view>
<view class="item">
<image src="@/static/icon-user-04.png"></image>任务中心
</view>
</view>
</view>
<view class="user-menu1">
<view class="title">
其他
</view>
<view class="content">
<view class="item">
<image src="@/static/icon-user-05.png"></image>邀请好友
</view>
<view class="item">
<image src="@/static/icon-user-06.png"></image>我的团队
</view>
<view class="item">
<image src="@/static/icon-user-07.png"></image>系统设置
</view>
<view class="item">
<image src="@/static/icon-user-08.png"></image>帮助中心
</view>
<view class="item">
<image src="@/static/icon-user-09.png"></image>城市合作
</view>
<view class="item">
<image src="@/static/icon-user-10.png"></image>意见反馈
</view>
<view class="item">
<image src="@/static/icon-user-11.png"></image>客服
</view>
</view>
</view>
<view class="invite" v-if="show">
<view class="body">
<view class="content">
<image class="avatar" :src="userInfo.img"></image>
<view class="name">{{userInfo.id}}</view>
<image class="txt" src="@/static/txt.png"></image>
<image class="code" src="@/static/code.png"></image>
<view class="txt1">-长按识别图中二维码-</view>
<view class="id">邀请码:{{userInfo.invitationCode}}</view>
<image class="zw" src="@/static/zw.png"></image>
</view>
<view class="btns">
<view class="cancle">取消</view>
<view class="sure">保存</view>
</view>
</view>
</view>
<unverified :isPopup="isPopup" />
<insufficient :isCoins="isCoins" />
</view>
</template>
<script>
export default {
data() {
return {
isCoins: false,
isPopup: false,
show: false,
background: {
"background-color": "rgba(0, 0, 0, 0)"
},
userInfo: {},
baseUrl: ""
}
},
onShow() {
this.baseUrl = this.$baseUrl;
this.getUserInfo();
},
methods: {
openPage(index){
if(index == 1){
uni.navigateTo({
url: "/pages/users/edit/index"
})
}else if(index == 2){
uni.navigateTo({
url: "/pages/users/personal/index"
})
}
},
async getUserInfo() {
const { code, data , msg } = await this.$api.findUserInfo({userId: uni.getStorageSync("userInfo").id});
if(code == 200){
this.userInfo = data;
uni.setStorageSync("userInfo",data);
if(data.realnameFlag == 0){
this.isPopup = true
}
}else{
uni.showToast({
title: mgs,
position: "bottom",
icon: "none",
})
}
},
}
}
</script>
<style scoped lang="scss">
.user{
background: url(@/static/user-bg.png) center top no-repeat;
background-size: 100% auto;
overflow: hidden;
padding-bottom: 30rpx;
.invite{
width: 100%;
height: 100%;
position: fixed;
left: 0;
bottom: 0;
z-index: 12;
background-color: rgba(0, 0, 0, 0.6);
.body{
width: 680rpx;
height: 1200rpx;
position: absolute;
left: 50%;
top: 50%;
z-index: 2;
margin-left: -340rpx;
margin-top: -600rpx;
}
.btns{
text-align: center;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 30rpx;
.cancle{
width: 300rpx;
height: 90rpx;
background: #7B7B7B;
border-radius: 90rpx;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
line-height: 90rpx;
}
.sure{
width: 300rpx;
height: 90rpx;
background: linear-gradient(0deg, #000000, #3D3B38);
box-shadow: 0px 4rpx 18rpx 0px rgba(42,41,39,0.34);
border-radius: 90rpx;
font-size: 30rpx;
color: #FFFFFF;
line-height: 90rpx;
}
}
.content{
width: 100%;
height: 980rpx;
background: #FFFFFF;
border-radius: 20rpx;
text-align: center;
font-weight: 500;
font-size: 30rpx;
color: #333333;
padding-top: 50rpx;
.avatar{
width: 160rpx;
height: 160rpx;
display: block;
margin: 0 auto;
border-radius: 50%;
}
.name{
font-weight: 500;
font-size: 30rpx;
color: #333333;
margin-top: 30rpx;
}
.code{
width: 250rpx;
height: 250rpx;
margin: 0 auto;
margin-top: 40rpx;
image{
width: 100%;
height: 100%;
}
}
.txt{
width: 435rpx;
height: 117rpx;
display: block;
margin: 0 auto;
margin-top: 70rpx;
}
.txt1{
font-weight: 500;
font-size: 28rpx;
color: #999999;
margin-top: 10rpx;
}
.id{
font-weight: 500;
font-size: 28rpx;
color: #333333;
margin-top: 20rpx;
}
.zw{
width: 76rpx;
height: 76rpx;
margin: 0 auto;
margin-top: 40rpx;
}
}
}
&-navbar{
image{
width: 45rpx;
height: 45rpx;
margin-right: 30rpx;
}
}
&-info{
padding: 0 25rpx;
overflow: hidden;
.d{
margin-top: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
overflow: hidden;
.item{
width: 340rpx;
height: 120rpx;
background: #F9F4D8;
border-radius: 20rpx;
&:first-child{
background: #FFEADF;
}
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
font-size: 32rpx;
color: #222222;
image{
width: 70rpx;
height: 70rpx;
margin-right: 20rpx;
}
}
}
.c{
width: 100%;
height: 185rpx;
background: url(@/static/vipcardbg.png) center top no-repeat;
background-size: cover;
margin-top: 20rpx;
.dt{
font-weight: 500;
font-size: 22rpx;
color: #5B3216;
line-height: 50rpx;
padding: 0 20rpx;
text{
margin-left: 30rpx;
color: #E8BE7F;
}
}
.dd{
display: flex;
justify-content: center;
align-items: center;
margin-top: 25rpx;
.item{
display: flex;
justify-content: center;
align-items: center;
flex: 1;
font-weight: 500;
font-size: 32rpx;
color: #E8BE7F;
text{
display: block;
font-weight: 500;
font-size: 24rpx;
color: #E8BE7F;
margin-top: 10rpx;
}
}
image{
width: 70rpx;
height: 70rpx;
margin-right: 20rpx;
}
}
}
.b{
display: flex;
align-items: center;
margin-top: 30rpx;
overflow: hidden;
justify-content: space-between;
.li{
width: 120rpx;
text-align: center;
font-weight: bold;
font-size: 36rpx;
color: #222222;
text{
display: block;
font-weight: 500;
font-size: 24rpx;
color: #666666;
}
}
}
.a{
display: flex;
align-items: flex-start;
.pic{
width: 110rpx;
height: 110rpx;
margin-right: 20rpx;
image{
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.sign{
width: 100rpx;
line-height: 50rpx;
background: #000000;
border-radius: 50rpx;
text-align: center;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
margin-top: 20rpx;
}
.info{
flex: 1;
margin-top: 20rpx;
.name{
font-weight: 500;
font-size: 34rpx;
color: #222222;
display: flex;
align-items: center;
.vip{
width: 97rpx;
height: 42rpx;
line-height: 42rpx;
margin-left: 10rpx;
background: url(@/static/vipbg.png) center top no-repeat;
background-size: contain;
font-weight: 500;
font-size: 20rpx;
color: #E4C0A3;
padding-left: 45rpx;
box-sizing: border-box;
}
.status{
width: 100rpx;
line-height: 30rpx;
background: #CDF1D1;
border-radius: 30rpx;
text-align: center;
font-weight: 500;
font-size: 20rpx;
color: #27A93A;
margin-left: 15rpx;
display: flex;
align-items: center;
justify-content: center;
text{
display: block;
width: 10rpx;
height: 10rpx;
background-color: #27A93A;
border-radius: 50%;
margin-right: 10rpx;
}
}
}
.id{
font-weight: 500;
font-size: 24rpx;
color: #999999;
margin-top: 15rpx;
}
}
}
}
&-menu{
width: 700rpx;
background: #FFFFFF;
box-sizing: border-box;
border-radius: 20rpx;
margin: 0 auto;
margin-top: 20rpx;
.title{
border-bottom: 1px dashed #EAEAEA;
height: 75rpx;
display: flex;
padding: 0 20rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 500;
font-size: 30rpx;
color: #333333;
.more{
font-size: 24rpx;
color: #999999;
display: flex;
align-items: center;
image{
width: 30rpx;
height: 30rpx;
margin-left: 5rpx;
}
}
}
.content{
display: flex;
align-items: center;
justify-content: center;
padding-bottom: 20rpx;
.item{
width: 20%;
text-align: center;
font-weight: 500;
font-size: 24rpx;
color: #333333;
position: relative;
margin-top: 20rpx;
image{
width: 56rpx;
height: 56rpx;
display: block;
margin: 0 auto 10rpx;
}
.num{
width: 30rpx;
height: 30rpx;
line-height: 30rpx;
background: #FC2C2C;
border-radius: 50%;
font-weight: 500;
font-size: 18rpx;
color: #FFFFFF;
text-align: center;
position: absolute;
right: 30rpx;
top: -10rpx;
z-index: 2;
}
}
}
}
&-menu1{
width: 700rpx;
background: #FFFFFF;
box-sizing: border-box;
border-radius: 20rpx;
margin: 0 auto;
margin-top: 20rpx;
.title{
height: 75rpx;
display: flex;
padding: 0 20rpx;
box-sizing: border-box;
font-weight: 500;
font-size: 30rpx;
color: #333333;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 500;
.more{
font-size: 24rpx;
color: #999999;
display: flex;
align-items: center;
image{
width: 30rpx;
height: 30rpx;
margin-left: 5rpx;
}
}
}
.content{
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: wrap;
padding-bottom: 20rpx;
.item{
width: 25%;
text-align: center;
font-weight: 500;
font-size: 24rpx;
color: #333333;
position: relative;
margin-top: 20rpx;
image{
width: 56rpx;
height: 56rpx;
display: block;
margin: 0 auto 10rpx;
}
.num{
width: 30rpx;
height: 30rpx;
line-height: 30rpx;
background: #FC2C2C;
border-radius: 50%;
font-weight: 500;
font-size: 18rpx;
color: #FFFFFF;
text-align: center;
position: absolute;
right: 40rpx;
top: -10rpx;
z-index: 2;
}
.status{
width: 66rpx;
line-height: 26rpx;
background: #FFE7E6;
border-radius: 4px;
font-weight: 500;
font-size: 18rpx;
color: #F82C20;
text-align: center;
position: absolute;
right: 0;
top: -10rpx;
z-index: 2;
}
}
}
}
}
</style>