Commit 17e45fbe by 严立

LL - 三期俱乐部静态

parent 6b873133
Showing with 1395 additions and 285 deletions
......@@ -178,6 +178,7 @@ App({
'openId': funcResponse.openid,
'name': funcResponse.nickName,
'phone': funcResponse.mobile,
'phoneHide': funcResponse.mobile.substring(0, 3) + '****' + funcResponse.mobile.substring(7),
'avatar': funcResponse.avatarUrl,
'address': funcResponse.address,
'birthday': funcResponse.birthday,
......@@ -190,6 +191,8 @@ App({
// 以返回信息中是否包含手机号码判断用户是否注册过
if (funcUserInfo.phone) {
funcUserInfo.isSignIn = true
// 测试数据
// funcUserInfo.isSignIn = false
this.queryUserStatus()
}
......@@ -275,7 +278,14 @@ App({
funcUserInfo.userType = 0
break
}
wx.setStorageSync('userInfo', funcUserInfo)
// // 测试数据 - 游客
// funcUserInfo.status = ''
// funcUserInfo.userType = 0
// // 测试数据 - 业主
// funcUserInfo.status = 1
// funcUserInfo.userType = 1
// wx.setStorageSync('userInfo', funcUserInfo)
// 如果用户身份有更新,则自动跳转到首页
if (funcStatus !== funcStatusRaw) {
......@@ -434,4 +444,24 @@ App({
clearTimeout(this.scrollTimestamp)
}, funcFrequency)
},
setPriceType: function (funcCommodityData) {
let funcUserType = wx.getStorageSync('userInfo').userType
for (let i = 0, l = funcCommodityData.length; i < l; i++) {
// 根据后台判断价格显示类型
// 活动价优先级最高,如果存在活动价,则只显示活动价和普通价
if (funcCommodityData[i].priceDiscount || funcCommodityData[i].priceDiscount === 0) {
funcCommodityData[i].priceType = 1
} else {
// 活动价不存在,进一步判断普通价与业主价是否一致,如果不一致,则显示两者
if (funcCommodityData[i].price !== funcCommodityData[i].priceSpecial && funcUserType) {
funcCommodityData[i].priceType = 2
} else {
funcCommodityData[i].priceType = 3
}
}
}
return funcCommodityData
},
})
\ No newline at end of file
{
"pages": [
"pages/home/home/home",
"pages/home/dynamic/dynamic",
"pages/home/dynamic-detail/dynamic-detail",
......@@ -28,7 +29,7 @@
"pages/campsite/home/home",
"pages/campsite/home-mirror/home-mirror",
"pages/mine/home/home",
"pages/mine/info/info",
"pages/mine/order/order",
......@@ -49,13 +50,22 @@
"pages/pay/coupon/coupon",
"pages/pay/coupon-input/coupon-input",
"pages/pay/coupon-detail/coupon-detail",
"pages/club/home/home",
"pages/club/information/information",
"pages/club/member/member",
"pages/club/create/create",
"pages/club/enter/enter",
"pages/login/login"
],
"usingComponents": {
"m-button-bottom": "./component/m-button-bottom/m-button-bottom",
"m-dialog": "./component/m-dialog/m-dialog",
"m-nav": "./component/m-nav/m-nav",
"m-tab": "./component/m-tab/m-tab",
"m-toast": "./component/m-toast/m-toast",
"m-dialog": "./component/m-dialog/m-dialog",
"swiper-point": "./component/swiper-point/swiper-point",
"l-avatar": "./miniprogram_npm/lin-ui/avatar/index",
"l-checkbox": "./miniprogram_npm/lin-ui/checkbox/index",
......
......@@ -10,4 +10,29 @@
.arrow-more {
width: 32rpx;
height: 32rpx;
}
.owner-mark {
height: 32rpx;
padding: 0 12rpx;
background: linear-gradient(180deg, #3F4357 0%, #252532 100%);
border-radius: 4px;
font-size: 18rpx;
font-weight: 500;
line-height: 30rpx;
color: #E8D0AF;
}
.tag-blue {
height: 32rpx;
padding: 0 8rpx;
border-radius: 4px;
border: 1px solid #86C5E1;
background: rgba(134, 197, 225, 0.1);
font-size: 18rpx;
font-weight: 500;
line-height: 24rpx;
color: #86C5E1;
}
\ No newline at end of file
Component({
options: {
styleIsolation: 'apply-shared'
},
properties: {
text: {
type: String,
value: '申请加入',
},
},
data: {
},
methods: {
onButton: function () {
this.triggerEvent('click')
},
}
})
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<view class="m-button-bottom">
<view class="m-button-bottom-content">
<button class="row cc ac" bindtap="onButton">{{text}}</button>
</view>
<view class="m-button-bottom-occupy"></view>
</view>
\ No newline at end of file
.m-button-bottom-content {
position: fixed;
bottom: 0;
left: 0;
width: 750rpx;
height: 156rpx;
padding: 32rpx 40rpx;
border-top: 1px #E2E7EF solid;
}
.m-button-bottom-content {
background: #FFFFFF;
}
.m-button-bottom-content > button {
width: 670rpx;
height: 96rpx;
border-radius: 4px;
background: #86C5E1;
font-size: 30rpx;
font-weight: 500;
line-height: 42rpx;
color: #FFFFFF;
}
.m-button-bottom-occupy {
width: 750rpx;
height: 156rpx;
}
\ No newline at end of file
......@@ -301,11 +301,16 @@ Component({
// 导航栏拥有 logo 的场景,需要判断 logo 是否超出原有导航栏高度。
let funcLogoFillTop = 0
let funcLogoFillHeight = 0
let funcRegExp = this.data.logoFillCss.match(/(?<=top: )[0-9.]+/g)
if (funcRegExp) funcLogoFillTop = Number(funcRegExp[0])
funcRegExp = this.data.logoFillCss.match(/(?<=height: )[0-9.]+/g)
if (funcRegExp) funcLogoFillHeight = Number(funcRegExp[0])
// ios 正则兼容写法。
// ios 不支持 ? 匹配规则,所以只能获取之后再将不需要的数据替换为空值。
let funcRegExp = new RegExp('top: [0-9.]+', 'g')
let funcResult = this.data.logoFillCss.match(funcRegExp)
if (funcResult) funcLogoFillTop = Number(funcResult[0].replace('top: ', ''))
funcRegExp = new RegExp('height: [0-9.]+', 'g')
funcResult = this.data.logoFillCss.match(funcRegExp)
if (funcResult) funcLogoFillHeight = Number(funcResult[0].replace('height: ', ''))
if (funcLogoFillTop === 0) {
wx.setStorageSync('navHeight', this.data.currentStyle.statusHeight + this.data.currentStyle.titleHeight)
......
Component({
scrollStart: 0,
scrollTimer: 0,
scrollLock: false,
options: {
styleIsolation: 'apply-shared'
},
properties: {
// 导航栏是否固定在视图顶部
isFixed: {
type: Boolean,
value: true,
},
fixedTop: {
type: Number,
value: 0,
},
// 导航栏是否占用空间,仅在 isFixed 为 true 时有效。
isOccupy: {
type: Boolean,
value: true,
},
item: {
type: Array,
value: []
},
activeIndex: {
type: Number,
value: 0,
},
},
data: {
itemElementLeft: [],
scrollLeft: 0,
},
// 属性监听
observers: {
'item': function (funcValue) {
this.setItemElement()
},
},
methods: {
setItemElement: function () {
// 获取购物车高度
let funcQuery = this.createSelectorQuery()
funcQuery.selectAll('.m-item').boundingClientRect()
funcQuery.exec((funcResult) => {
let funcSelectionElement = funcResult[0]
this.scrollStart = funcSelectionElement[0].left
let funcList = [ 0 ]
for (let i = 1, l = funcSelectionElement.length; i < l; i++) {
funcList.push(funcSelectionElement[i].left - this.scrollStart)
}
this.setData({
itemElementLeft: funcList
})
})
},
onItem: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
let funcIndex = funcEvent.currentTarget.dataset.index
this.setData({
activeIndex: funcIndex
})
this.triggerEvent('tabChange', funcItem)
},
eventTabScroll: function (funcEvent) {
if (this.scrollLock) return
let funcScrollLeft = funcEvent.detail.scrollLeft
clearTimeout(this.scrollTimer)
this.scrollTimer = setTimeout(() => {
let funcItemElementLeft = this.data.itemElementLeft
for (let i = 0, l = funcItemElementLeft.length; i < l; i++) {
// funcScrollLeft - 20 是为了弥补滚动到首个 item 时无法准确定位在 0 数值上的问题。
if (funcScrollLeft - 20 < funcItemElementLeft[i]) {
this.scrollLock = true
this.setData({
scrollLeft: funcItemElementLeft[i]
})
clearTimeout(this.scrollTimer)
this.scrollTimer = setTimeout(() => {
this.scrollLock = false
clearTimeout(this.scrollTimer)
}, 500)
break
}
}
}, 200)
},
}
})
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<view class="m-tab {{isFixed ? 'm-tab-fixed' : ''}}" style="{{'top: ' + fixedTop + 'px;'}}">
<scroll-view class="m-item-list row ac" scroll-x="true" scroll-left="{{scrollLeft}}" bindscroll="eventTabScroll">
<block wx:for="{{item}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view
class="m-item {{activeIndex === index ? 'm-item-active' : 'm-item-inactive'}}"
data-item="{{item}}"
data-index="{{index}}"
bindtap="onItem"
>
<text>{{item.text}}</text>
</view>
</block>
</scroll-view>
</view>
<!-- 导航栏占位元素 -->
<view wx:if="{{isOccupy && isFixed}}" class="m-tab-occupy"></view>
\ No newline at end of file
.m-tab {
z-index: 4;
width: 750rpx;
height: 72rpx;
padding: 0 0 0 40rpx;
border-bottom: 1px #E2E7EF solid;
background: #FFFFFF;
}
.m-tab-fixed {
position: fixed;
top: 0;
left: 0;
}
.m-item-list {
width: 710rpx;
white-space: nowrap;
}
.m-item-list::-webkit-scrollbar {
display: none;
}
.m-item {
display: inline-block;
margin-right: 80rpx;
padding-bottom: 26rpx;
font-size: 26rpx;
font-weight: 500;
color: #15191F;
}
.m-item-active {
border-bottom: 4rpx #15191F solid;
}
.m-item-inactive {
border-bottom: 4rpx rgba(0, 0, 0, 0) solid;
}
.m-tab-occupy {
height: 72rpx;
}
\ No newline at end of file
/* 层级说明
- - 背景
0 - 视图
1 - 视图
2 - 视图
3 - 视图
4 - 视图
5 - 导航栏,占位元素
6 - 导航栏
7 - 遮罩,弹窗,提示,
8 - 遮罩
9 - 遮罩
- : 整体背景
0 : 视图
1 : 视图
2 : 视图
3 : 视图
4 : 视图
5 : 导航栏,占位元素
6 : 导航栏
7 : 遮罩,弹窗,提示,
8 : 遮罩
9 : 遮罩
*/
.row {
......

233 Bytes | W: | H:

2.08 KB | W: | H:

image/icon/arrow-r-3.png
image/icon/arrow-r-3.png
image/icon/arrow-r-3.png
image/icon/arrow-r-3.png
  • 2-up
  • Swipe
  • Onion skin

669 Bytes | W: | H:

669 Bytes | W: | H:

image/inform-w.png
image/icon/edit-4.png
image/inform-w.png
image/icon/edit-4.png
  • 2-up
  • Swipe
  • Onion skin
// pages/club/create/create.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<!--pages/club/create/create.wxml-->
<text>pages/club/create/create.wxml</text>
/* pages/club/create/create.wxss */
\ No newline at end of file
// pages/club/enter/enter.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<!--pages/club/enter/enter.wxml-->
<text>pages/club/enter/enter.wxml</text>
/* pages/club/enter/enter.wxss */
\ No newline at end of file
let App = getApp()
Page({
data: {
tabItem: [
{ 'text': '全部', 'value': '' },
{ 'text': '亲子教育', 'value': '' },
{ 'text': '健康', 'value': '' },
{ 'text': '理财经商', 'value': '' },
{ 'text': '家居美学', 'value': '' },
],
clubList: [],
},
onLoad: function (options) {
this.queryClub()
},
queryClub: function () {
let funcResponse = [
{
'id': '',
'logo': '',
'name': '马术俱乐部',
'describe': '俱乐部拥有进口纯血马20匹,国产马6匹,马匹每天清理一次,运动完洗澡烤电放松背部肌肉,是热爱马术人士的聚集地。',
'member': 1900,
}, {
'id': '',
'logo': '',
'name': '音乐剧话剧俱乐部',
'describe': '为广大音乐剧话剧爱好者提供了一个学习和讨论的平台,让大家感受到音乐剧话剧之美,参与其中学习表演,体会到音乐剧话剧的魅力所在。',
'member': 1700,
},
]
this.setData({
clubList: funcResponse
})
},
/**
* 页面滚动事件
* @function
* @param {object} - funcEvent
* @returns
*/
onPageScroll: function (funcEvent) {
App.pageScroll(funcEvent, this)
},
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<nav titleText="俱乐部" styleIndex="2" scrollHeight="{{navScroll}}" isOccupy="{{false}}"></nav>
<view class="container">
<!-- banner -->
<view class="banner">
<image></image>
</view>
<!-- tab -->
<view class="tab">
<m-tab item="{{tabItem}}"></m-tab>
</view>
<view class="club-list">
<block wx:for="{{clubList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="club-item row">
<view class="club-logo">
<image src="{{item.logo}}"></image>
</view>
<view class="club-info column">
<view class="club-info-name row ac">
<text>{{item.name}}</text>
<text class="owner-mark">业主专享</text>
</view>
<view class="club-info-describe row">
<text>{{item.describe}}</text>
</view>
<view class="club-info-other row cb ac">
<text>{{item.member + '成员'}}</text>
<button>申请加入</button>
</view>
</view>
</view>
</block>
</view>
</view>
\ No newline at end of file
.banner image {
width: 750rpx;
height: 998rpx;
background: #999999;
}
.tab {
margin-top: 64rpx;
}
.club-list {
padding-top: 80rpx;
}
.club-item {
margin-bottom: 64rpx;
}
.club-logo > image {
width: 168rpx;
height: 168rpx;
margin-right: 28rpx;
background: #999999;
}
.club-info-name > text:nth-child(1) {
height: 44rpx;
margin-right: 16rpx;
font-size: 34rpx;
font-weight: 800;
line-height: 44rpx;
color: #15191F;
}
.club-info-describe {
width: 474rpx;
margin-top: 16rpx;
font-size: 22rpx;
font-weight: 400;
line-height: 36rpx;
color: #959DA9;
}
.club-info-other {
margin-top: 18rpx;
}
.club-info-other > text {
font-size: 22rpx;
font-weight: 400;
line-height: 40rpx;
color: #959DA9;
}
.club-info-other > button {
width: 120rpx;
height: 56rpx;
border-radius: 4px;
background: #86C5E1;
font-size: 22rpx;
font-weight: 500;
line-height: 56rpx;
color: #FFFFFF;
}
\ No newline at end of file
let App = getApp()
Page({
data: {
imageBase: App.globalData.appImageBase,
resourcesBase: App.globalData.appResourcesBase,
detailActivity: [],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.queryActi()
},
queryActi: function () {
let funcList = [{
'cover': '',
'id': '',
'title': '活动名称',
'officeId': '',
'price': 123,
'priceText': App.modular.utils.formatAmount(123),
'priceSpecial': 123, // 业主价
'priceSpecialText': App.modular.utils.formatAmount(123),
'tagIds': '',
'tagNames': 'tag',
'date': '2020-10-19 2020-10-20',
'priceType': 1,
}]
this.setData({
detailActivity: funcList
})
}
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<view class="container">
<view class="banner">
<image src=""></image>
</view>
<view class="club-info row cc ac">
<image class="club-info-logo" src=""></image>
<view class="club-info-name column cc ac">
<text class="title">马术俱乐部</text>
<text class="owner-mark">业主专享</text>
<view class="club-info-member row cc ac">
<text>1877 成员</text>
<image class="arrow-more" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
</view>
</view>
<view class="club-describe column">
<text class="title">俱乐部简介</text>
<text>俱乐部拥有进口纯血马20匹,国产马6匹,马匹每天清理一次,运动完洗澡烤电放松背部肌肉。有中外会员数百人,是热爱马术人士的聚集地。</text>
</view>
<!-- 近期活动 -->
<view class="card">
<view class="card-title row cb ac">
<text class="title">近期活动</text>
<text>查看全部</text>
</view>
<view class="card-list row">
<block wx:for="{{3}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="card-item column ac">
<image class="card-item-cover"></image>
<view class="card-item-info">
<view class="card-item-info-title row cb ac">
<text>八月银湖湾儿童马术节</text>
<text class="tag-blue">亲子教育</text>
</view>
<view class="card-item-info-time row ac">
<image class="arrow-more" src="{{imageBase + 'icon/clock-2.png'}}"></image>
<text>9.20-9.25 10:00-11:30</text>
</view>
<view class="card-item-other row cb ac">
<view class="card-item-price row">
<text class="owner-mark">业主价</text>
<text>免费</text>
<text>¥ 149</text>
</view>
<button class="row cc ac">报名</button>
</view>
</view>
</view>
</block>
<view class="card-item column ac" wx:if="{{true}}"></view>
</view>
</view>
<!-- 详情 -->
<view class="club-detail">
<view class="row cb ac">
<text class="club-detail-title title">俱乐部详情</text>
</view>
<view class="club-detail-content">
<image mode="widthFix" src="{{resourcesBase + 'club/information/club-detail.png'}}"></image>
</view>
</view>
<!-- 加入规则 -->
<view class="club-enter">
<view class="club-enter-title">
<text class="title">加入规则</text>
</view>
<image mode="widthFix" src="./image/enter-rule.png"></image>
</view>
</view>
<m-button-bottom></m-button-bottom>
\ No newline at end of file
.title {
height: 52rpx;
font-size: 38rpx;
font-weight: 800;
line-height: 52rpx;
color: #15191F;
}
.banner > image {
width: 750rpx;
height: 600rpx;
background: #999999;
}
/* 俱乐部名称 */
.club-info {
position: relative;
width: 750rpx;
}
.club-info > view {
margin-top: 116rpx;
}
.club-info-logo {
position: absolute;
top: -84rpx;
left: 291rpx;
width: 168rpx;
height: 168rpx;
background: #999999;
}
.club-info-name > text:nth-child(2) {
width: 96rpx;
margin-top: 16rpx;
}
.club-info-member {
height: 36rpx;
margin-top: 24rpx;
}
.club-info-member > text:nth-child(1) {
margin-right: 8rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #959DA9;
}
/* 俱乐部简介 */
.club-describe {
margin-top: 96rpx;
padding-bottom: 50rpx;
border-bottom: 1px #E2E7EF solid;
}
.club-describe > text:nth-child(2) {
width: 670rpx;
margin-top: 48rpx;
font-size: 30rpx;
font-weight: 300;
line-height: 50rpx;
color: #15191F;
}
/* 近期活动 */
.card {
margin-top: 80rpx;
}
.card-title {
width: 750rpx;
padding: 0 40rpx;
}
.card-title > text:nth-child(1) {
height: 52rpx;
font-size: 38rpx;
font-weight: 800;
line-height: 52rpx;
color: #15191F;
}
.card-title > text:nth-child(2) {
height: 36rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #959DA9;
}
.card-list {
width: 750rpx;
margin-top: 48rpx;
padding: 0 0 0 40rpx;
overflow-x: scroll;
}
.card-item {
display: inline-block;
width: 562rpx;
margin: 0 24rpx 0 0;
border-radius: 4px;
background: #F5F6F8;
}
.card-item:last-child {
width: 1rpx !important;
min-width: 1rpx !important;
}
.card-item-cover {
width: 562rpx;
height: 316rpx;
background: #999999;
}
.card-item-info {
padding: 32rpx;
}
.card-item-info-title > text:nth-child(1) {
height: 44rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 44rpx;
color: #15191F;
}
.card-item-info-time {
margin-top: 8rpx;
height: 40rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 40rpx;
color: #656E7B;
}
.card-item-other {
margin-top: 16rpx;
}
.card-item-other > button {
width: 132rpx;
height: 56rpx;
border-radius: 4px;
background: #86C5E1;
font-size: 26rpx;
font-weight: 500;
line-height: 36rpx;
color: #FFFFFF;
}
.card-item-price > text:nth-child(2) {
height: 36rpx;
margin: 0 12rpx;
font-size: 30rpx;
font-weight: 800;
line-height: 32rpx;
color: #15191F;
}
.card-item-price > text:nth-child(3) {
height: 36rpx;
font-size: 22rpx;
font-weight: 400;
line-height: 36rpx;
color: #C2C7CF;
}
/* 俱乐部详情 */
.club-detail {
margin-top: 80rpx;
}
.club-detail-title {
padding: 0 40rpx;
}
.club-detail-content > image {
margin-top: 80rpx;
width: 750rpx;
}
/* 加入规则 */
.club-enter {
margin: 90rpx 0 64rpx 0;
}
.club-enter-title {
padding: 0 40rpx;
}
.club-enter > image {
width: 750rpx;
margin-top: 48rpx;
}
\ No newline at end of file
// pages/club/member/member.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<!--pages/club/member/member.wxml-->
<text>pages/club/member/member.wxml</text>
/* pages/club/member/member.wxss */
\ No newline at end of file
......@@ -115,7 +115,7 @@ Page({
let funcGreetingName = this.data.userInfo.name
if (funcGreetingName.length > 5) funcGreetingName = funcGreetingName.substring(0, 5) + '...'
if (funcGreetingName === '') funcGreetingName = 'Hello'
if (funcGreetingName === '') funcGreetingName = 'Hello'
this.setData({
greetingName: funcGreetingName,
......
page {
background: #F3F4F6;
}
.container {
min-height: 100vh;
background: #f3f4f6;
}
.background-image {
z-index: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* 用户信息面板 */
.info {
width: 750rpx;
height: 416rpx;
padding: 220rpx 40rpx 0 40rpx;
}
.mine {
width: 750rpx;
height: 380rpx;
padding: 220rpx 0 0 48rpx;
.info-owner {
color: #F0DABB !important;
}
.mine-bgi {
.info-bgi {
z-index: -1;
position: absolute;
top: 0;
left: 0;
width: 750rpx;
height: 500rpx;
}
.user-type {
width: 126rpx;
height: 40rpx;
font-weight: 500;
font-size: 22rpx;
color: #fff;
background-color: #6783ae;
text-align: center;
line-height: 40rpx;
border-radius: 4rpx;
letter-spacing: 10rpx;
margin-top: 8rpx;
height: 416rpx;
}
.owner-tag {
height: 80rpx;
width: 142rpx;
/* margin-top: 8rpx!important; */
}
.mine-avatar {
.info-avatar {
z-index: 1;
margin-right: 32rpx;
margin-right: 30rpx;
width: 136rpx;
height: 136rpx;
}
.mine-avatar-special {
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background-color: #f0dabb;
}
.mine-avatar > image {
.info-avatar > image {
width: 128rpx;
height: 128rpx;
border-radius: 50%;
}
.mine-info {
z-index: 1;
padding-top: 12rpx;
}
.mine-info view:nth-child(1) text {
max-width: 260rpx;
margin-right: 20rpx;
.info-sign-in {
font-size: 42rpx;
font-weight: 500;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.padding-l-18 {
padding-left: 18rpx;
line-height: 58rpx;
color: #15191F;
}
/* 积分 */
.integral {
color: #0d0d0e;
text-align: right;
.info-edit {
height: 120rpx;
}
.glod {
color: #f0dabb;
}
.integral-num {
font-size: 54rpx;
line-height: 66rpx;
padding-right: 80rpx;
font-weight: 600;
}
.integral-title {
display: flex;
height: 52rpx;
align-items: center;
font-size: 26rpx;
line-height: 36rpx;
flex-direction: row;
justify-content: flex-end;
padding-right: 40rpx;
}
.arrow-r {
width: 32rpx;
height: 32rpx;
margin-left: 8rpx;
.info-name {
height: 58rpx;
font-size: 42rpx;
font-weight: 500;
line-height: 58rpx;
color: #15191F;
}
.mine-info view:nth-child(1) image {
.info-name > image {
width: 40rpx;
height: 40rpx;
margin-top: 10rpx;
}
.mine-info view:nth-child(2) {
margin-top: 0rpx;
.info-integral {
flex-grow: 1;
height: 120rpx;
text-align: right;
color: #0d0d0e;
}
.mine-info view:nth-child(2) text {
font-size: 26rpx;
color: #959da9;
.info-integral-quantity {
height: 76rpx;
margin-right: 40rpx;
font-size: 52rpx;
font-weight: 500;
line-height: 76rpx;
color: #0D0D0E;
}
.coupon {
z-index: 7;
width: 670rpx;
height: 176rpx;
padding: 41rpx 32rpx;
background-color: #fff;
border-radius: 4rpx;
margin-top: 48rpx;
.info-integral-title > text{
height: 36rpx;
margin-right: 8rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #15191F;
}
.cpopon-info {
flex: 1;
}
.info-status-tourist {
width: 126rpx;
height: 40rpx;
margin: 10rpx 0 2rpx 0;
border-radius: 4px;
background: #6783AE;
.cpopon-info text:nth-child(1) {
font-size: 34rpx;
font-weight: 600;
color: #15191f;
font-size: 22rpx;
font-weight: 500;
line-height: 32rpx;
color: #FFFFFF;
}
.cpopon-info text:nth-child(2) {
margin-top: 12rpx;
font-size: 26rpx;
color: #161a1f;
.info-status-owner > image {
width: 106rpx;
height: 40rpx;
margin: 10rpx 0 2rpx 0;
border-radius: 4px;
}
.coupon image {
width: 32rpx;
height: 32rpx;
.info-avatar-special {
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
background-color: #f0dabb;
}
.status {
z-index: 7;
/* 业主认证 */
.status-authentication {
z-index: 2;
width: 670rpx;
height: 130rpx;
margin-top: 48rpx;
padding: 24rpx 32rpx 24rpx 40rpx;
border-radius: 4rpx;
background: linear-gradient(180deg, rgba(63, 67, 87, 1) 0%, rgba(37, 37, 50, 1) 100%);
background: linear-gradient(180deg, #3F4357 0%, #252532 100%);
}
.status-symbol text:nth-child(1) {
font-size: 30rpx;
font-weight: bolder;
color: rgba(255, 227, 195, 1);
font-weight: 800;
color: #F1DBBD;
}
.status-symbol text:nth-child(2) {
......@@ -195,9 +145,10 @@
height: 52rpx;
padding: 0 16rpx;
border-radius: 4rpx;
background: linear-gradient(180deg, rgba(255, 243, 227, 1) 0%, rgba(255, 227, 195, 1) 100%);
color: #282836;
background: linear-gradient(180deg, #FFF3E3 0%, #FFE3C3 100%);
font-size: 26rpx;
color: #282836;
}
.status-operation text {
......@@ -212,6 +163,109 @@
margin-right: 8rpx;
}
/* 券码核销 */
.coupon-permissions {
z-index: 2;
width: 670rpx;
height: 176rpx;
margin-top: 48rpx;
padding: 40rpx 32rpx;
border-radius: 4px;
background: #FFFFFF;
}
.coupon-permissions-info {
flex-grow: 1;
}
.coupon-permissions-info > text:nth-child(1) {
font-size: 34rpx;
font-weight: 600;
color: #15191f;
}
.coupon-permissions-info > text:nth-child(2) {
margin-top: 12rpx;
font-size: 26rpx;
color: #161a1f;
}
/* 我的订单,我的预约 */
.card {
width: 670rpx;
min-height: 312rpx;
margin: 48rpx 40rpx 0 40rpx;
padding: 40rpx 32rpx;
border-radius: 4px;
background: #FFFFFF;
}
.card-title > text:nth-child(1) {
flex-grow: 1;
height: 34rpx;
font-size: 34rpx;
font-weight: 800;
line-height: 34rpx;
color: #15191F;
}
.card-title > text:nth-child(2) {
height: 26rpx;
margin-right: 8rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 26rpx;
color: #15191F;
}
.card-category {
margin-top: 56rpx;
padding: 0 6rpx;
}
.card-item {
position: relative;
}
.card-item-quantity {
position: absolute;
top: -10rpx;
right: 0;
width: 32rpx;
height: 32rpx;
border-radius: 50%;
background: #E66060;
font-size: 22rpx;
line-height: 32rpx;
color: #FFFFFF;
}
.card-item > text {
height: 32rpx;
margin-top: 16rpx;
font-size: 22rpx;
font-weight: 400;
line-height: 32rpx;
color: #161A1F;
}
.card-item-icon {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
background: #F5F6F8;
}
.card-item-icon > image {
width: 48rpx;
height: 48rpx;
}
.menu {
width: 750rpx;
/* margin-top: 16rpx; */
......
<m-toast></m-toast>
<m-dialog></m-dialog>
<m-nav titleText="订单详情"></m-nav>
<m-nav titleText="订单详情" bind:navBack="navBack"></m-nav>
<view class="container">
<!-- 订单状态 -->
<view class="state row con-c">
......
......@@ -350,8 +350,6 @@ Page({
if (funcShoppingCart[i].isActive) funcPayAmount = funcPayAmount + funcShoppingCart[i].priceUnit * funcShoppingCart[i].quantity
}
this.setData({
shoppingCartList: funcShoppingCart,
payAmount: App.modular.utils.formatAmount(funcPayAmount),
......@@ -819,10 +817,6 @@ Page({
// 校验数组用户信息
let funcRegisterInfo = this.data.registerInfo
console.log(funcRegisterInfo)
for (let i = 0, l = funcRegisterInfo.length; i < l; i++) {
if (funcRegisterInfo[i].name === '' || funcRegisterInfo[i].errorName !== '') {
this.setUserInfo('name', funcRegisterInfo[i].name, i, App.modular.rule.item('name', funcRegisterInfo[i].name))
......@@ -1215,7 +1209,7 @@ Page({
default:
// 支付成功进入成功页面
wx.reLaunch({
url: '/pages/pay/order-state/order-state?state=' + funcPayResult + '&amount=' + this.data.buyContentAmount + '&orderId=' + this.data.orderId
url: '/pages/pay/order-state/order-state?state=' + funcPayResult + '&amount=' + this.data.payAmount + '&orderId=' + this.data.orderId
})
break
}
......
{
"usingComponents": {}
"usingComponents": {},
"enablePullDownRefresh": true
}
\ No newline at end of file
<m-nav titleText="主题活动" scrollHeight="{{navScroll}}" styleIndex="{{1}}"></m-nav>
<m-tab item="{{tabItem}}" isFixed="{{true}}" fixedTop="{{tabTop}}"></m-tab>
<view class="status row align-c" style="{{'top: ' + navHeight + 'px'}}" wx:if="{{!options.fromPage}}">
<block wx:for="{{statusList}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="status-item row con-c align-c" data-index="{{index}}" bindtap="onSelectionStatus">
<view class="row con-c align-c {{index === statusActive ? 'status-item-active' : ''}}">
<text>{{item.name}}</text>
</view>
</view>
</block>
</view>
<view class="container con-s" style="{{'margin-top: ' + classHeight + 'px;'}}">
<view class="container">
<!-- 近期活动 -->
<block wx:if="{{activity.length > 0}}">
<view class="list">
<block wx:for="{{selectedActivity}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="item" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityDetail">
<block wx:for="{{activity}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="item" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityLately">
<view class="item-cover" wx:if="{{item.cover !== ''}}">
<image src="{{item.cover}}" mode="aspectFill"></image>
</view>
......@@ -58,6 +50,7 @@
</view>
</block>
<!-- 往期活动 -->
<block wx:if="{{selectedOther.length > 0}}">
<view class="title row">
<image src="./image/title-2.png"></image>
......@@ -68,7 +61,7 @@
<!-- 左侧列表 -->
<view class="route-list-left">
<block wx:for="{{selectedOther}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="route-item" wx:if="{{index % 2 === 0}}" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityDetail">
<view class="route-item" wx:if="{{index % 2 === 0}}" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityExpire">
<view class="row con-c align-c">
<image src="{{item.cover}}" mode="aspectFill"></image>
</view>
......@@ -81,7 +74,7 @@
<!-- 右侧列表 -->
<view class="route-list-right">
<block wx:for="{{selectedOther}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="route-item" wx:if="{{index % 2 === 1}}" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityDetail">
<view class="route-item" wx:if="{{index % 2 === 1}}" data-id="{{item.id}}" data-index="{{index}}" bindtap="onActivityExpire">
<view class="row con-c align-c">
<image src="{{item.cover}}" mode="aspectFill"></image>
</view>
......
.tab {
position: fixed;
top: 0;
left: 0;
background: #FFFFFF;
}
.container {
min-height: 100vh;
padding-bottom: 100rpx;
......
......@@ -406,6 +406,8 @@ Page({
winActivity: true,
detailActivity: funcList
})
console.log(JSON.stringify(this.data.detailActivity))
}
})
},
......
......@@ -835,7 +835,7 @@
right: 0;
width: 160rpx;
height: 160rpx;
margin: 0 0 10rpx 0;
margin: 0 5rpx 10rpx 0;
border-radius: 4rpx;
background: rgba(0, 0, 0, 0.4);
}
......
......@@ -24,6 +24,9 @@
* onLoad: function () {},
* 生命周期函数
*
* setXX: function () {},
* 初始,设置数据函数
*
* queryXX: function () {},
* 数据查询函数
*
......
const output = {
// 测试环境
baseUrl: 'https://sm-web.meiqicloud.com/api/',
baseUrl: 'https://sm-web2.meiqicloud.com/api/',
// 正式环境
// baseUrl: 'https://xsslc.cndrealty.com/',
......
......@@ -10,6 +10,11 @@ let Output = {
request: function (option) {
let App = getApp()
let funcToken = App.globalData.token
if (funcToken) {
option.header.token = funcToken
}
// 网络断开场景
// if (!App.globalData.networkStatus) {
// console.log('offline')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment