@ -0,0 +1,47 @@ |
|||||||
|
const baseURL = 'http://192.168.0.112:8088/api/'; |
||||||
|
|
||||||
|
export function $http(methods,url,params){ |
||||||
|
var header = { |
||||||
|
'content-type': 'application/json', |
||||||
|
'Authorization' :'Bearer '+ wx.getStorageSync('token') || '', |
||||||
|
'dept': '16' |
||||||
|
}; |
||||||
|
return new Promise((resolve,reject)=>{ |
||||||
|
wx.showLoading({ |
||||||
|
title: '正在加载中...', |
||||||
|
}) |
||||||
|
wx.request({ |
||||||
|
url: baseURL + url, |
||||||
|
method: methods, |
||||||
|
header: header, |
||||||
|
data: params || {}, |
||||||
|
success: res=> { |
||||||
|
wx.hideLoading(); |
||||||
|
if(!res.data.success && res.data.status == 401){ |
||||||
|
// console.log('登陆失效')
|
||||||
|
wx.navigateTo({ |
||||||
|
url: '/pages/login/index', |
||||||
|
}) |
||||||
|
return |
||||||
|
} |
||||||
|
if(res.data.success){ |
||||||
|
resolve(res); |
||||||
|
} else{ |
||||||
|
wx.showToast({ |
||||||
|
title: '服务器错误,请稍后再试!', |
||||||
|
icon : 'none' |
||||||
|
}) |
||||||
|
reject(err) |
||||||
|
} |
||||||
|
}, |
||||||
|
fail: err=> { |
||||||
|
wx.hideLoading(); |
||||||
|
wx.showToast({ |
||||||
|
title: '服务器错误,请稍后再试!', |
||||||
|
icon : 'none' |
||||||
|
}) |
||||||
|
reject(err) |
||||||
|
} |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
const http = require('./http.js') |
||||||
|
|
||||||
|
/* |
||||||
|
* 商品分类 |
||||||
|
* */ |
||||||
|
export function getCategory() { |
||||||
|
return http.$http('get','category'); |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
* 商品列表 |
||||||
|
* */ |
||||||
|
export function getProducts(q) { |
||||||
|
return http.$http('get','products',q) |
||||||
|
} |
||||||
|
/* |
||||||
|
* 商品详情 |
||||||
|
* */ |
||||||
|
export function getProductDetail(id) { |
||||||
|
return http.$http('get',"/product/detail/" + id) |
||||||
|
} |
||||||
|
|
@ -0,0 +1,25 @@ |
|||||||
|
const http = require('./http.js') |
||||||
|
//绑定手机号
|
||||||
|
export function bingPhone(){ |
||||||
|
return http.$http() |
||||||
|
} |
||||||
|
//获取用户信息
|
||||||
|
export function getUserInfo(){ |
||||||
|
return http.$http('get','userinfo') |
||||||
|
} |
||||||
|
|
||||||
|
//立即咨询
|
||||||
|
export function saleLeads(data){ |
||||||
|
return http.$http('post','user/saleLeads',data) |
||||||
|
} |
||||||
|
|
||||||
|
// 获取我的团队
|
||||||
|
export function getMyTeam(){ |
||||||
|
return http.$http('get','getTeam') |
||||||
|
} |
||||||
|
|
||||||
|
// 积分动态
|
||||||
|
export function getIntegralList(data){ |
||||||
|
return http.$http('get','integral/list',data) |
||||||
|
} |
||||||
|
|
@ -1,59 +1,51 @@ |
|||||||
// app.js
|
// app.js
|
||||||
|
const http = require('./api/http.js') |
||||||
App({ |
App({ |
||||||
onLaunch() { |
onLaunch() { |
||||||
// 展示本地存储能力
|
|
||||||
const logs = wx.getStorageSync('logs') || [] |
|
||||||
logs.unshift(Date.now()) |
|
||||||
wx.setStorageSync('logs', logs) |
|
||||||
|
|
||||||
// 登录
|
|
||||||
|
|
||||||
}, |
}, |
||||||
login(loginInfo){ |
login(){ |
||||||
wx.login({ |
|
||||||
success: res => { |
|
||||||
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
|
||||||
|
|
||||||
} |
|
||||||
}) |
|
||||||
}, |
|
||||||
http(methods,url,params){ |
|
||||||
var header = { |
|
||||||
'content-type': 'application/json', |
|
||||||
'Authorization' : wx.getStorageSync('token') || '' |
|
||||||
}; |
|
||||||
return new Promise((resolve,reject)=>{ |
return new Promise((resolve,reject)=>{ |
||||||
wx.showLoading({ |
wx.getUserProfile({ |
||||||
title: '正在加载中...', |
lang: 'zh_CN', |
||||||
}) |
desc: '需要获取您的信息用来展示', |
||||||
wx.request({ |
success: res => { |
||||||
url: this.globalData.baseUrl + url, |
wx.showLoading({ title: '登录中' }) |
||||||
method: methods, |
wx.login({ |
||||||
header: header, |
success: result => { |
||||||
data: params || {}, |
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
||||||
success: res=> { |
let data = { |
||||||
wx.hideLoading(); |
code: result.code, |
||||||
if(!res.data.success && res.data.status == 401){ |
iv: res.iv, |
||||||
// console.log('登陆失效')
|
encryptedData: res.encryptedData |
||||||
wx.navigateTo({ |
} |
||||||
url: '/pages/login/index', |
console.log(data) |
||||||
}) |
http.$http('post','wxapp/auth',data).then((result)=>{ |
||||||
} |
if(result.data.success){ |
||||||
resolve(res); |
wx.setStorageSync('token', result.data.data.token) |
||||||
}, |
wx.setStorageSync('userInfo', result.data.data.user) |
||||||
fail: err=> { |
wx.showToast({ |
||||||
wx.hideLoading(); |
title: '授权成功!', |
||||||
wx.showToast({ |
icon: 'none' |
||||||
title: '服务器错误,请稍后再试!', |
}) |
||||||
icon : 'none' |
} else{ |
||||||
|
wx.showToast({ |
||||||
|
title: result.data.msg, |
||||||
|
icon: 'none' |
||||||
|
}) |
||||||
|
} |
||||||
|
resolve(result) |
||||||
|
}) |
||||||
|
} |
||||||
}) |
}) |
||||||
reject(err) |
}, |
||||||
|
fail: res=>{ |
||||||
|
console.log('取消授权') |
||||||
} |
} |
||||||
}) |
}) |
||||||
}) |
}) |
||||||
}, |
}, |
||||||
globalData: { |
globalData: { |
||||||
baseURL : 'http://192.168.0.114:8092/api/', |
http: http.$http, |
||||||
// baseURL : 'https://cloud.api.cyjyyjy.com/api/',
|
products: [] |
||||||
} |
} |
||||||
}) |
}) |
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 750 B |
After Width: | Height: | Size: 392 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 883 B |
After Width: | Height: | Size: 649 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 206 KiB |
@ -1,64 +1,85 @@ |
|||||||
<!--pages/home/index.wxml--> |
<!--pages/home/index.wxml--> |
||||||
<view class="home-page"> |
<view class="home-page"> |
||||||
<view class="top-box"> |
<view class="top-box acea-row row-center-wrapper"> |
||||||
<image src="../../images/top-bg.png"></image> |
<image src="../../images/yssh.png"></image> |
||||||
<view class="top-content"> |
<view class="click acea-row row-center-wrapper">点击了解</view> |
||||||
<view class="title-box"> |
|
||||||
<image src="../../images/title.png"></image> |
|
||||||
<view class="tosee-btn">点击查看</view> |
|
||||||
</view> |
|
||||||
<image src="../../images/ts.png" class="tisheng"></image> |
|
||||||
</view> |
</view> |
||||||
</view> |
<view class="home-list-box"> |
||||||
<view class="teacher-introduce-box"> |
<view class="title">名师讲团</view> |
||||||
<view class="t-box acea-row row-middle"> |
<view class="list-item acea-row row-middle"> |
||||||
<view>名师介绍</view> |
<image src="../../images/member1.png"></image> |
||||||
<image src="../../images/lh-icon.png"></image> |
<view class="row-line"> |
||||||
|
<view class="name">李俊成</view> |
||||||
|
<view class="name2">世界记忆大师</view> |
||||||
|
<view class="name2">最强大脑国家队队员</view> |
||||||
|
<view class="desc"> |
||||||
|
<view>《最强大脑》第三季指纹解码师</view> |
||||||
|
<view>世界记忆锦标赛奥运形象大使</view> |
||||||
|
<view>绘背了APP创始人</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="list-item acea-row row-middle"> |
||||||
|
<view class="row-line"> |
||||||
|
<view class="name">张敬成</view> |
||||||
|
<view class="name2">世界记忆大师</view> |
||||||
|
<view class="desc"> |
||||||
|
<view>第25届世界记忆锦标赛推广大使</view> |
||||||
|
<view>第25届世界记忆锦标赛城市赛执行主席</view> |
||||||
|
<view>绘背了APP创始人</view> |
||||||
|
<view>记忆培训行业金牌讲师</view> |
||||||
|
<view>培养学生30000+</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<image src="../../images/member2.png"></image> |
||||||
|
</view> |
||||||
|
<view class="list-item acea-row row-middle"> |
||||||
|
<image src="../../images/member3.png"></image> |
||||||
|
<view class="row-line"> |
||||||
|
<view class="name">付成伟</view> |
||||||
|
<view class="desc"> |
||||||
|
<view>世界记忆锦标赛城市赛总亚军</view> |
||||||
|
<view>世界记忆锦标赛选手训练导师</view> |
||||||
|
<view>超级记忆力金牌讲师</view> |
||||||
|
<view>绘背了APP技术执行官</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="list-item acea-row row-middle"> |
||||||
|
<view class="row-line"> |
||||||
|
<view class="name">刘杰</view> |
||||||
|
<view class="desc"> |
||||||
|
<view>第25届世界记忆锦标赛城市赛裁判长</view> |
||||||
|
<view>世界记忆锦标赛选手训练导师</view> |
||||||
|
<view>超级记忆力金牌讲师</view> |
||||||
|
<view>绘背了APP联合创始人</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<image src="../../images/member4.png"></image> |
||||||
|
</view> |
||||||
|
<view class="list-item acea-row row-middle"> |
||||||
|
<image src="../../images/member5.png"></image> |
||||||
|
<view class="row-line"> |
||||||
|
<view class="name">胡宝运</view> |
||||||
|
<view class="desc"> |
||||||
|
<view>世界记忆锦标赛城市赛单项冠军</view> |
||||||
|
<view>世界记忆锦标赛选手训练导师</view> |
||||||
|
<view>思维导图金牌讲师</view> |
||||||
|
<view>10年企业内训经验</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="bottom-world acea-row row-between"> |
||||||
|
<image src="../../images/home-bg.png"></image> |
||||||
|
<view class="world acea-row row-between"> |
||||||
|
<view>强将手下无弱兵 名师更易出高徒</view> |
||||||
|
<view>记忆大师助启航 解决你的记忆烦恼</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
</view> |
</view> |
||||||
<view class="teacher-item acea-row"> |
<view class="footer"> |
||||||
<view class="item-l"> |
<view class="title">名师讲团</view> |
||||||
<image src="../../images/header.png"></image> |
<image src="../../images/home-footer.png"></image> |
||||||
<view class="name">刘朗菘,字瑞蓢</view> |
|
||||||
</view> |
|
||||||
<view class="introduce"> |
|
||||||
<view class="tips">国学文化传播导师 当代民间隐士 武术练养家</view> |
|
||||||
<view class="desc">湖北省文化产业商会常务副会长、传统文化专业委员会主任、国际易学研究院“中国易理策划名师”、“中国名师讲师” |
|
||||||
“东方智慧国学风云人物终身推广者”。</view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
<view class="teacher-item acea-row flexR"> |
|
||||||
<view class="item-l"> |
|
||||||
<image src="../../images/header.png"></image> |
|
||||||
<view class="name">刘朗菘,字瑞蓢</view> |
|
||||||
</view> |
|
||||||
<view class="introduce"> |
|
||||||
<view class="tips">国学文化传播导师 当代民间隐士 武术练养家</view> |
|
||||||
<view class="desc">湖北省文化产业商会常务副会长、传统文化专业委员会主任、国际易学研究院“中国易理策划名师”、“中国名师讲师” |
|
||||||
“东方智慧国学风云人物终身推广者”。</view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
<view class="course-introduce-box"> |
|
||||||
<view class="t-box acea-row row-middle"> |
|
||||||
<view>课程介绍</view> |
|
||||||
<image src="../../images/lh-icon.png"></image> |
|
||||||
</view> |
</view> |
||||||
<view class="course-item"> |
<view class="btn-order acea-row row-center-wrapper">前去预约</view> |
||||||
<view class="course-name"> |
|
||||||
<image src="../../images/title-bg.png"></image> |
|
||||||
<text>传统武术</text> |
|
||||||
</view> |
|
||||||
<view class="introduce"> 中国武术不仅是一种中国传统的体育运动形式,而且是一个完整的文化意识形态,它涵容了中国古典哲学、伦理学、美学,医学、兵学等中国传统文化的各种成分和要素,渗透着中国传统文化的精髓。武术具有极其广泛的群众基础,是中国人民在长期的社会实践中不断积累和丰富起来的一项宝贵的文化遗产 </view> |
|
||||||
</view> |
|
||||||
<view class="course-item"> |
|
||||||
<view class="course-name"> |
|
||||||
<image src="../../images/title-bg.png"></image> |
|
||||||
<text>传统武术</text> |
|
||||||
</view> |
|
||||||
<view class="introduce"> 中国武术不仅是一种中国传统的体育运动形式,而且是一个完整的文化意识形态,它涵容了中国古典哲学、伦理学、美学,医学、兵学等中国传统文化的各种成分和要素,渗透着中国传统文化的精髓。武术具有极其广泛的群众基础,是中国人民在长期的社会实践中不断积累和丰富起来的一项宝贵的文化遗产 </view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
<view class="submit-btn"> |
|
||||||
<image src="../../images/btn-bg.png"></image> |
|
||||||
</view> |
|
||||||
</view> |
</view> |
||||||
|
@ -1,144 +1,98 @@ |
|||||||
/* pages/home/index.wxss */ |
/* pages/home/index.wxss */ |
||||||
page{ |
page{ |
||||||
width: 100%; |
width: 100%; |
||||||
background: #343434; |
background: #131313; |
||||||
} |
} |
||||||
.home-page{ |
.home-page{ |
||||||
background: #343434; |
margin-top: 72rpx; |
||||||
} |
} |
||||||
.top-box{ |
.top-box{ |
||||||
width: 100%; |
|
||||||
height: 1160rpx; |
|
||||||
position: relative; |
position: relative; |
||||||
} |
} |
||||||
.top-box image{ |
.top-box image{ |
||||||
width: 100%; |
width: 100%; |
||||||
height: 100%; |
height: 1000rpx; |
||||||
position: absolute; |
position: relative; |
||||||
} |
} |
||||||
.top-content{ |
.click{ |
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
position: absolute; |
position: absolute; |
||||||
z-index: 3; |
width: 176rpx; |
||||||
padding-top: 180rpx; |
height: 64rpx; |
||||||
padding-left: 40rpx; |
font-size: 32rpx; |
||||||
} |
border-radius: 32rpx; |
||||||
.top-content .tisheng{ |
bottom: 80rpx; |
||||||
|
color: #9A7045; |
||||||
|
border: 2rpx solid #9B7245; |
||||||
|
} |
||||||
|
.home-list-box{ |
||||||
|
padding: 0 40rpx; |
||||||
|
margin: 18rpx 0 0 0; |
||||||
|
} |
||||||
|
.title{ |
||||||
|
font-size: 48rpx; |
||||||
|
color: #9A7045; |
||||||
|
} |
||||||
|
.list-item{ |
||||||
|
width: 670rpx; |
||||||
|
height: 316rpx; |
||||||
|
background: linear-gradient(11deg, #E9DECA 0%, #FCFCFA 100%); |
||||||
|
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.16); |
||||||
|
border-radius: 14px; |
||||||
|
margin: 24rpx 0 0 0; |
||||||
|
} |
||||||
|
.list-item image{ |
||||||
width: 316rpx; |
width: 316rpx; |
||||||
height: 760rpx; |
height: 316rpx; |
||||||
|
border-radius: 14px; |
||||||
} |
} |
||||||
.title-box{ |
.row-line{ |
||||||
width: 100%; |
padding-left: 24rpx; |
||||||
height: 80rpx; |
|
||||||
position: relative; |
|
||||||
} |
} |
||||||
.title-box image{ |
.name{ |
||||||
width: 434rpx; |
font-size: 48rpx; |
||||||
height: 74rpx; |
color: #4A3737; |
||||||
margin-right: 16rpx; |
margin-bottom: 10rpx; |
||||||
} |
|
||||||
|
|
||||||
.tosee-btn{ |
|
||||||
width: 134rpx; |
|
||||||
height: 54rpx; |
|
||||||
border: 2rpx solid #986F43; |
|
||||||
border-radius: 28rpx; |
|
||||||
text-align: center; |
|
||||||
line-height: 54rpx; |
|
||||||
color: #986F43; |
|
||||||
font-size: 24rpx; |
|
||||||
position: absolute; |
|
||||||
left: 456rpx; |
|
||||||
top: 20rpx; |
|
||||||
} |
} |
||||||
.teacher-introduce-box,.course-introduce-box{ |
.name2{ |
||||||
width: 100%; |
font-size: 28rpx; |
||||||
padding: 20rpx 40rpx; |
color: #C5A669; |
||||||
background: #343434; |
|
||||||
} |
|
||||||
.teacher-item{ |
|
||||||
margin-bottom: 76rpx; |
|
||||||
} |
|
||||||
.item-l image{ |
|
||||||
width: 240rpx; |
|
||||||
height: 240rpx; |
|
||||||
} |
|
||||||
.item-l .name{ |
|
||||||
font-size: 36rpx; |
|
||||||
color: #987A59; |
|
||||||
font-weight: 500; |
|
||||||
margin-top: 24rpx; |
|
||||||
} |
|
||||||
.teacher-introduce-box .introduce{ |
|
||||||
width: 400rpx; |
|
||||||
margin-left: 20rpx; |
|
||||||
font-size: 24rpx; |
|
||||||
color: #E5E5E5; |
|
||||||
} |
|
||||||
.introduce .tips{ |
|
||||||
font-size: 36rpx; |
|
||||||
color: #fff; |
|
||||||
margin-bottom: 24rpx; |
|
||||||
} |
} |
||||||
.flexR{ |
.desc{ |
||||||
flex-direction: row-reverse; |
font-size: 20rpx; |
||||||
|
color: #C5A669; |
||||||
|
margin-top: 8rpx; |
||||||
} |
} |
||||||
.course-item{ |
.bottom-world{ |
||||||
width: 100%; |
width: 670rpx; |
||||||
background: #171414; |
height: 160rpx; |
||||||
border-radius: 32rpx; |
margin-top: 16rpx; |
||||||
padding: 32rpx 24rpx; |
|
||||||
position: relative; |
|
||||||
margin-bottom: 80rpx; |
|
||||||
} |
} |
||||||
.course-name{ |
.world{ |
||||||
width: 400rpx; |
|
||||||
height: 76rpx; |
|
||||||
position: absolute; |
position: absolute; |
||||||
font-size: 32rpx; |
font-size: 32rpx; |
||||||
color: #363636; |
color: #9A7045; |
||||||
text-align: center; |
margin: 15rpx 0 0 84rpx; |
||||||
line-height: 76rpx; |
|
||||||
left: 50%; |
|
||||||
top: -38rpx; |
|
||||||
transform: translateX(-50%); |
|
||||||
} |
|
||||||
.course-name image{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
position: absolute; |
|
||||||
left: 0; |
|
||||||
} |
} |
||||||
.course-name text{ |
.world view{ |
||||||
position: absolute; |
margin-top: 20rpx; |
||||||
left: 50%; |
|
||||||
top: 50%; |
|
||||||
transform: translate(-50%,-50%); |
|
||||||
z-index: 3; |
|
||||||
} |
|
||||||
.course-item .introduce{ |
|
||||||
font-size: 24rpx; |
|
||||||
color: #707070; |
|
||||||
line-height: 34rpx; |
|
||||||
margin-top: 12rpx; |
|
||||||
text-indent: 1em; |
|
||||||
} |
|
||||||
.t-box{ |
|
||||||
color: #987A59; |
|
||||||
font-size: 40rpx; |
|
||||||
margin-bottom: 40rpx; |
|
||||||
} |
} |
||||||
.t-box image{ |
.footer{ |
||||||
width: 64rpx; |
|
||||||
height: 64rpx; |
|
||||||
margin-left: 8rpx; |
|
||||||
} |
|
||||||
.submit-btn { |
|
||||||
width: 100%; |
width: 100%; |
||||||
height: 156rpx; |
margin-top: 22rpx; |
||||||
|
padding: 0 40rpx; |
||||||
} |
} |
||||||
.submit-btn image{ |
.footer image{ |
||||||
width: 100%; |
width: 100%; |
||||||
height: 100%; |
height: 736rpx; |
||||||
|
margin: 14rpx 0 24rpx 0; |
||||||
|
} |
||||||
|
.btn-order{ |
||||||
|
font-size: 40rpx; |
||||||
|
color: #fff; |
||||||
|
width: 394rpx; |
||||||
|
height: 90rpx; |
||||||
|
background: linear-gradient(225deg, #FFD87D 0%, #E19C00 100%); |
||||||
|
border-radius: 46px; |
||||||
|
margin: 0 auto; |
||||||
|
margin-bottom: 40rpx; |
||||||
} |
} |
@ -1,50 +0,0 @@ |
|||||||
// index.js
|
|
||||||
// 获取应用实例
|
|
||||||
const app = getApp() |
|
||||||
|
|
||||||
Page({ |
|
||||||
data: { |
|
||||||
motto: 'Hello World', |
|
||||||
userInfo: {}, |
|
||||||
hasUserInfo: false, |
|
||||||
canIUse: wx.canIUse('button.open-type.getUserInfo'), |
|
||||||
canIUseGetUserProfile: false, |
|
||||||
// canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName' // 如需尝试获取用户信息可改为false
|
|
||||||
canIUseOpenData: false |
|
||||||
}, |
|
||||||
// 事件处理函数
|
|
||||||
bindViewTap() { |
|
||||||
wx.navigateTo({ |
|
||||||
url: '../logs/logs' |
|
||||||
}) |
|
||||||
}, |
|
||||||
onLoad() { |
|
||||||
console.log(wx.getUserProfile) |
|
||||||
if (wx.getUserProfile) { |
|
||||||
this.setData({ |
|
||||||
canIUseGetUserProfile: true |
|
||||||
}) |
|
||||||
} |
|
||||||
}, |
|
||||||
getUserProfile(e) { |
|
||||||
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
|
|
||||||
wx.getUserProfile({ |
|
||||||
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
|
|
||||||
success: (res) => { |
|
||||||
console.log(res) |
|
||||||
this.setData({ |
|
||||||
userInfo: res.userInfo, |
|
||||||
hasUserInfo: true |
|
||||||
}) |
|
||||||
} |
|
||||||
}) |
|
||||||
}, |
|
||||||
getUserInfo(e) { |
|
||||||
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
|
|
||||||
console.log(e) |
|
||||||
this.setData({ |
|
||||||
userInfo: e.detail.userInfo, |
|
||||||
hasUserInfo: true |
|
||||||
}) |
|
||||||
} |
|
||||||
}) |
|
@ -1,23 +0,0 @@ |
|||||||
<!--index.wxml--> |
|
||||||
<view class="container"> |
|
||||||
<view class="userinfo"> |
|
||||||
<block wx:if="{{canIUseOpenData}}"> |
|
||||||
<view class="userinfo-avatar" bindtap="bindViewTap"> |
|
||||||
<open-data type="userAvatarUrl"></open-data> |
|
||||||
</view> |
|
||||||
<open-data type="userNickName"></open-data> |
|
||||||
</block> |
|
||||||
<block wx:elif="{{!hasUserInfo}}"> |
|
||||||
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button> |
|
||||||
<button wx:elif="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button> |
|
||||||
<view wx:else> 请使用1.4.4及以上版本基础库 </view> |
|
||||||
</block> |
|
||||||
<block wx:else> |
|
||||||
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image> |
|
||||||
<text class="userinfo-nickname">{{userInfo.nickName}}</text> |
|
||||||
</block> |
|
||||||
</view> |
|
||||||
<view class="usermotto"> |
|
||||||
<text class="user-motto">{{motto}}</text> |
|
||||||
</view> |
|
||||||
</view> |
|
@ -1,19 +0,0 @@ |
|||||||
/**index.wxss**/ |
|
||||||
.userinfo { |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
align-items: center; |
|
||||||
color: #aaa; |
|
||||||
} |
|
||||||
|
|
||||||
.userinfo-avatar { |
|
||||||
overflow: hidden; |
|
||||||
width: 128rpx; |
|
||||||
height: 128rpx; |
|
||||||
margin: 20rpx; |
|
||||||
border-radius: 50%; |
|
||||||
} |
|
||||||
|
|
||||||
.usermotto { |
|
||||||
margin-top: 200px; |
|
||||||
} |
|
@ -1,18 +0,0 @@ |
|||||||
// logs.js
|
|
||||||
const util = require('../../utils/util.js') |
|
||||||
|
|
||||||
Page({ |
|
||||||
data: { |
|
||||||
logs: [] |
|
||||||
}, |
|
||||||
onLoad() { |
|
||||||
this.setData({ |
|
||||||
logs: (wx.getStorageSync('logs') || []).map(log => { |
|
||||||
return { |
|
||||||
date: util.formatTime(new Date(log)), |
|
||||||
timeStamp: log |
|
||||||
} |
|
||||||
}) |
|
||||||
}) |
|
||||||
} |
|
||||||
}) |
|
@ -1,4 +0,0 @@ |
|||||||
{ |
|
||||||
"navigationBarTitleText": "查看启动日志", |
|
||||||
"usingComponents": {} |
|
||||||
} |
|
@ -1,6 +0,0 @@ |
|||||||
<!--logs.wxml--> |
|
||||||
<view class="container log-list"> |
|
||||||
<block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log"> |
|
||||||
<text class="log-item">{{index + 1}}. {{log.date}}</text> |
|
||||||
</block> |
|
||||||
</view> |
|
@ -1,8 +0,0 @@ |
|||||||
.log-list { |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
padding: 40rpx; |
|
||||||
} |
|
||||||
.log-item { |
|
||||||
margin: 10rpx; |
|
||||||
} |
|
@ -0,0 +1,66 @@ |
|||||||
|
// pages/user/bindCard/index.js
|
||||||
|
Page({ |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面加载 |
||||||
|
*/ |
||||||
|
onLoad: function (options) { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||||
|
*/ |
||||||
|
onReady: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面显示 |
||||||
|
*/ |
||||||
|
onShow: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面隐藏 |
||||||
|
*/ |
||||||
|
onHide: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面卸载 |
||||||
|
*/ |
||||||
|
onUnload: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||||
|
*/ |
||||||
|
onPullDownRefresh: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面上拉触底事件的处理函数 |
||||||
|
*/ |
||||||
|
onReachBottom: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户点击右上角分享 |
||||||
|
*/ |
||||||
|
onShareAppMessage: function () { |
||||||
|
|
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": {}, |
||||||
|
"navigationBarTitleText": "绑定银行卡" |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
<!--pages/user/bindCard/index.wxml--> |
||||||
|
<view class="bindcard-page"> |
||||||
|
<view class="form"> |
||||||
|
<view class="form-item"> |
||||||
|
<view class="label">持卡人</view> |
||||||
|
<input type="text" placeholder="请输入持卡人姓名" /> |
||||||
|
</view> |
||||||
|
<view class="form-item"> |
||||||
|
<view class="label">银行卡号</view> |
||||||
|
<input type="text" placeholder="请输入银行卡号" /> |
||||||
|
</view> |
||||||
|
<view class="form-item"> |
||||||
|
<view class="label">开户行</view> |
||||||
|
<input type="text" placeholder="请输入开户行" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="submit">确定</view> |
||||||
|
</view> |
@ -0,0 +1,41 @@ |
|||||||
|
/* pages/user/bindCard/index.wxss */ |
||||||
|
page{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: #F8F8F8; |
||||||
|
} |
||||||
|
.bindcard-page{ |
||||||
|
width: 100%; |
||||||
|
padding: 32rpx 38rpx; |
||||||
|
} |
||||||
|
.form{ |
||||||
|
width: 100%; |
||||||
|
background: #fff; |
||||||
|
border-radius: 18rpx; |
||||||
|
} |
||||||
|
.form-item{ |
||||||
|
width: 100%; |
||||||
|
height: 100rpx; |
||||||
|
padding: 0 36rpx; |
||||||
|
font-size: 34rpx; |
||||||
|
color: #000; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
border: 2rpx solid #F5F5F5; |
||||||
|
} |
||||||
|
.form-item input{ |
||||||
|
text-align: right; |
||||||
|
font-size: 32rpx; |
||||||
|
} |
||||||
|
.submit{ |
||||||
|
width: 440rpx; |
||||||
|
height: 88rpx; |
||||||
|
background: #F7C37A; |
||||||
|
border-radius: 44rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 88rpx; |
||||||
|
font-size: 46rpx; |
||||||
|
color: #fff; |
||||||
|
margin: 60rpx auto; |
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
// pages/user/cashOut/index.js
|
||||||
|
Page({ |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
brokeragePrice: 20 |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面加载 |
||||||
|
*/ |
||||||
|
onLoad: function (options) { |
||||||
|
console.log(options) |
||||||
|
this.setData({ |
||||||
|
brokeragePrice: options.brokeragePrice |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||||
|
*/ |
||||||
|
onReady: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面显示 |
||||||
|
*/ |
||||||
|
onShow: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面隐藏 |
||||||
|
*/ |
||||||
|
onHide: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面卸载 |
||||||
|
*/ |
||||||
|
onUnload: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||||
|
*/ |
||||||
|
onPullDownRefresh: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面上拉触底事件的处理函数 |
||||||
|
*/ |
||||||
|
onReachBottom: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户点击右上角分享 |
||||||
|
*/ |
||||||
|
onShareAppMessage: function () { |
||||||
|
|
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,5 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": {}, |
||||||
|
"navigationBarTitleText": "提现", |
||||||
|
"enablePullDownRefresh": true |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
<!--pages/user/cashOut/index.wxml--> |
||||||
|
<view class="cashout-page"> |
||||||
|
<view class="profit-box"> |
||||||
|
<image src="../../../images/profit.png" class="profit-bg"></image> |
||||||
|
<view class="profit-info"> |
||||||
|
<view>当前可提现积分<text class="s-word">(积分比例为1:1)</text></view> |
||||||
|
<view class="fz70">{{brokeragePrice}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="tips">注:提现需在每月20-26日进行,其他时间不可提现</view> |
||||||
|
<view class="handle-box"> |
||||||
|
<view class="tit">提现金额</view> |
||||||
|
<view class="inp-box acea-row row-between row-middle"> |
||||||
|
<text class="fz50">¥</text> |
||||||
|
<input type="text" placeholder="最低提现100积分" /> |
||||||
|
<view class="colO">全部提现</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="submit-btn">提现</view> |
||||||
|
</view> |
@ -0,0 +1,79 @@ |
|||||||
|
/* pages/user/cashOut/index.wxss */ |
||||||
|
.cashout-page{ |
||||||
|
width: 100%; |
||||||
|
min-height: 100vh; |
||||||
|
padding: 40rpx; |
||||||
|
background: #F8F8F8; |
||||||
|
} |
||||||
|
.profit-box{ |
||||||
|
width: 100%; |
||||||
|
height: 256rpx; |
||||||
|
position: relative; |
||||||
|
margin-top: 20rpx; |
||||||
|
} |
||||||
|
.profit-box image{ |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
} |
||||||
|
.profit-info{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
z-index: 3; |
||||||
|
padding: 48rpx 94rpx 0 36rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: 500; |
||||||
|
} |
||||||
|
.s-word{ |
||||||
|
font-size: 22rpx; |
||||||
|
} |
||||||
|
.fz70{ |
||||||
|
font-size: 70rpx; |
||||||
|
font-weight: 500; |
||||||
|
line-height: 98rpx; |
||||||
|
} |
||||||
|
.tips{ |
||||||
|
font-size: 20rpx; |
||||||
|
color:#FF3434; |
||||||
|
margin: 62rpx 0 20rpx; |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
.handle-box{ |
||||||
|
background: #fff; |
||||||
|
border-radius: 18rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
} |
||||||
|
.handle-box .tit{ |
||||||
|
width: 100%; |
||||||
|
height: 98rpx; |
||||||
|
line-height: 98rpx; |
||||||
|
text-indent: 2em; |
||||||
|
border-bottom: 2rpx solid #F5F5F5; |
||||||
|
font-size: 28rpx; |
||||||
|
} |
||||||
|
.inp-box{ |
||||||
|
width: 100%; |
||||||
|
padding: 0 32rpx; |
||||||
|
height: 108rpx; |
||||||
|
} |
||||||
|
.inp-box input{ |
||||||
|
margin-left: -100rpx; |
||||||
|
} |
||||||
|
.fz50{ |
||||||
|
font-size: 50rpx; |
||||||
|
} |
||||||
|
.colO{ |
||||||
|
color: #F68514; |
||||||
|
} |
||||||
|
.submit-btn{ |
||||||
|
width: 440rpx; |
||||||
|
height: 88rpx; |
||||||
|
background: #F7C37A; |
||||||
|
border-radius: 44rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 88rpx; |
||||||
|
font-size: 42rpx; |
||||||
|
color: #FFFFFF; |
||||||
|
margin: 110rpx auto 0; |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
// pages/user/index.js
|
||||||
|
const app = getApp() |
||||||
|
const user = require('../../api/user.js') |
||||||
|
Page({ |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
userInfo: {} |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面加载 |
||||||
|
*/ |
||||||
|
onLoad: function (options) { |
||||||
|
// userApi.getMyTeam().then((res)=>{
|
||||||
|
// console.log(res)
|
||||||
|
// })
|
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面显示 |
||||||
|
*/ |
||||||
|
onShow: function () { |
||||||
|
this.getUserInfo() |
||||||
|
}, |
||||||
|
getUserInfo(){ |
||||||
|
user.getUserInfo().then((res)=> { |
||||||
|
this.setData({ |
||||||
|
userInfo: res.data.data |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
toCashOut(){ |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/pages/user/cashOut/index?brokeragePrice=' + this.data.userInfo.brokeragePrice, |
||||||
|
}) |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面隐藏 |
||||||
|
*/ |
||||||
|
onHide: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面卸载 |
||||||
|
*/ |
||||||
|
onUnload: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||||
|
*/ |
||||||
|
onPullDownRefresh: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面上拉触底事件的处理函数 |
||||||
|
*/ |
||||||
|
onReachBottom: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户点击右上角分享 |
||||||
|
*/ |
||||||
|
onShareAppMessage: function () { |
||||||
|
|
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,5 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": {}, |
||||||
|
"navigationBarTitleText": "我的", |
||||||
|
"enablePullDownRefresh": true |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
<!--pages/user/index.wxml--> |
||||||
|
<view class="user-page"> |
||||||
|
<view class="user-box acea-row row-middle"> |
||||||
|
<view class="avatar"><image src="{{userInfo.avatar || '../../images/logo.png'}}"></image></view> |
||||||
|
<view class="userInfo"> |
||||||
|
<view class="name">{{userInfo.nickname || '瑞梦思'}}</view> |
||||||
|
<view class="id-num">ID:{{userInfo.uid}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="panel-box"> |
||||||
|
<image src="../../images/panel.png" class="panel-bg"></image> |
||||||
|
<view class="panel-content acea-row"> |
||||||
|
<view class="profit-box"> |
||||||
|
<view class="mt20"> |
||||||
|
<view>今日收益</view> |
||||||
|
<view class="fz40">{{userInfo.todayBrokerage || 0}}积分</view> |
||||||
|
</view> |
||||||
|
<view class=""> |
||||||
|
<view>累计收益</view> |
||||||
|
<view class="fz40">{{userInfo.brokeragePrice || 0}}积分</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="col-line"></view> |
||||||
|
<view class="sale-box"> |
||||||
|
<view class="mt20"> |
||||||
|
<view>推广人数</view> |
||||||
|
<view class="fz40">{{userInfo.spreadCount || 0}}人</view> |
||||||
|
</view> |
||||||
|
<view class=""> |
||||||
|
<view>今日新增</view> |
||||||
|
<view class="fz40">{{userInfo.todaySpreadNum || 0}}人</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<navigator url="/pages/user/profit/index" hover-class="none"> |
||||||
|
<view class="to-more-box"> |
||||||
|
<image src="../../images/jifen-icon.png" class="jifen-icon"></image> |
||||||
|
<view class="col-text">积分详情</view> |
||||||
|
<image src="../../images/arror-d.png" class="arror-r-icon"></image> |
||||||
|
</view> |
||||||
|
</navigator> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="menu-list"> |
||||||
|
<view class="menu-item acea-row row-middle row-between" bindtap="toCashOut"> |
||||||
|
<view class="item-l acea-row row-middle"> |
||||||
|
<image src="../../images/menu1.png"></image> |
||||||
|
<text>去提现</text> |
||||||
|
</view> |
||||||
|
<image src="../../images/arror-r.png" class="arrow-r"></image> |
||||||
|
</view> |
||||||
|
<navigator url="/pages/user/myTeam/index" hover-class="none"> |
||||||
|
<view class="menu-item acea-row row-middle row-between"> |
||||||
|
<view class="item-l acea-row row-middle"> |
||||||
|
<image src="../../images/menu2.png"></image> |
||||||
|
<text>我的团队</text> |
||||||
|
</view> |
||||||
|
<image src="../../images/arror-r.png" class="arrow-r"></image> |
||||||
|
</view> |
||||||
|
</navigator> |
||||||
|
<!-- <view class="menu-item acea-row row-middle row-between"> |
||||||
|
<view class="item-l acea-row row-middle"> |
||||||
|
<image src="../../images/menu3.png"></image> |
||||||
|
<text>设置</text> |
||||||
|
</view> |
||||||
|
<image src="../../images/arror-r.png" class="arrow-r"></image> |
||||||
|
</view> --> |
||||||
|
<view class="menu-item acea-row row-middle row-between"> |
||||||
|
<view class="item-l acea-row row-middle"> |
||||||
|
<image src="../../images/menu4.png"></image> |
||||||
|
<text>官方客服电话:027-88888877</text> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,113 @@ |
|||||||
|
/* pages/user/index.wxss */ |
||||||
|
.user-page{ |
||||||
|
width: 100%; |
||||||
|
min-height: 100vh; |
||||||
|
padding: 40rpx; |
||||||
|
background: #F8F8F8; |
||||||
|
} |
||||||
|
.user-box{ |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
.avatar{ |
||||||
|
width: 128rpx; |
||||||
|
height: 128rpx; |
||||||
|
border-radius: 50%; |
||||||
|
margin-right: 30rpx; |
||||||
|
} |
||||||
|
.avatar image{ |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.userInfo{ |
||||||
|
color: #333333; |
||||||
|
font-size: 40rpx; |
||||||
|
font-weight: 500; |
||||||
|
} |
||||||
|
.id-num{ |
||||||
|
color: #E1994C; |
||||||
|
font-weight: 400; |
||||||
|
font-size: 36rpx; |
||||||
|
} |
||||||
|
|
||||||
|
.panel-box{ |
||||||
|
width: 100%; |
||||||
|
height: 304rpx; |
||||||
|
position: relative; |
||||||
|
margin-top: 32rpx; |
||||||
|
} |
||||||
|
.panel-bg{ |
||||||
|
position: absolute; |
||||||
|
left: 0; |
||||||
|
} |
||||||
|
.panel-content{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
padding: 32rpx 0; |
||||||
|
} |
||||||
|
.profit-box{ |
||||||
|
width: 312rpx; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.fz40{ |
||||||
|
font-size: 40rpx; |
||||||
|
} |
||||||
|
.mt20{ |
||||||
|
margin: 20rpx 0; |
||||||
|
} |
||||||
|
.col-line{ |
||||||
|
width: 2rpx; |
||||||
|
height: 100%; |
||||||
|
background: #fff; |
||||||
|
} |
||||||
|
.sale-box{ |
||||||
|
width: 256rpx; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.to-more-box{ |
||||||
|
width: 100rpx; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
} |
||||||
|
.jifen-icon{ |
||||||
|
width: 37rpx; |
||||||
|
height: 42rpx; |
||||||
|
} |
||||||
|
.col-text{ |
||||||
|
width: 30rpx; |
||||||
|
margin: 4rpx 0; |
||||||
|
} |
||||||
|
.arror-r-icon{ |
||||||
|
width: 28rpx; |
||||||
|
height: 16rpx; |
||||||
|
} |
||||||
|
|
||||||
|
.menu-list{ |
||||||
|
width: 100%; |
||||||
|
background: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
.menu-item{ |
||||||
|
width: 100%; |
||||||
|
height: 136rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
border-bottom: 1px solid #F2F2F2; |
||||||
|
} |
||||||
|
.menu-item:nth-last-child(1){ |
||||||
|
border: none; |
||||||
|
} |
||||||
|
.item-l image{ |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
margin-right: 16rpx; |
||||||
|
} |
||||||
|
.arrow-r{ |
||||||
|
width: 16rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
@ -0,0 +1,66 @@ |
|||||||
|
// pages/user/myTeam/index.js
|
||||||
|
Page({ |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面加载 |
||||||
|
*/ |
||||||
|
onLoad: function (options) { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||||
|
*/ |
||||||
|
onReady: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面显示 |
||||||
|
*/ |
||||||
|
onShow: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面隐藏 |
||||||
|
*/ |
||||||
|
onHide: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面卸载 |
||||||
|
*/ |
||||||
|
onUnload: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||||
|
*/ |
||||||
|
onPullDownRefresh: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面上拉触底事件的处理函数 |
||||||
|
*/ |
||||||
|
onReachBottom: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户点击右上角分享 |
||||||
|
*/ |
||||||
|
onShareAppMessage: function () { |
||||||
|
|
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": {}, |
||||||
|
"navigationBarTitleText": "我的团队" |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<!--pages/user/myTeam/index.wxml--> |
||||||
|
<view class="index-page"> |
||||||
|
<view class="data-panel-box acea-row row-between"> |
||||||
|
<view> |
||||||
|
<view>今日新增</view> |
||||||
|
<view class="fz40">20人</view> |
||||||
|
</view> |
||||||
|
<view> |
||||||
|
<view>一级</view> |
||||||
|
<view class="fz40">12人</view> |
||||||
|
</view> |
||||||
|
<view> |
||||||
|
<view>二级</view> |
||||||
|
<view class="fz40">8人</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="t-header acea-row row-middle row-between"> |
||||||
|
<view class="h-item">成员名称</view> |
||||||
|
<view class="h-item w180">一级积分收益</view> |
||||||
|
<view class="h-item w180">二级积分收益</view> |
||||||
|
</view> |
||||||
|
<view class="t-body"> |
||||||
|
<view class="b-item acea-row row-middle row-between"> |
||||||
|
<view class="name">李元芳</view> |
||||||
|
<view class="name w180">500积分</view> |
||||||
|
<view class="name w180">9030积分</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,45 @@ |
|||||||
|
/* pages/user/myTeam/index.wxss */ |
||||||
|
|
||||||
|
.index-page{ |
||||||
|
width: 100%; |
||||||
|
min-height: 100vh; |
||||||
|
background: #F8F8F8; |
||||||
|
padding: 32rpx 38rpx; |
||||||
|
} |
||||||
|
.data-panel-box{ |
||||||
|
width: 100%; |
||||||
|
padding: 38rpx 66rpx; |
||||||
|
background: #FFD092; |
||||||
|
border-radius: 24rpx; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.data-panel-box view{ |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.fz40{ |
||||||
|
font-size: 40rpx; |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
.t-header{ |
||||||
|
width: 100%; |
||||||
|
height: 48rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
color: #AF681B; |
||||||
|
font-size: 28rpx; |
||||||
|
background: #fff; |
||||||
|
padding: 0 22rpx; |
||||||
|
margin: 16rpx 0; |
||||||
|
} |
||||||
|
.b-item{ |
||||||
|
width: 100%; |
||||||
|
padding: 22rpx; |
||||||
|
background: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
margin-bottom: 24rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #CC8E46; |
||||||
|
} |
||||||
|
.w180{ |
||||||
|
width: 180rpx; |
||||||
|
text-align: center; |
||||||
|
} |
@ -0,0 +1,91 @@ |
|||||||
|
// pages/user/profit/index.js
|
||||||
|
const app = getApp() |
||||||
|
const user = require('../../../api/user.js') |
||||||
|
Page({ |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
userInfo: {}, |
||||||
|
integralList: [], |
||||||
|
page: 1, |
||||||
|
pagesize: 300, |
||||||
|
loadingStatus: '没有更多了。。。' |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面加载 |
||||||
|
*/ |
||||||
|
onLoad: function (options) { |
||||||
|
this.setData({ |
||||||
|
userInfo: wx.getStorageSync('userInfo') |
||||||
|
}) |
||||||
|
this.getIntegralList() |
||||||
|
}, |
||||||
|
getIntegralList(){ |
||||||
|
let data= { |
||||||
|
page: this.data.page, |
||||||
|
limit: this.data.pagesize |
||||||
|
} |
||||||
|
user.getIntegralList(data).then((res)=>{ |
||||||
|
this.setData({ |
||||||
|
integralList: res.data.data.content |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
toCashOut(){ |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/pages/user/cashOut/index?brokeragePrice=' + this.data.userInfo.brokeragePrice, |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面初次渲染完成 |
||||||
|
*/ |
||||||
|
onReady: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面显示 |
||||||
|
*/ |
||||||
|
onShow: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面隐藏 |
||||||
|
*/ |
||||||
|
onHide: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 生命周期函数--监听页面卸载 |
||||||
|
*/ |
||||||
|
onUnload: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面相关事件处理函数--监听用户下拉动作 |
||||||
|
*/ |
||||||
|
onPullDownRefresh: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 页面上拉触底事件的处理函数 |
||||||
|
*/ |
||||||
|
onReachBottom: function () { |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户点击右上角分享 |
||||||
|
*/ |
||||||
|
onShareAppMessage: function () { |
||||||
|
|
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,5 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": {}, |
||||||
|
"navigationBarTitleText": "我的收益", |
||||||
|
"enablePullDownRefresh": true |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
<!--pages/user/profit/index.wxml--> |
||||||
|
<view class="profit-page"> |
||||||
|
|
||||||
|
<view class="user-box acea-row row-middle"> |
||||||
|
<view class="avatar"><image src="{{userInfo.avatar}}"></image></view> |
||||||
|
<view class="userInfo"> |
||||||
|
<view class="name">{{userInfo.nickname}}</view> |
||||||
|
<view class="id-num">ID:{{userInfo.uid}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="profit-box"> |
||||||
|
<image src="../../../images/profit.png" class="profit-bg"></image> |
||||||
|
<view class="profit-info"> |
||||||
|
<view class="acea-row row-between"> |
||||||
|
<view class=""> |
||||||
|
<view>今日收益</view> |
||||||
|
<view class="fz40">{{userInfo.todayBrokerage}}积分</view> |
||||||
|
</view> |
||||||
|
<view class=""> |
||||||
|
<view>累计收益</view> |
||||||
|
<view class="fz40">{{userInfo.brokeragePrice}}积分</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="to-cash-out" bindtap="toCashOut">去提现</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="int-list"> |
||||||
|
<view class="int-t">积分动态</view> |
||||||
|
<view class="int-item" wx:for="{{integralList}}" wx:key="index"> |
||||||
|
<view> |
||||||
|
<view class="title">{{item.title}}</view> |
||||||
|
<view class="time colR">{{item.createTime}}</view> |
||||||
|
</view> |
||||||
|
<view class=""> |
||||||
|
<view class="title fz40 colR">{{item.pm == 0 ? '-' : '+'}}{{item.number}}积分</view> |
||||||
|
<view class="time">{{item.mark}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="loading-status">{{loadingStatus}}</view> |
||||||
|
<!-- <view class="int-item"> |
||||||
|
<view> |
||||||
|
<view class="title">禅易风云</view> |
||||||
|
<view class="time colR">2021-11-26</view> |
||||||
|
</view> |
||||||
|
<view class=""> |
||||||
|
<view class="title fz40 colR">+500积分</view> |
||||||
|
<view class="time">一级收益</view> |
||||||
|
</view> |
||||||
|
</view> --> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,93 @@ |
|||||||
|
/* pages/user/profit/index.wxss */ |
||||||
|
.profit-page{ |
||||||
|
width: 100%; |
||||||
|
min-height: 100vh; |
||||||
|
padding: 40rpx; |
||||||
|
background: #F8F8F8; |
||||||
|
} |
||||||
|
.user-box{ |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
.avatar{ |
||||||
|
width: 128rpx; |
||||||
|
height: 128rpx; |
||||||
|
border-radius: 50%; |
||||||
|
margin-right: 30rpx; |
||||||
|
} |
||||||
|
.avatar image{ |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.userInfo{ |
||||||
|
color: #333333; |
||||||
|
font-size: 40rpx; |
||||||
|
font-weight: 500; |
||||||
|
} |
||||||
|
.id-num{ |
||||||
|
color: #E1994C; |
||||||
|
font-weight: 400; |
||||||
|
font-size: 36rpx; |
||||||
|
} |
||||||
|
.profit-box{ |
||||||
|
width: 100%; |
||||||
|
height: 256rpx; |
||||||
|
position: relative; |
||||||
|
margin-top: 20rpx; |
||||||
|
} |
||||||
|
.profit-box image{ |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
} |
||||||
|
.profit-info{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
z-index: 3; |
||||||
|
padding: 48rpx 94rpx 0 94rpx; |
||||||
|
color: #E18F38; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.fz40{ |
||||||
|
font-size: 40rpx; |
||||||
|
} |
||||||
|
.to-cash-out{ |
||||||
|
width: 180rpx; |
||||||
|
height: 64rpx; |
||||||
|
background: #FFFFFF; |
||||||
|
border-radius: 32rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 64rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #E1994C; |
||||||
|
margin: 16rpx auto; |
||||||
|
} |
||||||
|
|
||||||
|
.int-list{ |
||||||
|
margin-top: 32rpx; |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
.int-t{ |
||||||
|
color: #AA6214; |
||||||
|
font-size: 32rpx; |
||||||
|
font-weight: 500; |
||||||
|
margin-bottom: 16rpx; |
||||||
|
} |
||||||
|
.int-item{ |
||||||
|
width: 100%; |
||||||
|
padding: 36rpx 32rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #3A3A3A; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
background: #fff; |
||||||
|
border: 24rpx; |
||||||
|
margin-bottom: 16rpx; |
||||||
|
border-radius: 32rpx; |
||||||
|
} |
||||||
|
.title{ |
||||||
|
font-weight: 500; |
||||||
|
} |
||||||
|
.colR{ |
||||||
|
color: #CC8E46; |
||||||
|
} |