From 7bbad266ba2fa901dd8d116f13a762f5ec8c8f86 Mon Sep 17 00:00:00 2001 From: itgaojian163 Date: Sat, 18 Feb 2023 21:02:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AE=A2=E5=8D=95=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 38 +-- components/empty/empty.js | 23 ++ components/empty/empty.json | 4 + components/empty/empty.wxml | 5 + components/empty/empty.wxss | 24 ++ components/loading/pageloading.wxss | 29 +- components/loadmore/loading-more.js | 30 ++ components/loadmore/loading-more.json | 4 + components/loadmore/loading-more.wxml | 5 + components/loadmore/loading-more.wxss | 20 ++ images/ic_goods_type_default.png | Bin 0 -> 1049 bytes images/ic_shop_car_icon.png | Bin 0 -> 685 bytes pages/shop/shopcategory.wxml | 4 +- subpages/addresschoose/addresschoose.js | 147 +++++++++ subpages/addresschoose/addresschoose.json | 3 + subpages/addresschoose/addresschoose.wxml | 20 ++ subpages/addresschoose/addresschoose.wxss | 106 +++++++ subpages/goodscar/goodscar.js | 35 ++- subpages/goodscar/goodscar.wxml | 30 +- subpages/goodslist/goodslist.js | 3 + subpages/goodsorder/goodsorder.js | 314 ++++++++++++++++--- subpages/goodsorder/goodsorder.json | 4 +- subpages/goodsorder/goodsorder.wxml | 64 +++- subpages/goodsorder/goodsorder.wxss | 359 +++++++++++++++++++++- subpages/orderconfirm/orderconfirm.js | 57 +++- subpages/orderconfirm/orderconfirm.wxml | 2 +- 26 files changed, 1224 insertions(+), 106 deletions(-) create mode 100644 components/empty/empty.js create mode 100644 components/empty/empty.json create mode 100644 components/empty/empty.wxml create mode 100644 components/empty/empty.wxss create mode 100644 components/loadmore/loading-more.js create mode 100644 components/loadmore/loading-more.json create mode 100644 components/loadmore/loading-more.wxml create mode 100644 components/loadmore/loading-more.wxss create mode 100644 images/ic_goods_type_default.png create mode 100644 images/ic_shop_car_icon.png create mode 100644 subpages/addresschoose/addresschoose.js create mode 100644 subpages/addresschoose/addresschoose.json create mode 100644 subpages/addresschoose/addresschoose.wxml create mode 100644 subpages/addresschoose/addresschoose.wxss diff --git a/app.json b/app.json index 71fa22d..95d4ea4 100644 --- a/app.json +++ b/app.json @@ -38,23 +38,22 @@ "pages/myVolunteerTeam/myVolunteerTeam", "pages/myVolunteerActivity/myVolunteerActivity", "pages/serviceActivityDetail/serviceActivityDetail", - "pages/shop/shopcategory", - "subpages/goodsdetail/goodsdetail", - "subpages/goodscar/goodscar", - "subpages/goodsaddress/goodsaddress", - "subpages/goodsorder/goodsorder", - "subpages/addshopaddress/addshopaddress", - "subpages/editshopaddress/editshopaddress", - "subpages/orderconfirm/orderconfirm" - ], - "subPackages": [ - { - "root": "subpages/goodslist", - "pages": [ - "goodslist" - ] - } + "pages/shop/shopcategory" ], + "subPackages": [{ + "root": "subpages/", + "pages": [ + "goodslist/goodslist", + "goodsdetail/goodsdetail", + "goodscar/goodscar", + "goodsaddress/goodsaddress", + "goodsorder/goodsorder", + "addshopaddress/addshopaddress", + "editshopaddress/editshopaddress", + "orderconfirm/orderconfirm", + "addresschoose/addresschoose" + ] + }], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#9F1512", @@ -65,8 +64,7 @@ "color": "#BBBBBB", "borderStyle": "black", "selectedColor": "#000000", - "list": [ - { + "list": [{ "pagePath": "pages/index/index", "iconPath": "images/index.png", "text": "首页", @@ -99,7 +97,9 @@ ] }, "usingComponents": { - "page-loading": "/components/loading/pageloading" + "page-loading": "/components/loading/pageloading", + "page-empty": "/components/empty/empty", + "loading-more": "/components/loadmore/loading-more" }, "permission": { "scope.userLocation": { diff --git a/components/empty/empty.js b/components/empty/empty.js new file mode 100644 index 0000000..9fe184b --- /dev/null +++ b/components/empty/empty.js @@ -0,0 +1,23 @@ +// components/empty/empty.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) diff --git a/components/empty/empty.json b/components/empty/empty.json new file mode 100644 index 0000000..7e37c03 --- /dev/null +++ b/components/empty/empty.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/empty/empty.wxml b/components/empty/empty.wxml new file mode 100644 index 0000000..5c056ae --- /dev/null +++ b/components/empty/empty.wxml @@ -0,0 +1,5 @@ + + + + 暂无数据 + \ No newline at end of file diff --git a/components/empty/empty.wxss b/components/empty/empty.wxss new file mode 100644 index 0000000..d7792cf --- /dev/null +++ b/components/empty/empty.wxss @@ -0,0 +1,24 @@ +/* components/empty/empty.wxss */ +.data-empty { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + align-self: center; + + position: fixed; + top: 50%; + left: 50%; + transform: translateX(-50%)translateY(-50%); +} + +.data-empty image { + width: 180rpx; + height: 120rpx; +} + +.data-empty .hint { + margin-top: 30rpx; + font-size: 32rpx; +} \ No newline at end of file diff --git a/components/loading/pageloading.wxss b/components/loading/pageloading.wxss index f192973..f36fd23 100644 --- a/components/loading/pageloading.wxss +++ b/components/loading/pageloading.wxss @@ -1,23 +1,24 @@ /* components/loading/pageloading.wxss */ .page-loading-box { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 1); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + /* background: rgba(255, 255, 255, 1); */ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + z-index: 99; } .page-loading-box image { - width: 128rpx; - height: 128rpx; + width: 128rpx; + height: 128rpx; } .page-loading-box .text { - margin-top: 20rpx; - font-size: 28rpx; + margin-top: 20rpx; + font-size: 28rpx; } \ No newline at end of file diff --git a/components/loadmore/loading-more.js b/components/loadmore/loading-more.js new file mode 100644 index 0000000..b2eec0f --- /dev/null +++ b/components/loadmore/loading-more.js @@ -0,0 +1,30 @@ +// components/loadmore/loading-more.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + isShowloading: true, + loadingTxt: "加载中..." + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + + }, + observers: { + 'isShowloading,loadingTxt': function (ss, sss) { + console.log(ss) + console.log(sss) + } + } +}) \ No newline at end of file diff --git a/components/loadmore/loading-more.json b/components/loadmore/loading-more.json new file mode 100644 index 0000000..7e37c03 --- /dev/null +++ b/components/loadmore/loading-more.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/loadmore/loading-more.wxml b/components/loadmore/loading-more.wxml new file mode 100644 index 0000000..f67005c --- /dev/null +++ b/components/loadmore/loading-more.wxml @@ -0,0 +1,5 @@ + + + + {{loadingTxt}} + \ No newline at end of file diff --git a/components/loadmore/loading-more.wxss b/components/loadmore/loading-more.wxss new file mode 100644 index 0000000..b29e480 --- /dev/null +++ b/components/loadmore/loading-more.wxss @@ -0,0 +1,20 @@ +/* components/loadmore/loading-more.wxss */ + +.loading-box { + width: 100%; + height: 80rpx; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + font-size: 35rpx; +} + +.loading-box image { + width: 40rpx; + height: 40rpx; +} + +.loading-content { + margin-left: 20rpx; +} \ No newline at end of file diff --git a/images/ic_goods_type_default.png b/images/ic_goods_type_default.png new file mode 100644 index 0000000000000000000000000000000000000000..306f9e9de3b4d5be02e4c6390a2e46ea2437ac29 GIT binary patch literal 1049 zcmV+!1m^pRP)Px&(@8`@R9HvtmtSZcRTRd*b9eVnv?5X}XvxlQHOb7TPoiKE3$=(^M5u^;(b|U; z5%EP@3Zl?dEGSBgFIKS?QSm`TMG>qh`XY!A#$ubytm&W3-HKr8lc8pBk~uQFJCoVX z?#_)w`r>_B?tbSxzx(Ihdxvn18+GQtSjJ6%FUf5XydnNC&mtI6^>0jBXKXpT2z~~j z9Z`$`eHSuLR%-RHJ3SJB>PBn`^VVSkKiw-40f!u=$NPbJwj3wmc>p)A&@r8GYxTY9 z{sh3YL6x>oXo86KayO7Ds_4FKPk2LQZgki01gX@`5Mek!duOdf|M z5G?@fGO)bnSs(;_;3&N()&{TQdExB;v597$D@OM|~!8oRB%d>2@f7;Tp5S!Knz_aBH0m+P* z4kpJmv?c&m+j@ully46p-&ML2SHWKZZZIVW@VTq>&SVc1tp|y?ttzs-2zbF!`qc)2 zS1i0iMEkOWmTQ-va@4|yX}w>xj)Qp2&|@+u^*zJqP;UTCm#)86@Zt=Bbp{4MyGq~H zP3PP4698QgsbzRf31HW-($i7j@<}+D-$p{50B~C`2xfeiBe8!(&0pxH$$*&50lVYm zZ2+;MUmDnsFuV^$H^+Sp4)VmOhJ%G)3}z@gS)U}rbIiEAr9VT!$3p6((X^*MR@{ar z2~0I!d7vC=E3@;ny<+}T029!j05e0dVuQ|UGcjg>&J96kd9(p|Me6|~j_&K|A(1{8 zt^hQFkl%7I>0kQ+R7-`uA=3c@Zg0FrT8)4j6W(3As*i5IjJZ^Q^QUiH$Iy7i^l!wp z&#BdqbgHICA@g(Aw+!Ce-+}*R;+>UXF}gjQW$4+~BLw~;D|u2CLTu{XSgSeA2=E-G zM^gauO9CD?1pwi&8|ar}eKh*qoNOzvOfM4K-C+KEVn9@Fxs(}@5)g3OQTmR!%lj91 zK|F{xxeYzLu!lhJuVxS+yypgb?0?nP( z0Z=W;lgxP36oP^AiqeOYvIMAV%g{8w2@q~|)Z!1V2T9`uT=Ch|%P^$;#?jzv+e6kb z$ydO5(GVh;!Q?3Ri}H04_GcO}KkL>Oj&;-dMfnv74`p~<5P}~YnO!)Y97J)zbh)ra zgklWf=q^~FGKxk!0TOS!!TiO334B{dpIuJ?xEH{6DeZZHj=QSPx%XGugsR9HvF*1u~LVHgMS?{n!OIJ9?{x3~yV5Njv>2eh55n^mC>eH(Cah=W@} zP_dhX(n%}5s31DHsL-)-6diOBK`I785Z~N;NmaCJ-bcWG%Q8e+csS5fDAd1ORhDs`~R-z@p=fQVuWE2hiH5 zL4UBcg0=Vw6bjq$W%X}K9RY=|Bb@Y66>iO>MT zCpE(N#+c4`gt}!YXojyA1*S>CK<-EI`5Wq|8;v09Ps9Q`mm*iB3dYl!#NS^XpD(+U1}lDz@>p)n9m0+<9yYz?vrz}5nLSNEJi*ka>k zTmT?oXiED2)84ItTdupWX>nLL995SH;0fn3fP)*MRjKr@Bmhsi6@U-L)g=UU8WHez zTIt=%0G(Y`R9!NF>yEI+3j_$m*2!Y6_AC*=bw^ - + {{it.name}} @@ -24,7 +24,7 @@ - + 购物车 diff --git a/subpages/addresschoose/addresschoose.js b/subpages/addresschoose/addresschoose.js new file mode 100644 index 0000000..ec4a666 --- /dev/null +++ b/subpages/addresschoose/addresschoose.js @@ -0,0 +1,147 @@ +// subpages/goodsaddress/goodsaddress.js +var app = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + token: '', + list: [], + hidePageLoading: false, + defaultAddress: {} + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + var _self = this; + _self.getToken().then(result => { + _self.getList(); + }) + }, + getToken() { + var self = this; + return new Promise(resolve => { + wx.getStorage({ + key: 'token', + success(res) { + self.setData({ + token: res.data + }) + return resolve(); + } + }) + }) + }, + //获取列表 + getList() { + var _self = this + var header = { + headers: { + token: _self.data.token + } + }; + + app.restAjax.get(app.restAjax.path('{shopUrl}/app/shopaddress/list', [app.shopUrl]), null, header, function (code, data) { + console.log(data); + _self.setData({ + list: data, + hidePageLoading: true + }) + }, function (code, data) { + app.dialog.msg(data.msg); + _self.setData({ + hidePageLoading: true + }) + }, function () { + wx.hideLoading(); + _self.setData({ + hideLoading: true + }) + }) + }, + doRefresh() { + this.setData({ + list: [] + }) + this.getList(); + }, + doEdit(e) { + var id = e.currentTarget.dataset.id; + wx.navigateTo({ + url: '/subpages/editshopaddress/editshopaddress?id=' + id, + }) + }, + doDel(e) { + var id = e.currentTarget.dataset.id; + var item = e.currentTarget.dataset.item; + var _self = this; + if (1 == item.shopAddressDefault) { + wx.showToast({ + icon: 'none', + title: '请先设置默认地址', + }) + return; + } + wx.showModal({ + title: '警告', + content: '确定要删除该收货地址吗?', + complete: (res) => { + if (res.confirm) { + app.dialog.loading("删除中...") + app.restAjax.delete(app.restAjax.path('{shopUrl}/app/shopaddress/remove/{ids}', [app.shopUrl, id]), null, { + headers: { + token: _self.data.token + } + }, function (code, data) { + wx.hideLoading() + if (code == 200) { + app.dialog.msg("删除成功") + _self.getList() + } + }, function (code, data) { + app.dialog.msg(data.msg) + }); + } + } + }) + }, + doSetDefault(e) { + var _self = this; + app.dialog.loading('设置中') + var id = e.currentTarget.dataset.id + var index = e.currentTarget.dataset.index + var item = e.currentTarget.dataset.item + app.restAjax.put(app.restAjax.path('{shopUrl}/app/shopaddress/updatedefault/{shopAddressId}', [app.shopUrl, id]), null, { + headers: { + token: _self.data.token + } + }, function (code, data) { + wx.hideLoading(); + if (code == 200) { + app.dialog.msg('设置成功') + } + _self.setData({ + list: [], + defaultAddress: item + }) + _self.getList(); + }, function (code, data) { + console.log(data) + wx.hideLoading(); + app.dialog.msg(data.msg) + }) + + }, + addAddress() { + var _self= this; + var pages = getCurrentPages(); + var prePage = pages[pages.length - 2] + prePage.setData({ + addressBean: _self.data.defaultAddress + }) + wx.navigateBack() + }, +}) \ No newline at end of file diff --git a/subpages/addresschoose/addresschoose.json b/subpages/addresschoose/addresschoose.json new file mode 100644 index 0000000..3928faa --- /dev/null +++ b/subpages/addresschoose/addresschoose.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/subpages/addresschoose/addresschoose.wxml b/subpages/addresschoose/addresschoose.wxml new file mode 100644 index 0000000..d7a9499 --- /dev/null +++ b/subpages/addresschoose/addresschoose.wxml @@ -0,0 +1,20 @@ + + + + + + + {{item.areaName}} + {{item.shopAddressContent}} + {{item.shopAddressName}} {{item.shopAddressPhone}} + + + + + + 确认 + + \ No newline at end of file diff --git a/subpages/addresschoose/addresschoose.wxss b/subpages/addresschoose/addresschoose.wxss new file mode 100644 index 0000000..b024cc7 --- /dev/null +++ b/subpages/addresschoose/addresschoose.wxss @@ -0,0 +1,106 @@ +/* subpages/goodsaddress/goodsaddress.wxss */ +.empty-box { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%)translateY(-50%); +} + +.empty-box image { + width: 140rpx; + height: 100rpx; +} + +.empty-box text { + margin-top: 20rpx; + font-size: 32rpx; +} + +.content-box { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 95%; + padding: 20rpx; + border-radius: 10rpx; + box-shadow: 5rpx 5rpx 20rpx #f2f2f2; + margin: 20rpx 20rpx 100rpx 0rpx; +} + +.address-item { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 10rpx; + border-bottom: 1rpx solid #f2f2f2; + width: 100%; +} + + +.address-item .check { + width: 48rpx; + height: 48rpx; + +} + +.address-content { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + width: 100%; + max-width: 100%; + margin-left: 20rpx; +} + +.address-area { + font-size: 32rpx; +} + +.address-name { + font-size: 40rpx; + margin: 10rpx 0rpx; +} + +.address-phone { + font-size: 32rpx; +} + +.address-control-box { + display: flex; + width: 80rpx; + flex-direction: column; + justify-content: space-around; + align-items: center; +} + +.edit-icon { + width: 48rpx; + height: 48rpx; +} + +.del-icon { + width: 48rpx; + height: 48rpx; + margin-top: 20rpx; +} + +.bottom-btn { + height: 80rpx; + background: #9f1512; + border-radius: 10rpx; + text-align: center; + color: white; + position: fixed; + bottom: 0rpx; + left: 0rpx; + line-height: 80rpx; + margin: 0rpx 20rpx 10rpx 20rpx; + width: 95%; +} \ No newline at end of file diff --git a/subpages/goodscar/goodscar.js b/subpages/goodscar/goodscar.js index 1c27e7a..30ff57b 100644 --- a/subpages/goodscar/goodscar.js +++ b/subpages/goodscar/goodscar.js @@ -35,6 +35,26 @@ Page({ } }, + onShow() { + var _self = this; + try { + var value = wx.getStorageSync('carlist'); + console.log(value) + if (value) { + _self.setData({ + carList: value, + isHidePageloading: true + }) + _self.countPrice() + } else { + _self.setData({ + isHidePageloading: true + }) + } + } catch (e) { + + } + }, delGoods(e) { var _self = this; wx.showModal({ @@ -101,8 +121,17 @@ Page({ }) }, toConfirmOrder() { - wx.navigateTo({ - url: '/subpages/orderconfirm/orderconfirm', - }) + var _self = this; + if (_self.data.totalPrice > 0) { + wx.navigateTo({ + url: '/subpages/orderconfirm/orderconfirm', + }) + } else { + wx.showToast({ + icon: 'none', + title: '请选择要购买的商品', + }) + } + } }) \ No newline at end of file diff --git a/subpages/goodscar/goodscar.wxml b/subpages/goodscar/goodscar.wxml index 4095d88..47c80e0 100644 --- a/subpages/goodscar/goodscar.wxml +++ b/subpages/goodscar/goodscar.wxml @@ -1,6 +1,6 @@ - + @@ -28,21 +28,17 @@ - - - - 暂无数据 - - - - - - - - - ¥ - {{totalPrice}} + + + + ¥ + {{totalPrice}} + + 去结算 + - 去结算 - \ No newline at end of file + + + + \ No newline at end of file diff --git a/subpages/goodslist/goodslist.js b/subpages/goodslist/goodslist.js index baf6627..7cbd5a4 100644 --- a/subpages/goodslist/goodslist.js +++ b/subpages/goodslist/goodslist.js @@ -41,6 +41,9 @@ Page({ 'keywords': _self.data.keywords }; app.restAjax.get(app.restAjax.path('{shopUrl}/app/shopgoods/solrrelease', [app.shopUrl]), info, null, function (code, data) { + _self.setData({ + hidePageLoading: true + }) if (data.rows.length == 0) { app.dialog.msg('暂无数据'); return; diff --git a/subpages/goodsorder/goodsorder.js b/subpages/goodsorder/goodsorder.js index 8918d75..56b0588 100644 --- a/subpages/goodsorder/goodsorder.js +++ b/subpages/goodsorder/goodsorder.js @@ -1,66 +1,294 @@ // subpages/goodsorder/goodsorder.js +var app = getApp(); Page({ /** * 页面的初始数据 */ data: { - + tabList: [{ + name: "全部", + type: "all" + }, { + name: "代付款", + type: "0" + }, { + name: "待收货", + type: "2" + }, { + name: "已完成", + type: "4" + }, { + name: "已取消", + type: "" + }, ], + dataList: [], + currentIndex: 0, + pages: { + page: 1, + rows: 3, + isCancel: '', + orderStatus: '' + }, + token: '', + isHideLoading: false, + imgUrl: app.shopImgUrl, + cancelList: [], + currentCancel: {}, + isShowCancel: false, + cancelRemark: "", + totalSize: 0, + isShowLoading: true, + loading: "加载中" }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { - + var _self = this; + _self.getToken().then(res => { + _self.getGoodsList(); + }); }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - + changeTab(e) { + var _self = this; + var type = e.currentTarget.dataset.type + var isCancel = type == '' ? '1' : '0'; + if (isCancel == '1') { + type = ''; + } + if ('all' == type) { + type = ''; + isCancel = ''; + } + var tempPage = { + page: 1, + isCancel: isCancel, + orderStatus: type + } + _self.setData({ + currentIndex: e.currentTarget.dataset.index, + pages: tempPage, + dataList: [] + }) + _self.getGoodsList(); }, + getGoodsList() { + var _self = this; + _self.setData({ + isHideLoading: !(1 == _self.data.pages.page) + }) + app.restAjax.get(app.restAjax.path(app.shopUrl + '/app/order/listpage', []), + _self.data.pages, { + headers: { + token: _self.data.token + } + }, + function (code, data) { + _self.setData({ + isHideLoading: true + }) + if ('200' == code) { + if (1 === _self.data.pages.page) { + _self.setData({ + dataList: data.rows, + totalSize: data.total + }) + } else { + _self.setData({ + dataList: _self.data.dataList.concat(data.rows) + }) + console.log(_self.data.dataList.length) + if (_self.data.dataList.length >= _self.data.totalSize) { + _self.setData({ + isShowLoading: false, + loading: "没有更多数据了" + }) + } - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - + } + } + }, + function () { + _self.setData({ + isHideLoading: true + }) + }, + function () { + _self.setData({ + isHideLoading: true + }) + wx.hideNavigationBarLoading(); //完成停止加载图标 + wx.stopPullDownRefresh(); + wx.hideLoading(); + }) }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - + getToken: function () { + var self = this; + return new Promise(resolve => { + wx.getStorage({ + key: 'token', + success(res) { + self.setData({ + token: res.data + }) + return resolve(); + } + }) + }) }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - + // 支付 + toPayOrder(e) { + var item = e.currentTarget.dataset.item; + wx.showToast({ + icon: "none", + title: '暂时无法支付', + }) }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - + //取消订单 + toCancelOrder(e) { + var _self = this; + var item = e.currentTarget.dataset.item; //当前订单 + app.dialog.loading("加载中..."); + app.restAjax.get(app.restAjax.path('{shopUrl}/app/data/listbyparentid/{id}', + [app.shopUrl, "bf2d6bb5-4562-4ace-827e-378e41571576"]), {}, { + headers: { + token: _self.data.token + } + }, + function (code, data) { + wx.hideLoading() + if (data && data.length > 0) { + for (let i = 0; i < data.length; i++) { + if (i == 0) { + data[i].check = true; + } else { + data[i].check = false; + } + } + _self.setData({ + cancelList: data, + currentCancel: data[0], + isShowCancel: true, + curOrder: item + }) + } else { + app.dialog.msg("暂时无法取消订单") + } + }, + function (code, data) { + app.dialog.msg(data.msg); + }, + function () { + wx.hideLoading(); + }) + }, + //删除订单 + toDelOrder(e) { + var _self = this; + var item = e.currentTarget.dataset.item; + wx.showModal({ + title: '提示', + content: '确定要删除该订单吗?删除后将无法找回.', + complete: (res) => { + if (res.confirm) { + app.restAjax.delete(app.restAjax.path('{shopUrl}/app/order/delete/{orderId}', + [app.shopUrl, item.orderId]), {}, { + headers: { + token: _self.data.token + } + }, + function (code, data) { + if (code == '200') { + app.dialog.msg('删除成功') + } + wx.startPullDownRefresh() + }, + function (code, data) { + app.dialog.msg(data.msg); + }, + function () { + wx.hideLoading(); + }) + } + } + }) + }, + inputRemark(e) { + console.log(e) + this.setData({ + cancelRemark: e.detail.value + }) + }, + //选择取消 + chooseCancel(e) { + var item = e.currentTarget.dataset.item; + var index = e.currentTarget.dataset.index; + item.check = true; + var _self = this; + _self.data.cancelList.forEach((item, i) => { + if (i == index) { + item.check = true; + } else { + item.check = false; + } + }); + _self.setData({ + currentCancel: item, + cancelList: _self.data.cancelList + }) + }, + cancelDialog() { + this.setData({ + isShowCancel: false + }) + }, + confirmCancel() { + var _self = this; + _self.setData({ + isShowCancel: false + }) + var cancelBean = { + cancelData: _self.data.currentCancel.dataId, + cancelRemark: _self.data.cancelRemark, + }; + app.dialog.loading("取消中..."); + app.restAjax.put(app.restAjax.path('{shopUrl}/app/order/updatebuyersclose/{orderId}', + [app.shopUrl, _self.data.curOrder.orderId]), cancelBean, { + headers: { + token: _self.data.token + } + }, + function (code, data) { + if (code == '200') { + wx.startPullDownRefresh() + app.dialog.msg('取消成功') + } + }, + function (code, data) { + app.dialog.msg(data.msg); + }, + function () { + wx.hideLoading(); + }) + }, + onPullDownRefresh: function () { + // 在标题栏中显示加载图标 + var _self = this; + _self.setData({ + [`pages.page`]: 1, + dataList: [] + }) + _self.getGoodsList() }, - - /** - * 页面上拉触底事件的处理函数 - */ onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - + var _self = this; + if (_self.data.totalSize > _self.data.dataList.length) { + _self.setData({ + [`pages.page`]: _self.data.pages.page + 1, + }) + _self.getGoodsList(); + } } }) \ No newline at end of file diff --git a/subpages/goodsorder/goodsorder.json b/subpages/goodsorder/goodsorder.json index 3928faa..7ef5329 100644 --- a/subpages/goodsorder/goodsorder.json +++ b/subpages/goodsorder/goodsorder.json @@ -1,3 +1,5 @@ { - "usingComponents": {} + "usingComponents": {}, + "enablePullDownRefresh": true, + "backgroundTextStyle": "dark" } \ No newline at end of file diff --git a/subpages/goodsorder/goodsorder.wxml b/subpages/goodsorder/goodsorder.wxml index d01a740..1c48677 100644 --- a/subpages/goodsorder/goodsorder.wxml +++ b/subpages/goodsorder/goodsorder.wxml @@ -1,2 +1,62 @@ - -subpages/goodsorder/goodsorder.wxml + + + {{item.name}} + + + + + + + + {{item.shopName}} + {{item.orderStatusMsg}} + + + + + + ¥{{it.goodsItemPrice}} + {{it.goodsItemName}} + + 数量:{{it.goodsItemCount}} + + + + + 下单时间:{{item.orderFinalTime}} + 总计:¥{{item.amountFinalMoney}} + + + 去付款 + 取消订单 + 删除订单 + + + + + + + + + + + + + + + + 取消 + 确定 + + + 备注 + + + + + + {{item.dataName}} + + + + \ No newline at end of file diff --git a/subpages/goodsorder/goodsorder.wxss b/subpages/goodsorder/goodsorder.wxss index 1af25b1..25fd38a 100644 --- a/subpages/goodsorder/goodsorder.wxss +++ b/subpages/goodsorder/goodsorder.wxss @@ -1 +1,358 @@ -/* subpages/goodsorder/goodsorder.wxss */ \ No newline at end of file +.activity { + padding: 20rpx 30rpx 0; + margin-top: 80rpx; +} + +.activity-box { + margin-bottom: 20rpx; + box-shadow: 0px 0px 17rpx 0px rgba(0, 0, 0, 0.1); + border-radius: 10rpx; + overflow: hidden; + padding: 10rpx; +} + +.activity-img { + height: 320rpx; + position: relative; +} + +.activity-img image { + width: 100%; + height: 100%; +} + +.corner { + position: absolute; + top: 20rpx; + right: 20rpx; + display: flex; + color: #fff; +} + +.corner view { + padding: 0 10rpx; + background: rgba(0, 0, 0, 0.6); + line-height: 40rpx; + vertical-align: middle; + display: flex; + align-items: center; + border-radius: 5rpx; +} + +.view-count { + margin-right: 20rpx; +} + +.view-count image { + width: 40rpx; + height: 40rpx; +} + +.activity-info { + padding: 15rpx 20rpx; +} + +.title { + display: flex; + justify-content: space-between; +} + +.activity-title { + width: 70%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 32rpx; + color: #242424; + line-height: 40rpx; +} + +.sign { + background: rgba(159, 21, 18, .1); + color: #9F1512; + border-radius: 10rpx; + padding: 0 20rpx; + line-height: 40rpx; + font-size: 28rpx; +} + +.date { + margin-top: 10rpx; + font-size: 24rpx; + color: #242424; +} + +.area { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 80rpx; + white-space: nowrap; + overflow-x: auto; + background: white; + box-shadow: 5rpx 5rpx 10rpx #f2f2f2; + z-index: 5; + +} + +.area-box { + display: inline-block; + width: 25%; + line-height: 80rpx; + text-align: center; + font-size: 32rpx; +} + +.area-box.active { + color: #9F1512; + font-weight: bold; +} + +.shop-status { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 5rpx; +} + +.shop-name { + font-size: 32rpx; + font-weight: bold; + color: black; +} + +.order-status { + background: #f3f3f3; + border-radius: 5rpx; + padding: 0rpx 10rpx; + font-size: 28rpx; + color: #9f1512; +} + +.order-time-box { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-top: 10rpx; +} + +.order-time { + font-size: 30rpx; + color: black; +} + +.order-price { + font-size: 32rpx; + color: #9f1512; +} + +.order-control-box { + display: flex; + flex-direction: row; + justify-content: flex-end; + align-items: center; + margin-top: 10rpx; +} + +.order-btn { + font-size: 28rpx; + color: white; + padding: 5rpx 10rpx; + border-radius: 5rpx; + background: linear-gradient(to right bottom, rgb(240, 78, 78), #9f1512 70rpx); +} + +.order-btn:nth-of-type(n+2) { + margin-left: 10rpx; +} + + +.goods { + display: flex; + flex-direction: row; + justify-content: flex-start; + margin-left: 20rpx; + margin-top: 10rpx; +} + +.goods-img { + width: 180rpx; + height: 160rpx; +} + + +.goods-content { + margin: 0rpx 10rpx; + flex: 1; +} + +.goods-name { + font-size: 32rpx; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.goods-unit-price { + font-size: 40rpx; + color: #9f1512; + margin-top: 10rpx; +} + +.goods-standard { + margin-top: 10rpx; + font-size: 25rpx; + border: 1rpx solid #9f1512; + border-radius: 3rpx; + color: #9f1512; + width: fit-content; + max-width: fit-content; + padding: 0rpx 10rpx; +} + +.goods-type-box { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + margin-top: 20rpx; +} + +.goods-type-box image { + width: 48rpx; + height: 48rpx; +} + +.goods-type { + color: #9f1512; + font-size: 25rpx; + background: #ecebeb; + padding: 0rpx 10rpx; + text-align: center; +} + + + +.type-box { + display: flex; + flex-direction: row; + width: 50%; + justify-content: flex-start; + align-items: center; +} + +.add-del-box { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} + +.add-del-box .txt { + font-size: 35rpx; + padding: 0rpx 15rpx; +} + +.control-box { + width: 50%; + display: flex; + flex-direction: row; + justify-content: space-around; +} + +.cancel-box { + height: 50%; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + background: white; + width: 100%; + border-top-left-radius: 20rpx; + border-top-right-radius: 20rpx; + position: absolute; + bottom: 0; +} + +.cancel-control { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 90%; + margin-top: 15rpx; +} + +.cancel-btn { + font-size: 35rpx; + color: black; + padding: 15rpx; +} + +.cancel-btn:last-child { + color: #9F1512; +} + +.cancel-remark { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + margin-top: 15rpx; + width: 87%; +} + +.cancel-title { + font-size: 32rpx; + color: black; +} + +.cancel-content { + font-size: 28rpx; + border-radius: 10rpx; + background: #f3f3f3; + height: 100rpx; + margin-top: 20rpx; + padding: 10rpx; + width: 95%; +} + +.cancel-item { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 10rpx; + margin-left: 20rpx; +} + +.cancel-item:first-child { + margin-top: 20rpx; +} + +.cancel-item image { + width: 30rpx; + height: 30rpx; +} + +.cancel-item .content { + font-size: 32rpx; + margin-left: 15rpx; + color: black; +} + +.shade-box { + background: #25252587; + width: 100%; + height: 100%; + z-index: 999999; + position: fixed; + top: 0; + left: 0; + +} \ No newline at end of file diff --git a/subpages/orderconfirm/orderconfirm.js b/subpages/orderconfirm/orderconfirm.js index 0121dc6..1b5d34c 100644 --- a/subpages/orderconfirm/orderconfirm.js +++ b/subpages/orderconfirm/orderconfirm.js @@ -13,7 +13,8 @@ Page({ goodsList: [], imgUrl: app.shopImgUrl, remark: '', - totalPrice: 0 + totalPrice: 0, + carList: [] }, /** @@ -77,6 +78,7 @@ Page({ } } _self.setData({ + carList: carList, goodsList: _self.data.goodsList, totalPrice: tempPrice }) @@ -93,11 +95,60 @@ Page({ }, doSelAddress() { //选择地址 + wx.navigateTo({ + url: '/subpages/addresschoose/addresschoose', + }) }, checkParams() { }, - doSave() { - + doConfirmOrder() { + var _self = this; + var tempList = []; + for (let i = 0; i < _self.data.goodsList.length; i++) { + const item = _self.data.goodsList[i]; + var tempItem = { + count: item.carAmount, + goodsId: item.goodsId, + goodsItemId: item.goodsStandarId, + }; + tempList.push(tempItem); + } + var saveBean = { + goodsItemList: tempList, + shopAddressId: _self.data.addressBean.shopAddressId, + words: _self.data.remark + }; + app.dialog.loading("下单中...") + app.restAjax.post(app.restAjax.path('{shopUrl}/app/order/savebycart', [app.shopUrl]), saveBean, { + headers: { + token: _self.data.token + } + }, function (code, data) { + wx.hideLoading() + if (code == 200) { + wx.showToast({ + title: '下单成功', + success() { + //删除购物车中的数据 + for (let i = _self.data.carList.length - 1; i >= 0; i--) { + const element = _self.data.carList[i]; + if (element.isCheck) { + _self.data.carList.splice(i, 1); + } + } + _self.setData({ + carList: _self.data.carList + }) + wx.setStorageSync('carlist', _self.data.carList) + setTimeout(function () { + wx.navigateBack() + }, 1000); + } + }) + } + }, function (code, data) { + app.dialog.msg(data.msg) + }); } }) \ No newline at end of file diff --git a/subpages/orderconfirm/orderconfirm.wxml b/subpages/orderconfirm/orderconfirm.wxml index 6abccec..b7800ff 100644 --- a/subpages/orderconfirm/orderconfirm.wxml +++ b/subpages/orderconfirm/orderconfirm.wxml @@ -1,7 +1,7 @@ - + 收货地址 {{addressBean.areaName}}