myOrder.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. // pages/cart/myOrder/myOrder.js
  2. const app = getApp()
  3. const api = require('../../../../request/api');
  4. const http = require('../../../../request/http');
  5. const utils = require('../../../../utils/util.js');
  6. const storeKeys = require('../../../../utils/storageKeys.js');
  7. Page({
  8. /**
  9. * 页面的初始数据
  10. */
  11. data: {
  12. isLoading:true,
  13. tabList:['全部', '待付款', '待收货', '已完成', '售后'],
  14. titleTab:'0', //0商品订单1礼品卡订单
  15. tab:'all',
  16. list:[],
  17. dataObj:{},
  18. page:1,
  19. is_bottom:false,//到底了
  20. model: false,
  21. modelType:'',//1取消2删除3确认收货
  22. model_text:'',//对应的文案
  23. orderId:'',//订单id
  24. index:'',//索引
  25. statusBarHeight: app.globalData.statusBarHeight,
  26. from:'',
  27. },
  28. /**
  29. * 生命周期函数--监听页面加载
  30. */
  31. onLoad: function (options) {
  32. if(options.tab){
  33. this.setData({
  34. tab: options.tab
  35. })
  36. }
  37. if(options.from){
  38. this.setData({
  39. from: options.from
  40. })
  41. console.log(this.data.from)
  42. }
  43. this.getList()
  44. },
  45. //列表
  46. getList(){
  47. // dataType //订单类型 (all全部 payment待付款 received待发货 received待收货 comment待评价)
  48. let that = this, request_url = '';
  49. wx.showLoading({
  50. title: "加载中"
  51. });
  52. if(this.data.titleTab=='0'){
  53. request_url = api.URL + '/api/order/list?dataType=' + this.data.tab + '&page=' + that.data.page
  54. if(this.data.tab=='sale'){
  55. request_url = api.URL + '/api/refund/list?page=' + that.data.page
  56. }
  57. }
  58. if(this.data.titleTab=='1'){
  59. request_url = api.URL + '/api/order.RiceCardOrder/list?page=' + that.data.page
  60. }
  61. http.request({
  62. method: 'GET',
  63. url: request_url,
  64. token: utils.getStorageSync(storeKeys.TOKEN),
  65. success: (res) => {
  66. wx.hideLoading();
  67. let data_obj = res.data.data.list
  68. data_obj.data.forEach((item)=>{
  69. item.isShowMoreBtn = false
  70. if(item.state_value==30 && item.za){//已完成
  71. item.isShowMoreBtn = true
  72. item.leftBox = false
  73. }
  74. })
  75. console.log(data_obj.data)
  76. let list = [];
  77. if (that.data.page == 1) {
  78. list = data_obj.data;
  79. } else {
  80. list = that.data.list.concat(data_obj.data);
  81. }
  82. that.setData({
  83. list: list,
  84. dataObj: data_obj,
  85. isLoading: false
  86. });
  87. // console.log(that.data.list)
  88. if (data_obj.total == 0) {
  89. that.setData({ is_bottom: false });
  90. }
  91. if (data_obj.current_page >= data_obj.last_page && data_obj.total > 0) {
  92. that.setData({ is_bottom: true });
  93. }
  94. },
  95. error: (res) => {},
  96. })
  97. },
  98. changeMoreBtn(e){//点击更多
  99. // let item = e.currentTarget.dataset.item;
  100. let idx = e.currentTarget.dataset.idx;
  101. let leftBox = 'list[' + idx + '].leftBox';
  102. this.setData({
  103. [leftBox]: true
  104. })
  105. },
  106. hideMoreModel(e){//点击更多
  107. // let item = e.currentTarget.dataset.item;
  108. let idx = e.currentTarget.dataset.idx;
  109. let leftBox = 'list[' + idx + '].leftBox';
  110. this.setData({
  111. [leftBox]: false
  112. })
  113. },
  114. changeTitleTab(e){
  115. let index = e.currentTarget.dataset.index;
  116. this.setData({
  117. titleTab: index,
  118. is_bottom: false,
  119. list: [],
  120. page: 1,
  121. dataObj: {}
  122. })
  123. this.getList()
  124. },
  125. changeTab(e){
  126. let index = e.currentTarget.dataset.index;
  127. this.setData({
  128. tab: index,
  129. is_bottom: false,
  130. list: [],
  131. page: 1,
  132. dataObj: {}
  133. })
  134. this.getList()
  135. },
  136. btnStatus(e){//点击1取消2删除3确认收货
  137. let type = e.currentTarget.dataset.type;
  138. let item = e.currentTarget.dataset.item;
  139. let index = e.currentTarget.dataset.index;
  140. this.setData({
  141. model: true,
  142. orderId: item.order_id,
  143. index: index,
  144. modelType: type
  145. })
  146. if(type==1){
  147. this.setData({
  148. model_text: '您将取消此订单,取消后将不可恢复,确定继续吗?'
  149. })
  150. }else if(type==2){
  151. this.setData({
  152. model_text: '您将删除此订单,删除后将不可恢复,确定继续吗?'
  153. })
  154. }else if(type==3){
  155. this.setData({
  156. model_text: '确认已经收到货了吗?'
  157. })
  158. }
  159. },
  160. cancelModel(){//关闭弹框
  161. this.setData({
  162. model: false,
  163. modelType:'',//1取消2删除3确认收货
  164. model_text:'',//对应的文案
  165. orderId:'',
  166. index:''
  167. })
  168. },
  169. confirmModel: utils.throttle(function () {//1取消2删除3确认收货
  170. let that = this;
  171. let url = '', toast = ''
  172. if(this.data.modelType == 1){
  173. url = '/api/order/cancel?orderId=' + this.data.orderId
  174. toast = '订单取消成功'
  175. }
  176. if(this.data.modelType == 2){
  177. url = '/api/order/delete?orderId=' + this.data.orderId
  178. toast = '订单删除成功'
  179. }
  180. if(this.data.modelType == 3){
  181. url = '/api/order/receipt?orderId=' + this.data.orderId
  182. toast = '确认收货成功'
  183. }
  184. http.request({
  185. method: 'GET',
  186. url: api.URL + url,
  187. token: utils.getStorageSync(storeKeys.TOKEN),
  188. success: (res) => {
  189. wx.hideLoading();
  190. utils.toast(toast);
  191. if(that.data.modelType == 2 || that.data.tab!='all'){//删除
  192. that.data.list.splice(that.data.index, 1);
  193. that.setData({
  194. list: that.data.list,
  195. ['dataObj.total']: that.data.dataObj.total - 1
  196. })
  197. }
  198. if(that.data.tab=='all'){
  199. let state_text = 'list[' + that.data.index + '].state_text';
  200. let state_value = 'list[' + that.data.index + '].state_value';
  201. if(that.data.modelType == 3){//确认收货
  202. that.setData({
  203. [state_text]: '已完成',
  204. [state_value]: 30,
  205. })
  206. }
  207. if(that.data.modelType == 1){//订单取消
  208. that.setData({
  209. [state_text]: '已取消',
  210. [state_value]: 20,
  211. })
  212. }
  213. }
  214. setTimeout(()=>{
  215. that.setData({
  216. model: false,
  217. modelType:'',//1取消2删除3确认收货
  218. model_text:'',//对应的文案
  219. orderId:'',
  220. index:''
  221. })
  222. },400)
  223. },
  224. error: (res) => {
  225. },
  226. })
  227. },400),
  228. toDetail(e){//订单详情
  229. let id = e.currentTarget.dataset.id;
  230. let idx = e.currentTarget.dataset.idx;
  231. wx.navigateTo({
  232. url: '/pages/cart/pages/orderDetail/orderDetail?orderId=' + id + '&idx=' + idx
  233. })
  234. },
  235. toLogistics(e){//物流详情
  236. let item = e.currentTarget.dataset.item;
  237. if(item.is_mult_express_no==1){
  238. wx.navigateTo({
  239. url: '/pages/cart/pages/logisticsDetail/logisticsDetail?orderId=' + item.order_id + '&express_no=' + item.express_no
  240. })
  241. }
  242. if(item.is_mult_express_no>1){
  243. wx.navigateTo({
  244. url: '/pages/cart/pages/logisticsList/logisticsList?orderId=' + item.order_id
  245. })
  246. }
  247. },
  248. toCommit(e){//去评价
  249. let item = e.currentTarget.dataset.item;
  250. let idx = e.currentTarget.dataset.idx;
  251. if(item.is_comment==1){
  252. return;
  253. }
  254. wx.navigateTo({
  255. url: '/pages/cart/pages/appraise/appraise?order_id=' + item.order_id + '&idx=' + idx
  256. })
  257. },
  258. toSet(){//去赠送、已赠送
  259. return;
  260. },
  261. onShareAppMessage: function (e) {
  262. console.log(e)
  263. let item = e.target.dataset.item;
  264. let path = "pages/cart/pages/goodsDetail/goodsDetail?goods_id=" + item.goods[0].goods_id + "&share=xcx";
  265. let userInfo = utils.getStorageSync(storeKeys.USERINFO) || {};
  266. let userId = userInfo.user_id || '';
  267. if (userId) {
  268. path = path + "&shareId=" + userId;
  269. }
  270. if(item.za && item.za.sign_str){
  271. path = path + "&signStr=" + item.za.sign_str
  272. console.log(path)
  273. console.log(item.goods[0].goods_image)
  274. return{
  275. title: item.za.share_title,
  276. imageUrl: item.goods[0].goods_image,
  277. path: path
  278. }
  279. }
  280. },
  281. onShareTimeline: function (e) {
  282. console.log(e)
  283. let item = e.target.dataset.item;
  284. let path = "pages/cart/pages/goodsDetail/goodsDetail?goods_id=" + item.goods[0].goods_id + "&share=xcx";
  285. let userInfo = utils.getStorageSync(storeKeys.USERINFO) || {};
  286. let userId = userInfo.user_id || '';
  287. if (userId) {
  288. path = path + "&shareId=" + userId;
  289. }
  290. if(item.za && item.za.sign_str){
  291. path = path + "&signStr=" + item.za.sign_str
  292. console.log(path)
  293. return{
  294. title: item.za.share_title,
  295. imageUrl: item.goods[0].goods_image,
  296. path: path
  297. }
  298. }
  299. },
  300. toPage(e){//去首页
  301. let type = e.currentTarget.dataset.type;
  302. if(type==1){
  303. wx.switchTab({
  304. url: "/pages/tabBar/index/index"
  305. })
  306. }else{
  307. wx.navigateTo({
  308. url: "/pages/index/pages/riceCard/cardList/cardList"
  309. })
  310. }
  311. },
  312. commit: utils.throttle(function (e) {//去支付
  313. let that = this;
  314. let orderId = e.currentTarget.dataset.id;
  315. let index = e.currentTarget.dataset.index;
  316. wx.showLoading({
  317. title: "加载中"
  318. });
  319. let dataParams = {
  320. "orderId": orderId, //订单ID
  321. "payType": 20 //支付类型 10余额支付 20微信支付 30礼品卡兑换
  322. }
  323. http.request({
  324. url: api.URL + '/api/order/pay',
  325. method: 'POST',
  326. token: utils.getStorageSync(storeKeys.TOKEN),
  327. data: dataParams,
  328. success: (res) => {
  329. wx.hideLoading();
  330. if(res.data.data.pay_type==20){
  331. that.wxPayment(res.data.data.payment, orderId, index, 1);
  332. }
  333. },
  334. error: (res) => {
  335. },
  336. })
  337. }, 1000),
  338. //调起微信支付
  339. wxPayment(data, orderId, index, type) {
  340. let that = this
  341. wx.requestPayment({
  342. nonceStr: data.nonceStr,
  343. package: 'prepay_id=' + data.prepay_id,
  344. paySign: data.paySign,
  345. signType: "MD5",
  346. timeStamp: data.timeStamp,
  347. success(res) {
  348. if (res.errMsg == "requestPayment:ok") {
  349. utils.toast('支付成功');
  350. if(type==1){
  351. let state_text = 'list[' + index + '].state_text';
  352. let state_value = 'list[' + index + '].state_value';
  353. that.setData({
  354. [state_text]: '待收货',
  355. [state_value]: 12,
  356. })
  357. wx.navigateTo({
  358. url: '/pages/cart/pages/orderDetail/orderDetail?orderId=' + orderId
  359. })
  360. }
  361. if(type==2){
  362. let state_text = 'list[' + index + '].state_text';
  363. let order_status = 'list[' + index + '].order_status';
  364. that.setData({
  365. [state_text]: '已完成',
  366. [order_status]: 30,
  367. })
  368. wx.navigateTo({
  369. url: '/pages/cart/pages/riceCardOrderDetail/riceCardOrderDetail?orderId=' + orderId
  370. })
  371. }
  372. }
  373. },
  374. fail(res) {
  375. if (res.errMsg == "requestPayment:fail cancel") {
  376. }
  377. }
  378. })
  379. },
  380. commitRice: utils.throttle(function (e) {//去支付
  381. let that = this;
  382. let orderId = e.currentTarget.dataset.id;
  383. let index = e.currentTarget.dataset.index;
  384. wx.showLoading({
  385. title: "加载中"
  386. });
  387. let dataParams = {
  388. "order_id": orderId, //订单ID
  389. "lob_type": 'rice_card' //礼品卡固定为 rice_card
  390. }
  391. http.request({
  392. url: api.URL + '/api/pay/repay',
  393. method: 'POST',
  394. token: utils.getStorageSync(storeKeys.TOKEN),
  395. data: dataParams,
  396. success: (res) => {
  397. wx.hideLoading();
  398. if(res.data.data.pay_type==20){
  399. that.wxPayment(res.data.data.payment, orderId, index, 2);
  400. }
  401. },
  402. error: (res) => {
  403. },
  404. })
  405. }, 1000),
  406. toRefundDetail(e){//退款详情
  407. let id = e.currentTarget.dataset.id;
  408. let idx = e.currentTarget.dataset.idx;
  409. wx.navigateTo({
  410. url: '/pages/cart/pages/refund/refundDetail/refundDetail?orderRefundId=' + id + '&idx=' + idx
  411. })
  412. },
  413. refundBtn: utils.throttle(function (e){//退款按钮
  414. let type = e.currentTarget.dataset.type;
  415. let item = e.currentTarget.dataset.item;
  416. let idx = e.currentTarget.dataset.idx;
  417. if(type=='1'){//提交快递单
  418. wx.navigateTo({
  419. url: '/pages/cart/pages/refund/commitExpress/commitExpress?orderRefundId=' + item.order_refund_id + '&idx=' + idx
  420. })
  421. }
  422. if(type=='2'){//修改申请
  423. wx.navigateTo({
  424. url: "/pages/cart/pages/refund/refundApply/refundApply?pageType=" + item.type + '&orderRefundId=' + item.order_refund_id + '&idx=' + idx
  425. + '&orderGoodsId=' + item.order_goods_id + '&orderId=' + item.order_id
  426. })
  427. }
  428. }, 400),
  429. pageBack() {//返回
  430. wx.navigateBack();
  431. },
  432. toRiceDetail(e){//礼品卡详情
  433. let item = e.currentTarget.dataset.item;
  434. let idx = e.currentTarget.dataset.idx;
  435. wx.navigateTo({
  436. url: '/pages/cart/pages/riceCardOrderDetail/riceCardOrderDetail?orderId=' + item.id + '&idx=' + idx
  437. })
  438. },
  439. toMyCard(e){//查看礼品卡
  440. wx.navigateTo({
  441. url: '/pages/index/pages/riceCard/myRiceCard/myRiceCard'
  442. })
  443. },
  444. cardPay(e){
  445. let item = e.currentTarget.dataset.item;
  446. let idx = e.currentTarget.dataset.idx;
  447. wx.navigateTo({
  448. url: '/pages/index/pages/riceCard/cardNoPay/cardNoPay?orderId=' + item.id + '&idx=' + idx
  449. })
  450. },
  451. deleteRiceCard: utils.throttle(function (e) {//删除礼品卡
  452. let that = this;
  453. let item = e.currentTarget.dataset.item;
  454. let index = e.currentTarget.dataset.index;
  455. console.log(index)
  456. http.request({
  457. method: 'POST',
  458. url: api.URL + '/api/order.RiceCardOrder/del&order_id=' + item.id,
  459. token: utils.getStorageSync(storeKeys.TOKEN),
  460. success: (res) => {
  461. wx.hideLoading();
  462. utils.toast('您已成功删除订单');
  463. that.data.list.splice(index, 1);
  464. that.setData({
  465. list: that.data.list,
  466. ['dataObj.total']: that.data.dataObj.total - 1
  467. })
  468. },
  469. error: (res) => {
  470. },
  471. })
  472. },400),
  473. /**
  474. * 页面相关事件处理函数--监听用户下拉动作
  475. */
  476. onPullDownRefresh: function () {
  477. this.setData({
  478. is_bottom: false,
  479. list: [],
  480. page:1
  481. });
  482. this.getList();
  483. wx.stopPullDownRefresh();// 停止下拉
  484. },
  485. /**
  486. * 页面拉到底加载
  487. */
  488. onReachBottom: function () {
  489. if (this.data.dataObj.last_page > 1){//可分页
  490. if (this.data.dataObj.current_page >= this.data.dataObj.last_page) {
  491. this.setData({ is_bottom: true });
  492. return;
  493. } else {
  494. this.data.page++;
  495. this.getList();
  496. }
  497. }
  498. },
  499. /**
  500. * 生命周期函数--监听页面初次渲染完成
  501. */
  502. onReady: function () {
  503. },
  504. /**
  505. * 生命周期函数--监听页面显示
  506. */
  507. onShow: function () {
  508. },
  509. /**
  510. * 生命周期函数--监听页面隐藏
  511. */
  512. onHide: function () {
  513. },
  514. /**
  515. * 生命周期函数--监听页面卸载
  516. */
  517. onUnload: function () {
  518. },
  519. })