<template> <view class="container"> <!-- <view class="vheigh"></view> --> <view class="" style="height: 100rpx;"></view> <view class="user-box"> <!-- <view class="u-level" v-if="userInfo && userInfo.zero_level_name && userInfo.zero_level > 0"> {{userInfo.zero_level_name}} </view> --> <view class="user-info flex"> <image class="avatar" :src="userInfo.avatar" mode="" v-if="userInfo.avatar" @click="navTo('/pages/set/userinfo')"></image> <image class="avatar" src="../../static/error/missing-face.png" mode="" v-else @click="navTo('/pages/set/userinfo')"></image> <!-- {{userInfo.level?showLevel(userInfo.level):""}} --> <view class="user-name clamp2">{{ userInfo.nickname || '游客'}}</view> <view class="user-name" v-if="userInfo && userInfo.uid" > <image v-if="userInfo && userInfo.level > 0" :src="showLevel(userInfo.level)" mode="heightFix" style="height: 35rpx;display: inline-block;margin:5rpx;"></image> <image v-if="userInfo && userInfo.zero_level > 0" :src="showLevel(userInfo.zero_level)" mode="heightFix" style="height:35rpx;display: inline-block;margin:5rpx;"></image> </view> <view class="user-id" v-if="userInfo && userInfo.uid" style="padding-top: 5rpx;"> UID:{{userInfo.uid}} </view> </view> </image> </view> <view class="main-box"> <view class="main flex"> <view class="oitem oitem1" @click="navTo('/pages/user/award')"> <view class="val"> {{userInfo.brokerage_price || '0'}} </view> <view class="oitem-font">我的奖金</view> </view> <view class="oitem oitem1" @click="navTo('/pages/user/yue')"> <view class="val"> {{userInfo.now_money || '0'}} </view> <view class="oitem-font">我的余额</view> </view> <view class="oitem oitem1" @click="navTo('/pages/user/team')"> <view class="val"> {{userInfo.spread_count || '0'}} </view> <view class="oitem-font">我的推广</view> </view> </view> </view> <view class="main-box"> <view class="title flex" @click="navTo('/pages/order/order?state=0')"> <view class="title-left"> <view class="title-font">我的订单</view> </view> <image class="title-right" src="../../static/icon/back.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/o1.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/o2.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/o3.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/o4.png" mode=""></image> <view class="oitem-font">已完成</view> </view> </view> </view> <!-- <view class="main-box"> <view class="title flex" @click="navTo('/pages/order/order?state=0')"> <view class="title-left"> <view class="title-font">推广收益</view> </view> </view> <view class="main flex"> <view class="oitem oitem1" @click="navTo('/pages/user/sz?type=6')"> <view class="oitem-font oitem-font1"> <image src="../../static/user/t1.png" mode=""></image> 分红点数 </view> <view class="val"> {{userInfo.dividend_points*1 || '0'}} </view> </view> <view class="oitem oitem1 oitem-font1" @click="navTo('/pages/user/sz?type=7')"> <view class="oitem-font oitem-font1"> <image src="../../static/user/t2.png" mode=""></image> 分红额度 </view> <view class="val"> {{userInfo.dividend_amount*1 || '0'}} </view> </view> <view class="oitem oitem1" @click="navTo('/pages/order/order?state=2')"> <view class="oitem-font oitem-font1"> <image src="../../static/user/t3.png" mode=""></image> 已分红 </view> <view class="val"> {{userInfo.use_cooperation_amount}} </view> </view> </view> </view> --> <view class="main-box"> <view class="title flex" @click="navTo('/pages/order/order?state=0')"> <view class="title-left"> <view class="title-font">更多功能</view> </view> <image class="title-right" src="../../static/icon/back.png" mode=""></image> </view> <view class="main flex"> <!-- #ifdef APP-PLUS --> <!-- <view class="oitem" @click="gorz" v-if="!isSh && userInfo && userInfo.uid && userInfo.is_real != 2"> <image class="oitem-image" src="../../static/user/m9.png" mode=""></image> <view class="oitem-font">实名认证</view> </view> --> <!-- #endif --> <!-- #ifdef H5 --> <!-- <view class="oitem" @click="gorz" v-if="userInfo && userInfo.uid && userInfo.is_real != 2"> <image class="oitem-image" src="../../static/user/m9.png" mode=""></image> <view class="oitem-font">实名认证</view> </view> --> <!-- #endif --> <!-- <view class="oitem" @click="navTo('/pages/order/dfOrder?state=0')"> <image class="oitem-image" src="../../static/user/m1.png" mode=""></image> <view class="oitem-font">代付订单</view> </view> --> <!-- <view class="oitem" @click="smsh"> --> <view class="oitem" v-if="userInfo && userInfo.uid && userInfo.adminid" @click="smsh"> <image class="oitem-image" src="../../static/user/m2.png" mode=""></image> <view class="oitem-font">扫码核销</view> </view> <view class="oitem" @click="navTo('/pages/user/team')"> <image class="oitem-image" src="../../static/user/m3.png" mode=""></image> <view class="oitem-font">我的邀请</view> </view> <view class="oitem" @click="navTo('/pages/user/shareQrCode')"> <image class="oitem-image" src="../../static/user/m4.png" mode=""></image> <view class="oitem-font">邀请好友</view> </view> <view class="oitem" @click="navTo('/pages/set/address')"> <image class="oitem-image" src="../../static/user/m5.png" mode=""></image> <view class="oitem-font">收货地址</view> </view> <!-- <button open-type="contact" class="basebtn "> <view class="oitems"> <image class="oitem-image" src="../../static/user/m6.png" mode="" ></image> <view class="oitem-font">联系客服</view> </view> </button> --> <!-- <view class="oitem" @click="openPp('popupkf')"> </view> --> <view class="oitem" @click="navTo('/pages/set/userinfo')"> <image class="oitem-image" src="../../static/user/m7.png" mode=""></image> <view class="oitem-font">设置</view> </view> <!-- <view class="oitem" @click="navTo('/pages/user/quanyi')"> <image class="oitem-image" src="../../static/user/m8.png" mode=""></image> <view class="oitem-font">我的权益</view> </view> --> </view> </view> <!-- <view class="user-list flex" @click="smsh" v-if="userInfo && userInfo.uid && userInfo.adminid"> <image src="../../static/icon/scend.png" mode="" class="left-img"></image> <view class=""> 扫码核销 </view> <image src="../../static/icon/back.png" mode="" class="right-img"></image> </view> --> <view class="" style="height: 20rpx;"> </view> <uni-popup ref="popupkf" type="center"> <view class="popup-box"> <view class="img"> <image src="../../static/img/img009.png" mode=""></image> </view> <view class="mian"> <view class="delivery"> <view class="title">已经为您定制专属客服</view> <image src="../../static/img/img010.png" mode=""></image> </view> <view class="nocancel">客服VX:{{ text }}</view> <view class="comfirm-box"> <view class="cancel" @click="closePp('popupkf')">取消</view> <view class="comfirm" @click="comfirm(text)">复制微信</view> </view> </view> </view> </uni-popup> <!-- 核销弹窗 --> <!-- <uni-popup ref="popuphx" class="agree-wrapper"> <view class="hx-wrapper"> <view class="hx-img"> <image src="../../static/img/hxbg1.png" mode=""></image> </view> <view class="hx-body"> <view class="hx-title"> 扫码核销 </view> <input type="text" v-model="hxcode" placeholder="请输入核销码" placeholder-class="hx-placeholder" /> <view class="hx-btn" @click="qhx"> 立即核销 </view> </view> <view class="hx-close" @click="close"> <image src="../../static/icon/close.png" mode=""></image> </view> </view> </uni-popup> --> <!-- <uni-popup ref="popupdf" class="agree-wrapper"> <view class="df-wrap"> <view class="tit"> 请输入代付码 </view> <input type="text" v-model="dfcode" placeholder="请输入代付码" /> <view class="btn" @click="goDf"> 确认 </view> <image src="../../static/user/close.png" mode="" class="close" @click="closePp('popupdf')"></image> </view> </uni-popup> --> <!-- #ifdef APP --> <yk-authpup ref="CAMERA" type="top" @changeAuth="changeAuth" permissionID="CAMERA"></yk-authpup> <!-- #endif --> </view> </template> <script> import ykAuthpup from "@/components/yk-authpup/yk-authpup"; import { orderVerific } from '@/api/index.js' import { toScanCode } from '@/components/scan.js' // #ifdef H5 import weixinObj from "@/plugin/jweixin-module/index.js"; // #endif 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 { orderData, getUserInfo, check, getLevelList } from '@/api/user.js'; import { saveUrl, interceptor } from '@/utils/loginUtils.js'; import { createPaying, payingPay } from '@/api/order.js' let startY = 0, moveY = 0, pageAtTop = true; export default { components: { uniList, uniListItem, ykAuthpup }, data() { return { isSh: true, listList: [], //等级列表 current: 2, id: '', //是否已签到 store_name: '', achievement: '', code: '', levelList: [], text: '', //客服微信 hxcode: '', //核销码 hxLoading: false, dfcode: '' //代付码 }; }, onShow() { // 判断是否已经登录 // if (this.hasLogin) { // this.loadBaseData(); // } this.loadBaseData(); // #ifdef APP-PLUS this.getSh() // #endif }, filters: { phone(e) { var subStr1 = e.substr(0, 3); var subStr2 = e.substr(e.length - 4, 4); var subStr = subStr1 + '...' + subStr2; e = subStr; return e; } }, 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']) }, methods: { ...mapMutations('user', ['setUserInfo']), getSh() { let that = this const getUpAppUrl = this.$store.state.baseURL + '/api/version' function compareVersions(version1, version2) { const v1 = version1.split('.'); const v2 = version2.split('.'); for (let i = 0; i < Math.max(v1.length, v2.length); i++) { const num1 = parseInt(v1[i] || 0); const num2 = parseInt(v2[i] || 0); if (num1 < num2) { return -1; } else if (num1 > num2) { return 1; } } return 0; } uni.request({ url: getUpAppUrl, method: 'GET', data: {}, success: res => { let r = res.data.data; plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { // 保存线上版本号 //{"app_down":"www.baidu.com","app_version":"1.0.1"} , app let version = r.app_down; // 获取线上版本 const arr = r.app_version.split('.'); console.log(arr, 'app_version'); // 获取当前系统 const arr1 = wgtinfo.version.split('.'); console.log(); if (compareVersions(wgtinfo.version, r.app_version) <= 0) { console.log('zhe '); that.isSh = false } else { console.log('审核'); that.isSh = true } }); }, }); }, openAuth() { this.$refs['CAMERA'].open() }, changeAuth() { this.smsh() }, gorz() { if (!this.hasLogin) { saveUrl(); interceptor(); } else { // uni.navigateTo({ // url // }); if (this.userInfo.is_real == 0) { this.navTo('/pages/user/smrz') } else if (this.userInfo.is_real == 1) { uni.showModal({ title: "提示", content: '您提交的资料正在审核中,请耐心等待审核' }) } } }, getLevelList() { getLevelList({ type: 1 }).then(res => { console.log(res); this.listList = res.data.list getLevelList().then(res => { this.listList =this.listList.concat(res.data.list) }) }) }, showLevel(val) { let data = this.listList.find(item => item.grade == val) console.log(data); if (data) { return data.icon // return data.name } else { return '' } }, close() { this.hxcode = '' this.$refs.popuphx.close() }, qhx() { let that = this if (that.hxLoading) { return } if (that.hxcode == '') { return that.$api.msg('请输入核销码') } that.hxLoading = true orderVerific({ verify_code: that.hxcode, is_confirm: 1 }).then(res => { uni.showToast({ title: '核销成功', mask: true, duration: 1500 }); that.close() that.hxLoading = false }).catch(err => [ that.hxLoading = false ]) }, smsh() { let that = this // #ifdef H5 toScanCode({ onlyFromCamera: true // 只允许通过相机扫码 }).then(res => { that.hxcode = res that.$refs.popuphx.open() }).catch(err => { console.log(err, 'err'); that.$refs.popuphx.open() }) // #endif // #ifndef H5 uni.scanCode({ success: (res) => { that.hxcode = res.result that.$refs.popuphx.open() } }) // #endif }, sao() { let obj = this; // #ifndef H5 uni.scanCode({ success(e) { obj.code = e.result; obj.$refs.popuphx.open(); } }); // #endif }, comfirm(text) { console.log(text); const result = this.uniCopy(text); if (result === false) { uni.showToast({ title: '不支持' }); } else { uni.showToast({ title: '复制成功', icon: 'none' }); } this.$refs.popupkf.close(); }, uniCopy(content) { /** * 小程序端 和 app端的复制逻辑 */ //#ifndef H5 uni.setClipboardData({ data: content, success: function() { console.log('success'); return true; } }); //#endif /** * H5端的复制逻辑 */ // #ifdef H5 if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断 // 不支持 return false; } let textarea = document.createElement('textarea'); textarea.value = content; textarea.readOnly = 'readOnly'; document.body.appendChild(textarea); textarea.select(); // 选择对象 textarea.setSelectionRange(0, content.length); //核心 let result = document.execCommand('copy'); // 执行浏览器复制命令 textarea.remove(); return result; // #endif }, // 加载初始数据 loadBaseData() { const obj = this getUserInfo({}) .then(({ data }) => { obj.setUserInfo(data); obj.getLevelList() }) .catch(e => { console.log(e); }); }, /** * 统一跳转接口,拦截未登录路由 * navigator标签现在默认没有转场动画,所以用view */ navTo(url) { console.log(url); if (!this.hasLogin) { // 保存地址 saveUrl(); // 登录拦截 interceptor(); } else { uni.navigateTo({ url }); } }, openPp(name) { this.$refs[name].open(); }, closePp(name) { this.$refs[name].close(); }, goDf() { let that = this if (that.dfcode == '') { return that.$api.msg('请输入代付码') } createPaying({ uni: that.dfcode }).then(res => { console.log(res); uni.navigateTo({ url: '/pages/money/payt?uni=' + that.dfcode }) }) }, } }; </script> <style lang="scss" lang="scss"> .basebtn { background: #fff; padding: 0; // margin: 0; &::after { border: none; } } %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; } .container { background-image: url('https://xmyl.qiniu1314.com/static/image/u-bg.png'); background-size: 750rpx 695rpx; background-repeat: no-repeat; } .vheigh { height: var(--status-bar-height); background-color: $base-color; } .top-image { position: absolute; top: 0; left: 0; right: 0; height: 228rpx; image { width: 100%; height: 100%; } } .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 #dcc786; border-radius: 38rpx; font-size: 32rpx; color: #605128; } .comfirm { margin-left: 32rpx; display: flex; align-items: center; justify-content: center; width: 197rpx; height: 74rpx; background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%); border-radius: 38px; font-size: 32rpx; color: #605128; } } } } .user-box { position: relative; z-index: 2; width: 690rpx; margin: 0 auto; /* #ifdef MP-WEIXIN */ margin: -100rpx auto 0; /* #endif */ // background: #ffffff; // box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46); border-radius: 20rpx; display: flex; flex-direction: column; align-items: center; padding: 54rpx 0 30rpx; line-height: 1; position: relative; .u-set { position: absolute; top: 85rpx; right: 40rpx; width: 44rpx; height: 44rpx; } .user-info { flex-direction: column; justify-content: flex-start; width: 100%; // padding-left: 40rpx; color: #fff; .avatar { border-radius: 50%; width: 132rpx; height: 132rpx; background-color: #eee; } } .user-name { text-align: center; width: 300rpx; margin-top: 14rpx; // font-size: 30rpx; font-size: $ltl-size-big; font-weight: bold; color: #fff; } .user-id { text-align: center; font-size: 28rpx; // padding: 10rpx 0; width: 300rpx; height: 32rpx; margin: auto; } .user-shop-icon { display: block; margin: auto; width: 128rpx; height: 32rpx; } } .main-box { margin: 20rpx auto 0; width: 710rpx; 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: 30rpx; font-family: PingFang SC; font-weight: bold; color: #333333; } } .title-right { width: 14rpx; height: 24rpx; } } .main { padding: 20rpx 0; flex-wrap: wrap; justify-content: flex-start; .oitem1 { border-right: 1px solid #eee; flex-grow: 1; .oitem-font { image { width: 28rpx; height: 28rpx; vertical-align: top; margin-right: 10rpx; } } .oitem-font1 { padding-bottom: 20rpx; } &:last-of-type { border-right: none; } } .oitem { width: 25%; display: flex; flex-direction: column; align-items: center; margin: 30rpx 0 20rpx; .oitem-image { height: 40rpx; width: 42rpx; } .zc { width: 90rpx; height: 88rpx; } .val { font-weight: bold; font-size: 36rpx; color: #333333; } .zc-t { margin-top: 0 !important; } .oitem-font { margin-top: 20rpx; font-size: 24rpx; font-weight: 500; color: #333333; } } } } .tool-list { width: 690rpx; margin: 20rpx auto 0; background: #ffffff; box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06); border-radius: 20rpx; } .psw-wrapper { width: 548rpx; padding: 20rpx 0; background-color: #ffffff; border-radius: 15rpx 15rpx; .psw-title { width: 100%; font-size: 35rpx; padding: 0 0 40rpx; text-align: center; font-weight: 800; } .psw-content { width: 100%; font-size: 32rpx; text-align: center; } .psw-price { font-weight: bold; font-size: 68rpx; text-align: center; padding-top: 10rpx; } .psw-jg { height: 1px; width: 500rpx; background-color: #eee; margin: auto; } .psw-paytype { justify-content: space-between; padding: 10rpx 25rpx 30rpx; font-size: 26rpx; } .psw-ipt { display: block; background-color: #dce3ed; height: 90rpx; width: 464rpx; padding-left: 30rpx; margin: 0 auto; font-size: 80rpx; } .psw-btn text { display: inline-block; text-align: center; width: 50%; padding-top: 29rpx; font-size: 35rpx; } .psw-qd { color: #ff4c4c; } } .hx-wrapper { width: 536rpx; height: 630rpx; position: relative; // background-color: #fff; .hx-img { width: 536rpx; height: 281rpx; image { width: 536rpx; height: 281rpx; } } .hx-close { position: absolute; left: 243rpx; bottom: -80rpx; width: 52rpx; height: 52rpx; image { width: 52rpx; height: 52rpx; } } .hx-body { width: 536rpx; height: 349rpx; background-color: #fff; border-radius: 0 0 10rpx 10rpx; .hx-title { width: 536rpx; font-size: 36rpx; font-weight: 500; color: #333333; line-height: 1; padding-top: 42rpx; text-align: center; } input { width: 439rpx; height: 68rpx; background: #eee; border-radius: 10rpx; margin: 39rpx auto 0; padding-left: 26rpx; .hx-placeholder { font-size: 26rpx; font-weight: 500; color: $base-color; } } .hx-btn { margin: 44rpx auto 0; width: 353rpx; height: 71rpx; background: $base-color; border-radius: 34rpx; font-size: 36rpx; font-weight: 500; color: #f8f9f9; line-height: 71rpx; text-align: center; } } } .sqdl { display: block; width: 689rpx; margin: 20rpx auto 20rpx; } .df-wrap { width: 750rpx; height: 469rpx; background: #FFFFFF; border-radius: 16rpx; text-align: center; padding-top: 43rpx; position: relative; .tit { font-weight: bold; font-size: 36rpx; color: #262626; } input { height: 80rpx; font-weight: bold; font-size: 36rpx; color: #262626; width: 531rpx; border-bottom: 1px solid #EBEBED; margin: 80rpx auto 64rpx; } .btn { width: 640rpx; line-height: 96rpx; background: #FF6F0F; border-radius: 48rpx; font-size: 38rpx; color: #FFFFFF; margin: auto; } .close { position: absolute; right: 52rpx; top: 46rpx; width: 28rpx; height: 28rpx; } } .oitem2 { flex-grow: 1; } .u-level { position: absolute; top: 0; right: -30rpx; // width: 175rpx; height: 55rpx; font-weight: bold; // background-image: url('../../static/user/level.png'); // background-size: 100% 100%; font-size: 30rpx; color: #FFFFFF; text-align: right; padding: 20rpx 5rpx 0 0; // background: linear-gradient(0deg, red 0%, #ffc049 100%); // -webkit-background-clip: text; // -webkit-text-fill-color: transparent; color: #fff; } .oitems { display: flex; flex-direction: column; justify-content: center; .oitem-image { height: 40rpx; width: 42rpx; } .oitem-font { margin-top: 20rpx; font-size: 24rpx; font-weight: 500; color: #333333; } } </style>