[本时生活小程序-线上备份]
This commit is contained in:
146
pages/activityOrder/activityOrder.js
Normal file
146
pages/activityOrder/activityOrder.js
Normal file
@@ -0,0 +1,146 @@
|
||||
// pages/activityOrder/activityOrder.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
stateType : '', //状态
|
||||
counts : '', //数量
|
||||
orderArr : [], //列表
|
||||
page : {}, //下一页
|
||||
lodingStats : false //加载状态
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad (options) {
|
||||
|
||||
// 获取商品活动订单
|
||||
this.orderInfo();
|
||||
},
|
||||
|
||||
/**
|
||||
* 商品活动订单
|
||||
*/
|
||||
orderInfo(page) {
|
||||
wx.$api.index.activityOrder(this.data.stateType, page).then(res=>{
|
||||
let listArr = this.data.orderArr,
|
||||
newData = []
|
||||
if(page == 1 || page == undefined) listArr = []
|
||||
|
||||
newData = listArr.concat(res.data.data)
|
||||
this.setData({
|
||||
counts : res.data.count,
|
||||
orderArr : newData,
|
||||
page : res.data.page,
|
||||
lodingStats : false
|
||||
})
|
||||
wx.stopPullDownRefresh()
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* tabs
|
||||
*/
|
||||
orderTab(e){
|
||||
if(this.data.stateType != e.currentTarget.dataset.state){
|
||||
this.setData({
|
||||
stateType: e.currentTarget.dataset.state
|
||||
})
|
||||
|
||||
// 获取商品活动订单
|
||||
this.orderInfo()
|
||||
|
||||
wx.pageScrollTo({
|
||||
scrollTop: 0
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 取消订单
|
||||
*/
|
||||
orderDelete(e) {
|
||||
let orderId = e.currentTarget.dataset.id
|
||||
wx.showModal({
|
||||
title : '订单取消',
|
||||
content : '确认取消吗?',
|
||||
success : res=> {
|
||||
if (res.confirm) {
|
||||
wx.$api.index.cance(orderId).then(res=>{
|
||||
// 获取商品活动订单
|
||||
this.orderInfo()
|
||||
|
||||
wx.showToast({
|
||||
title: res.data,
|
||||
icon : 'none'
|
||||
})
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
wx.showToast({
|
||||
title : '取消',
|
||||
icon : 'loading',
|
||||
duration: 1000
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 订单支付
|
||||
*/
|
||||
orderPay(e) {
|
||||
let orderId = e.currentTarget.dataset.id
|
||||
|
||||
wx.login({
|
||||
success: res=> {
|
||||
wx.$api.index.repay(orderId).then(res=>{
|
||||
let payInfo = JSON.parse(res.data.json)
|
||||
wx.requestPayment({
|
||||
timeStamp: payInfo.timeStamp,
|
||||
nonceStr : payInfo.nonceStr,
|
||||
package : payInfo.package,
|
||||
paySign : payInfo.paySign,
|
||||
signType : payInfo.signType,
|
||||
success : res=>{
|
||||
if(res.errMsg == "requestPayment:ok"){
|
||||
wx.showToast({
|
||||
title: '支付成功',
|
||||
icon : 'success'
|
||||
})
|
||||
setTimeout(()=>{
|
||||
wx.redirectTo({
|
||||
url: '/pages/activityOrder/activityOrder',
|
||||
})
|
||||
},2000)
|
||||
}
|
||||
},
|
||||
fail : res=>{
|
||||
wx.redirectTo({
|
||||
url: '/pages/activityOrder/activityOrder',
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 上拉加载
|
||||
*/
|
||||
onReachBottom(){
|
||||
this.setData({
|
||||
lodingStats: true
|
||||
})
|
||||
let pageNumber = this.data.page.current
|
||||
if(this.data.page.has_more){
|
||||
pageNumber++
|
||||
this.orderInfo(pageNumber)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
5
pages/activityOrder/activityOrder.json
Normal file
5
pages/activityOrder/activityOrder.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"navigationBarTitleText": "我的订单",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
66
pages/activityOrder/activityOrder.wxml
Normal file
66
pages/activityOrder/activityOrder.wxml
Normal file
@@ -0,0 +1,66 @@
|
||||
<!-- 活动订单 -->
|
||||
<view class="order-tab">
|
||||
<view class="order-tab-item {{stateType == '' ? 'active':''}}" data-state="" bindtap="orderTab">
|
||||
全部
|
||||
</view>
|
||||
<view class="order-tab-item {{stateType == '0' ? 'active':''}}" data-state="0" bindtap="orderTab">
|
||||
未支付
|
||||
<view class="state-tips" wx:if="{{counts.init != 0}}">{{counts.init}}</view>
|
||||
</view>
|
||||
<view class="order-tab-item {{stateType == '1' ? 'active':''}}" data-state="1" bindtap="orderTab">
|
||||
已支付
|
||||
<view class="state-tips" wx:if="{{counts.paid != 0}}">{{counts.paid}}</view>
|
||||
</view>
|
||||
<view class="order-tab-item {{stateType == '2' ? 'active':''}}" data-state="2" bindtap="orderTab">
|
||||
已发货
|
||||
<view class="state-tips" wx:if="{{counts.send != 0}}">{{counts.send}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 列表 -->
|
||||
<view class="order-content" wx:if="{{orderArr != ''}}">
|
||||
<view class="order-content-li" wx:for="{{orderArr}}" wx:key="orderArr">
|
||||
<view class="order-name">
|
||||
<image src="/static/icon/activity_icon.png"></image>
|
||||
{{item.activity_name}}
|
||||
</view>
|
||||
<view class="uni-border-down order-store">
|
||||
<view class="order-store-title nowrap">{{item.order_id}}</view>
|
||||
<view class="order-store-stateText red" wx:if="{{item.status_text == '未支付'}}">{{item.status_text}}</view>
|
||||
<view class="order-store-stateText green" wx:elif="{{item.status_text == '已支付'}}">{{item.status_text}}</view>
|
||||
<view class="order-store-stateText" wx:else>{{item.status_text}}</view>
|
||||
</view>
|
||||
<view class="order-goods">
|
||||
<image class="order-goods-cover" src="{{item.small_cover}}" mode="aspectFill"></image>
|
||||
<view class="order-goods-content">
|
||||
<view class="order-goods-content-name nowrap">{{item.title}}</view>
|
||||
<view class="order-goods-content-price nowrap">
|
||||
<text>¥{{item.price}}</text> × {{item.number}}
|
||||
</view>
|
||||
<view class="order-goods-tips">
|
||||
<text class="order-goods-tips-color" wx:if="{{item.have_gift == 1}}">礼盒</text>
|
||||
<text wx:if="{{item.have_coupon == 1}}">购物券</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="uni-border-top order-btns">
|
||||
<navigator class="order-btn" url="/pages/activityData/activityData?id={{item.id}}">订单详情</navigator>
|
||||
<view class="order-btn" bindtap="orderDelete" data-id="{{item.id}}" wx:if="{{item.iscancel == true}}">取消订单</view>
|
||||
<view class="order-btn order-btn-back" bindtap="orderPay" data-id="{{item.id}}" wx:if="{{item.ispay == true}}">立即支付</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="pagesLoding" wx:if="{{lodingStats}}">
|
||||
<block wx:if="{{page.has_more}}">
|
||||
<image class="pagesLoding-icon" src="/static/icon/refresh_loding.gif" mode="widthFix"></image>加载中...
|
||||
</block>
|
||||
<block wx:else>
|
||||
没有更多了~
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="pack-center pages-hint" wx:else>
|
||||
<image src="https://storage.funnyzhibo.com/images/2020/05/06/null_icon.png"></image>
|
||||
<view>暂无订单</view>
|
||||
</view>
|
||||
228
pages/activityOrder/activityOrder.wxss
Normal file
228
pages/activityOrder/activityOrder.wxss
Normal file
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
* 亿时代
|
||||
*/
|
||||
|
||||
.order-tab {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
z-index: 9;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.order-tab-item {
|
||||
font-size: 28rpx;
|
||||
width: 25%;
|
||||
text-align: center;
|
||||
border-bottom: solid 2rpx #f7f7f7;
|
||||
color: #464854;
|
||||
background: white;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.order-tab-item.active {
|
||||
color: #f57e32;
|
||||
}
|
||||
|
||||
.order-tab-item::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 30rpx;
|
||||
height: 4rpx;
|
||||
background: transparent;
|
||||
left: calc(50% - 15rpx);
|
||||
bottom: -2rpx;
|
||||
}
|
||||
|
||||
.order-tab-item.active::after {
|
||||
background: #f57e32;
|
||||
}
|
||||
|
||||
.state-tips {
|
||||
position: absolute;
|
||||
top: 10rpx;
|
||||
right: 14rpx;
|
||||
background: #e92706;
|
||||
color: #fff;
|
||||
font-size: 24rpx;
|
||||
transform: scale(.7, .7);
|
||||
border-radius: 60rpx 60rpx 60rpx 0;
|
||||
width: 48rpx;
|
||||
height: 34rpx;
|
||||
line-height: 34rpx;
|
||||
}
|
||||
|
||||
/* 订单列表 */
|
||||
|
||||
.order-content {
|
||||
padding: 80rpx 0 20rpx 0;
|
||||
}
|
||||
|
||||
.order-content-li {
|
||||
background: white;
|
||||
margin-top: 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.order-name {
|
||||
background: #fff;
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.order-name image {
|
||||
background: linear-gradient(#000, #000);
|
||||
background-blend-mode: lighten;
|
||||
background-size: cover;
|
||||
width: 26rpx;
|
||||
height: 26rpx;
|
||||
border-radius: 50%;
|
||||
margin: 8rpx 14rpx 0 0;
|
||||
}
|
||||
|
||||
.order-store {
|
||||
padding: 20rpx;
|
||||
border-bottom: solid 1rpx #f3f3f3;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.order-goods-tips {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.order-goods-tips text {
|
||||
display: inline-block;
|
||||
background: #e92706;
|
||||
color: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
height: 42rpx;
|
||||
line-height: 42rpx;
|
||||
font-size: 24rpx;
|
||||
transform: scale(.8, .8);
|
||||
}
|
||||
|
||||
text.order-goods-tips-color {
|
||||
background: #e6b329;
|
||||
}
|
||||
|
||||
.order-store-stateText {
|
||||
color: #e6b329;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.order-store-stateText.red {
|
||||
color: #e92344;
|
||||
}
|
||||
|
||||
.order-store-stateText.green {
|
||||
color: #79b300;
|
||||
}
|
||||
|
||||
.order-store-title {
|
||||
flex: 1;
|
||||
color: #999;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.order-store-orderid {
|
||||
color: #747788;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
|
||||
.order-store-title text {
|
||||
color: white;
|
||||
font-size: 24rpx;
|
||||
background: #e92344;
|
||||
margin-right: 10rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
|
||||
.order-goods {
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.order-goods-cover {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
vertical-align: top;
|
||||
border-radius: 4rpx;
|
||||
}
|
||||
|
||||
.order-goods-content {
|
||||
position: absolute;
|
||||
left: 190rpx;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
width: calc(100% - 210rpx);
|
||||
}
|
||||
|
||||
.order-goods-content-name {
|
||||
margin-bottom: 15rpx;
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.order-goods-content-price {
|
||||
color: #747788;
|
||||
display: flex;
|
||||
margin-bottom: 14rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.order-goods-content-price text {
|
||||
color: #f57e32;
|
||||
display: inline-block;
|
||||
margin-right: 10rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.order-total {
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 26rpx;
|
||||
line-height: 50rpx;
|
||||
color: #747788;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.order-total view {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
.order-total text {
|
||||
color: #e92344;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.order-btns {
|
||||
font-size: 25rpx;
|
||||
display: flex;
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
.order-btn {
|
||||
margin-left: 20rpx;
|
||||
height: 52rpx;
|
||||
line-height: 50rpx;
|
||||
box-sizing: border-box;
|
||||
border: solid 1rpx #747788;
|
||||
padding: 0 20rpx;
|
||||
border-radius: 30rpx;
|
||||
}
|
||||
|
||||
.order-btn-back {
|
||||
border-color: #f57e32;
|
||||
color: #f57e32;
|
||||
}
|
||||
Reference in New Issue
Block a user