Commit 8aeef4e0 authored by gu-jinli1118's avatar gu-jinli1118
Browse files

20230831

parent 646116b0
Pipeline #31 failed with stages
in 0 seconds
// pages/news-detail/news-detail.js
var http = require("../../utils/http.js");
var config = require("../../utils/config.js");
Page({
/**
* 页面的初始数据
*/
data: {
news: {
title: '',
content: '',
id: null
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// var ths = this;
//加载公告详情
var params = {
// `/shop/notice/info/${options.id}`
url: '/shop/notice/info/' + options.id,
method: "GET",
// data: {
// id: id,
// },
// callBack: function(news){
callBack: res => {
res.content = res.content.replace(/width=/gi, 'sss=');
res.content = res.content.replace(/height=/gi, 'sss=');
res.content = res.content.replace(/ \/\>/gi, ' style="max-width:100% !important;display:block;" \/\>');
this.setData({
news: res
});
}
};
http.request(params);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"backgroundTextStyle": "light",
"navigationBarTitleText": "最新公告",
"navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#fafafa"
}
\ No newline at end of file
<!--pages/news-detail/news-detail.wxml-->
<view class='container'>
<!-- <block wx:for='{{news}}' wx:key=''> -->
<view class='news-detail'>
<view class='news-detail-title'>{{news.title}}</view>
<!-- <view class='news-detail-text'>{{news.content}}</view> -->
<rich-text nodes="{{news.content}}"></rich-text>
</view>
<!-- </block> -->
</view>
/* pages/news-detail/news-detail.wxss */
.news-detail {
padding: 20rpx;
}
.news-detail .news-detail-title {
font-size: 32rpx;
font-weight: bold;
line-height: 50rpx;
padding: 20rpx;
}
.news-detail .news-detail-text {
font-size: 28rpx;
line-height: 46rpx;
text-align: justify;
text-justify: inter-ideograph;
margin-top: 20rpx;
}
// pages/order-detail/order-detail.js
var http = require('../../utils/http.js');
Page({
/**
* 页面的初始数据
*/
data: {
orderItemDtos: [],
remarks: "",
actualTotal: 0,
userAddrDto: null,
orderNumber: "",
createTime: "",
status: 0,
productTotalAmount: '',
transfee: '',
reduceAmount: '',
shopId: '',
prodid: ''
},
//跳转商品详情页
toProdPage: function(e) {
var prodid = e.currentTarget.dataset.prodid;
wx.navigateTo({
url: '/pages/prod/prod?prodid=' + prodid,
})
},
/**
* 加入购物车
*/
addToCart: function(event) {
let index = event.currentTarget.dataset.index
// if (!this.orderItemDtos) {
// console.log(1213)
// return;
// }
var ths = this;
wx.showLoading({
mask: true
});
var params = {
url: "/p/shopCart/changeItem",
method: "POST",
data: {
basketId: 0,
count: this.data.orderItemDtos[index].prodCount,
prodId: this.data.orderItemDtos[index].prodId,
shopId: this.data.shopId,
skuId: this.data.orderItemDtos[index].skuId
},
callBack: function(res) {
//console.log(res);
wx.hideLoading();
wx.showToast({
title: "加入购物车成功",
icon: "none"
})
wx.switchTab({
url: '/pages/basket/basket',
})
}
};
http.request(params);
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.loadOrderDetail(options.orderNum);
},
/**
* 加载订单数据
*/
loadOrderDetail: function(orderNum) {
var ths = this;
wx.showLoading();
//加载订单详情
var params = {
url: "/p/myOrder/orderDetail",
method: "GET",
data: {
orderNumber: orderNum
},
callBack: function(res) {
ths.setData({
orderNumber: orderNum,
actualTotal: res.actualTotal,
userAddrDto: res.userAddrDto,
remarks: res.remarks,
orderItemDtos: res.orderItemDtos,
createTime: res.createTime,
status: res.status,
productTotalAmount: res.orderItemDtos[0].productTotalAmount,
transfee: res.transfee,
reduceAmount: res.reduceAmount,
actualTotal: res.actualTotal,
shopId: res.shopId
});
wx.hideLoading();
}
};
http.request(params);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
},
// 一键复制事件
copyBtn: function(e) {
var ths = this;
wx.setClipboardData({
//准备复制的数据
data: ths.data.orderNumber,
success: function(res) {
wx.showToast({
title: '复制成功',
});
}
})
},
})
\ No newline at end of file
{
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "订单详情",
"navigationBarTextStyle": "black"
}
\ No newline at end of file
<!--pages/order-detail/order-detail.wxml-->
<view class='container'>
<view class='order-detail'>
<view class='delivery-addr'>
<view class='user-info'>
<text class='item'>{{userAddrDto.receiver}}</text>
<text class='item'>{{userAddrDto.mobile}}</text>
</view>
<view class='addr'>{{userAddrDto.province}}{{userAddrDto.city}}{{userAddrDto.area}}{{userAddrDto.area}}{{userAddrDto.addr}}</view>
</view>
<!-- 商品信息 -->
<view class='prod-item'>
<!-- <view class="order-num">
<view class='order-state'>
<text class="order-sts gray">{{status}}</text>
</view>
</view> -->
<block wx:for="{{orderItemDtos}}" wx:for-index="index" wx:key='index'>
<view class='item-cont' bindtap='toProdPage' data-prodid="{{item.prodId}}">
<view class='prod-pic'>
<image src='{{item.pic}}'></image>
</view>
<view class='prod-info'>
<view class='prodname'>
{{item.prodName}}
</view>
<view class='prod-info-cont'>
<text class='number'>数量:{{item.prodCount}}</text>
<text class='info-item'>{{item.skuName}}</text>
</view>
<view class='price-nums clearfix'>
<text class='prodprice'><text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(item.price)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(item.price)[1]}}</text></text>
<view class='btn-box'>
<text class='btn' wx:if="{{item.status!=1}}">申请售后</text>
<text class='btn' data-index='{{index}}' catchtap='addToCart'>加购物车</text>
</view>
</view>
</view>
</view>
</block>
<!-- <view class='item-cont' bindtap='toOrderDetailPage' data-ordernum="{{item.primaryOrderNo}}">
<view class='prod-pic'>
<image src='../../images/prod/pic10.jpg'></image>
</view>
<view class='prod-info'>
<view class='prodname'>
THE BEAST/野兽派 雪花发财狗
</view>
<view class='prod-info-cont'>
<text class='number'>数量:1</text>
<text class='info-item'>发财狗</text>
</view>
<view class='price-nums clearfix'>
<text class='prodprice'><text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(40.00)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(40.00)[1]}}</text></text>
<view class='btn-box'>
<text class='btn'>申请售后</text>
<text class='btn'>加购物车</text>
</view>
</view>
</view>
</view> -->
<view class='prod-foot'>
<view class='btn'>
<button wx:if="{{item.status==1}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>取消订单</button>
<button wx:if="{{item.status==1}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>再次购买</button>
<button wx:if="{{item.status==1}}" class="button warn" bindtap="onPayAgain" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>付款</button>
<button wx:if="{{item.status==3 || item.status==5}}" class="button" bindtap="toDeliveryPage" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>查看物流</button>
<button wx:if="{{item.status==3}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>确认收货</button>
</view>
</view>
</view>
<!-- 订单信息 -->
<view class='order-msg'>
<view class='msg-item'>
<view class='item'>
<text class='item-tit'>订单编号:</text>
<text class='item-txt'>{{orderNumber}}</text>
<text class='copy-btn' bindtap='copyBtn'>复制</text>
</view>
<view class='item'>
<text class='item-tit'>下单时间:</text>
<text class='item-txt'>{{createTime}}</text>
</view>
</view>
<view class='msg-item'>
<view class='item'>
<text class='item-tit'>支付方式:</text>
<text class='item-txt'>微信支付</text>
</view>
<view class='item'>
<text class='item-tit'>配送方式:</text>
<text class='item-txt'>普通配送</text>
</view>
<view class='item'>
<text class='item-tit'>订单备注:</text>
<text class='item-txt'>{{remarks}}</text>
</view>
</view>
</view>
<view class='order-msg'>
<view class='msg-item'>
<view class='item'>
<view class='item-tit'>订单总额:</view>
<view class='item-txt price'>
<text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(productTotalAmount)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(productTotalAmount)[1]}}</text>
</view>
</view>
<view class='item'>
<view class='item-tit'>运费:</view>
<view class='item-txt price'>
<text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(transfee)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(transfee)[1]}}</text>
</view>
</view>
<view class='item'>
<view class='item-tit'>优惠券:</view>
<view class='item-txt price'>
<text class='symbol'>-¥</text>
<text class='big-num'>{{wxs.parsePrice(reduceAmount)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(reduceAmount)[1]}}</text>
</view>
</view>
<view class='item payment'>
<view class='item-txt price'>
实付款:
<text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(actualTotal)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(actualTotal)[1]}}</text>
</view>
</view>
</view>
</view>
<!-- 底部栏 -->
<view class='order-detail-footer' wx:if="{{status==5||status==6}}">
<text class='dele-order'>删除订单</text>
<!-- <view class='footer-box'> -->
<!-- <text class='apply-service'>联系客服</text> -->
<!-- <text class='buy-again'>再次购买</text> -->
<!-- </view> -->
</view>
</view>
</view>
<wxs module="wxs" src="../../wxs/number.wxs" />
\ No newline at end of file
/* pages/order-detail/order-detail.wxss */
page {
background: #f4f4f4;
}
.order-detail {
margin-bottom: 120rpx;
}
.order-detail .delivery-addr {
padding: 20rpx 30rpx;
background: #fff;
}
.order-detail .delivery-addr .user-info {
line-height: 48rpx;
word-wrap: break-word;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.order-detail .delivery-addr .user-info .item {
font-size: 28rpx;
margin-right: 30rpx;
vertical-align: top;
display: inline-block;
}
.order-detail .delivery-addr .addr {
font-size: 26rpx;
line-height: 36rpx;
color: #999;
}
/* 商品列表 */
.prod-item {
background-color: #fff;
margin-top: 15rpx;
font-size: 28rpx;
}
.prod-item .item-cont .prod-pic image {
width: 180rpx;
height: 180rpx;
}
.prod-item .item-cont {
display: flex;
align-items: center;
padding: 30rpx;
border-top: 2rpx solid #f1f1f1;
}
.prod-item .item-cont .prod-pic {
font-size: 0;
display: block;
width: 160rpx;
height: 160rpx;
overflow: hidden;
background: #fff;
margin-right: 16rpx;
}
.prod-item .item-cont .prod-pic image {
width: 100%;
height: 100%;
}
.prod-item .item-cont .prod-info {
margin-left: 10rpx;
font-size: 28rpx;
width: 100%;
position: relative;
height: 80px;
-webkit-flex: 1;
-ms-flex: 1;
-webkit-box-flex: 1;
-moz-box-flex: 1;
flex: 1;
}
.prod-item .item-cont .prod-info .prodname {
font-size: 28rpx;
line-height: 40rpx;
max-height: 86rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
word-break: break-all;
}
.prod-item .item-cont .prod-info .prod-info-cont {
position: relative;
color: #999;
margin-top: 10rpx;
font-size: 24rpx;
}
.prod-item .item-cont .prod-info .prod-info-cont .info-item {
color: #999;
height: 28rpx;
margin-top: 10rpx;
font-size: 24rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
word-break: break-all;
width: 70%;
}
.prod-item .item-cont .prod-info .prod-info-cont .number {
float: left;
margin-right: 20rpx;
}
.prod-item .price-nums {
margin-top: 30rpx;
}
.prod-item .price-nums .prodprice {
color: #333;
height: 50rpx;
line-height: 50rpx;
font-size: 24rpx;
float: left;
}
.prod-item .price-nums .btn-box {
float: right;
text-align: right;
}
.prod-item .price-nums .btn-box .btn {
padding: 6rpx 30rpx;
line-height: 36rpx;
margin-left: 20rpx;
font-size: 24rpx;
display: inline-block;
border: 2rpx solid #e4e4e4;
border-radius: 50rpx;
}
/*
订单信息 */
.order-msg {
background: #fff;
margin-top: 15rpx;
font-size: 28rpx;
}
.order-msg .msg-item {
padding: 20rpx;
border-top: 2rpx solid #f1f1f1;
}
.order-msg .msg-item:first-child {
border: 0;
}
.order-msg .msg-item .item {
display: flex;
padding: 10rpx 0;
align-items: center;
}
.order-msg .msg-item .item.payment {
border-top: 2rpx solid #f1f1f1;
color: #eb2444;
padding-top: 30rpx;
}
.order-msg .msg-item .item .item-tit {
color: #999;
line-height: 48rpx;
}
.order-msg .msg-item .item .item-txt {
flex: 1;
line-height: 48rpx;
}
.order-msg .msg-item .item .copy-btn {
display: block;
margin-left: 20rpx;
border: 2rpx solid #e4e4e4;
padding: 6rpx 24rpx;
border-radius: 50rpx;
font-size: 24rpx;
line-height: 28rpx;
}
.order-msg .msg-item .item .item-txt.price {
text-align: right;
}
/* 底部栏 */
.order-detail-footer {
position: fixed;
bottom: 0;
width: 100%;
max-width: 750rpx;
background: #fff;
margin: auto;
display: -webkit-flex;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: flex;
padding: 22rpx 0;
font-size: 26rpx;
box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.05);
}
.order-detail-footer .dele-order {
margin-left: 20rpx;
line-height: 60rpx;
display: block;
margin-right: 20rpx;
width: 150rpx;
text-align: center;
}
.order-detail-footer .footer-box {
flex: 1;
text-align: right;
line-height: 60rpx;
}
.order-detail-footer .footer-box .buy-again {
font-size: 26rpx;
color: #fff;
background: #eb2444;
border-radius: 50rpx;
padding: 10rpx 20rpx;
margin-right: 20rpx;
}
.order-detail-footer .footer-box .apply-service {
font-size: 26rpx;
border-radius: 50rpx;
padding: 10rpx 20rpx;
border: 1px solid #e4e4e4;
margin-right: 20rpx;
}
.clearfix:after {
content: " ";
display: table;
clear: both;
}
/* 根据状态显示不同的颜色 */
.order-state {
height: 70rpx;
line-height: 70rpx;
text-align: right;
margin-right: 20rpx;
}
.order-state .order-sts {
color: #eb2444;
font-size: 28rpx;
}
.order-state .order-sts.gray {
color: #999;
height: 32rpx;
line-height: 32rpx;
}
.order-state .order-sts.normal {
color: #333;
}
var http = require('../../utils/http.js');
var config = require('../../utils/config.js');
Page({
/**
* 页面的初始数据
*/
data: {
list: [],
current: 1,
pages: 0,
sts: 0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
if (options.sts) {
this.setData({
sts: options.sts
});
this.loadOrderData(options.sts, 1);
} else {
this.loadOrderData(0, 1);
}
},
/**
* 加载订单数据
*/
loadOrderData: function(sts, current) {
var ths = this;
wx.showLoading();
//加载订单列表
var params = {
url: "/p/myOrder/myOrder",
method: "GET",
data: {
current: current,
size: 10,
status: sts,
},
callBack: function(res) {
//console.log(res);
var list = [];
if (res.current == 1) {
list = res.records;
} else {
list = ths.data.list;
Array.prototype.push.apply(list, res.records);
}
ths.setData({
list: list,
pages: res.pages,
current: res.current
});
wx.hideLoading();
}
};
http.request(params);
},
/**
* 状态点击事件
*/
onStsTap: function(e) {
var sts = e.currentTarget.dataset.sts;
this.setData({
sts: sts
});
this.loadOrderData(sts, 1);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
if (this.data.current < this.data.pages) {
this.loadOrderData(this.data.sts, this.data.current + 1);
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
},
/**
* 查看物流
*/
toDeliveryPage: function(e) {
wx.navigateTo({
url: '/pages/express-delivery/express-delivery?orderNum=' + e.currentTarget.dataset.ordernum
})
},
/**
* 取消订单
*/
onCancelOrder: function(e) {
var ordernum = e.currentTarget.dataset.ordernum;
var ths = this;
wx.showModal({
title: '',
content: '要取消此订单?',
confirmColor: "#3e62ad",
cancelColor: "#3e62ad",
cancelText: '',
confirmText: '',
success(res) {
if (res.confirm) {
wx.showLoading({
mask: true
});
var params = {
url: "/p/myOrder/cancel/" + ordernum,
method: "PUT",
data: {},
callBack: function(res) {
//console.log(res);
ths.loadOrderData(ths.data.sts, 1);
wx.hideLoading();
}
};
http.request(params);
} else if (res.cancel) {
//console.log('用户点击取消')
}
}
})
},
/**
* 付款
*/
onPayAgain: function(e) {
wx.showLoading({
mask: true
});
var params = {
url: "/p/order/pay",
method: "POST",
data: {
payType: 1,
orderNumbers: e.currentTarget.dataset.ordernum
},
callBack: res => {
//console.log(res);
wx.hideLoading();
wx.requestPayment({
timeStamp: res.timeStamp,
nonceStr: res.nonceStr,
package: res.packageValue,
signType: res.signType,
paySign: res.paySign,
success: function() {
wx.navigateTo({
url: '/pages/pay-result/pay-result?sts=1&orderNumbers=' + e.currentTarget.dataset.ordernum,
})
},
fail: function(err) {
//console.log("支付失败");
}
})
}
};
http.request(params);
},
/**
* 查看订单详情
*/
toOrderDetailPage: function(e) {
wx.navigateTo({
url: '/pages/order-detail/order-detail?orderNum=' + e.currentTarget.dataset.ordernum,
})
},
/**
* 确认收货
*/
onConfirmReceive: function(e) {
var ths = this;
wx.showModal({
title: '',
content: '我已收到货?',
confirmColor: "#eb2444",
success(res) {
if (res.confirm) {
wx.showLoading({
mask: true
});
var params = {
url: "/p/myOrder/receipt/" + e.currentTarget.dataset.ordernum,
method: "PUT",
data: {},
callBack: function(res) {
//console.log(res);
ths.loadOrderData(ths.data.sts, 1);
wx.hideLoading();
}
};
http.request(params);
} else if (res.cancel) {
//console.log('用户点击取消')
}
}
})
},
//删除已完成||已取消的订单
delOrderList: function(e) {
var ths = this
wx.showModal({
title: '',
content: '确定要删除此订单吗?',
confirmColor: "#eb2444",
success(res) {
if (res.confirm) {
var ordernum = e.currentTarget.dataset.ordernum;
wx.showLoading();
var params = {
url: "/p/myOrder/" + ordernum,
method: "DELETE",
data: {},
callBack: function(res) {
ths.loadOrderData(ths.data.sts, 1);
wx.hideLoading();
}
}
http.request(params);
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
\ No newline at end of file
{
"backgroundTextStyle": "light",
"navigationBarTitleText": "订单列表",
"navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#fafafa"
}
\ No newline at end of file
<!--pages/orderList/orderList.wxml-->
<view class='container'>
<!-- 头部菜单 -->
<view class='order-tit'>
<text bindtap='onStsTap' data-sts="0" class="{{sts==0?'on':''}}">全部</text>
<text bindtap='onStsTap' data-sts="1" class="{{sts==1?'on':''}}">待支付</text>
<text bindtap='onStsTap' data-sts="2" class="{{sts==2?'on':''}}">待发货</text>
<text bindtap='onStsTap' data-sts="3" class="{{sts==3?'on':''}}">待收货</text>
<text bindtap='onStsTap' data-sts="5" class="{{sts==5?'on':''}}">已完成</text>
</view>
<!-- end 头部菜单 -->
<view class='main'>
<view class="empty" wx:if="{{list.length==0}}">
还没有任何相关订单
</view>
<!-- 订单列表 -->
<block wx:for="{{list}}" wx:key=''>
<view class='prod-item'>
<view class="order-num">
<text>订单编号:{{item.orderNumber}}</text>
<view class='order-state'>
<text class="order-sts {{item.status==1?'red':''}} {{(item.status==5||item.status==6)?'gray':''}}">{{item.status==1?'待支付':(item.status==2?'待发货':(item.status==3?'待收货':(item.status==5?'已完成':'已取消')))}}</text>
<view class='clear-btn' wx:if="{{item.status==5 || item.status==6}}">
<image src='../../images/icon/clear-his.png' class='clear-list-btn' bindtap='delOrderList' data-ordernum="{{item.orderNumber}}"></image>
</view>
</view>
</view>
<!-- 商品列表 -->
<!-- 一个订单单个商品的显示 -->
<block wx:if="{{item.orderItemDtos.length==1}}">
<block wx:for="{{item.orderItemDtos}}" wx:for-item="prod" wx:key=''>
<view>
<view class='item-cont' bindtap='toOrderDetailPage' data-ordernum="{{item.orderNumber}}">
<view class='prod-pic'>
<image src='{{prod.pic}}'></image>
</view>
<view class='prod-info'>
<view class='prodname'>
{{prod.prodName}}
</view>
<view class='prod-info-cont'>{{prod.skuName}}</view>
<view class='price-nums'>
<text class='prodprice'><text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(prod.price)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(prod.price)[1]}}</text></text>
<text class="prodcount">x{{prod.prodCount}}</text>
</view>
</view>
</view>
</view>
</block>
</block>
<!-- 一个订单多个商品时的显示 -->
<block wx:else>
<view class='item-cont' bindtap='toOrderDetailPage' data-ordernum="{{item.orderNumber}}">
<scroll-view scroll-x="true" scroll-left='0' scroll-with-animation="false" class="categories">
<block wx:for="{{item.orderItemDtos}}" wx:for-item="prod" wx:key=''>
<view class='prod-pic'>
<image src="{{prod.pic}}"></image>
</view>
</block>
</scroll-view>
</view>
</block>
<view class='total-num'>
<text class="prodcount">共1件商品</text>
<view class='prodprice'>合计:
<text class='symbol'>¥</text>
<text class='big-num'>{{wxs.parsePrice(item.actualTotal)[0]}}</text>
<text class='small-num'>.{{wxs.parsePrice(item.actualTotal)[1]}}</text>
</view>
</view>
<!-- end 商品列表 -->
<view class='prod-foot'>
<view class='btn'>
<text wx:if="{{item.status==1}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.orderNumber}}" hover-class='none'>取消订单</text>
<text class="button warn" bindtap="" data-ordernum="{{item.orderNumber}}" hover-class='none'>再次购买</text>
<text wx:if="{{item.status==1}}" class="button warn" bindtap="onPayAgain" data-ordernum="{{item.orderNumber}}" hover-class='none'>付款</text>
<text wx:if="{{item.status==3 || item.status==5}}" class="button" bindtap="toDeliveryPage" data-ordernum="{{item.orderNumber}}" hover-class='none'>查看物流</text>
<text wx:if="{{item.status==3}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.orderNumber}}" hover-class='none'>确认收货</text>
</view>
</view>
</view>
</block>
</view>
</view>
<!-- end 订单列表 -->
<wxs module="wxs" src="../../wxs/number.wxs" />
\ No newline at end of file
/* pages/orderList/orderList.wxss */
page {
background-color: #f4f4f4;
color: #333;
}
/* 头部菜单 */
.order-tit {
position: fixed;
top: 0;
display: flex;
justify-content: space-around;
z-index: 999;
width: 100%;
height: 100rpx;
line-height: 100rpx;
background-color: #fff;
border-bottom: 2rpx solid #f4f4f4;
}
.order-tit text {
display: block;
font-size: 28rpx;
color: 999;
width: 100rpx;
text-align: center;
}
.order-tit text.on {
border-bottom: 4rpx solid #eb2444;
color: #eb2444;
}
/* end 头部菜单 */
.main {
margin-top: 100rpx;
}
/* 商品列表 */
.prod-item {
background-color: #fff;
margin-top: 15rpx;
font-size: 28rpx;
}
.prod-item .item-cont .prod-pic image {
width: 180rpx;
height: 180rpx;
}
.prod-item .order-num {
padding: 20rpx 30rpx;
display: flex;
justify-content: space-between;
font-size: 28rpx;
}
.order-state {
display: flex;
align-items: center;
font-size: 24rpx;
}
.prod-item .item-cont .categories {
white-space: nowrap;
}
.prod-item .item-cont {
display: flex;
align-items: center;
padding: 20rpx 30rpx;
border-radius: 10rpx;
display: -webkit-flex;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
background: #fafafa;
}
.prod-item .order-num .clear-btn {
width: 32rpx;
height: 32rpx;
font-size: 0;
vertical-align: top;
margin-left: 42rpx;
position: relative;
}
.prod-item .order-num .clear-btn::after {
content: " ";
display: block;
position: absolute;
left: -10px;
top: 0rpx;
width: 1px;
height: 32rpx;
background: #ddd;
}
.prod-item .order-num .clear-btn .clear-list-btn {
width: 100%;
height: 100%;
vertical-align: middle;
}
.prod-item .item-cont .prod-pic {
font-size: 0;
display: inline-block;
width: 160rpx;
height: 160rpx;
overflow: hidden;
background: #fff;
margin-right: 16rpx;
}
.prod-item .item-cont .prod-pic image {
width: 100%;
height: 100%;
}
.prod-item .item-cont .prod-info {
margin-left: 10rpx;
font-size: 28rpx;
width: 100%;
position: relative;
height: 160rpx;
-webkit-flex: 1;
-ms-flex: 1;
-webkit-box-flex: 1;
-moz-box-flex: 1;
flex: 1;
}
.prod-item .item-cont .prod-info .prodname {
font-size: 28rpx;
line-height: 36rpx;
max-height: 86rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
word-break: break-all;
}
.prod-item .item-cont .prod-info .prod-info-cont {
color: #999;
line-height: 40rpx;
margin-top: 10rpx;
font-size: 22rpx;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
word-break: break-all;
}
.prod-item .total-num {
text-align: right;
padding: 20rpx 30rpx;
font-size: 28rpx;
}
.prod-item .price-nums .prodprice {
color: #333;
position: absolute;
bottom: 0;
}
.prod-item .price-nums .prodcount {
position: absolute;
bottom: 5rpx;
right: 0;
color: #999;
font-family: verdana;
}
.prod-item .total-num .prodprice {
display: inline-block;
color: #333;
}
.prod-item .total-num .prodcount {
margin-right: 20rpx;
}
.prod-item .prod-foot {
padding: 20rpx 30rpx;
border-top: 2rpx solid #e6e6e6;
}
.prod-item .prod-foot .total {
font-size: 25rpx;
margin-bottom: 20rpx;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #e9eaec;
}
.prod-item .prod-foot .btn {
display: flex;
align-items: center;
justify-content: flex-end;
}
.other-button-hover {
background-color: blue;
}
.button-hover {
background-color: red;
}
/** 添加自定义button点击态样式类**/
.button-hover {
background-color: blue;
}
.button {
margin-left: 10px;
font-size: 26rpx;
background: #fff;
padding: 10rpx 30rpx;
border-radius: 80rpx;
border: 2rpx solid #e1e1e1;
}
.button.warn {
color: #eb2444;
border-color: #eb2444;
}
/* end 商品列表 */
.empty {
font-size: 24rpx;
margin-top: 100rpx;
text-align: center;
color: #999;
height: 300rpx;
line-height: 300rpx;
}
/* 根据状态显示不同的颜色 */
.order-state .order-sts.red {
color: #eb2444;
}
.order-state .order-sts.gray {
color: #999;
}
// pages/pay-result/pay-result.js
Page({
/**
* 页面的初始数据
*/
data: {
sts: 0,
orderNumbers: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
sts: options.sts,
orderNumbers: options.orderNumbers
});
},
toOrderList: function () {
wx.navigateTo({
url: '/pages/orderList/orderList?sts=0'
})
},
toIndex: function () {
wx.switchTab({
url: '/pages/index/index'
})
},
payAgain: function () {
wx.showLoading({
mask: true
});
var params = {
url: "/p/order/pay",
method: "POST",
data: {
payType: 1,
orderNumbers: this.data.orderNumbers
},
callBack: function (res) {
//console.log(res);
wx.hideLoading();
wx.requestPayment({
timeStamp: res.timeStamp,
nonceStr: res.nonceStr,
package: res.packageValue,
signType: res.signType,
paySign: res.paySign,
success: e => {
//console.log("支付成功");
wx.redirectTo({
url: '/pages/pay-result/pay-result?sts=1&orderNum=' + orderNumbers + "&orderType=" + this.data.orderType,
})
},
fail: err => {
}
})
}
};
http.request(params);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
\ No newline at end of file
{
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "支付结果",
"navigationBarTextStyle": "black"
}
\ No newline at end of file
<!--pages/pay-result/pay-result.wxml-->
<view class='container'>
<view wx:if="{{sts == 0}}">
<view class="pay-sts fail">支付失败</view>
<view class='tips'>请在
<text class="warn">30分钟</text>内完成付款</view>
<view class='tips'>否则订单会被系统取消</view>
<view class="btns">
<text class='button checkorder' bindtap='toOrderList'>查看订单</text>
<text class='button payagain' bindtap='payAgain'>重新支付</text>
</view>
</view>
<view wx:if="{{sts == 1}}">
<view class="pay-sts succ">支付成功</view>
<view class='tips'>感谢您的购买</view>
<view class="btns">
<text class='button checkorder' bindtap='toOrderList'>查看订单</text>
<text class='button shopcontinue' bindtap='toIndex'>继续购物</text>
</view>
</view>
</view>
\ No newline at end of file
/* pages/pay-result/pay-result.wxss */
.pay-sts {
font-size: 40rpx;
margin-top: 100rpx;
padding: 30rpx 0;
text-align: center;
}
.pay-sts.fail {
color: #f43530;
}
.pay-sts.succ {
color: #19be6b;
}
.btns {
margin-top: 50rpx;
text-align: center;
}
.tips {
font-size: 28rpx;
color: #999;
text-align: center;
}
.tips .warn {
color: #f43530;
}
.btns .button {
border-radius: 10rpx;
font-size: 28rpx;
background: #fff;
color: #333;
padding: 20rpx 35rpx;
width: 300rpx;
margin: 0 20rpx;
text-align: center;
}
.btns .button.checkorder {
background: #19be6b;
color: #fff;
margin-bottom: 20rpx;
border: 2rpx solid #19be6b;
}
.btns .button.payagain {
background: #fff;
border: 2rpx solid #f90;
color: #f90;
}
.btns .button.shopcontinue {
background: #fff;
border: 2rpx solid #19be6b;
color: #19be6b;
}
// pages/prod-classify/prod-classify.js
var http = require('../../utils/http.js');
Page({
/**
* 页面的初始数据
*/
data: {
sts: 0,
prodList: [],
title: "",
current: 1,
size: 10,
pages: 0,
tagid: 0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.setData({
current: 1,
pages: 0,
sts: options.sts,
title: options.title ? options.title : ""
});
if (options.tagid) {
this.setData({
tagid: options.tagid
});
}
if (this.data.sts == 0) {
if (options.tagid == 1) {
wx.setNavigationBarTitle({
title: '每日上新'
})
} else if (options.tagid == 2) {
wx.setNavigationBarTitle({
title: '商城热卖'
})
} else if (options.tagid == 3) {
wx.setNavigationBarTitle({
title: '更多宝贝'
})
}
} else if (this.data.sts == 1) {
wx.setNavigationBarTitle({
title: '新品推荐',
})
} else if (this.data.sts == 2) {
wx.setNavigationBarTitle({
title: '限时特惠',
})
} else if (this.data.sts == 3) {
wx.setNavigationBarTitle({
title: '每日疯抢',
})
} else if (this.data.sts == 4) {
wx.setNavigationBarTitle({
title: '优惠券活动商品',
})
} else if (this.data.sts == 5) {
wx.setNavigationBarTitle({
title: '我的收藏商品',
})
} else {
wx.setNavigationBarTitle({
title: this.data.title
})
}
this.loadProdData(options);
},
/**
* 加载商品数据
*/
loadProdData: function(options) {
let sts = this.data.sts
if (sts == 0) {
// 分组标签商品列表
this.getTagProd();
} else if (sts == 1) {
// 新品推荐
let url = "/prod/lastedProdPage"
this.getActProd(url)
} else if (sts == 2) {
// 限时特惠
let url = "/prod/discountProdList"
this.getActProd(url)
} else if (sts == 3) {
// 每日疯抢
let url = "/prod/moreBuyProdList"
this.getActProd(url)
} else if (sts == 4) {
// 优惠券商品列表
this.getProdByCouponId(options.tagid)
} else if (sts == 5) {
// 收藏商品列表
this.getCollectionProd()
}
},
getActProd: function(url) {
var ths = this;
wx.showLoading();
var params = {
url: url,
method: "GET",
data: {
current: ths.data.current,
size: ths.data.size,
},
callBack: function(res) {
let list = []
if (res.current == 1) {
list = res.records
} else {
list = ths.data.prodList
list = list.concat(res.records)
}
ths.setData({
prodList: list,
pages: res.pages
});
wx.hideLoading();
}
};
http.request(params);
},
/**
* 获取我的收藏商品
*/
getCollectionProd: function() {
var ths = this;
wx.showLoading();
var params = {
url: "/p/user/collection/prods",
method: "GET",
data: {
current: ths.data.current,
size: ths.data.size,
},
callBack: function(res) {
let list = []
if (res.current == 1) {
list = res.records
} else {
list = ths.data.prodList
list = list.concat(res.records)
}
ths.setData({
prodList: list,
pages: res.pages
});
wx.hideLoading();
}
};
http.request(params);
},
/**
* 获取标签列表
*/
getTagProd: function(id) {
var ths = this;
wx.showLoading();
var param = {
url: "/prod/prodListByTagId",
method: "GET",
data: {
tagId: ths.data.tagid,
current: ths.data.current,
size: ths.data.size
},
callBack: (res) => {
let list = []
if (res.current == 1) {
list = res.records
} else {
list = ths.data.prodList.concat(res.records)
}
ths.setData({
prodList: list,
pages: res.pages
});
wx.hideLoading();
}
};
http.request(param);
},
/**
* 获取优惠券商品列表
*/
getProdByCouponId(id) {
var ths = this;
wx.showLoading();
var param = {
url: "/coupon/prodListByCouponId",
method: "GET",
data: {
couponId: id,
current: this.data.current,
size: this.data.size
},
callBack: (res) => {
let list = []
if (res.current == 1) {
list = res.records
} else {
list = ths.data.prodList.concat(res.records)
}
ths.setData({
prodList: list,
pages: res.pages
});
wx.hideLoading();
}
};
http.request(param);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
if (this.data.current < this.data.pages) {
this.setData({
current: this.data.current + 1
})
this.loadProdData()
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
}
})
\ No newline at end of file
{
"usingComponents": {
"prod": "/components/production/production"
},
"onReachBottomDistance": 0
}
\ No newline at end of file
<!--pages/prod-classify/prod-classify.wxml-->
<view class='container'>
<!-- <view class='line-fix'></view>
<view class='tit-background'></view> -->
<view>
<block wx:for="{{prodList}}" wx:key ="key">
<prod item="{{item}}" ></prod>
</block>
</view>
<view wx:if="{{!prodList.length}}" class="empty-list">
暂无商品
</view>
</view>
\ No newline at end of file
/* pages/prod-classify/prod-classify.wxss */
page {
background: #fff;
}
.line-fix {
width: 100%;
height: 2rpx;
background: #e1e1e1;
position: fixed;
top: 0;
}
.tit-background {
width: 100%;
height: 20rpx;
background: #f4f4f4;
}
.empty-list {
font-size: 24rpx;
color: #999;
text-align: center;
margin: 100rpx 0;
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment