first commit
This commit is contained in:
684
pages/user/index.vue
Normal file
684
pages/user/index.vue
Normal file
@@ -0,0 +1,684 @@
|
||||
<template>
|
||||
<view class="new-users copy-data">
|
||||
<!-- 去掉了 :style="{height:pageHeight}" -->
|
||||
<view class="mid" style="flex: 1; overflow: hidden">
|
||||
<scroll-view scroll-y="true" style="height: 100%">
|
||||
<view class="bg"></view>
|
||||
<view class="head pad30">
|
||||
<view class="user-card">
|
||||
<view class="user-info">
|
||||
<image class="avatar" :src="userInfo.avatar" v-if="userInfo.avatar && uid" @click="goEdit()"></image>
|
||||
<image v-else class="avatar" src="/static/images/f.png" mode="" @click="goEdit()"></image>
|
||||
<view class="info">
|
||||
<view class="name" v-if="!uid" @tap="openAuto">请点击登录</view>
|
||||
<view class="name" v-if="uid">
|
||||
{{ userInfo.nickname }}
|
||||
<view class="vip" v-if="userInfo.levelRatio && userInfo.levelRatio > 0">
|
||||
<!-- <image :src="userInfo.vipIcon" alt=""> -->
|
||||
<view style="margin-left: 10rpx" class="vip-txt">{{ userInfo.levelRatioName || '' }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="userInfo.account && uid" style="color: #fff">
|
||||
{{ userInfo.account }}
|
||||
</view>
|
||||
<view class="num" v-if="userInfo.phone && uid" @click="goEdit()">
|
||||
<view class="num-txt">{{ userInfo.phone }}</view>
|
||||
<!-- <view class="icon">
|
||||
<image src="/static/images/edit.png" mode=""></image>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="phone" v-if="!userInfo.phone && isLogin" @tap="bindPhone">绑定手机号</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="num-wrapper">
|
||||
<view class="num-item" @click="goMenuPage('/pages/users/user_money/index')">
|
||||
<text class="num">{{ userInfo.nowMoney && uid ? Number(userInfo.nowMoney).toFixed(2) : 0 }}</text>
|
||||
<view class="txt">余额</view>
|
||||
</view>
|
||||
<!-- <view class="num-item" @click="goMenuPage('/pages/users/user_integral/index')">
|
||||
<text class="num">{{userInfo.integral && uid ? userInfo.integral: 0}}</text>
|
||||
<view class="txt">积分</view>
|
||||
</view>
|
||||
<view class="num-item" @click="goMenuPage('/pages/users/user_coupon/index')">
|
||||
<text class="num">{{userInfo.couponCount && uid ? userInfo.couponCount : 0}}</text>
|
||||
<view class="txt">优惠券</view>
|
||||
</view> -->
|
||||
<view class="num-item" @click="goMenuPage('/pages/users/user_goods_collection/index')">
|
||||
<text class="num">{{ userInfo.collectCount && uid ? userInfo.collectCount : 0 }}</text>
|
||||
<view class="txt">收藏</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="sign" @click="goSignIn">签到</view> -->
|
||||
</view>
|
||||
<view class="order-wrapper">
|
||||
<view class="order-hd flex">
|
||||
<view class="left">订单中心</view>
|
||||
<navigator class="right flex" hover-class="none" url="/pages/users/order_list/index" open-type="navigate">
|
||||
查看全部
|
||||
<text class="iconfont icon-xiangyou"></text>
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="order-bd">
|
||||
<block v-for="(item, index) in orderMenu" :key="index">
|
||||
<navigator class="order-item" hover-class="none" :url="item.url">
|
||||
<view class="pic">
|
||||
<image :src="item.img" mode=""></image>
|
||||
<text class="order-status-num" v-if="item.num > 0">{{ item.num }}</text>
|
||||
</view>
|
||||
<view class="txt">{{ item.title }}</view>
|
||||
</navigator>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="contenBox">
|
||||
<!-- 轮播 -->
|
||||
<view class="slider-wrapper" v-if="imgUrls.length > 0">
|
||||
<swiper
|
||||
indicator-dots="true"
|
||||
:autoplay="autoplay"
|
||||
:circular="circular"
|
||||
:interval="interval"
|
||||
:duration="duration"
|
||||
indicator-color="rgba(255,255,255,0.6)"
|
||||
indicator-active-color="#fff"
|
||||
>
|
||||
<block v-for="(item, index) in imgUrls" :key="index">
|
||||
<swiper-item class="borRadius14">
|
||||
<image :src="item.pic" class="slide-image" @click="navito(item.url)"></image>
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
</view>
|
||||
|
||||
<!-- 会员菜单 -->
|
||||
<view class="user-menus" style="margin-top: 20rpx">
|
||||
<view class="menu-title">我的服务</view>
|
||||
<view class="list-box">
|
||||
<block v-for="(item, index) in MyMenus" :key="index">
|
||||
<navigator
|
||||
class="item"
|
||||
:url="item.url"
|
||||
hover-class="none"
|
||||
v-if="!(item.url == '/pages/service/index' || (item.url == '/pages/users/user_spread_user/index' && !userInfo.isPromoter))"
|
||||
>
|
||||
<image :src="item.pic"></image>
|
||||
<text>{{ item.name }}</text>
|
||||
</navigator>
|
||||
</block>
|
||||
<!-- #ifndef MP -->
|
||||
<view class="item" @click="kefuClick">
|
||||
<image :src="servicePic"></image>
|
||||
<text>联系客服</text>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP -->
|
||||
<button class="item" open-type="contact" hover-class="none">
|
||||
<image :src="servicePic"></image>
|
||||
<text>联系客服</text>
|
||||
</button>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</view>
|
||||
<view style="height: 30rpx"></view>
|
||||
<view v-if="userInfo.spreadAccount && uid" style="background-color: #ffffff; padding: 20rpx; border-radius: 10rpx">
|
||||
<view>邀请人:{{ userInfo.spreadAccount }}</view>
|
||||
</view>
|
||||
<view style="height: 30rpx"></view>
|
||||
<view v-if="userInfo.qrCode && uid" style="background-color: #f6faff; padding: 30rpx; border-radius: 10rpx">
|
||||
<view>
|
||||
<view style="font-size: 30rpx; color: #999999; text-align: center; margin-bottom: 20rpx">
|
||||
邀请码:{{ userInfo.shareCode }}
|
||||
<text style="text-decoration: underline; margin-left: 30rpx" @click="copy(userInfo.shareCode)">复制</text>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: center">
|
||||
<u-image :src="userInfo.qrCode" radius="20rpx" width="440rpx" height="440rpx" mode="widthFix"></u-image>
|
||||
</view>
|
||||
<view style="height: 10rpx"></view>
|
||||
<view style="font-size: 30rpx; color: #999999; text-align: center">长按保存或者转发</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <image src="/static/images/support.png" alt="" class='support'> -->
|
||||
<view class="uni-p-b-98"></view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<!-- #ifdef MP -->
|
||||
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
|
||||
import Cache from '@/utils/cache';
|
||||
import { BACK_URL } from '@/config/cache';
|
||||
import { getMenuList } from '@/api/user.js';
|
||||
import { orderData } from '@/api/order.js';
|
||||
import { toLogin } from '@/libs/login.js';
|
||||
import { getCity } from '@/api/api.js';
|
||||
import { mapGetters } from 'vuex';
|
||||
// #ifdef MP
|
||||
import authorize from '@/components/Authorize';
|
||||
// #endif
|
||||
const app = getApp();
|
||||
export default {
|
||||
components: {
|
||||
// #ifdef MP
|
||||
authorize
|
||||
// #endif
|
||||
},
|
||||
computed: mapGetters(['isLogin', 'chatUrl', 'userInfo', 'uid']),
|
||||
data() {
|
||||
return {
|
||||
orderMenu: [
|
||||
{
|
||||
img: '/static/images/order1.png',
|
||||
title: '待付款',
|
||||
url: '/pages/users/order_list/index?status=0',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
img: '/static/images/order2.png',
|
||||
title: '待发货',
|
||||
url: '/pages/users/order_list/index?status=1',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
img: '/static/images/order3.png',
|
||||
title: '待收货',
|
||||
url: '/pages/users/order_list/index?status=2',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
img: '/static/images/order4.png',
|
||||
title: '待评价',
|
||||
url: '/pages/users/order_list/index?status=3',
|
||||
num: 0
|
||||
},
|
||||
{
|
||||
img: '/static/images/order5.png',
|
||||
title: '售后/退款',
|
||||
url: '/pages/users/user_return_list/index',
|
||||
num: 0
|
||||
}
|
||||
],
|
||||
imgUrls: [],
|
||||
userMenu: [],
|
||||
autoplay: true,
|
||||
circular: true,
|
||||
interval: 3000,
|
||||
duration: 500,
|
||||
isAuto: false, //没有授权的不会自动授权
|
||||
isShowAuth: false, //是否隐藏授权
|
||||
orderStatusNum: {},
|
||||
MyMenus: [],
|
||||
wechatUrl: [],
|
||||
servicePic: '/static/images/customer.png',
|
||||
sysHeight: sysHeight,
|
||||
// #ifdef MP
|
||||
pageHeight: '100%',
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
pageHeight: app.globalData.windowHeight
|
||||
// #endif
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
let that = this;
|
||||
// #ifdef H5
|
||||
that.$set(that, 'pageHeight', app.globalData.windowHeight);
|
||||
// #endif
|
||||
that.$set(that, 'MyMenus', app.globalData.MyMenus);
|
||||
if (!this.$Cache.has('cityList')) this.getCityList();
|
||||
if (that.isLogin == false) {
|
||||
// #ifdef H5
|
||||
toLogin();
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
onShow: function () {
|
||||
let that = this;
|
||||
// #ifdef H5
|
||||
uni.getSystemInfo({
|
||||
success: function (res) {
|
||||
that.pageHeight = res.windowHeight + 'px';
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
if (that.isLogin) {
|
||||
this.getMyMenus();
|
||||
// this.setVisit();
|
||||
this.getOrderData();
|
||||
this.$store.dispatch('USERINFO');
|
||||
} else {
|
||||
toLogin();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
copy(e) {
|
||||
uni.setClipboardData({
|
||||
data: e,
|
||||
success: function () {}
|
||||
});
|
||||
},
|
||||
// 记录会员访问
|
||||
// setVisit(){
|
||||
// setVisit({
|
||||
// url:'/pages/user/index'
|
||||
// }).then(res=>{})
|
||||
// },
|
||||
navito(e) {
|
||||
window.location.href = 'https://' + e;
|
||||
},
|
||||
kefuClick() {
|
||||
location.href = this.chatUrl;
|
||||
},
|
||||
getOrderData() {
|
||||
let that = this;
|
||||
orderData().then((res) => {
|
||||
that.orderMenu.forEach((item, index) => {
|
||||
switch (item.title) {
|
||||
case '待付款':
|
||||
item.num = res.data.unPaidCount;
|
||||
break;
|
||||
case '待发货':
|
||||
item.num = res.data.unShippedCount;
|
||||
break;
|
||||
case '待收货':
|
||||
item.num = res.data.receivedCount;
|
||||
break;
|
||||
case '待评价':
|
||||
item.num = res.data.evaluatedCount;
|
||||
break;
|
||||
case '售后/退款':
|
||||
item.num = res.data.refundCount;
|
||||
break;
|
||||
}
|
||||
});
|
||||
that.$set(that, 'orderMenu', that.orderMenu);
|
||||
});
|
||||
},
|
||||
// 打开授权
|
||||
openAuto() {
|
||||
Cache.set(BACK_URL, '');
|
||||
toLogin();
|
||||
},
|
||||
// 授权回调
|
||||
onLoadFun() {
|
||||
this.getMyMenus();
|
||||
// this.setVisit();
|
||||
this.getOrderData();
|
||||
},
|
||||
Setting: function () {
|
||||
uni.openSetting({
|
||||
success: function (res) {
|
||||
console.log(res.authSetting);
|
||||
}
|
||||
});
|
||||
},
|
||||
// 授权关闭
|
||||
authColse: function (e) {
|
||||
this.isShowAuth = e;
|
||||
},
|
||||
// 绑定手机
|
||||
bindPhone() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/app_login/index'
|
||||
});
|
||||
},
|
||||
/**
|
||||
*
|
||||
* 获取个人中心图标
|
||||
*/
|
||||
getMyMenus: function () {
|
||||
let that = this;
|
||||
if (this.MyMenus.length) return;
|
||||
getMenuList().then((res) => {
|
||||
that.$set(that, 'MyMenus', res.data.routine_my_menus);
|
||||
that.wechatUrl = res.data.routine_my_menus.filter((item) => {
|
||||
return item.url.indexOf('service') !== -1;
|
||||
});
|
||||
res.data.routine_my_menus.map((item) => {
|
||||
if (item.url.indexOf('service') !== -1) that.servicePic = item.pic;
|
||||
});
|
||||
if (res.data.routine_my_banner) {
|
||||
that.imgUrls = res.data.routine_my_banner;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 编辑页面
|
||||
goEdit() {
|
||||
if (this.isLogin == false) {
|
||||
toLogin();
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/user_info/index'
|
||||
});
|
||||
}
|
||||
},
|
||||
// 签到
|
||||
goSignIn() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/users/user_sgin/index'
|
||||
});
|
||||
},
|
||||
// goMenuPage
|
||||
goMenuPage(url) {
|
||||
uni.navigateTo({
|
||||
url
|
||||
});
|
||||
},
|
||||
// 获取地址数据
|
||||
getCityList: function () {
|
||||
let that = this;
|
||||
getCity().then((res) => {
|
||||
let oneDay = 24 * 3600 * 1000;
|
||||
this.$Cache.setItem({
|
||||
name: 'cityList',
|
||||
value: res.data,
|
||||
expires: oneDay * 7
|
||||
}); //设置七天过期时间
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
page,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.bg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 420rpx;
|
||||
background-image: url('~@/static/images/user_bg.png');
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.contenBox {
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
|
||||
.support {
|
||||
width: 219rpx;
|
||||
height: 74rpx;
|
||||
margin: 54rpx auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.new-users {
|
||||
//margin-top: var(--status-bar-height);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
|
||||
.sys-head {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
background: linear-gradient(90deg, $bg-star1 0%, $bg-end1 100%);
|
||||
|
||||
.sys-title {
|
||||
z-index: 10;
|
||||
position: relative;
|
||||
height: 43px;
|
||||
text-align: center;
|
||||
line-height: 43px;
|
||||
font-size: 36rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.head {
|
||||
background: linear-gradient(360deg, rgba(255, 121, 49, 0) 0%, rgba(248, 74, 29, 0.82) 39%, #e93323 100%);
|
||||
// padding: 0 30rpx;
|
||||
|
||||
.user-card {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
padding: 35rpx 0 30rpx 0;
|
||||
.user-info {
|
||||
z-index: 20;
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
||||
.avatar {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-left: 20rpx;
|
||||
padding: 15rpx 0;
|
||||
|
||||
.name {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
font-size: 31rpx;
|
||||
|
||||
.vip {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 6rpx 20rpx;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 18px;
|
||||
font-size: 20rpx;
|
||||
margin-left: 12rpx;
|
||||
|
||||
image {
|
||||
width: 27rpx;
|
||||
height: 27rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.num {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 26rpx;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
|
||||
image {
|
||||
width: 22rpx;
|
||||
height: 23rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.num-wrapper {
|
||||
z-index: 30;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 30rpx;
|
||||
color: #fff;
|
||||
|
||||
.num-item {
|
||||
width: 33.33%;
|
||||
text-align: center;
|
||||
|
||||
.num {
|
||||
font-size: 42rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.txt {
|
||||
margin-top: 10rpx;
|
||||
font-size: 26rpx;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sign {
|
||||
z-index: 200;
|
||||
position: absolute;
|
||||
right: -12rpx;
|
||||
top: 80rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 120rpx;
|
||||
height: 60rpx;
|
||||
background: linear-gradient(90deg, rgba(255, 225, 87, 1) 0%, rgba(238, 193, 15, 1) 100%);
|
||||
border-radius: 29rpx 4rpx 4rpx 29rpx;
|
||||
color: #282828;
|
||||
font-size: 28rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.order-wrapper {
|
||||
background-color: #fff;
|
||||
border-radius: 14rpx;
|
||||
padding: 30rpx 16rpx;
|
||||
position: relative;
|
||||
z-index: 11;
|
||||
|
||||
.order-hd {
|
||||
justify-content: space-between;
|
||||
font-size: 30rpx;
|
||||
color: #282828;
|
||||
margin-bottom: 40rpx;
|
||||
padding: 0 16rpx;
|
||||
|
||||
.left {
|
||||
color: #282828;
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.right {
|
||||
align-items: center;
|
||||
color: #666666;
|
||||
font-size: 26rpx;
|
||||
|
||||
.icon-xiangyou {
|
||||
margin-left: 5rpx;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.order-bd {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0;
|
||||
|
||||
.order-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.pic {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
|
||||
image {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.txt {
|
||||
margin-top: 15rpx;
|
||||
font-size: 26rpx;
|
||||
color: #454545;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.slider-wrapper {
|
||||
margin: 20rpx 0;
|
||||
height: 138rpx;
|
||||
|
||||
swiper,
|
||||
swiper-item {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.user-menus {
|
||||
background-color: #fff;
|
||||
border-radius: 14rpx;
|
||||
|
||||
.menu-title {
|
||||
padding: 30rpx 30rpx 40rpx;
|
||||
font-size: 30rpx;
|
||||
color: #282828;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.list-box {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex-direction: column;
|
||||
width: 25%;
|
||||
margin-bottom: 47rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
|
||||
image {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
margin-bottom: 18rpx;
|
||||
}
|
||||
|
||||
&:last-child::before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.phone {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.order-status-num {
|
||||
min-width: 12rpx;
|
||||
background-color: #fff;
|
||||
color: #ee5a52;
|
||||
border-radius: 15px;
|
||||
position: absolute;
|
||||
right: -14rpx;
|
||||
top: -15rpx;
|
||||
font-size: 20rpx;
|
||||
padding: 0 8rpx;
|
||||
border: 1px solid #ee5a52;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
378
pages/user/wall.vue
Normal file
378
pages/user/wall.vue
Normal file
@@ -0,0 +1,378 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="my-account">
|
||||
<view class="wrapper">
|
||||
<view class="header">
|
||||
<view class="headerCon">
|
||||
<view class="account acea-row row-top row-between">
|
||||
<view class="assets">
|
||||
<view>总资产(元)</view>
|
||||
<view class="money">{{ statistics.nowMoney || 0 }}</view>
|
||||
</view>
|
||||
<!-- #ifdef H5 -->
|
||||
<navigator url="/pages/users/user_payment/index" hover-class="none" class="recharge font-color">充值</navigator>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP -->
|
||||
<view v-if="userInfo.rechargeSwitch" @click="openSubscribe('/pages/users/user_payment/index')" class="recharge font-color">充值</view>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
<view class="cumulative acea-row row-top">
|
||||
<!-- #ifdef H5 -->
|
||||
<view class="item">
|
||||
<view>累计充值(元)</view>
|
||||
<view class="money">{{ statistics.recharge || 0 }}</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP -->
|
||||
<view class="item" v-if="userInfo.rechargeSwitch">
|
||||
<view>累计充值(元)</view>
|
||||
<view class="money">{{ statistics.recharge || 0 }}</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<view class="item">
|
||||
<view>累计消费(元)</view>
|
||||
<view class="money">{{ statistics.orderStatusSum || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="nav acea-row row-middle">
|
||||
<navigator class="item" hover-class="none" url="/pages/users/user_bill/index?type=all">
|
||||
<view class="pictrue">
|
||||
<image src="../../../static/images/record1.png"></image>
|
||||
</view>
|
||||
<view>账单记录</view>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="none" url="/pages/users/user_bill/index?type=expenditure">
|
||||
<view class="pictrue">
|
||||
<image src="../../../static/images/record2.png"></image>
|
||||
</view>
|
||||
<view>消费记录</view>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="none" url="/pages/users/user_bill/index?type=income" v-if="userInfo.rechargeSwitch">
|
||||
<view class="pictrue">
|
||||
<image src="../../../static/images/record3.png"></image>
|
||||
</view>
|
||||
<view>充值记录</view>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="none" url="/pages/users/user_integral/index">
|
||||
<view class="pictrue">
|
||||
<image src="../../../static/images/record4.png"></image>
|
||||
</view>
|
||||
<view>积分中心</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #ifdef MP -->
|
||||
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> -->
|
||||
<!-- #endif -->
|
||||
<home></home>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getProductHot } from '@/api/store.js';
|
||||
import { openRechargeSubscribe } from '@/utils/SubscribeMessage.js';
|
||||
import { userActivity, getuserDalance } from '@/api/user.js';
|
||||
import { toLogin } from '@/libs/login.js';
|
||||
import { mapGetters } from 'vuex';
|
||||
import recommend from '@/components/recommend/index';
|
||||
// #ifdef MP
|
||||
import authorize from '@/components/Authorize';
|
||||
// #endif
|
||||
import home from '@/components/home';
|
||||
export default {
|
||||
components: {
|
||||
recommend,
|
||||
// #ifdef MP
|
||||
authorize,
|
||||
// #endif
|
||||
home
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hostProduct: [],
|
||||
isClose: false,
|
||||
activity: {},
|
||||
isAuto: false, //没有授权的不会自动授权
|
||||
isShowAuth: false, //是否隐藏授权
|
||||
hotScroll: false,
|
||||
statistics: {},
|
||||
hotPage: 1,
|
||||
hotLimit: 10
|
||||
};
|
||||
},
|
||||
computed: mapGetters(['isLogin', 'userInfo']),
|
||||
watch: {
|
||||
isLogin: {
|
||||
handler: function (newV, oldV) {
|
||||
if (newV) {
|
||||
this.get_host_product();
|
||||
this.get_activity();
|
||||
this.userDalance();
|
||||
}
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
if (this.isLogin) {
|
||||
this.get_host_product();
|
||||
this.get_activity();
|
||||
this.userDalance();
|
||||
} else {
|
||||
toLogin();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onLoadFun: function () {
|
||||
this.get_host_product();
|
||||
this.get_activity();
|
||||
this.userDalance();
|
||||
},
|
||||
userDalance() {
|
||||
getuserDalance().then((res) => {
|
||||
this.statistics = res.data;
|
||||
});
|
||||
},
|
||||
// 授权关闭
|
||||
authColse: function (e) {
|
||||
this.isShowAuth = e;
|
||||
},
|
||||
// #ifdef MP
|
||||
openSubscribe: function (page) {
|
||||
uni.showLoading({
|
||||
title: '正在加载'
|
||||
});
|
||||
openRechargeSubscribe()
|
||||
.then((res) => {
|
||||
uni.hideLoading();
|
||||
uni.navigateTo({
|
||||
url: page
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
uni.hideLoading();
|
||||
});
|
||||
},
|
||||
// #endif
|
||||
/**
|
||||
* 获取活动可参与否
|
||||
*/
|
||||
get_activity: function () {
|
||||
// let that = this;
|
||||
// userActivity().then(res => {
|
||||
// that.$set(that, "activity", res.data);
|
||||
// })
|
||||
},
|
||||
/**
|
||||
* 获取我的推荐
|
||||
*/
|
||||
get_host_product: function () {
|
||||
let that = this;
|
||||
if (that.hotScroll) return;
|
||||
getProductHot(that.hotPage, that.hotLimit).then((res) => {
|
||||
that.hotPage++;
|
||||
that.hotScroll = res.data.list.length < that.hotLimit;
|
||||
that.hostProduct = that.hostProduct.concat(res.data.list);
|
||||
});
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
this.get_host_product();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.my-account .wrapper {
|
||||
background-color: #fff;
|
||||
padding: 32rpx 0 15rpx 0;
|
||||
margin-bottom: 14rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header {
|
||||
width: 690rpx;
|
||||
height: 330rpx;
|
||||
background-image: linear-gradient(to right, #f33b2b 0%, #f36053 100%);
|
||||
border-radius: 16rpx;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon {
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAAFKCAYAAADhULxpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzMUM4RDlEM0YxNTExRTk4OUJFQ0Q4Qjg0RDBCMzQ1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzMUM4RDlFM0YxNTExRTk4OUJFQ0Q4Qjg0RDBCMzQ1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTMxQzhEOUIzRjE1MTFFOTg5QkVDRDhCODREMEIzNDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTMxQzhEOUMzRjE1MTFFOTg5QkVDRDhCODREMEIzNDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ymvxvAAAIhklEQVR42uzd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');
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 36rpx 0 29rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .account {
|
||||
padding: 0 35rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .account .assets .money {
|
||||
font-size: 72rpx;
|
||||
color: #fff;
|
||||
font-family: 'Guildford Pro';
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .account .recharge {
|
||||
font-size: 28rpx;
|
||||
width: 150rpx;
|
||||
height: 54rpx;
|
||||
border-radius: 27rpx;
|
||||
background-color: #fff9f8;
|
||||
text-align: center;
|
||||
line-height: 54rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .cumulative {
|
||||
margin-top: 46rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .cumulative .item {
|
||||
flex: 1;
|
||||
padding-left: 35rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .header .headerCon .cumulative .item .money {
|
||||
font-size: 48rpx;
|
||||
font-family: 'Guildford Pro';
|
||||
color: #fff;
|
||||
margin-top: 6rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .nav {
|
||||
height: 155rpx;
|
||||
border-bottom: 1rpx solid #f5f5f5;
|
||||
}
|
||||
|
||||
.my-account .wrapper .nav .item {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.my-account .wrapper .nav .item .pictrue {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .nav .item .pictrue image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert {
|
||||
padding: 0 30rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item {
|
||||
background-color: #fff6d1;
|
||||
width: 332rpx;
|
||||
height: 118rpx;
|
||||
border-radius: 10rpx;
|
||||
padding: 0 27rpx 0 25rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 24rpx;
|
||||
color: #e44609;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item.on {
|
||||
background-color: #fff3f3;
|
||||
color: #e96868;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item .pictrue {
|
||||
width: 78rpx;
|
||||
height: 78rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item .pictrue image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item .text .name {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #f33c2b;
|
||||
margin-bottom: 7rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .advert .item.on .text .name {
|
||||
color: #f64051;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list {
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item {
|
||||
margin-top: 44rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt .iconfont {
|
||||
width: 82rpx;
|
||||
height: 82rpx;
|
||||
border-radius: 50%;
|
||||
background-image: linear-gradient(to right, #ff9389 0%, #f9776b 100%);
|
||||
text-align: center;
|
||||
line-height: 82rpx;
|
||||
color: #fff;
|
||||
font-size: 40rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt .iconfont.yellow {
|
||||
background-image: linear-gradient(to right, #ffccaa 0%, #fea060 100%);
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt .iconfont.green {
|
||||
background-image: linear-gradient(to right, #a1d67c 0%, #9dd074 100%);
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt {
|
||||
width: 428rpx;
|
||||
font-size: 30rpx;
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt .text {
|
||||
width: 317rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .picTxt .text .infor {
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .bnt {
|
||||
font-size: 26rpx;
|
||||
color: #282828;
|
||||
width: 156rpx;
|
||||
height: 52rpx;
|
||||
border: 1rpx solid #ddd;
|
||||
border-radius: 26rpx;
|
||||
text-align: center;
|
||||
line-height: 52rpx;
|
||||
}
|
||||
|
||||
.my-account .wrapper .list .item .bnt.end {
|
||||
font-size: 26rpx;
|
||||
color: #aaa;
|
||||
background-color: #f2f2f2;
|
||||
border-color: #f2f2f2;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user