This commit is contained in:
张慢慢
2021-05-24 13:56:00 +08:00
commit a7995d90bc
208 changed files with 13143 additions and 0 deletions

187
pages/order/order.js Normal file
View File

@@ -0,0 +1,187 @@
// pages/activityOrder/activityOrder.js
Page({
/**
* 页面的初始数据
*/
data: {
stateType : 'all', //状态
counts : '', //数量
orderArr : [], //列表
page : {}, //下一页
lodingStats : false, //加载状态
pay : {
payTips : 1, //支付方式
payState : false, //支付状态
orderId : '', //支付订单
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad (options) {
this.setData({
stateType: options.stateType
})
},
onShow() {
// 获取商品活动订单
this.orderInfo();
},
/**
* 商品活动订单
*/
orderInfo(page) {
wx.$api.exchange.index(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.exchange.cancel(orderId).then(res=>{
// 获取商品活动订单
this.orderInfo()
wx.showToast({
title: res.data,
icon : 'none'
})
})
} else if (res.cancel) {
wx.showToast({
title : '取消',
icon : 'loading',
duration: 1000
})
}
}
})
},
/**
* 支付提交
*/
orderPay() {
wx.$api.exchange.payments(this.data.pay.orderId).then(res=>{
// payTips为1的时候为微信支付
if(this.data.pay.payTips == 1) {
wx.$api.index.wechat(res.data.trade_no).then(res=>{
let payInfo = JSON.parse(res.data)
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.reLaunch({
url: '/pages/coupon/coupon?type=couponPublic'
})
},2000)
}
},
fail : res=>{
wx.redirectTo({
url: '/pages/order/order?stateType=unpay'
})
}
})
})
}
// payTips为2的时候为沃钱包支付
if(this.data.pay.payTips == 2) {
const newUrl = "https://lifetest.ysd-bs.com/unicom/payment?trade_no=" + res.data.trade_no
let url= encodeURIComponent(newUrl)
wx.navigateTo({
// 跳转到webview页面
url: `/pages/webView/webView?url=${url}`
});
}
this.setData({
['pay.payState']: false
})
})
},
/**
* 支付选择弹出
*/
submitPay(e) {
this.setData({
['pay.payState']: !this.data.pay.payState,
['pay.orderId'] : e.currentTarget.dataset.id
})
},
/**
* 上拉加载
*/
onReachBottom(){
this.setData({
lodingStats: true
})
let pageNumber = this.data.page.current
if(this.data.page.has_more){
pageNumber++
this.orderInfo(pageNumber)
}
},
/**
* 选择支付方式
*/
radioChange(e) {
this.setData({
['pay.payTips']: e.detail.value
})
}
})

4
pages/order/order.json Normal file
View File

@@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "兑换订单"
}

94
pages/order/order.wxml Normal file
View File

@@ -0,0 +1,94 @@
<!-- 活动订单 -->
<view class="order-tab">
<view class="order-tab-item {{stateType == 'all' ? 'active':''}}" data-state="all" bindtap="orderTab">
全部
</view>
<view class="order-tab-item {{stateType == 'unpay' ? 'active':''}}" data-state="unpay" bindtap="orderTab">
待支付
<!-- <view class="state-tips" wx:if="{{counts.init != 0}}">{{counts.init}}</view> -->
</view>
<view class="order-tab-item {{stateType == 'paid' ? 'active':''}}" data-state="paid" bindtap="orderTab">
待发货
<!-- <view class="state-tips" wx:if="{{counts.paid != 0}}">{{counts.paid}}</view> -->
</view>
<!-- <view class="order-tab-item {{stateType == 'delivered' ? 'active':''}}" data-state="delivered" bindtap="orderTab">
待签收
<view class="state-tips" wx:if="{{counts.paid != 0}}">{{counts.paid}}</view>
</view> -->
<view class="order-tab-item {{stateType == 'delivered' ? 'active':''}}" data-state="delivered" 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>
</view> -->
<view class="uni-border-down order-store">
<view class="order-store-title nowrap">{{item.orderid}}</view>
<view class="order-store-stateText red" wx:if="{{item.state_text == '未支付'}}">{{item.state_text}}</view>
<view class="order-store-stateText green" wx:elif="{{item.state_text == '已支付'}}">{{item.state_text}}</view>
<view class="order-store-stateText" wx:else>{{item.state_text}}</view>
</view>
<view class="order-goods">
<image class="order-goods-cover" src="{{item.items.cover}}" mode="aspectFill"></image>
<view class="order-goods-content">
<view class="order-goods-content-name nowrap">{{item.items.title}}</view>
<view class="orderVirtual {{item.items.type != 'virtual' ? '' : 'active'}}">
<block wx:if="{{item.items.type == 'virtual'}}">红包电子券</block>
<block wx:else>实物券</block>
</view>
<view class="order-goods-content-price nowrap">
<text>¥{{item.items.price}}</text> × {{item.items.qty}}
</view>
</view>
</view>
<view class="uni-border-top order-btns">
<navigator class="order-btn" url="/pages/orderData/orderData?id={{item.orderid}}">订单详情</navigator>
<view class="order-btn" bindtap="orderDelete" data-id="{{item.orderid}}" wx:if="{{item.canCancel == true}}">
取消订单</view>
<view class="order-btn order-btn-back" bindtap="submitPay" data-id="{{item.orderid}}"
wx:if="{{item.canPay == true}}">立即支付</view>
<!-- <view class="order-btn order-btn-back" bindtap="" data-id="{{item.orderid}}" wx:if="{{item.canSign == 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>
<view class="payWayBack {{pay.payState ? 'active' : ''}}" bindtap="submitPay"></view>
<view class="payWay {{pay.payState ? 'active' : ''}}">
<view class="payWay-name">请选择支付方式</view>
<radio-group bindchange="radioChange">
<view class="payContList-label">
<view class="payContList-label-name">
<image class="payContList-label-img" src="/static/img/wx.jpg"></image>
微信支付
</view>
<radio class="radio" value="1" checked></radio>
</view>
<view class="payContList-label">
<view class="payContList-label-name">
<image class="payContList-label-img" src="/static/img/wqb.jpg"></image>
沃钱包支付
</view>
<radio class="radio" value="2"></radio>
</view>
</radio-group>
<button class="payWayBtn" bindtap="orderPay">确认</button>
</view>

319
pages/order/order.wxss Normal file
View File

@@ -0,0 +1,319 @@
/*
* 亿时代
*/
.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: 10rpx;
font-size: 30rpx;
font-weight: 600;
}
.order-goods-content-price {
color: #747788;
display: flex;
margin-top: 10rpx;
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;
}
.orderVirtual {
background: #f57e32;
color: #fff;
border-radius: 4rpx;
display: inline-block;
font-size: 24rpx;
padding: 2rpx 8rpx
}
.orderVirtual.active {
background: #88be2d;
}
/* 选择支付方式 */
.payWayBack {
position: fixed;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, .4);
left: 0;
top: 0;
z-index: 98;
display: none;
}
.payWayBack.active {
display: block;
}
.payWay {
position: fixed;
z-index: 99;
left: 0;
bottom: -100%;
width: 100%;
background-color: #fff;
padding: 60rpx 50rpx 120rpx;
box-sizing: border-box;
border-top: 2rpx solid #f0f0f0;
transition: .2s;
}
.payWay.active {
bottom: 0;
}
.payWay-name {
font-weight: 600;
font-size: 30rpx;
margin-bottom: 80rpx;
}
.payContList-label {
display: flex;
margin-bottom: 40rpx;
border-bottom: 2rpx solid #f6f6f6;
padding-bottom: 40rpx;
}
.payContList-label:last-child {
border:none
}
.payContList-label-name {
flex: 1;
font-size: 32rpx;
display: flex;
line-height: 46rpx;
}
.payContList-label-img {
width: 46rpx;
height: 46rpx;
margin-right: 20rpx;
}
radio {
transform:scale(0.8);
}
.payWayBtn {
background: #eacf88;
text-align: center;
line-height: 80rpx !important;
border-radius: 10rpx;
margin-top: 80rpx;
width: 100% !important;
padding: 0;
font-size: 32rpx;
}