
<view class="container">
<form bindsubmit="createOrder" report-submit="true">
<view class="address-box" wx:if="{{isNeedLogistics > 0}}">
<view class="add-address" hidden="{{curAddressData}}">
<view class="title" bindtap="addAddress">新增收货地址</view>
</view>
<view class="show-address" hidden="{{!curAddressData}}" bindtap="selectAddress">
<view class="name-tel">{{curAddressData.linkMan}} {{curAddressData.mobile}}</view>
<view class="addr-text">{{curAddressData.address}}</view>
</view>
</view>
<view class="goods-list">
<view class="list-title">商品列表</view>
<view class="a-goods" wx:for-items="{{goodsList}}" wx:key="{{index}}">
<view class="img-box">
<image src="{{item.pic}}" class="img" />
</view>
<view class="text-box">
<view class="arow arow01">
<view class="goods-name">{{item.name}}</view>
<view class="goods-price">¥ {{item.price}}</view>
</view>
<view class="arow">
<view class="goods-label">{{item.label}}</view>
<view class="goods-num">x {{item.number}}</view>
</view>
</view>
</view>
</view>
<view class="peisong-way">
<view class="row-box" wx:if="{{isNeedLogistics > 0}}">
<view class="row-label">配送方式</view>
<view class="right-text" wx:if="{{yunPrice > 0}}">快递</view>
<view class="right-text" wx:if="{{yunPrice == 0}}">包邮</view>
</view>
<view class="row-box">
<view class="row-label">备注</view>
<view class="right-text">
<input name="remark" type="text" class="liuyan" placeholder="如需备注请输入" />
</view>
</view>
</view>
<view class="peisong-way" hidden="{{hasNoCoupons}}">
<view class="row-box" style="border-bottom:none;">
<view class="row-label">选择使用优惠券</view>
</view>
<view class="row-box" style="border-bottom:none;">
<picker-view indicator-style="height: 50rpx;" style="width: 100%; height: 150rpx;" value="0" bindchange="bindChangeCoupon">
<picker-view-column>
<view style="line-height: 50px">不使用优惠券</view>
<view wx:for="{{coupons}}" wx:key="id" style="line-height: 50px">{{item.money}}元 {{item.name}}</view>
</picker-view-column>
</picker-view>
</view>
</view>
<view class="goods-info">
<view class="row-box" wx:if="{{isNeedLogistics > 0 && yunPrice > 0}}">
<view class="row-label">商品金额</view>
<view class="right-text">¥ {{allGoodsPrice}}</view>
</view>
<view class="row-box" wx:if="{{isNeedLogistics > 0 && yunPrice > 0}}">
<view class="row-label">运费</view>
<view class="right-text">+ ¥ {{yunPrice}}</view>
</view>
<view class="row-box" wx:if="{{!hasNoCoupons}}">
<view class="row-label">优惠券</view>
<view class="right-text">- ¥ {{youhuijine}}</view>
</view>
</view>
<view class="jiesuan-box">
<view class="left-price">
<view class="total">合计:¥ {{allGoodsAndYunPrice - youhuijine}}</view>
</view>
<button class="to-pay-btn" formType="submit">提交订单</button>
</view>
</form>
</view>
|
.container{
background-color:#F2f2f2;
}
.address-box{
width: 100%;
background: url(https://cdn.it120.cc/images/weappshop/arrow-right.png) no-repeat 705rpx center ,
url(https://cdn.it120.cc/images/weappshop/addr-line.png) no-repeat center bottom;
background-size: 16rpx auto,750rpx auto;
background-color: #fff;
margin: 20rpx 0;
}
.add-addres{
width: 100%;
}
.add-address .title{
font-size: 28rpx;
color: #000;
margin-left: 30rpx;
background: url(https://cdn.it120.cc/images/weappshop/ico-add-addr.png) no-repeat left center;
background-size: 60rpx auto;
padding: 40rpx 0 40rpx 90rpx;
}
.show-address{
width: 664rpx;
box-sizing: border-box;
padding-left: 100rpx;
background: url(https://cdn.it120.cc/images/weappshop/ico-addr.png) no-repeat 30rpx 35rpx;
background-size: 30rpx auto;
}
.show-address .name-tel{
font-size: 28rpx;
color: #000;
padding: 30rpx 0 20rpx 0;
}
.show-address .addr-text{
font-size: 24rpx;
color: #888;
padding-bottom: 34rpx;
line-height: 36rpx;
}
form{
width: 100%;
}
.goods-list{
width:100%;
background-color: #fff;
margin-bottom: 20rpx;
}
.goods-list .list-title{
font-size: 28rpx;
color: #000;
padding: 30rpx 0 25rpx 30rpx;
}
.goods-list .a-goods{
width: 720rpx;
margin-left: 30rpx;
display: flex;
/*justify-content: space-between;*/
border-top: 1px solid #eee;
padding: 30rpx 30rpx 30rpx 0;
}
.goods-list .a-goods .img-box{
width: 160rpx;
height:160rpx;
overflow: hidden;
margin-right: 20rpx;
background-color: #d8d8d8;
}
.goods-list .img-box .img{
width: 160rpx;
height:160rpx;
}
.goods-list .a-goods .text-box{
width: 510rpx;
box-sizing: border-box;
padding-top: 10rpx;
}
.a-goods .text-box .arow{
display: flex;
justify-content: space-between;
align-items: center;
}
.a-goods .text-box .arow .goods-name{
width: 360rpx;
font-size:26rpx;
height: 74rpx;
color:#000000;
line-height: 1.6;
overflow: hidden;
}
.a-goods .text-box .arow01{
margin-bottom: 30rpx;
}
.a-goods .text-box .arow .goods-price{
font-size:26rpx;
color:#000000;
align-self: flex-start;
}
.a-goods .text-box .arow .goods-label{
font-size: 26rpx;
color: #999;
}
.a-goods .text-box .arow .goods-num{
font-size: 26rpx;
color: #999;
}
.peisong-way{
width: 100%;
background-color: #fff;
margin-bottom: 20rpx;
}
.peisong-way .row-box{
width: 720rpx;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 24rpx 0 24rpx 30rpx;
border-bottom: 1rpx solid #eee;
}
.peisong-way .row-label{
font-size: 28rpx;
color: #000;
}
.peisong-way .right-text{
font-size: 28rpx;
color: #666;
padding-right: 30rpx;
}
.peisong-way .liuyan{
width: 510rpx;
font-size: 28rpx;
}
.goods-info{
width: 100%;
background-color: #fff;
margin-bottom: 120rpx;
padding-bottom: 24rpx;
}
.goods-info .row-box{
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 24rpx 30rpx 12rpx 30rpx;
font-size: 28rpx;
color: #000;
}
.goods-info .row-box .right-text{
text-align: right;
}
.jiesuan-box{
display: flex;
justify-content: space-between;
width: 100%;
height: 100rpx;
position: fixed;
bottom: 0;
left: 0;
border-top:1px solid #eee;
background-color: #fff;
}
.jiesuan-box .to-pay-btn{
width:250rpx;
text-align: center;
height: 100%;
line-height: 100rpx;
background-color: #e64340;
font-size:32rpx;
color:#ffffff;
border-radius: 0;
}
.jiesuan-box .left-price{
display: flex;
width: 500rpx;
justify-content:flex-end;
line-height: 100rpx;
padding: 0 30rpx 0 0;
font-size:28rpx;
box-sizing: border-box;
}
.jiesuan-box .total{
color: #e64340;
text-align: right;
}
|
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
goodsList:[],
isNeedLogistics:0, // 是否需要物流信息
allGoodsPrice:0,
yunPrice:0,
allGoodsAndYunPrice:0,
goodsJsonStr:"",
orderType:"", //订单类型,购物车下单或立即支付下单,默认是购物车,
hasNoCoupons: true,
coupons: [],
youhuijine:0, //优惠券金额
curCoupon:null // 当前选择使用的优惠券
},
onShow : function () {
var that = this;
var shopList = [];
//立即购买下单
if ("buyNow"==that.data.orderType){
var buyNowInfoMem = wx.getStorageSync('buyNowInfo');
if (buyNowInfoMem && buyNowInfoMem.shopList) {
shopList = buyNowInfoMem.shopList
}
}else{
//购物车下单
var shopCarInfoMem = wx.getStorageSync('shopCarInfo');
if (shopCarInfoMem && shopCarInfoMem.shopList) {
// shopList = shopCarInfoMem.shopList
shopList = shopCarInfoMem.shopList.filter(entity => {
return entity.active;
});
}
}
that.setData({
goodsList: shopList,
});
that.initShippingAddress();
},
onLoad: function (e) {
var that = this;
//显示收货地址标识
that.setData({
isNeedLogistics: 1,
orderType: e.orderType
});
},
getDistrictId : function (obj, aaa){
if (!obj) {
return "";
}
if (!aaa) {
return "";
}
return aaa;
},
createOrder:function (e) {
wx.showLoading();
var that = this;
var loginToken = app.globalData.token // 用户登录 token
var remark = ""; // 备注信息
if (e) {
remark = e.detail.value.remark; // 备注信息
}
var postData = {
token: loginToken,
goodsJsonStr: that.data.goodsJsonStr,
remark: remark
};
if (that.data.isNeedLogistics > 0) {
if (!that.data.curAddressData) {
wx.hideLoading();
wx.showModal({
title: '错误',
content: '请先设置您的收货地址!',
showCancel: false
})
return;
}
postData.provinceId = that.data.curAddressData.provinceId;
postData.cityId = that.data.curAddressData.cityId;
if (that.data.curAddressData.districtId) {
postData.districtId = that.data.curAddressData.districtId;
}
postData.address = that.data.curAddressData.address;
postData.linkMan = that.data.curAddressData.linkMan;
postData.mobile = that.data.curAddressData.mobile;
postData.code = that.data.curAddressData.code;
}
if (that.data.curCoupon) {
postData.couponId = that.data.curCoupon.id;
}
if (!e) {
postData.calculate = "true";
}
wx.request({
url: 'https://api.it120.cc/'+ app.globalData.subDomain +'/order/create',
method:'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: postData, // 设置请求的 参数
success: (res) =>{
wx.hideLoading();
if (res.data.code != 0) {
wx.showModal({
title: '错误',
content: res.data.msg,
showCancel: false
})
return;
}
if (e && "buyNow" != that.data.orderType) {
// 清空购物车数据
wx.removeStorageSync('shopCarInfo');
}
if (!e) {
that.setData({
isNeedLogistics: res.data.data.isNeedLogistics,
allGoodsPrice: res.data.data.amountTotle,
allGoodsAndYunPrice: res.data.data.amountLogistics + res.data.data.amountTotle,
yunPrice: res.data.data.amountLogistics
});
that.getMyCoupons();
return;
}
// 配置模板消息推送
var postJsonString = {};
postJsonString.keyword1 = { value: res.data.data.dateAdd, color: '#173177' }
postJsonString.keyword2 = { value: res.data.data.amountReal + '元', color: '#173177' }
postJsonString.keyword3 = { value: res.data.data.orderNumber, color: '#173177' }
postJsonString.keyword4 = { value: '订单已关闭', color: '#173177' }
postJsonString.keyword5 = { value: '您可以重新下单,请在30分钟内完成支付', color:'#173177'}
app.sendTempleMsg(res.data.data.id, -1,
'uJQMNVoVnpjRm18Yc6HSchn_aIFfpBn1CZRntI685zY', e.detail.formId,
'pages/index/index', JSON.stringify(postJsonString));
postJsonString = {};
postJsonString.keyword1 = { value: '您的订单已发货,请注意查收', color: '#173177' }
postJsonString.keyword2 = { value: res.data.data.orderNumber, color: '#173177' }
postJsonString.keyword3 = { value: res.data.data.dateAdd, color: '#173177' }
app.sendTempleMsg(res.data.data.id, 2,
'GeZutJFGEWzavh69savy_KgtfGj4lHqlP7Zi1w8AOwo', e.detail.formId,
'pages/order-details/index?id=' + res.data.data.id, JSON.stringify(postJsonString));
// 下单成功,跳转到订单管理界面
wx.redirectTo({
url: "/pages/order-list/index"
});
}
})
},
initShippingAddress: function () {
var that = this;
wx.request({
url: 'https://api.it120.cc/'+ app.globalData.subDomain +'/user/shipping-address/default',
data: {
token:app.globalData.token
},
success: (res) =>{
if (res.data.code == 0) {
that.setData({
curAddressData:res.data.data
});
}else{
that.setData({
curAddressData: null
});
}
that.processYunfei();
}
})
},
processYunfei: function () {
var that = this;
var goodsList = this.data.goodsList;
var goodsJsonStr = "[";
var isNeedLogistics = 0;
var allGoodsPrice = 0;
for (let i = 0; i < goodsList.length; i++) {
let carShopBean = goodsList[i];
if (carShopBean.logistics) {
isNeedLogistics = 1;
}
allGoodsPrice += carShopBean.price * carShopBean.number;
var goodsJsonStrTmp = '';
if (i > 0) {
goodsJsonStrTmp = ",";
}
let inviter_id = 0;
let inviter_id_storge = wx.getStorageSync('inviter_id_' + carShopBean.goodsId);
if (inviter_id_storge) {
inviter_id = inviter_id_storge;
}
goodsJsonStrTmp += '{"goodsId":' + carShopBean.goodsId + ',"number":' + carShopBean.number + ',"propertyChildIds":"' + carShopBean.propertyChildIds + '","logisticsType":0, "inviter_id":' + inviter_id +'}';
goodsJsonStr += goodsJsonStrTmp;
}
goodsJsonStr += "]";
//console.log(goodsJsonStr);
that.setData({
isNeedLogistics: isNeedLogistics,
goodsJsonStr: goodsJsonStr
});
that.createOrder();
},
addAddress: function () {
wx.navigateTo({
url:"/pages/address-add/index"
})
},
selectAddress: function () {
wx.navigateTo({
url:"/pages/select-address/index"
})
},
getMyCoupons: function () {
var that = this;
wx.request({
url: 'https://api.it120.cc/' + app.globalData.subDomain + '/discounts/my',
data: {
token: app.globalData.token,
status:0
},
success: function (res) {
if (res.data.code == 0) {
var coupons = res.data.data.filter(entity => {
return entity.moneyHreshold <= that.data.allGoodsAndYunPrice;
});
if (coupons.length > 0) {
that.setData({
hasNoCoupons: false,
coupons: coupons
});
}
}
}
})
},
bindChangeCoupon: function (e) {
const selIndex = e.detail.value[0] - 1;
if (selIndex == -1) {
this.setData({
youhuijine: 0,
curCoupon:null
});
return;
}
//console.log("selIndex:" + selIndex);
this.setData({
youhuijine: this.data.coupons[selIndex].money,
curCoupon: this.data.coupons[selIndex]
});
}
})
|
模板简介:该模板名称为【微信小程序代付款订单输入备注页面样式设计制作开发教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。