Commit 17f52045 by 严立

LL - 俱乐部问题修复

parent fa00b689
......@@ -34,7 +34,6 @@ App({
iMui(this) // m-ui 相关函数引入
iLogin(this) // 全局登录,根据 token 的情况执行相关操作
this.setUnitProportion()
this.queryClubEstablish()
},
onShow: function () {
......@@ -80,6 +79,7 @@ App({
*/
userUpdate: function () {
console.log('userUpdate')
this.queryClubEstablishTotal()
},
/**
......@@ -124,6 +124,7 @@ App({
}
wx.setStorageSync('userInfo', funcUserInfo)
this.userUpdate()
}).catch(() => {})
}
})
......@@ -276,12 +277,12 @@ App({
},
/**
* 查询我管理的俱乐部审核数量
* 查询我管理的俱乐部审核总数
* @function
* @param
* @returns
*/
queryClubEstablish: function () {
queryClubEstablishTotal: function () {
this.request({
url: 'v3/club/getMyCreateClub',
params: {
......@@ -292,7 +293,7 @@ App({
let funcData = response.data.list
let funcExamine = 0
for (let i = 0, l = funcData.length; i < l; i++) {
funcExamine = funcExamine + Number(funcData[i].count) + 1
funcExamine = funcExamine + Number(funcData[i].count)
}
if (funcExamine > 0) {
wx.setTabBarItem({
......
......@@ -28,6 +28,16 @@
background: linear-gradient(180deg, #FFFFFF 0%, #F3F4F6 20%, #F3F4F6 100%);
}
.dialog_container {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .65);
}
/* 业主相关标记 */
.owner-mark {
height: 32rpx;
......
......@@ -14,27 +14,33 @@ Component({
align: {
type: String,
value: 'bottom',
}
},
moveRangesX: {
type: Array,
value: [],
},
moveRangesY: {
type: Array,
value: [],
},
},
data: {
cssPopup: '',
borderRadius: {
'top': 'border-top-left-radius: 0;',
'right': 'border-top-right-radius: 0;',
'bottom': 'border-bottom-right-radius: 0;',
'left': 'border-bottom-left-radius: 0;',
},
vector: 1, // 偏移方向。
deviationX: 0, // 横轴偏移数值。
deviationY: 0, // 纵轴偏移数值。
direction: 1, // 偏移方向。
elementOpacity: 0, // 在显示之前将元素隐藏,移动到动画进入的位置。不可使用 wx:if 或者 hidden ,因为那样会获取不到元素宽高。
animationData: {},
},
observers: {
'isShow': function (funcValue) {
this.setData({
elementOpacity: 0
})
this.setElement()
},
},
......@@ -45,67 +51,77 @@ Component({
query.select('.m-popup-content').boundingClientRect()
query.exec((response) => {
let funcElementInfo = response[0]
console.log(funcElementInfo)
this.setData({
deviationX: funcElementInfo.width,
deviationY: funcElementInfo.height,
})
this.setBorder()
this.setAnimation()
})
},
setAnimation: function () {
let funcAnimation = wx.createAnimation({
duration: 1000,
timingFunction: 'ease',
})
this.animation = funcAnimation
funcAnimation.translate(this.data.deviationX * this.data.direction, this.data.deviationY * this.data.direction).step()
this.setData({
animationData: funcAnimation.export(),
})
setTimeout(function () {
funcAnimation.translate(0, 0).step()
this.setData({
elementOpacity: 100,
animationData: funcAnimation.export()
})
}.bind(this), 1000)
},
setBorder: function () {
switch (this.data.align) {
case 'top':
this.setData({
cssPopup: this.data.borderRadius.top + this.data.borderRadius.right + 'top: 0; width: 100vw;',
direction: -1,
cssPopup: 'border-radius: 0 0 24px 24px; top: 0; left: 0; width: 100vw;',
vector: -1,
deviationX: 0,
})
console.log(this.data.cssPopup)
break
case 'right':
this.setData({
cssPopup: this.data.borderRadius.right + this.data.borderRadius.bottom + 'right: 0; height: 100vh;',
cssPopup: 'border-radius: 24px 0 0 24px; top: 0; right: 0; height: 100vh;',
deviationY: 0,
})
console.log(this.data.cssPopup)
break
case 'bottom':
this.setData({
cssPopup: this.data.borderRadius.left + this.data.borderRadius.bottom + 'bottom: 0; width: 100vw;',
cssPopup: 'border-radius: 24px 24px 0 0; bottom: 0; left: 0; width: 100vw;',
deviationX: 0,
})
console.log(this.data.cssPopup)
break
case 'left':
this.setData({
cssPopup: this.data.borderRadius.top + this.data.borderRadius.left + 'left: 0; height: 100vh;',
direction: -1,
cssPopup: 'border-radius: 0 24px 24px 0; top: 0; left: 0; height: 100vh;',
vector: -1,
deviationY: 0,
})
console.log(this.data.cssPopup)
break
}
},
setAnimation: function () {
let funcAnimation = wx.createAnimation({
duration: 500,
timingFunction: 'ease',
})
this.animation = funcAnimation
funcAnimation.translate(this.data.deviationX * this.data.vector, this.data.deviationY * this.data.vector).step()
this.setData({
animationData: funcAnimation.export(),
})
setTimeout(function () {
funcAnimation.translate(0, 0).step()
this.setData({
elementOpacity: 100,
animationData: funcAnimation.export()
})
}.bind(this), 1000)
},
onClosePopup: function () {
this.setData({
isShow: false
})
},
}
})
\ No newline at end of file
<view class="m-popup fill-mask" wx:if="{{isShow}}">
<view class="m-popup-content" style="{{cssPopup + 'opacity: ' + elementOpacity + ';'}}" animation="{{animationData}}">
<view class="m-popup" wx:if="{{isShow}}" bindtap="onClosePopup">
<view
class="m-popup-content"
style="{{cssPopup + 'opacity: ' + elementOpacity + ';'}}"
animation="{{animationData}}"
>
<slot name="content"></slot>
</view>
</view>
\ No newline at end of file
.m-popup {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .65);
}
.m-popup-content {
position: absolute;
border-radius: 24px;
opacity: 0;
background: #FFFFFF;
overflow: hidden;
}
\ No newline at end of file
......@@ -171,6 +171,7 @@ Page({
'name': this.data.enterInfo.name,
'nickname': wx.getStorageSync('userInfo').name,
'mobile': this.data.enterInfo.phone,
'remarks': this.data.enterInfo.remark,
'jsonData': funcList.length > 0 ? JSON.stringify(funcList) : '[]',
'smClub': { id: this.data.clubInfo.id }
}
......@@ -178,6 +179,7 @@ Page({
App.ui.hideToast()
wx.setStorageSync('tempBackInfo', 'winEnter')
let funcClubEnterId = wx.getStorageSync('clubEnterId')
if (!funcClubEnterId) funcClubEnterId = []
funcClubEnterId.push(this.data.clubInfo.id)
wx.setStorageSync('clubEnterId', funcClubEnterId)
wx.navigateBack()
......
......@@ -18,7 +18,7 @@
<view class="member-power row cc ac" wx:if="{{winPowerInfoEnter}}">
<view class="member-power-info col cc ac">
<text>权限提醒</text>
<text>该俱乐部为业主专享,仅面向业主。如果您是业主,可前往【我的】页面进行业主认证。</text>
<text>该俱乐部为业主专享,仅面向业主。如果您是业主,可前往【我的】页面进行业主认证。</text>
<button class="row cc ac" bindtap="onCloseTip">我知道了</button>
</view>
</view>
......
......@@ -6,9 +6,12 @@ Page({
clubInfo: {},
clubActivity: [],
examineRemark: '',
winEnter: false, // 加入提交提示
winPowerInfoEnter: false, // 加入权限提示
winExamineRemark: false,
winExamineTip: false,
},
/**
......@@ -25,7 +28,9 @@ Page({
'member': '',
'content': '',
'isOwner': false
}
},
examineRemark: options.remark ? options.remark : '',
winExamineRemark: options.remark ? true : false,
})
this.queryClubInfo()
this.queryActivity()
......@@ -188,6 +193,7 @@ Page({
winPowerInfoEstablish: false,
winEnter: false,
winPowerInfoEnter: false,
winExamineRemark: false,
})
},
......
<m-nav titleText="俱乐部详情" scrollHeight="{{navScroll}}" styleIndex="{{2}}" isOccupy="{{false}}"></m-nav>
<!-- 加入权限提醒 -->
<view class="member-power row cc ac" wx:if="{{winPowerInfoEnter}}">
<view class="member-power-info col cc ac">
<text>权限提醒</text>
<text>该俱乐部为业主专享,仅面向业主。如果您是业主,可前往【我的】页面进行业主认证。</text>
<button class="row cc ac" bindtap="onCloseTip">我知道了</button>
</view>
</view>
<!-- 俱乐部加入提交成功 -->
<view class="submit-success row cc ac" wx:if="{{winEnter}}">>
<image src="{{resourcesBase + 'operation-tip/club-enter.png'}}" bindtap="onCloseTip"></image>
</view>
<view class="container">
<view class="banner">
<image src="{{clubInfo.cover}}"></image>
......@@ -106,6 +91,31 @@
</view>
<image mode="widthFix" src="./image/enter-rule.png"></image>
</view>
<m-button-bottom text="申请加入" bindclick="onEnterClub"></m-button-bottom>
</view>
<m-button-bottom text="申请加入" bindclick="onEnterClub"></m-button-bottom>
\ No newline at end of file
<!-- 加入权限提醒 -->
<view class="member-power row cc ac" wx:if="{{winPowerInfoEnter}}">
<view class="member-power-info col cc ac">
<text>权限提醒</text>
<text>该俱乐部为业主专享,仅面向业主。如果您是业主,可前往【我的】页面进行业主认证。</text>
<button class="row cc ac" bindtap="onCloseTip">我知道了</button>
</view>
</view>
<!-- 俱乐部加入提交成功 -->
<view class="submit-success row cc ac" wx:if="{{winEnter}}">>
<image src="{{resourcesBase + 'operation-tip/club-enter.png'}}" bindtap="onCloseTip"></image>
</view>
<!-- 加入审核拒绝提示 -->
<view class="dialog_examine row cc ac" wx:if="{{winExamineRemark}}">
<view class="dialog_examine_content column cc ac">
<text class="font_bold_50 color_regular">审核说明</text>
<view class="dialog_examine_content_remark row">
<text class="font_normal_30 color_cancel">{{'失败原因:' + examineRemark}}</text>
</view>
<button class="dialog_examine_close font_bold_30 color_regular row cc ac" bindtap="onCloseTip">我知道了</button>
</view>
</view>
\ No newline at end of file
......@@ -281,3 +281,36 @@
line-height: 42rpx;
color: #15191F;
}
/* 弹窗 - 审核拒绝备注 */
.dialog_examine {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .65);
}
.dialog_examine_content {
width: 606rpx;
height: 538rpx;
border-radius: 2px;
background: #FFFFFF;
}
.dialog_examine_content_remark {
width: 526rpx;
height: 162rpx;
margin: 48rpx 0 0 0;
overflow-y: scroll;
}
.dialog_examine_close {
width: 526rpx;
height: 80rpx;
margin: 72rpx 0 0 0;
border-radius: 4rpx;
border: 1px solid #15191F;
}
\ No newline at end of file
......@@ -29,7 +29,7 @@ Page({
for (let i = 0, l = funcData.length; i < l; i++) {
let funcItem = {
'id': funcData[i].orderId,
'name': funcData[i].smOrderDetails[0].name,
'name': funcData[i].smOrderDetails[0].name + '-' + Number(funcData[i].status),
'cover': funcData[i].smOrderDetails[0].imgUrl,
'price': funcData[i].smOrderDetails[0].unitPrice,
'priceTotal': funcData[i].smOrderDetails[0].totalPrices,
......
......@@ -24,7 +24,7 @@
</view>
</view>
<view class="record_item_operation row ce ac">
<button class="record_item_operation_logistics row cc ac" data-item="{{item}}" bindtap="onRecordDetail">查看详情</button>
<button class="record_item_operation_logistics row cc ac" data-item="{{item}}" catchtap="onRecordDetail">查看详情</button>
</view>
</view>
......@@ -47,7 +47,7 @@
</view>
</view>
<view class="record_item_operation row ce ac">
<button class="record_item_operation_confirm row cc ac" data-item="{{item}}" bindtap="onConfirm">确认收货</button>
<button class="record_item_operation_confirm row cc ac" data-item="{{item}}" catchtap="onConfirm">确认收货</button>
</view>
</view>
......@@ -70,7 +70,7 @@
</view>
</view>
<view class="record_item_operation row ce ac">
<button class="record_item_operation_logistics row cc ac" data-item="{{item}}" bindtap="onDelete">删除订单</button>
<button class="record_item_operation_logistics row cc ac" data-item="{{item}}" catchtap="onDelete">删除订单</button>
</view>
</view>
</block>
......
......@@ -5,6 +5,7 @@ Page({
stateCss: '',
stateTitle: '',
exchangeInfo: {},
couponInfo: {
'shopName': '',
'shopTime': '',
......@@ -12,6 +13,7 @@ Page({
'userPhone': '',
},
goodsInfo: [],
goodsNotes: '',
addressInfo: {},
otherInfo: {
'timeExpire': '',
......@@ -20,7 +22,9 @@ Page({
'number': '',
},
integralTotal: 0,
isExpress: false,
winPopup: false,
winCouponCode: false,
},
......@@ -32,10 +36,6 @@ Page({
this.queryExchangeDetail()
},
onShow: function () {
},
queryExchangeDetail: function () {
App.ui.showToast({
iconType: 'loading',
......@@ -58,31 +58,31 @@ Page({
// 待发货
case 1:
funcStateTitle = '订单待发货'
funcStateCss = '#background: #F3E1E1;'
funcStateCss = 'background: #F3E1E1;'
break
// 待使用
case 2:
funcStateTitle = '订单已发货'
funcStateCss = '#background: #F3E1E1;'
funcStateCss = 'background: #F3E1E1;'
break
// 已使用
case 3:
funcStateTitle = '订单已使用'
funcStateCss = '#background: #ECF4F8;'
funcStateCss = 'background: #ECF4F8;'
break
// 已过期
case 4:
funcStateTitle = '订单已过期'
funcStateCss = '#background: #ECF4F8;'
funcStateCss = 'background: #ECF4F8;'
break
// 已完成
case 4:
funcStateTitle = '订单已完成'
funcStateCss = '#background: #ECF4F8;'
// 寄送 - 已发货
case 5:
funcStateTitle = '订单已发货'
funcStateCss = 'background: #F3E1E1;'
break
}
......@@ -97,27 +97,35 @@ Page({
// 兑换商品数据
let funcGoodsInfo = []
let funcIntegralTotal = 0
for (let i = 0, l = funcData.smOrderDetails.length; i < l; i++) {
let funcItem = {
'name': funcData.smOrderDetails[i].name,
'cover': funcData.smOrderDetails[i].imgUrl,
'price': funcData.smOrderDetails[i].totalPrices,
'quantity': funcData.smOrderDetails[i].number,
'state': funcData.smOrderDetails[i].status
'state': funcData.smOrderDetails[i].status,
}
funcGoodsInfo.push(funcItem)
funcIntegralTotal = funcIntegralTotal + funcItem.price * funcItem.quantity
}
console.log(funcGoodsInfo)
// 寄送地址
let funcAddressInfo = {}
let funcAddressInfo = {
'id': funcData.shippingAddress ? '-' : '',
'name': funcData.shippingAddress ? funcData.shippingAddress.name : '',
'phone': funcData.shippingAddress ? funcData.shippingAddress.mobile : '',
'area': funcData.shippingAddress ? funcData.shippingAddress.area.replace(/,/g, '') : '',
'address': funcData.shippingAddress ? funcData.shippingAddress.address : '',
}
// 其他信息
let funcOtherInfo = {
'timeExpire': funcData.expireTime.replace('~', '-'),
'timeExpire': funcData.expireTime.replace(/-/g, '.').replace(/ /g, '').replace(/~/g, '-'),
'timeCreate': funcData.createDate,
'timeShipment': '',
'number': funcData.orderSerialNumber,
'orderNumber': funcData.orderSerialNumber,
}
console.log(funcOtherInfo)
......@@ -127,23 +135,142 @@ Page({
stateTitle: funcStateTitle,
couponInfo: funcCouponInfo,
goodsInfo: funcGoodsInfo,
goodsNotes: funcData.particulars.replace(/<img /g, '<img style="max-width: 100%; max-height: 100%;" '),
addressInfo: funcAddressInfo,
addressSelection: funcAddressInfo,
otherInfo: funcOtherInfo,
integralTotal: funcIntegralTotal,
isExpress: Boolean(Number(funcData.expressType)),
isViewDataReady: true,
})
console.log('funcState', funcState)
console.log('isExpress', this.data.isExpress)
App.ui.hideToast()
}).catch((response) => {
})
},
onCouponCodeScan: function () {
App.request({
url: 'v1/order/getVolumesByOrderId',
params: {
'orderId': this.data.exchangeInfo.id
}
}).then((response) => {
let funcData = response.data[0]
let funcCouponInfo = this.data.couponInfo
funcCouponInfo.name = funcData.name
funcCouponInfo.codeBase64 = funcData.qrcode
funcCouponInfo.codeNumber = funcData.serialNumber
funcCouponInfo.state = funcData.status
this.setData({
couponInfo: funcCouponInfo,
winCouponCode: true
})
}).catch((response) => {
})
},
onCouponCodeCopy: function () {
wx.setClipboardData({
data: this.data.couponInfo.codeNumber,
})
},
onCouponCodeClose: function () {
this.setData({
winCouponCode: false
})
},
onGoodsNotes: function () {
this.setData({
winPopup: true
})
},
/**
* 确认收货
* @function
* @param
* @returns
*/
onConfirm: function () {
App.ui.showDialog({
type: 'confirm',
title: '确认收到货物?',
content: '确认收货无法返回',
cancel: '取消',
confirm: '确定',
success: () => {
App.ui.showToast({
iconType: 'loading',
title: '正在处理',
duration: 30000
})
App.request({
url: 'v3/integral/doReceipt',
params: {
'orderId': this.data.exchangeInfo.id
}
}).then((response) => {
let funcData = response.data
App.ui.showToast({
iconType: 'success',
title: '收货成功',
})
this.queryExchangeDetail()
}).catch((response) => {})
},
fail: () => {},
})
},
/**
* 删除记录
* @function
* @param
* @returns
*/
onDelete: function () {
App.ui.showDialog({
type: 'confirm',
title: '确认删除记录?',
content: '删除无法恢复记录',
cancel: '取消',
confirm: '确定',
success: () => {
App.ui.showToast({
iconType: 'loading',
title: '正在处理',
duration: 30000
})
App.request({
url: 'v1/order/cancelOrder',
params: {
'orderId': this.data.exchangeInfo.id,
'type': 1,
}
}).then((response) => {
let funcData = response.data
App.ui.showToast({
iconType: 'success',
title: '删除成功',
})
wx.navigateBack()
}).catch((response) => {})
},
fail: () => {},
})
},
// 导航栏返回事件。
onNavBack: function () {
let funcTempOptions = wx.getStorageSync('tempOptions')
......
<m-toast></m-toast>
<m-dialog></m-dialog>
<m-nav titleText="订单详情" styleIndex="{{1}}" bind:navBack="onNavBack"></m-nav>
<view class="container">
<view class="container" wx:if="{{isViewDataReady}}">
<!-- 订单状态 -->
<view class="state column cc" style="{{stateCss}}">
<view class="state column cc" style="{{stateCss}}" wx:if="{{isExpress && state !== 2}}">
<text class="font_bold_54 color_regular">{{stateTitle}}</text>
<text class="font_normal_26 color_regular">{{'有效期' + otherInfo.timeExpire}}</text>
<text class="font_normal_26 color_regular" wx:if="{{state === 4}}">{{'有效期' + otherInfo.timeExpire}}</text>
</view>
<!-- 邮寄订单内容 -->
......@@ -20,16 +21,13 @@
<view class="address_info">
<text class="font_bold_34 color_regular">收货信息</text>
<view class="address_info_selection row ac" bindtap="onAddressSelection">
<view>
<image class="icon_40" src="{{imageBase + 'icon/location-1.png'}}"></image>
</view>
<!-- 等待添加地址 -->
<block wx:if="{{!addressSelection.id}}">
<view class="address_info_detail row ac">
<text class="address_info_detail_name">添加收货地址</text>
</view>
</block>
<!-- 已经选择地址 -->
<block wx:if="{{addressSelection.id}}">
<view class="address_info_detail cloumn">
......@@ -62,8 +60,8 @@
</view>
<view class="column ae">
<view class="row ce ac">
<text class="font_normal_26 color_regular">{{item.price}}</text>
<text class="font_normal_26 color_warning" space="nbsp"> 积分</text>
<text class="font_normal_26 color_warning">{{item.price}}</text>
<text class="font_normal_26 color_regular" space="nbsp"> 积分</text>
</view>
<view class="row">
<text class="font_normal_26 color_secondary">{{'x' + item.quantity}}</text>
......@@ -101,16 +99,16 @@
<view class="coupon_code_point_left"></view>
<view class="coupon_code_point_right"></view>
<view class="coupon_code_name row cc ac">
<text class="font_bold_34 color_regular">1张门票可用</text>
<text class="font_bold_34 color_regular">{{goodsInfo.length + '张兑换券可用'}}</text>
</view>
<view class="coupon_code_scan">
<button class="row cc ac font_normal_30 color_submit">一键扫码</button>
<button class="row cc ac font_normal_30 color_submit" bindtap="onCouponCodeScan">一键扫码</button>
</view>
<view class="coupon_code_date row cc ac">
<text class="font_normal_26 color_secondary">{{'有效期' + otherInfo.timeExpire}}</text>
</view>
</view>
<view class="notice row ce ac">
<view class="notice row ce ac" bindtap="onGoodsNotes">
<text class="font_normal_30 color_secondary">使用须知</text>
<image class="icon_32" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
......@@ -123,13 +121,13 @@
<block wx:for="{{goodsInfo}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="goods_item row ac">
<view class="goods_item_cover">
<image src="{{item.corver}}"></image>
<image src="{{item.cover}}"></image>
</view>
<view class="goods_item_info column">
<text class="font_bold_26 color_regular">{{item.name}}</text>
<view class="row ac">
<text class="font_normal_26 color_regular">{{item.price}}</text>
<text class="font_normal_26 color_warning" space="nbsp"> 积分</text>
<text class="font_normal_26 color_warning">{{item.price}}</text>
<text class="font_normal_26 color_regular" space="nbsp"> 积分</text>
</view>
</view>
<view class=" row">
......@@ -147,20 +145,21 @@
<view class="integral row cb ac">
<text class="font_bold_34 color_regular">兑换积分</text>
<view class="row ac">
<text class="font_normal_42 color_warning">5000</text>
<text class="font_normal_42 color_warning">{{integralTotal}}</text>
<text class="font_bold_38 color_regular" space="nbsp"> 积分</text>
</view>
</view>
<!-- 其他信息 -->
<view class="other column">
<text class="font_normal_22 color_secondary">订单编号: 12345994500652</text>
<text class="font_normal_22 color_secondary">下单时间: 2020-09-30 12:00:00</text>
<text class="font_normal_22 color_secondary">{{'订单编号: ' + otherInfo.orderNumber}}</text>
<text class="font_normal_22 color_secondary">{{'下单时间: ' + otherInfo.timeCreate}}</text>
</view>
<!-- 操作按钮 -->
<view class="operation row ce ac">
<button class="operation_cancel row cc ac font_normal_30 color_cancel">删除订单</button>
<view class="operation row ce ac" wx:if="{{state !== 1 && state !== 2}}">
<button class="operation_cancel row cc ac font_normal_30 color_cancel" wx:if="{{state === 3}}" bindtap="onDelete">删除订单</button>
<button class="operation_submit row cc ac font_normal_30 color_submit" wx:if="{{state === 5}}" bindtap="onConfirm">确认收货</button>
</view>
</view>
......@@ -169,12 +168,12 @@
<view class="dialog_coupon_code_wrap col cc ac">
<text class="font_normal_26 color_submit">{{'请将券码出示给门店核销人员'}}</text>
<view class="dialog_coupon_code_info col cc ac">
<text class="font_normal_30 color_regular">{{codeInfo.codeName}}</text>
<image class="dialog_coupon_code_content" src="{{'data:image/png;base64,' + codeInfo.codeBase64}}"></image>
<text class="font_normal_30 color_regular">{{couponInfo.name}}</text>
<image class="dialog_coupon_code_content" src="{{'data:image/png;base64,' + couponInfo.codeBase64}}"></image>
<view class="dialog_coupon_code_operation row con-b ac">
<text class="font_bold_26 color_secondary">券码</text>
<text class="font_bold_30 color_regular">{{codeInfo.codeNo}}</text>
<text class="font_bold_26 color_primary" bindtap="onCodeCopy">复制</text>
<text class="font_bold_30 color_regular">{{couponInfo.codeNumber}}</text>
<text class="font_bold_26 color_primary" bindtap="onCouponCodeCopy">复制</text>
</view>
</view>
<view class="dialog_coupon_code_close row cc ac" bindtap="onCouponCodeClose">
......@@ -182,3 +181,12 @@
</view>
</view>
</view>
<m-popup isShow="{{winPopup}}">
<view class="popup_container column" slot="content">
<text class="popup_title font_bold_42 color_regular">使用须知</text>
<view class="popup_content">
<rich-text nodes="{{goodsNotes}}"></rich-text>
</view>
</view>
</m-popup>
\ No newline at end of file
.container {
padding: 0 0 60rpx 0;
padding: 0 0 180rpx 0;
}
/* 订单状态 */
......@@ -13,7 +13,7 @@
}
.state > text:nth-child(2) {
margin: 25rpx 0 0 0;
margin: 30rpx 0 0 0;
}
/* 快递提示 */
......@@ -33,7 +33,7 @@
/* 券码信息 */
.coupon {
width: 670rpx;
margin: 64rpx 0 0 0;
margin: 60rpx 0 0 0;
}
.coupon_info {
......@@ -48,7 +48,7 @@
}
.coupon_info_name {
margin: 48rpx 0 0 0;
margin: 56rpx 0 0 0;
}
.coupon_info_phone {
......@@ -96,7 +96,7 @@
.coupon_code_scan > button {
width: 574rpx;
height: 96rpx;
margin: 40rpx 0 0 0;
margin: 50rpx 0 0 0;
border-radius: 2px;
background: #86C5E1;
}
......@@ -120,8 +120,8 @@
.address_info_selection {
width: 670rpx;
height: 174rpx;
margin: 42rpx 0 0 0;
height: 208rpx;
margin: 50rpx 0 0 0;
padding: 38rpx 32rpx 42rpx 32rpx;
border-radius: 2px;
background: #F5F6F8;
......@@ -160,13 +160,13 @@
/* 商品信息 */
.goods {
margin: 64rpx 0 0 0;
margin: 62rpx 0 0 0;
}
.goods_list {
width: 670rpx;
min-height: 200rpx;
margin: 40rpx 0;
margin: 46rpx 0 0 0;
padding: 18rpx 32rpx;
border-radius: 2px;
background: #F3F4F6;
......@@ -210,7 +210,7 @@
/* 兑换积分 */
.integral {
width: 670rpx;
margin: 70rpx 0 0 0;
margin: 64rpx 0 0 0;
}
/* 其他信息 */
......@@ -225,6 +225,9 @@
/* 相关操作 */
.operation {
position: fixed;
left: 0;
bottom: 0;
width: 750rpx;
height: 120rpx;
margin: 64rpx 0 0 0;
......@@ -240,6 +243,13 @@
border: 1px solid #C2C7CF;
}
.operation_submit {
width: 200rpx;
height: 80rpx;
border-radius: 2px;
background: #86C5E1;
}
/* 券码弹窗 */
.dialog_coupon_code {
z-index: 7;
......@@ -280,3 +290,19 @@
border-radius: 50%;
background: rgba(254, 252, 249, 0.5);
}
.popup_container {
max-height: 1100rpx;
padding: 56rpx 40rpx;
}
.popup_content {
min-height: 200rpx;
margin: 40rpx 0 0 0;
overflow-y: scroll;
}
img {
max-width: 100%;
max-height: 100%;
}
\ No newline at end of file
......@@ -8,7 +8,8 @@ Page({
'errorPhone': '',
},
data: {
isExpress: true,
isExpress: false,
isSupportExpress: false,
exchangeQuantity: 1,
errorQuantity: '',
shopInfo: {}, // 取货门店
......@@ -62,11 +63,12 @@ Page({
'shopIdAscription': funcData.officeId, // 归属门店
'stockId': funcData.inventoryId, // 库存标识
'stockQuantity': funcData.number, // 库存剩余
'isExpress': Boolean(Number(funcData.expressType)), // 是否支持快递
}
this.setData({
goodsInfo: funcGoodsInfo
goodsInfo: funcGoodsInfo,
isExpress: Boolean(Number(funcData.expressType)),
isSupportExpress: Boolean(Number(funcData.expressType)),
})
// 设置门店信息
......@@ -185,9 +187,17 @@ Page({
* @returns
*/
onExpress: function () {
if (this.data.goodsInfo.isSupportExpress) {
this.setData({
isExpress: !this.data.isExpress
})
} else {
App.ui.showToast({
iconType: 'error',
title: '商品不支持快递',
})
}
console.log(this.data.isExpress)
},
......@@ -197,7 +207,7 @@ Page({
* @returns
*/
onQuantityCut: function () {
if (0 < this.data.exchangeQuantity) {
if (1 < this.data.exchangeQuantity) {
this.setData({
exchangeQuantity: this.data.exchangeQuantity - 1,
errorQuantity: '',
......@@ -305,7 +315,15 @@ Page({
funcParams.shippingAddress = { 'id': this.data.addressSelection.id }
}
console.log(funcParams)
if (!this.data.isExpress) {
funcParams.smPersonalDetails.push({
'name': this.data.userInfo.name,
'cellphone': this.data.userInfo.phone,
'identityCard': ''
})
}
console.log(JSON.stringify( funcParams))
App.request({
url: 'v3/integral/doIntegral',
params: funcParams,
......
......@@ -120,7 +120,7 @@
<button class="row cc ac" bindtap="onQuantityCut">
<image src="{{imageBase + 'icon/cut-1.png'}}"></image>
</button>
<text style="{{exchangeQuantity === 0 ? 'color: #C2C7CF' : 'color: #15191F'}}">{{exchangeQuantity}}</text>
<text>{{exchangeQuantity}}</text>
<button class="row cc ac" bindtap="onQuantityAdd">
<image src="{{imageBase + 'icon/add-1.png'}}"></image>
</button>
......@@ -172,7 +172,7 @@
</view>
<view class="operation_next row cb ac">
<view class="operation_price row ac">
<text>1000</text>
<text>{{goodsInfo.price * exchangeQuantity}}</text>
<text>积分</text>
</view>
<view class="operation_button row cc ac">
......
......@@ -313,6 +313,7 @@
/* 操作按钮 */
.operation {
z-index: 4;
position: fixed;
left: 0;
bottom: 0;
......
......@@ -29,6 +29,9 @@ Page({
},
onLoad: function (options) {
console.log('options', options)
switch (options.tab) {
case 'active':
options.tab = 0
......@@ -240,10 +243,10 @@ Page({
App.wxRequest({
url: 'v1/activity/getMyActivityList',
data: {
'type': '',
'activeState': '',
'pageSize': this.data.pageSize,
'pageNo': this.data.pageNo,
'type': '1'
},
success: (res) => {
this.setData({
......
......@@ -150,7 +150,8 @@ Page({
placeholder: '不通过原因',
success: (response) => {
let funcItem = funcEvent.currentTarget.dataset.item
if (response.input === '') {
let funcRemarkContent = response.input
if (funcRemarkContent === '') {
App.ui.showToast({
iconType: 'error',
title: '请填不通过原因',
......@@ -158,11 +159,12 @@ Page({
return
}
console.log('response.input', funcRemarkContent)
App.request({
url: 'v3/club/doAuditJoin',
params: {
'state': '2',
'remarks': response.input,
'remarks': funcRemarkContent,
'joinClubAuditId': funcItem.idExamine,
}
}).then((response) => {
......@@ -247,9 +249,10 @@ Page({
'avatar': funcData.img,
'remarks': funcData.remarks, // 备注
'phone': funcData.mobile,
'date': funcData.joinDate, // 加入日期
'date': App.modular.miment(funcData.joinDate).format('YYYY年MM月DD日'), // 加入日期
'refuse': funcData.auditRemarks, // 拒绝原因
'auditor': funcData.auditor ? funcData.auditor : '后台审核',
'state': Number(funcData.state),
},
winMember: true
})
......
......@@ -89,7 +89,7 @@
<text>加入时间</text>
<text class="text_overflow_point">{{memberInfo.date}}</text>
</view>
<view class="row">
<view class="row" wx:if="{{memberInfo.state === 2}}">
<text>拒绝原因</text>
<text class="text_overflow_point">{{memberInfo.refuse}}</text>
</view>
......
......@@ -17,7 +17,6 @@
.member_item {
width: 670rpx;
height: 462rpx;
margin: 48rpx 0 0 0;
padding: 40rpx 0 0 0;
border-radius: 4px;
......
......@@ -12,6 +12,7 @@ Page({
adminInfo: {},
winAdminInfo: false,
winExamineTip: false,
},
onLoad: function (options) {
......@@ -43,7 +44,8 @@ Page({
'memberId': funcData[i].memberId,
'state': Number(funcData[i].state),
'date': funcData[i].date,
'adminWx': funcData[i].creatorImg,
'adminWx': funcData[i].creatorImg ? funcData[i].creatorImg : this.data.resourcesBase + 'other/default-1.png',
'remark': funcData[i].remarks,
'isOwner': Number(funcData[i].owner) === 0 ? false : true
}
funcList.push(funcItem)
......@@ -81,6 +83,7 @@ Page({
'examine': funcData[i].count, // 入会审核数量
'state': Number(funcData[i].state),
'date': funcData[i].date,
'remark': funcData[i].remarks,
'isOwner': Number(funcData[i].owner) === 0 ? false : true
}
funcList.push(funcItem)
......@@ -296,10 +299,35 @@ Page({
})
},
onAdminInfoClose: function () {
onDialogClose: function () {
this.setData({
winAdminInfo: false
winAdminInfo: false,
winExamineTip: false,
})
},
/**
* 创建俱乐部审核提示
* @function
* @param {object} - funcEvent
* @returns
*/
onEstablishClubExamineTip: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
let funcExamineState = funcItem.state
// 审核不通过时需要传入备注信息
switch (funcExamineState) {
case 0:
this.setData({
winExamineTip: true
})
break
case 2:
wx.navigateTo({ url: '/pages/club/information/information?id=' + funcItem.id + '&remark=' + funcItem.remark })
break
}
},
/**
......@@ -311,7 +339,14 @@ Page({
*/
onClubInfo: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
let funcExamineState = funcItem.state
// 审核不通过时需要传入备注信息
if (funcExamineState === 2) {
wx.navigateTo({ url: '/pages/club/information/information?id=' + funcItem.id + '&remark=' + funcItem.remark })
} else {
wx.navigateTo({ url: '/pages/club/information/information?id=' + funcItem.id })
}
},
onExamine: function (funcEvent) {
......
......@@ -21,7 +21,7 @@
<text>{{item.name}}</text>
<text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text>
</view>
<view class="club-info-other row cb ae" data-item="{{item}}" bindtap="onAdminInfo">
<view class="club-info-other row cb ae" data-item="{{item}}" bindtap="{{tabIndex === 0 ? 'onAdminInfo' : 'onEstablishClubExamineTip'}}">
<view class="club-info-examine column">
<text>{{item.date + ' 提交申请'}}</text>
<text>{{'审核待通过'}}</text>
......@@ -101,6 +101,14 @@
<text>管理员微信</text>
<image src="{{adminInfo.wx}}" bindlongpress="onSaveAdminWx"></image>
<text>【长按保存二维码】</text>
<button class="row cc ac" bindtap="onAdminInfoClose">我知道了</button>
<button class="row cc ac" bindtap="onDialogClose">我知道了</button>
</view>
</view>
<view class="dialog_container row cc ac" hidden="{{!winExamineTip}}">
<view class="dialog_examine_tip column cb ac">
<text class="font_bold_50 color_regular">审核说明</text>
<text class="font_normal_30 color_cancel">申请提交后,审核人员将主动与您联系(预计5个工作日),并协助后续资料整理,请耐心等待。</text>
<button class="dialog_examine_operation row cc ac font_bold_30 color_regular" bindtap="onDialogClose">我知道了</button>
</view>
</view>
\ No newline at end of file
......@@ -216,3 +216,24 @@
line-height: 42rpx;
color: #15191F;
}
/* 审核弹窗提示 */
.dialog_examine_tip {
width: 606rpx;
height: 538rpx;
padding: 56rpx 40rpx 48rpx 40rpx;
border-radius: 2px;
background: #FFFFFF;
}
.dialog_examine_tip > text:nth-child(2) {
margin: 48rpx 0 0 0;
}
.dialog_examine_operation {
width: 526rpx;
height: 80rpx;
margin: 96rpx 0 0 0;
border-radius: 4px;
border: 1px solid #15191F;
}
\ No newline at end of file
......@@ -140,7 +140,7 @@
<text>{{membershipCard[0].shopName}}</text>
</view>
<view class="card-membership-info-date column">
<text>{{membershipCard[0].cardName}}</text>
<text class="text_overflow_point">{{membershipCard[0].cardName}}</text>
<text>{{membershipCard[0].timeExpire}}</text>
</view>
<view class="card-membership-info-user column">
......@@ -206,7 +206,7 @@
<view class="list-order card">
<view class="card-title row cb ac">
<text>我的预约</text>
<text data-type="0" bindtap="onAppointmentList">查看全部</text>
<text data-type="active" bindtap="onAppointmentList">查看全部</text>
<image class="icon_32" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
......@@ -229,7 +229,7 @@
<view class="card-list">
<block wx:for="{{isMoreAppointment ? appointmentList : [appointmentList[0]]}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<!-- 活动预约样式 -->
<view class="card-list-appointment row cb ac" wx:if="{{item.cardStyle === 0}}" data-type="0" bindtap="onAppointmentList">
<view class="card-list-appointment row cb ac" wx:if="{{item.cardStyle === 0}}" data-type="active" bindtap="onAppointmentList">
<view class="card-list-item-date row cc ac">
<text>{{item.date}}</text>
</view>
......@@ -270,7 +270,7 @@
<view class="club_enter">
<text>我的俱乐部</text>
</view>
<view class="club_examine row cc ac">
<view class="club_examine row cc ac" wx:if="{{clubExamine > 0}}">
<text>{{clubExamine}}</text>
</view>
<image class="icon" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
......
......@@ -35,6 +35,7 @@ Page({
cssCategoryTop: 0,
cssCategoryHeight: 0,
cssNavHeight: 0,
},
onLoad: function (options) {
......@@ -61,6 +62,7 @@ Page({
let funcCategoryHeight = funcCategoryTop + (64 + 58) * wx.getStorageSync('unitProportion')
this.setData({
cssNavHeight: wx.getStorageSync('navHeight'),
cssCategoryTop: funcCategoryTop,
cssCategoryHeight: funcCategoryHeight,
})
......
......@@ -33,11 +33,18 @@
</view>
</view>
</view>
<view class="order_type_selection_occupy" style="{{'margin: ' + cssNavHeight + 'px 0 0 0;'}}"></view>
<m-tab item="{{tabItem}}" itemClass="tab-item" isFixed="{{true}}" isOccupy="{{false}}" fixedTop="{{cssCategoryHeight}}" bindtabChange="eventTabChange"></m-tab>
<m-tab
item="{{tabItem}}"
classTab="tab"
classTabList="tab_list"
bindtabChange="eventTabChange"
>
</m-tab>
<!-- 订单列表 -->
<view class="container bg-gradient" style="{{'margin-top: ' + (cssCategoryHeight + cssCategoryTop + 10) + 'px;'}}">
<view class="container bg-gradient">
<block wx:if="{{orderList.length > 0}}">
<view class="order-list column con-c ac">
<block wx:for="{{orderList}}" wx:for-index="index" wx:for-item="item" wx:key="index">
......
......@@ -76,14 +76,18 @@
color: #fff;
}
.order_type_selection_occupy {
height: 44rpx;
}
/* 订单状态 */
.tab-item {
width: 122rpx;
margin: 0 30rpx !important;
.tab {
width: 750rpx;
}
.tab-item:first-child {
margin-left: 0 !important;
.tab_list {
padding: 0 40rpx;
border-bottom: 1px #e8ecf2 solid;
}
.container {
......
......@@ -118,7 +118,6 @@ Page({
this.setData({
registerInfo: [JSON.parse(JSON.stringify(logicData.registerInfoItem))],
})
switch (logicData.option.type) {
case 1:
this.setData({
......@@ -506,6 +505,8 @@ Page({
*/
onEntryTime: function (event) {
let funcIndex = event.detail.value
console.log(funcIndex)
console.log(this.data.entryDate[funcIndex[0]])
let funcStock = this.data.entryDate[funcIndex[0]][funcIndex[1]].residue
this.setData({
entrySelection: this.data.entryDateList[0][funcIndex[0]] + ' ' + this.data.entryTimeList[this.data.entryDateIndex][funcIndex[1]],
......@@ -625,7 +626,6 @@ Page({
},
onInputBlur: function(event) {
console.log(event)
let funcType = event.target.dataset.type
let funcIndex = event.target.dataset.index
let funcValue = event.detail.value
......
......@@ -148,8 +148,8 @@ Page({
for (let i = 0, l = funcData.length; i < l; i++) {
let funcItem = {
'id': funcData[i].clubId,
'logo': funcData[i].logo,
'cover': funcData[i].cover,
'logo': funcData[i].logo ? funcData[i].logo : this.data.resourcesBase + 'other/default-1.png',
'cover': funcData[i].cover ? funcData[i].cover : this.data.resourcesBase + 'other/default-1.png',
'name': funcData[i].name,
'describe': funcData[i].summary,
'member': funcData[i].memberNum,
......
......@@ -7,6 +7,7 @@ let funcPageExtend = function (App) {
'appStatus': App.globalData.appStatus,
'imageBase': App.globalData.appImageBase,
'resourcesBase': App.globalData.appResourcesBase,
'isViewDataReady': false, // 视图显示控制,当页面数据请求到位时设置为 true ,以显示视图。避免请求过程中页面显示不完整问题。
})
// 增加全局分享
......
// 程序缓存关键字说明
// shopInfoBuffer: 门店详情信息
// orderInfoBuffer: 订单信息缓存
// clubExamine: 我的俱乐部待审核数量
\ No newline at end of file
......@@ -34,6 +34,7 @@
.font_normal_34 { font-size: 34rpx; font-weight: 400; line-height: 48rpx; }
.font_normal_38 { font-size: 38rpx; font-weight: 400; line-height: 52rpx; }
.font_normal_42 { font-size: 42rpx; font-weight: 400; line-height: 58rpx; }
.font_normal_50 { font-size: 50rpx; font-weight: 400; line-height: 72rpx; }
.font_normal_54 { font-size: 54rpx; font-weight: 400; line-height: 76rpx; }
/* 粗体 */
......@@ -43,6 +44,7 @@
.font_bold_34 { font-size: 34rpx; font-weight: 700; line-height: 40rpx; }
.font_bold_38 { font-size: 38rpx; font-weight: 700; line-height: 52rpx; }
.font_bold_42 { font-size: 42rpx; font-weight: 700; line-height: 58rpx; }
.font_bold_50 { font-size: 50rpx; font-weight: 700; line-height: 72rpx; }
.font_bold_54 { font-size: 54rpx; font-weight: 700; line-height: 76rpx; }
/* 更粗 */
......@@ -52,4 +54,5 @@
.font_bolder_34 { font-size: 30rpx; font-weight: 900; line-height: 40rpx; }
.font_bolder_38 { font-size: 38rpx; font-weight: 900; line-height: 52rpx; }
.font_bolder_42 { font-size: 42rpx; font-weight: 900; line-height: 58rpx; }
.font_bolder_50 { font-size: 50rpx; font-weight: 900; line-height: 72rpx; }
.font_bolder_54 { font-size: 54rpx; font-weight: 900; line-height: 76rpx; }
\ No newline at end of file
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