From ae5992fa79886ae992844217d2c75648f91e32b6 Mon Sep 17 00:00:00 2001 From: zhangjing Date: Fri, 22 Sep 2023 17:28:59 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9C=80=E6=96=B0]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/interfaces/bag.js | 17 +- app.json | 11 +- pages/bag/bag.js | 6 +- pages/bag/bag.wxml | 4 +- pages/bag/bag.wxss | 2 + pages/bag/bagConfirm/bagConfirm.js | 100 +++++++ pages/bag/bagConfirm/bagConfirm.json | 4 + pages/bag/bagConfirm/bagConfirm.wxml | 77 ++++++ pages/bag/bagConfirm/bagConfirm.wxss | 317 +++++++++++++++++++++++ pages/order/details/details.wxml | 24 +- pages/order/index.wxss | 1 + pages/pay/index.js | 16 +- pages/pay/index.wxml | 10 +- pages/pay/index.wxss | 12 +- static/icons/carnull_icon.png | Bin 0 -> 7626 bytes static/icons/shopIcon.png | Bin 0 -> 539 bytes static/tabBarIcon/tabBar_03.png | Bin 2738 -> 2387 bytes static/tabBarIcon/tabBar_04.png | Bin 0 -> 2738 bytes static/tabBarIcon/tabBar_selected_03.png | Bin 3866 -> 2257 bytes static/tabBarIcon/tabBar_selected_04.png | Bin 0 -> 3866 bytes 20 files changed, 572 insertions(+), 29 deletions(-) create mode 100644 pages/bag/bagConfirm/bagConfirm.js create mode 100644 pages/bag/bagConfirm/bagConfirm.json create mode 100644 pages/bag/bagConfirm/bagConfirm.wxml create mode 100644 pages/bag/bagConfirm/bagConfirm.wxss create mode 100644 static/icons/carnull_icon.png create mode 100644 static/icons/shopIcon.png create mode 100644 static/tabBarIcon/tabBar_04.png create mode 100644 static/tabBarIcon/tabBar_selected_04.png diff --git a/api/interfaces/bag.js b/api/interfaces/bag.js index 116bc70..bbd9080 100644 --- a/api/interfaces/bag.js +++ b/api/interfaces/bag.js @@ -35,10 +35,25 @@ const del = cart_id => req({ method : "DELETE" }) +// 购物车确认订单 +const buyCarts = (data) => req({ + url : "mall/buy/carts", + data +}) + +// 购物车下单 +const postCarts = (data) => req({ + url : "mall/buy/carts", + method : "POST", + data +}) + export default ({ count, add, list, putNum, - del + del, + buyCarts, + postCarts }) \ No newline at end of file diff --git a/app.json b/app.json index 7bde636..2c15622 100644 --- a/app.json +++ b/app.json @@ -39,7 +39,8 @@ "pages/refund/deliver/deliver", "pages/refund/logs/logs", "pages/richText/richText", - "pages/bag/bag" + "pages/bag/bag", + "pages/bag/bagConfirm/bagConfirm" ], "window": { "backgroundTextStyle": "light", @@ -64,14 +65,14 @@ { "pagePath": "pages/bag/bag", "text": "购物袋", - "iconPath": "/static/tabBarIcon/tabBar_01.png", - "selectedIconPath": "/static/tabBarIcon/tabBar_selected_01.png" + "iconPath": "/static/tabBarIcon/tabBar_03.png", + "selectedIconPath": "/static/tabBarIcon/tabBar_selected_03.png" }, { "pagePath": "pages/user/index", "text": "我的", - "iconPath": "/static/tabBarIcon/tabBar_03.png", - "selectedIconPath": "/static/tabBarIcon/tabBar_selected_03.png" + "iconPath": "/static/tabBarIcon/tabBar_04.png", + "selectedIconPath": "/static/tabBarIcon/tabBar_selected_04.png" } ], "color": "#999999", diff --git a/pages/bag/bag.js b/pages/bag/bag.js index ff8e400..814538a 100644 --- a/pages/bag/bag.js +++ b/pages/bag/bag.js @@ -253,9 +253,9 @@ Page({ bagOrderLoading:true }) if (this.data.bagId != ''){ - - console.log('提交的数据id:' + this.data.bagId) - + wx.navigateTo({ + url: './bagConfirm/bagConfirm?skuId=' + this.data.bagId + }) // setTimeout(() => { // this.setData({ // bagOrderLoading: false diff --git a/pages/bag/bag.wxml b/pages/bag/bag.wxml index 6aca81d..a252556 100644 --- a/pages/bag/bag.wxml +++ b/pages/bag/bag.wxml @@ -45,7 +45,7 @@ - + 购物袋中暂无任何商品 @@ -57,7 +57,7 @@ 合计¥{{allPrice}} - 共计{{bagNumber}}件,不含运费 + 共计{{bagNumber}}件 diff --git a/pages/bag/bag.wxss b/pages/bag/bag.wxss index 7ce7194..1d5afc9 100644 --- a/pages/bag/bag.wxss +++ b/pages/bag/bag.wxss @@ -1,6 +1,8 @@ .content{ background: #f7f8f9; min-height: 100vh; } +.pack-center {z-index: 9;} + /* 工具栏 */ .bag-header{ border-bottom: solid 1rpx #f1f1f1; padding: 25rpx 30rpx; overflow: hidden; position: fixed; width: 100%; top: 0; left: 0; box-sizing: border-box; line-height: 40rpx; } diff --git a/pages/bag/bagConfirm/bagConfirm.js b/pages/bag/bagConfirm/bagConfirm.js new file mode 100644 index 0000000..94952ed --- /dev/null +++ b/pages/bag/bagConfirm/bagConfirm.js @@ -0,0 +1,100 @@ +/* + * 手太欠 + * 愿这世界都如故事里一样 美好而动人~ +*/ + +Page({ + + /** + * 页面的初始数据 + */ + data: { + disabled : true, //按钮 + skuId : '', + address : '', // 地址 + goodskData : '', // 数据 + amount : '', // 商品总金额 + total : '', // 支付金额 + freight : '', // 运费 + weight : '', // 重量 + distribution : [ + { type: 0, title: "快递" }, + { type: 1, title: "自提" }, + ], + distributionIndex: 0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + console.log(options.skuId) + this.setData({ + skuId : options.skuId + }) + + // 获取商品下单信息 + this.placeInfo(options.skuId); + }, + + /** + * 配送方式选择 + */ + distributionChange(e){ + if(e.detail.value === this.data.distributionIndex) return + this.setData({ + distributionIndex: e.detail.value + }) + this.placeInfo(this.data.skuId); + }, + /** + * 商品下单信息 + */ + placeInfo(skuid, type) { + wx.showLoading({ + title: '加载中...', + mask : true + }) + wx.$api.bag.buyCarts({ + cart_ids : skuid, + address_id : this.data.address.address_id || '', + delivery_type: this.data.distributionIndex + }).then(res => { + if(type != 'chooseAdd'){ + this.setData({ + address: res.data.address, + }) + } + this.setData({ + goodskData: res.data.detail, + amount : res.data.amount, + total : res.data.total, + freight : res.data.freight, + weight : res.data.weight + }) + wx.hideLoading() + }) + }, + + /** + * 商品确认下单 + */ + buyTap() { + wx.showLoading({ + title: '下单中...', + mask : true + }) + wx.$api.bag.postCarts({ + cart_ids : this.data.skuId, + address_id : this.data.address.address_id, + remark : '', + delivery_type : this.data.distributionIndex + }).then(res => { + + wx.redirectTo({ + url: '/pages/pay/index?params=' + encodeURIComponent(JSON.stringify(res.data)) + }) + wx.hideLoading() + }).catch(() =>{}).finally(() => {}) + }, +}) \ No newline at end of file diff --git a/pages/bag/bagConfirm/bagConfirm.json b/pages/bag/bagConfirm/bagConfirm.json new file mode 100644 index 0000000..40a0d69 --- /dev/null +++ b/pages/bag/bagConfirm/bagConfirm.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationBarTitleText": "购物车订单确认" +} \ No newline at end of file diff --git a/pages/bag/bagConfirm/bagConfirm.wxml b/pages/bag/bagConfirm/bagConfirm.wxml new file mode 100644 index 0000000..c18c1a5 --- /dev/null +++ b/pages/bag/bagConfirm/bagConfirm.wxml @@ -0,0 +1,77 @@ + + + + + + + {{address.province.name}}{{address.city.name}} + + {{address.full_address}} + + + {{address.name}}{{address.mobile}} + + + + + 新增收货地址 + + + + + + + + + {{item.shop.name}} + + + + + {{items.title}} + + 购买数量 x{{items.qty}} + + + ¥{{items.price}} + + + + + + + + + 配送方式 + + {{distribution[distributionIndex].title}} + + + + + + + + + 快递 + {{freight == 0 ? '免邮' : '¥' + freight + '元'}} + + + 重量 + {{weight}}g + + + 金额 + ¥{{amount}} + + + + + + + + 合计: + + {{total}} + + 立即支付 + \ No newline at end of file diff --git a/pages/bag/bagConfirm/bagConfirm.wxss b/pages/bag/bagConfirm/bagConfirm.wxss new file mode 100644 index 0000000..f7f2b99 --- /dev/null +++ b/pages/bag/bagConfirm/bagConfirm.wxss @@ -0,0 +1,317 @@ +page { + background-color: #f5f6f8; + padding: 30rpx; + box-sizing: border-box; +} + +.borderBottom { + border-bottom: 110rpx solid transparent; +} + +/* 地址 */ +.address { + background-color: #FFFFFF; + border-radius: 15rpx; + overflow: hidden; + position: relative; + margin-bottom: 30rpx; +} + +.address-arrow { + position: absolute; + right: 15rpx; + top: 78rpx; + width: 50rpx; + height: 50rpx; +} + +.address-cont { + padding: 30rpx; + box-sizing: border-box; +} + +.address-top { + width: calc(100% - 80rpx); +} + +.address-area { + color: #585866; + font-size: 28rpx; + display: flex; + line-height: 40rpx; +} + +.address-icon { + width: 40rpx; + margin-right: 20rpx; +} + +.address-text { + font-weight: 600; + padding: 10px 0; +} + +.address-name text { + color: #585866; + padding-left: 30rpx; +} + +.address-img { + width: 100%; + height: 10rpx; + display: block; +} + +.address-add { + width: 100%; + text-align: center; + padding: 30rpx 30rpx 0; + box-sizing: border-box; +} + +.address-go { + display: inline-block; + font-size: 28rpx; + line-height: 68rpx; + border-radius: 10rpx; + color: #df723a; + padding-bottom: 20rpx; +} + +/* 商品 */ +.more-goods { + background-color: #FFFFFF; + border-radius: 15rpx; +} + +.more-name { + padding: 30rpx 30rpx 0; + box-sizing: border-box; + font-weight: 600; + display: flex; + line-height: 38rpx; +} + +.more-name image { + width: 38rpx; + height: 38rpx; + margin-right: 10rpx; +} + +.list-goods { + background-color: #FFFFFF; + display: flex; + padding: 30rpx; + border-radius: 15rpx; + box-sizing: border-box; +} + +.list-goods-img { + width: 184rpx; + height: 184rpx; + margin-right: 30rpx; + border-radius: 10rpx; +} + +.list-goods-cont { + width: calc(100% - 214rpx); +} + +.list-goods-name { + font-size: 32rpx; +} + +.list-goods-text { + line-height: 90rpx; + display: flex; + font-size: 28rpx; + color: #999999; +} + +.list-goods-text text { + flex: 1; +} + +.list-goods-parice { + font-size: 26rpx; +} + +.list-goods-parice text { + font-size: 34rpx; +} + +/* 规格 */ +.label { + background-color: #FFFFFF; + border-radius: 15rpx; + overflow: hidden; + box-sizing: border-box; + margin-top: 30rpx; +} + +.label-item { + display: flex; + line-height: 100rpx; + color: #585866; + font-size: 30rpx; + padding: 0 30rpx; + box-sizing: border-box; + border-bottom: 2rpx solid rgb(243, 243, 243); +} + +.label-item:last-child { + border: none; +} + +.label-integral { + color: #da2b54; + font-weight: 600; +} + +.label-name { + flex: 1; +} + +.label-picker{ width: 70%; } +.label-picker-val{ text-align: right; display: flex; align-items: center; justify-content: flex-end;} +.label-picker-icon{ width: 24rpx; height: 24rpx; margin-left: 10rpx; } + + +/*checkbox选中后样式 */ +.label-text-checkbox { + margin-right: -14rpx; + margin-left: 10rpx; +} + +.label-text-checkbox .wx-checkbox-input.wx-checkbox-input-checked { + background: #da2b54; + border-color: #da2b54; +} + +.label-text-checkbox .wx-checkbox-input.wx-checkbox-input-checked::before { + width: 30rpx; + height: 30rpx; + line-height: 28rpx; + text-align: center; + font-size: 30rpx; + color: #fff; + background: transparent; + transform: translate(-50%, -50%) scale(1); + -webkit-transform: translate(-50%, -50%) scale(1); +} + +.label-price { + text-align: right; + line-height: 90rpx; + font-size: 30rpx; + font-weight: 600; + padding: 0 30rpx 5rpx; + box-sizing: border-box; +} + +.label-price text { + font-size: 34rpx; + padding: 0 10rpx; +} + +.label-number { + display: flex; + margin-top: 25rpx; + height: 48rpx; + border: 2rpx solid #d7d7d7; + border-radius: 10rpx; +} + +.number-btn { + background-color: transparent; + width: 48rpx; + height: 48rpx; + line-height: 48rpx; + text-align: center; +} + +.number-input { + width: 80rpx; + text-align: center; + height: 48rpx; + border-left: 2rpx solid #d7d7d7; + border-right: 2rpx solid #d7d7d7; +} + +/* 底部 */ +.footer { + width: 100%; + height: 60px; + background-color: #ffffff; + position: fixed; + left: 0; + bottom: 0; + z-index: 9; + box-sizing: border-box; + display: flex; +} + +.number { + flex: 1; + line-height: 60px; + color: #da2b54; + display: flex; + padding: 0 30rpx; + box-sizing: border-box; +} + +.number text { + font-size: 28rpx; + padding-top: 5rpx; +} + +.number-price { + padding: 0 5rpx; + font-size: 40rpx; +} + +.number-vip { + margin-left: 20rpx; + color: #8d97a1; + font-size: 28rpx; +} + +.btn { + height: 100%; + background-color: #da2b54; + text-align: center; + color: #FFFFFF; + padding: 0 70rpx; + line-height: 60px; +} + +.btn-disabled { + line-height: 60px; + text-align: center; + border: none; + border-radius:0; + background-color: #da2b54; + padding: 0; + margin: 0; +} + +button[disabled]{ + padding: 0; + padding: 0; + height: 60px; + line-height: 60px; + background-color: transparent !important; +} + +.btn.active { + background-color: #cacaca; +} + +.detailsBrief-back{ + width: 100%; +} + +.grey { + background-color: #f9f9f9; + z-index: 99999; +} \ No newline at end of file diff --git a/pages/order/details/details.wxml b/pages/order/details/details.wxml index c21a1ea..56a8552 100644 --- a/pages/order/details/details.wxml +++ b/pages/order/details/details.wxml @@ -30,19 +30,17 @@ {{goodsData.shop.name}} {{goodsData.state}} - - - - - {{item.sku.goods_name}} - - 购买数量x{{item.qty}} - - - ¥{{item.price}} - + + + + {{item.sku.goods_name}} + + 购买数量x{{item.qty}} - + + ¥{{item.price}} + + @@ -69,7 +67,7 @@ 订单金额 - {{goodsData.amount}} + ¥{{goodsData.amount}} 实付金额 diff --git a/pages/order/index.wxss b/pages/order/index.wxss index cd6cacc..81107a0 100644 --- a/pages/order/index.wxss +++ b/pages/order/index.wxss @@ -57,6 +57,7 @@ page { .list-goods { display: flex; + margin-bottom: 30rpx; } .list-goods-img { diff --git a/pages/pay/index.js b/pages/pay/index.js index 00763ce..7c37f6f 100644 --- a/pages/pay/index.js +++ b/pages/pay/index.js @@ -14,11 +14,13 @@ Page({ modelId : "", modelType : "", payType : "", + orderNos : [], can : { coin : 0, wechat : 0, }, - loding : false + loding : false, + noShow : false }, /** @@ -31,12 +33,13 @@ Page({ mask : true }) wx.$api.pay.info({ order_id, order_type }).then(res => { - let { can, total, model_type, model_id } = res.data + let { can, total, model_type, model_id, order_nos } = res.data this.setData({ orderNo : order_no, payType : res.data.default, modelId : model_id, modelType : model_type, + orderNos : order_nos, total, can }) @@ -108,5 +111,14 @@ Page({ }) } }) + }, + + /** + * 展开订单号 + */ + noTap() { + this.setData({ + noShow: !this.data.noShow + }) } }) \ No newline at end of file diff --git a/pages/pay/index.wxml b/pages/pay/index.wxml index 1e7da49..3042912 100644 --- a/pages/pay/index.wxml +++ b/pages/pay/index.wxml @@ -3,7 +3,15 @@ 实付金额 {{total}} - 订单号{{orderNo}} + + 支付金额包含订单 + + + 订单号:{{item}} + + + {{noShow ? '收起' : '展开'}} + 选择支付方式 diff --git a/pages/pay/index.wxss b/pages/pay/index.wxss index 125c70e..77accdb 100644 --- a/pages/pay/index.wxss +++ b/pages/pay/index.wxss @@ -1,10 +1,18 @@ .content{ background: white; min-height: 100vh; padding: 0 30rpx; } -.info{ padding:100rpx 50rpx; text-align: center; border-bottom: solid 1rpx #f7f8f9; } +.info{ padding:100rpx 20rpx; text-align: center; border-bottom: solid 1rpx #f7f8f9; } .title{font-weight: bold; line-height: 40rpx;} .price{ font-weight: bold; font-size: 80rpx; padding: 30rpx 0; line-height: 80rpx; } .price text{ font-size: 80%; } -.no{ font-size: 28rpx; color: gray; line-height: 40rpx; } +.no{ font-size: 26rpx; color: gray; line-height: 40rpx; } +.no-list {margin-top: 30rpx; background-color: #f7faff; border-radius: 10rpx; padding: 30rpx 10rpx; box-sizing: border-box; height: 100rpx; position: relative; overflow: hidden;} +.no-list::after {position: absolute; left: calc(50% - 9rpx); top: -18rpx; content: ''; width: 0;height: 0;border-bottom: 18rpx solid #f7faff; border-left: 18rpx solid transparent; border-right: 18rpx solid transparent;} +.no-list-item {line-height: 40rpx; margin-bottom: 30rpx;} +.no-list-item:last-child {margin-bottom: 0;} +.no-list.active {height: auto;} +.no-show {background-color: #f7faff; color: #000000; display: inline-block; padding: 0 40rpx; line-height: 52rpx; border-radius: 0 0 10rpx 10rpx; font-size: 26rpx;} +.no-show image {width: 24rpx; height: 24rpx; vertical-align: -4rpx;transform: rotate(270deg); transition: .2s;} +.no-show.active image {transform: rotate(90deg);} /* 支付方式 */ .radio-title{ font-weight: bold; font-size: 30rpx; padding: 30rpx; } diff --git a/static/icons/carnull_icon.png b/static/icons/carnull_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b54a0469a9f363a72acc4f97b35ccf302dfb1e0c GIT binary patch literal 7626 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 literal 0 HcmV?d00001 diff --git a/static/icons/shopIcon.png b/static/icons/shopIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..a32a64bf50d92126664428812c74061cb75eaa7b GIT binary patch literal 539 zcmV+$0_6RPP)Px$)k#D_R9Hvtm$6G6Q4q$zdEhl6g^dstu?PsevquUE3Kp>uMKHupEi@29h<`yU zwbIriwlPIQuu>2;m8rz;@ZP*i0|7%Co75?8!V7DV^WAc|t|IJf7It>N`R&Z^w{Hn| zyy%YWqXfw8Komvu#+bQ0V^Y;0#+XfO?OsTyB>*!o0a(ma{36#wR4SFHwOZ}GSuYEq z2H?p}0C){mU2x8=w*|n=qX52oaw7Ve2SQaJ5z%V^-$Z1jU4Zuh-m2<`bM9px0H4du z>W{{lp?bZ3bXhMr0%raRpgV8jK>oUjEMx-2aXd*x+XWQ&lIJ4Ql?jj}$tP8vDG0zn zjML7!FBke(M!?K}0CW@uKt%i2+VLPjk|aZ_dRSEPRQI=tbOr&c)oM?p(Kss@U`s?^ zWQ|}4z(i3HL^Nxy{oE2DilSa)jE6`95Z?i;0ayX>AQ0aL@C(4JpzjmCv(~P*;{yk& zefAMiAAnN;Rz#-!`8bXr6VV$Y8dlYQ?{WZ+MZ|wUe0+?Eo&y*J;NvF%ssKhr#9#Y= zwKAfA03qwV&S;qV833*8(=d7Y=8~0nE^JyW(L>*8(_1uw1&m}9Na^7I1%0I#dmPN#4 zQ_v^S{m@G3TMw;fJ*`33$+7=_maoPpu15k z;GqC8)3jB}y_ah%S9tBpe=G%mWD58wG!gWzQ4Y9CilE45pzpK-j?yvTy2MK~1HLQ( zJfInH$<1DH@05~Rt2O2g@UWY`=%XEQvs`7q{h%4}NC3D)D_~?0Ov%;;Ojz#!Y=Gm7 zzhMS3f`Y@y@PSQaT?MqMYmbJ*e{a@^9Fc4@L(001X8rEIP3_# z_Y3IHINrY@#SlTjYo*P;S3%kNc7 z%Y$~DVeTX7DR^%=Z-AMqm4n#t*Zo{3+y&i~L3VLkyq0j^1l-{`-#o1kGuQTaQ9Spg ztKL?%C8n{COE?;rqpxxA7@hMjqa)DRVi(u51RRA4e)wi@qFXH!AQ!gZf$sKRe?kD1 zgJalN7Fc}!wCLo29Or%?#SP8GpE61l@DcGAA8>~N=4JUL^twz|{6kCyK&FCYbUx!0 zTNZ%3yooN#BnW9lw4^M}Cp`}b6J62izm+OifLYBQ^xDj8Z*fcf8M-t>1n(8z2i+-g zn19@EISyw9zkpM~gD1o#gZ^TRn=06ry`;b+k8vi6{1hl4rwSJ3{v1CES0 zXum4T%(Q=B#A1zkFdwJoqBp;LVqHpOUMFL2K^Bqdm|1!-??ZUZRiBqDNFSd^dkOk5 zp%R#5J}P5>MvLsb0r^Fa32&ZRDu4-;Uxm;U^fNE!lllDmgZ`MuWMQ)tx-aP8=8d_3 zsf38FQpMGRza!-_TM`;GGr;Rz?LE0hiIH&|x8>VY9y2q*EKASS_!)ELi44Y^TuOky zb+zwYB-}j-jLDcjnDUsJ0sa_z+j%<+;zcY%zIWAauLFzQ_RcfrKtf|?ng>54DO0~( zy4=}#4!T!L)+Fp%8S@(%lZ!jgL-!y>JDS9Rb@m^XBy0BFl?K=Vn;BpOY=F%SumLu} oW(L>*n;BpOY=F(q*8UM-075KgLPX08r2qf`07*qoM6N<$f?sa_TL1t6 delta 1996 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 diff --git a/static/tabBarIcon/tabBar_selected_04.png b/static/tabBarIcon/tabBar_selected_04.png new file mode 100644 index 0000000000000000000000000000000000000000..da2ff1cb57abbbfbc641b060ac029f1afa7c9152 GIT binary patch literal 3866 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 YidWv;bYf`RBi+AOA4UMZgc`Z=-(`9ZTmS$7 literal 0 HcmV?d00001