<template> <view class="container"> <view class="vheigh"></view> <view class="top-image"> </view> <!-- #ifdef H5 --> <view class="user-set flex"> </view> <!-- #endif --> <view class="user-wrap"> <view class="info-left flex"> <view class="user-name"> <image :src="userInfo.avatar || '../../static/error/missing-face.png'" mode=""></image> <view class="user-font"> <view class="name clamp">{{ userInfo.nickname || '游客' }}</view> <view class="phone" v-if="isPhone">{{ getPhone }}</view> <!-- <view class="phone" ></view> --> <view class="phone" v-if="userInfo.uid">UID:{{ userInfo.uid }} {{getFh}}</view> <view class="phone" v-if="userInfo.uid">累计佣金:{{userInfo.sum_brokerage}}</view> </view> </view> <view class="kpi" v-show="userInfo.uid && userInfo.level!=0"> <image style="width: 34rpx; height: 34rpx; margin-right: 8rpx;" src="../../static/icon/vip.png" mode=""></image> <span v-if="userInfo.is_bonus==1">联合创始人</span><span v-else><span>{{userInfo.is_vip==1?'钻石':''}}</span>VIP</span> </view> </view> <view class="info-right"> <view class="item-item" @click="navTo('/pages/money/wallet')"> <view class="item-num">{{ userInfo.now_money || 0}}</view> <view class="item-font">我的钱包</view> </view> <view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;"> </view> <view class="item-item" @click="navTo('/user/page/cash')"> <view class="item-num">{{userInfo.brokerage_price || '0'}}</view> <view class="item-font">我的佣金</view> </view> <view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;"> </view> <view class="item-item" @click="navTo('/user/page/team')"> <view class="item-num">{{all || '0'}}</view> <view class="item-font">我的推广</view> </view> </view> </view> <view class="haoyue-box"> <view class="vip-box"> <view class="box-top"> 积分 </view> <view class="box-bottom"> {{userInfo.vip_point || '0'}} </view> </view> <view class="vip-box"> <view class="box-top"> 个人消费金额 </view> <view class="box-bottom"> {{(userInfo.self_achievement || 0).toFixed(2) || 0}} </view> </view> <view class="vip-box"> <view class="box-top"> 团队累计金额 </view> <view class="box-bottom"> {{(userInfo.group_achievement || 0).toFixed(2) || 0}} </view> </view> <!-- <view class="item-item"> <view class="item-font">积分</view> <view class="item-num">{{userInfo.vip_point || '0'}}</view> </view> --> <!-- <view class="item-item"> <view class="item-font">个人消费金额</view> <view class="item-num">{{(userInfo.self_achievement || 0).toFixed(2) || 0}}</view> </view> <view class="item-item"> <view class="item-font">团队累计金额</view> <view class="item-num">{{(userInfo.group_achievement || 0).toFixed(2) || 0}}</view> </view> --> </view> <view class="main-box"> <view class="title flex" @click="navTo('/pages/order/order?state=0')"> <view class="title-left"> <image class="title-icon" src="../../static/user/user10.png" mode=""></image> <view class="title-font">我的订单</view> </view> <image class="title-right" src="../../static/user/user04.png" mode=""></image> </view> <view class="main flex"> <view class="oitem" @click="navTo('/pages/order/order?state=0')"> <image class="oitem-image" src="../../static/user/user01.png" mode=""></image> <view class="oitem-font">待付款</view> </view> <view class="oitem" @click="navTo('/pages/order/order?state=1')"> <image class="oitem-image" src="../../static/user/user03.png" mode=""></image> <view class="oitem-font">待发货</view> </view> <view class="oitem" @click="navTo('/pages/order/order?state=2')"> <image class="oitem-image" src="../../static/user/user02.png" mode=""></image> <view class="oitem-font">待收货</view> </view> <view class="oitem" @click="navTo('/pages/order/order?state=3')"> <image class="oitem-image" src="../../static/user/user07.png" mode=""></image> <view class="oitem-font">已完成</view> </view> </view> </view> <!-- #ifndef MP-WEIXIN --> <view class="main-box yulan" v-if="liulan.length>0"> <view class="title flex"> <view class="title-left"> <image class="title-icon" src="../../static/user/user10.png" mode=""></image> <view class="title-font">我的销售</view> </view> <image class="title-right" mode=""></image> </view> <view class="main flex"> <mosowe-swiper :lists="liulan" :touchable="true" vertical imageKey="avatar" textKey="nickname" imageshop="image" name="pname" time='add_time' swiperType="imageTextLine" :height="80"></mosowe-swiper> </view> </view> <!-- #endif --> <uni-list class="tool-list"> <uni-list-item title="vip积分充值" @click="navTo('/pages/money/vipRecharge')" thumb="/static/user/user18.png"> </uni-list-item> <uni-list-item title="我的优惠券" @click="navTo('/user/page/myCoupon')" thumb="/static/user/g-2.png"> </uni-list-item> <uni-list-item v-if="userInfo.hx>0" title="门店管理" @click="navTo('/user/page/merchant/merchant')" thumb="/index/static/tabBar/tab-cate-current.png"> </uni-list-item> <uni-list-item title="推广中心" @click="navToo('/user/page/user_promotion')" thumb="/static/user/user08.png"> </uni-list-item> <uni-list-item title="我的收藏" @click="navTo('/user/page/favorites')" thumb="/static/user/user11.png"> </uni-list-item> <uni-list-item title="客服中心" @click="openKf()" thumb="/static/user/user09.png"></uni-list-item> <uni-list-item title="设置" @click="navTo('/pages/set/userinfo')" thumb="/static/user/user13.png"></uni-list-item> </uni-list> <uni-popup ref="popupkf" type="center"> <view class="popup-box"> <view class="img"> <image src="https://hy.liuniu946.com/app/img/img009.png" mode=""></image> </view> <view class="mian"> <view class="delivery"> <view class="title">已经为您定制专属客服</view> <image src="https://hy.liuniu946.com/app/img/img010.png" mode=""></image> </view> <view class="nocancel">客服VX:{{userInfo.wxid}}</view> <view class="comfirm-box"> <view class="cancel" @click="cancel">取消</view> <view class="comfirm" @click="comfirm(userInfo.wxid)">复制微信</view> </view> </view> </view> </uni-popup> </view> </template> <script> import { tabbar1 } from '@/utils/tabbar.js'; import { mapState, mapMutations } from 'vuex'; import uniList from '@/components/uni-list/uni-list.vue'; import uniListItem from '@/components/uni-list-item/uni-list-item.vue'; import mosoweSwiper from '@/components/mosowe-swiper/mosowe-swiper.vue' import { getbrowse, orderData, getUserInfo, myspread, getUser } from '@/api/user.js'; import { saveUrl, interceptor } from '@/utils/loginUtils.js'; let startY = 0, moveY = 0, pageAtTop = true; export default { components: { mosoweSwiper, uniList, uniListItem }, ...mapState('user', ['hasLogin', 'userInfo']), data() { return { liulan:[], isPhone: false, all: 0, //推荐人数 current: 4, tabbar: tabbar1, qded: false, //是否已签到 text: '', //客服微信 today_integral: '', //签到获得的数值 today_type: '', //签到获得的数值单位 tom_integral: '', //明天签到获得的数值 tom_type: '', //签到获得的数值单位 userDowm: 0, //卡片升级专属高度 userMaxDowm: 0, //卡片最高高度 toolList: [{ id: 't1', name: '新人通道', width: '56rpx', heigt: '54rpx', img: '../../static/icon/tool-1.png', path: '/user/page/xrtd' }, { id: 't2', name: '邀请好友', width: '56rpx', heigt: '57rpx', img: '../../static/icon/tool-2.png', path: '/user/page/shareQrCode' }, { id: 't3', name: '我的粉丝', width: '68rpx', heigt: '53rpx', img: '../../static/icon/tool-3.png', path: '/user/page/myfans' }, { id: 't4', name: '我的订单', width: '55rpx', heigt: '54rpx', img: '../../static/icon/tool-4.png', path: '/pages/order/order' }, { id: 't5', name: '我的商品', width: '50rpx', heigt: '58rpx', img: '../../static/icon/tool-5.png', path: '/pages/order/order' }, { id: 't6', name: '馆长申请', width: '59rpx', heigt: '56rpx', img: '../../static/icon/tool-6.png', path: '/user/page/gzsq' } ] }; }, onShow() { // 判断是否已经登录 if (this.hasLogin) { this.loadBaseData(); myspread({}).then(({ data }) => { console.log(data, '推荐人'); this.all = data.total; }) getbrowse().then(e=>{ console.log(e,'888888888888888888888888') this.liulan=e.data console.log(this.liulan) }) }else { this.loadBaseData(); } }, onReady() { // 初始化获取页面宽度 uni.createSelectorQuery() .select('.container') .fields({ size: true }, data => { // 计算最多下拉的高度 this.userDowm = Math.floor((data.width / 750) * 185); // 计算最大触发修改高度事件 this.userMaxDowm = Math.floor((data.width / 750) * 250); } ) .exec(); }, computed: { ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']), getPhone() { if (this.userInfo.phone) { this.isPhone = true let reg = /^(\d{3})\d{4}(\d{4})$/; return this.userInfo.phone.replace(reg, '$1****$2') } else { this.isPhone = false } }, getFh() { //具体分红权益 return this.userInfo.vipsum } }, methods: { ...mapMutations('user', ['setUserInfo', 'setOrderInfo']), shaoma() { uni.scanCode({ success(e) { console.log(e,'e++++++++++++') } }); }, // 加载初始数据 loadBaseData() { console.log(this.userInfo, 'info'); getUserInfo({}) .then(({ data }) => { this.setUserInfo(data); // 获取用户数据完毕后在获取订单数据防止多次跳转到登录页 orderData({}) .then(({ data }) => { this.setOrderInfo(data); }) .catch(e => { this.setOrderInfo({ complete_count: 0, //完成 received_count: 0, //待收货 unshipped_count: 0, //待发货 order_count: 0, //订单总数 unpaid_count: 0 //待付款 }); }); let a = uni.getStorageSync( 'jynickname' ) if (a == 1 && this.userInfo.nickname == '微信用户') { uni.setStorageSync('jynickname', 2) uni.showModal({ title: '提示', content: '您的昵称为默认昵称“微信用户”,是否立即修改?', complete(res) { if (res.confirm) { uni.navigateTo({ url: '/pages/set/userinfo' }) } } }) } }) .catch(e => { console.log(e); }); }, /** * 统一跳转接口,拦截未登录路由 * navigator标签现在默认没有转场动画,所以用view */ navTo(url) { console.log(url); let pages = getCurrentPages(); console.log(pages, 'pages'); let prevPage = pages[pages.length - 2] console.log(prevPage, 'pages2'); // if (!this.hasLogin) { // // 保存地址 // saveUrl(); // // 登录拦截 // interceptor(); // } else { uni.navigateTo({ url }); // } }, navToo(url) { // let pages = getCurrentPages(); // console.log(pages, 'pages'); // let prevPage = pages[pages.length - 2] // console.log(prevPage, 'pages2'); if (this.userInfo.is_promoter != 0) { uni.navigateTo({ url }); } else { this.$api.msg('需下单后成为推广员方可推广!') } }, useTool(e) { this.navTo(e.path); }, // 签到弹窗 goQd() { this.$refs.popupqd.open(); this.qded = true; }, // 关闭签到弹窗 closeQd() { this.$refs.popupqd.close(); }, // 打开客服 openKf() { this.$refs.popupkf.open(); }, // 关闭客服 cancel() { this.$refs.popupkf.close(); }, comfirm(e) { console.log(e) uni.setClipboardData({ data: e, success: function() { console.log('复制成功'); } }); } } }; </script> <style lang="scss"> /* #ifdef MP-WEIXIN */ .tool-list { width:80% !important; margin: auto; margin-top: 20rpx; background: #ffffff; box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06); border-radius: 20rpx; } /* #endif */ /* #ifdef H5 */ .tool-list { width:690rpx; margin: auto; margin-top: 20rpx; background: #ffffff; box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06); border-radius: 20rpx; } /* #endif */ .mosowe-swiper{ height: 240rpx; } .yulan{ overflow: hidden; height: 240rpx; } %flex-center { display: flex; flex-direction: column; justify-content: center; align-items: center; } %section { display: flex; justify-content: space-around; align-content: center; background: #fff; border-radius: 10rpx; } .container, page { min-height: 100%; height: auto; background-color: $page-color-base; } .vheigh { height: var(--status-bar-height); background-color: $base-color; } .top-image { border-bottom-left-radius: 80rpx; border-bottom-right-radius: 80rpx; position: absolute; top: 0; left: 0; right: 0; height: 230rpx; background-color: #F75022; } .popup-box { width: 522rpx; height: 605rpx; background-color: #ffffff; border-radius: 20rpx; position: relative; .img { position: relative; top: -56rpx; left: 0; width: 522rpx; height: 132rpx; display: flex; justify-content: center; image { border-radius: 20rpx 20rpx 0 0; width: 450rpx; height: 132rpx; } } .mian { margin-top: -44rpx; display: flex; flex-direction: column; align-items: center; // padding: 32rpx 32rpx; background-color: #ffffff; border-radius: 0 0 20rpx 20rpx; text-align: center; .delivery { font-size: 40rpx; color: #333333; display: flex; align-items: center; flex-direction: column; image { margin-top: 48rpx; width: 172rpx; height: 160rpx; } } .nocancel { font-size: 32rpx; color: #333333; margin-top: 14rpx; } .comfirm-box { margin-top: 52rpx; display: flex; // margin-bottom: 32rpx; // justify-content: space-around; .cancel { display: flex; align-items: center; justify-content: center; width: 197rpx; height: 74rpx; border: 1px solid #F75022; border-radius: 38rpx; font-size: 32rpx; color: #333; } .comfirm { margin-left: 32rpx; display: flex; align-items: center; justify-content: center; width: 197rpx; height: 74rpx; background: linear-gradient(-90deg, #F75022 0%, #FF8B6C 100%); border-radius: 38px; font-size: 32rpx; color: #fff; } } } } .popup { width: 560rpx; padding-bottom: 45rpx; background-color: #ffffff; border-radius: 15rpx; text-align: center; line-height: 1; .popup-dox { position: relative; .popup-logo { margin: -160rpx auto 0; width: 400rpx; height: 200rpx; } } .popup-title { margin-top: 85rpx; font-size: 40rpx; font-family: PingFang SC; font-weight: bold; color: #2a2a2a; text { font-size: 56rpx; color: #e83f30; } } .popup-tip { margin-top: 20rpx; font-size: 28rpx; font-family: PingFang SC; font-weight: 500; color: #8c8c8c; text { color: #e83f30; } } .popup-btn { margin: 58rpx auto 0; width: 270rpx; height: 66rpx; background: #f0c838; border-radius: 34rpx; text-align: center; line-height: 66rpx; font-size: 36rpx; font-family: Source Han Sans CN; font-weight: 500; color: #ffffff; } } .user-wrap { position: relative; z-index: 10; width: 690rpx; // height: 283rpx; background: #ffffff; box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46); border-radius: 20rpx; padding: 34rpx 0 0; margin: auto; .info-left { padding-left: 34rpx; .user-name { display: flex; align-items: center; image { width: 120rpx; height: 120rpx; border-radius: 50%; } .user-font { padding-left: 34rpx; .name { width: 250rpx; font-size: 40rpx; font-family: Source Han Sans CN; font-weight: 400; color: #333333; } .phone { margin-top: 10rpx; font-size: 20rpx; font-family: PingFang SC; font-weight: 500; color: #999999; } } } .kpi { display: flex; align-items: center; background: #f5eede; border-radius: 30rpx 0px 0px 30rpx; padding: 18rpx 24rpx; font-size: 26rpx; font-family: PingFang SC; font-weight: bold; color: #c6914e; } } .info-right { display: flex; justify-content: space-around; align-items: center; margin: 30rpx 0; padding: 0 34rpx; .item-item { padding-bottom: 20rpx; width: 33%; display: flex; justify-content: center; flex-direction: column; align-items: center; .item-num { font-size: 36rpx; font-weight: bold; color: #333333; } .item-font { margin-top: 18rpx; font-size: 22rpx; font-weight: 500; color: #666666; } } } } .haoyue-box { margin: 20rpx 30rpx; height: 100rpx; border-radius: 20rpx; background: #fff; display: flex; justify-content: space-around; align-items: center; .vip-box { display: flex; flex-direction: column; align-items: center; .box-top { font-size: 30rpx; line-height: 50rpx; font-weight: 500; } .box-bottom { font-weight: 500; } } .item-item { width: 33%; text-align: center; } } .user-set { justify-content: flex-end; view { flex-shrink: 0; } padding: 30rpx; image { height: 40rpx; width: 40rpx; } } .main-box { margin: 20rpx auto 0; width: 690rpx; background: #ffffff; box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46); border-radius: 20rpx; .title { display: flex; justify-content: space-between; align-items: center; padding: 24rpx; border-bottom: 1px solid #EEEEEE; .title-left { display: flex; align-items: center; .title-icon { width: 32rpx; height: 32rpx; } .title-font { margin-left: 20rpx; font-size: 28rpx; font-family: PingFang SC; font-weight: bold; color: #333333; } } .title-right { width: 14rpx; height: 24rpx; } } .main { padding: 30rpx 0 20rpx; .oitem { width: 25%; display: flex; flex-direction: column; align-items: center; .oitem-image { height: 50rpx; width: 48rpx; } .oitem-font { margin-top: 20rpx; font-size: 24rpx; font-family: PingFang SC; font-weight: 500; color: #333333; } } } } </style>