diff --git a/App.vue b/App.vue index 4180dc68..2047726e 100644 --- a/App.vue +++ b/App.vue @@ -67,11 +67,11 @@ // tabbar页面 tabbar_pages: ['/pages/index/index', '/pages/goods-category/goods-category', '/pages/cart/cart', '/pages/user/user'], // 请求地址 - // request_url: "https://d1.shopxo.vip/", - request_url: 'http://shopxo.com/', + request_url: 'https://d1.shopxo.vip/', + // request_url: 'http://shopxo.com/', // 静态资源地址(如系统根目录不在public目录下面请在静态地址后面加public目录、如:https://d1.shopxo.vip/public/) - // static_url: "https://d1.shopxo.vip/", - static_url: 'http://shopxo.com/', + static_url: 'https://d1.shopxo.vip/', + // static_url: 'http://shopxo.com/', // 系统类型(默认default、如额外独立小程序、可与程序分身插件实现不同主体小程序及支付独立) system_type: 'default', // 基础信息 @@ -1749,7 +1749,7 @@ }, 100); } }, - + // 获取主题色值 // is_light 是否获取浅主色(false, true) get_theme_color(is_light = false) { @@ -1763,7 +1763,7 @@ orange: '#fe6f04', // 橙色 brown: '#8B4513', // 棕色 purple: '#623cec', // 紫色 - + // 浅主色 yellow_light: '#ffebd2', // 黄色 red_light: '#ffdbe2', // 红色 @@ -1816,25 +1816,25 @@ // 整体样式 uni.setTabBarStyle({ - selectedColor: this.get_theme_color(), + selectedColor: this.get_theme_color(), }); // 菜单 uni.setTabBarItem({ index: 0, - selectedIconPath: 'static/images/'+theme+'/tabbar/home.png', + selectedIconPath: 'static/images/' + theme + '/tabbar/home.png', }); uni.setTabBarItem({ index: 1, - selectedIconPath: 'static/images/'+theme+'/tabbar/category.png', + selectedIconPath: 'static/images/' + theme + '/tabbar/category.png', }); uni.setTabBarItem({ index: 2, - selectedIconPath: 'static/images/'+theme+'/tabbar/cart.png', + selectedIconPath: 'static/images/' + theme + '/tabbar/cart.png', }); uni.setTabBarItem({ index: 3, - selectedIconPath: 'static/images/'+theme+'/tabbar/user.png', + selectedIconPath: 'static/images/' + theme + '/tabbar/user.png', }); }, @@ -1889,7 +1889,7 @@ } else { return uri + separator + key + '=' + value; } - } + }, }, // 初始化完成时触发(全局只触发一次) onLaunch(params) {}, diff --git a/components/payment/payment.vue b/components/payment/payment.vue index a2775f0e..36efee31 100644 --- a/components/payment/payment.vue +++ b/components/payment/payment.vue @@ -123,6 +123,16 @@ return {}; }, }, + // 支付失败跳转页面 + propTofailPage: { + type: String, + default: '', + }, + // + propIsRedirectTo: { + type: Boolean, + default: false, + }, }, components: { componentPopup, @@ -242,8 +252,11 @@ // 是否直接支付成功 if ((res.data.data.is_success || 0) == 1) { // 数据设置 - this.order_item_pay_success_handle(data, order_id); + this.order_item_pay_success_handle(data, order_id, false); app.globalData.showToast('支付成功', 'success'); + setTimeout(() => { + this.to_success_page_event(); + }, 2000); } else { // 支付方式类型 let payment_type = Number(res.data.data.is_payment_type || 0); @@ -266,6 +279,7 @@ break; // 线下支付 case 1: + // 现金支付 uni.showModal({ content: res.data.msg, success(res) { @@ -281,7 +295,6 @@ // 钱包支付 case 2: this.order_item_pay_success_handle(data, order_id); - app.globalData.showToast('支付成功', 'success'); break; // 默认 default: @@ -317,14 +330,6 @@ success: (res) => { // 数据设置 self.order_item_pay_success_handle(data, order_id); - let url_data = { - code: '9000', - }; - url_data = Object.assign({}, url_data, this.propToPage); - // 跳转支付页面 - uni.navigateTo({ - url: '/pages/paytips/paytips?params=' + encodeURIComponent(base64.encode(JSON.stringify(url_data))), - }); }, fail: (res) => { app.globalData.showToast('支付失败'); @@ -366,14 +371,6 @@ // #endif // 数据设置 self.order_item_pay_success_handle(data, order_id); - let url_data = { - code: '9000', - }; - url_data = Object.assign({}, url_data, this.propToPage); - // 跳转支付页面 - uni.navigateTo({ - url: '/pages/paytips/paytips?params=' + base64.encode(JSON.stringify(url_data)), - }); }, fail: (res) => { app.globalData.showToast('支付失败'); @@ -430,14 +427,6 @@ if (res.err_msg == 'get_brand_wcpay_request:ok') { // 数据设置 self.order_item_pay_success_handle(data, order_id); - let url_data = { - code: '9000', - }; - url_data = Object.assign({}, url_data, this.propToPage); - // 跳转支付页面 - uni.navigateTo({ - url: '/pages/paytips/paytips?params=' + base64.encode(JSON.stringify(url_data)), - }); } else { self.order_item_pay_fail_handle(data, order_id); } @@ -484,14 +473,6 @@ }); // 数据设置 self.order_item_pay_success_handle(data, order_id); - let url_data = { - code: '9000', - }; - url_data = Object.assign({}, url_data, this.propToPage); - // 跳转支付页面 - uni.navigateTo({ - url: '/pages/paytips/paytips?params=' + base64.encode(JSON.stringify(url_data)), - }); } else { // -300支付中、其它状态则提示错误 if (res.data.code != -300) { @@ -530,21 +511,54 @@ } } }, - // 支付成功数据设置 - order_item_pay_success_handle(data, order_id) { + // 支付成功数据设置 bool:成功是否需要跳转页面 + order_item_pay_success_handle(data, order_id, is_to_page = true) { let newData = { data: data, order_id: order_id, + is_to_page: is_to_page, }; this.$emit('pay-success', newData, this.propTempPayIndex, this.propPaymentId); + if (is_to_page) { + this.to_success_page_event(); + } }, - // 支付成功数据设置 + // 支付失败数据设置 bool:失败是否需要跳转页面 order_item_pay_fail_handle(data, order_id) { let newData = { data: data, order_id: order_id, + is_to_page: is_to_page, + temp_pay_index: this.propTempPayIndex, + payment_id: this.propPaymentId, }; - this.$emit('pay-fail', newData, this.propTempPayIndex, this.propPaymentId); + this.$emit('pay-fail', newData); + this.to_fail_page_event(); + }, + to_success_page_event() { + let url_data = { + code: '9000', + }; + url_data = Object.assign({}, url_data, this.propToPage); + if (this.propIsRedirectTo) { + // 跳转支付页面 + uni.redirectTo({ + url: '/pages/paytips/paytips?params=' + encodeURIComponent(base64.encode(JSON.stringify(url_data))), + }); + } else { + // 跳转支付页面 + uni.navigateTo({ + url: '/pages/paytips/paytips?params=' + encodeURIComponent(base64.encode(JSON.stringify(url_data))), + }); + } + }, + to_fail_page_event() { + if (this.propTofailPage) { + // 跳转支付页面 + uni.navigateTo({ + url: this.propTofailPage + '?data=' + data.order_id, + }); + } }, // 页面卸载 onUnload(e) { diff --git a/components/wallet/user-recharge/user-recharge.vue b/components/wallet/user-recharge/user-recharge.vue index d8dc7cd0..a3297a26 100644 --- a/components/wallet/user-recharge/user-recharge.vue +++ b/components/wallet/user-recharge/user-recharge.vue @@ -88,7 +88,6 @@ data_bottom_line_status: false, data_is_loading: 0, params: null, - load_status: 0, payment_id: 0, nav_status_list: [ { name: '全部', value: '-1' }, @@ -217,28 +216,6 @@ if (res.data.data.data.length > 0) { if (this.data_page <= 1) { var temp_data_list = res.data.data.data; - // 下订单支付处理 - if (this.load_status == 0) { - var ck = app.globalData.data.cache_page_pay_key; - var pay_data = uni.getStorageSync(ck) || null; - if (pay_data != null) { - uni.removeStorageSync(ck); - this.setData({ payment_id: parseInt(pay_data.payment_id || 0) }); - for (var i in temp_data_list) { - if (pay_data.order_ids == temp_data_list[i]['id']) { - if (this.payment_id == 0) { - this.setData({ - is_show_payment_popup: true, - temp_pay_value: temp_data_list[i]['id'], - pay_price: temp_data_list[i]['money'], - temp_pay_index: i, - }); - } - break; - } - } - } - } } else { var temp_data_list = this.data_list || []; var temp_data = res.data.data.data; @@ -254,7 +231,6 @@ data_page_total: res.data.data.page_total, data_list_loding_status: 3, data_page: this.data_page + 1, - load_status: 1, data_is_loading: 0, }); @@ -265,7 +241,6 @@ } else { this.setData({ data_list_loding_status: 0, - load_status: 1, data_list: [], data_bottom_line_status: false, data_is_loading: 0, @@ -274,7 +249,6 @@ } else { this.setData({ data_list_loding_status: 0, - load_status: 1, data_is_loading: 0, }); if (app.globalData.is_login_check(res.data, this, 'get_data_list')) { @@ -287,7 +261,6 @@ uni.stopPullDownRefresh(); this.setData({ data_list_loding_status: 2, - load_status: 1, data_is_loading: 0, }); app.globalData.showToast('服务器请求出错'); @@ -321,6 +294,7 @@ this.setData({ data_list: temp_data_list, }); + this.$emit('pay-success'); }, // 删除 diff --git a/pages/buy/buy.vue b/pages/buy/buy.vue index 7b736706..207ca5b2 100644 --- a/pages/buy/buy.vue +++ b/pages/buy/buy.vue @@ -258,7 +258,7 @@ - + @@ -322,10 +322,11 @@ qrcode_url: app.globalData.get_request_url('paycheck', 'order'), // 前往页面携带的参数 to_page: { - title: '前往订单页', + title: '进入我的订单', page: 'user-order/user-order', - msg: '支付成功', }, + // 支付失败跳转的页面 + to_fail_page: 'page/user-order/user-order', }; }, diff --git a/pages/paytips/paytips.vue b/pages/paytips/paytips.vue index 4595c873..eaba6a29 100644 --- a/pages/paytips/paytips.vue +++ b/pages/paytips/paytips.vue @@ -3,7 +3,7 @@ - {{ params.msg }} + {{ params.msg || '支付成功' }} @@ -39,7 +39,7 @@ */ onLoad(options) { if (options) { - let url_params = JSON.parse(decodeURIComponent(base64.decode(options.params))); + let url_params = JSON.parse(base64.decode(decodeURIComponent(options.params))); var msg = null; switch (url_params.code) { // 支付成功 diff --git a/pages/plugins/membershiplevelvip/buy/buy.vue b/pages/plugins/membershiplevelvip/buy/buy.vue index 483ac7ff..6ca0e22c 100644 --- a/pages/plugins/membershiplevelvip/buy/buy.vue +++ b/pages/plugins/membershiplevelvip/buy/buy.vue @@ -70,6 +70,8 @@ :prop-temp-pay-value="temp_pay_value" :prop-temp-pay-index="temp_pay_index" :prop-pay-price="pay_price" + :prop-to-page="to_page" + :prop-to-fail-page="to_fail_page" :prop-is-show-payment="is_show_payment_popup" @close-payment-poupon="payment_popup_event_close" > @@ -100,6 +102,13 @@ temp_pay_index: 0, is_show_payment_popup: false, pay_price: 0, + // 前往页面携带的参数 + to_page: { + title: '进入我的会员列表', + page: 'pages/plugins/membershiplevelvip/user/user', + }, + // 支付失败跳转的页面 + to_fail_page: 'pages/plugins/membershiplevelvip/order/order', }; }, components: { @@ -256,6 +265,11 @@ url_event(e) { app.globalData.url_event(e); }, + payment_popup_event_close() { + this.setData({ + is_show_payment_popup: false, + }); + }, }, }; diff --git a/pages/plugins/wallet/recharge/recharge.vue b/pages/plugins/wallet/recharge/recharge.vue index 96e78020..8c6ac203 100644 --- a/pages/plugins/wallet/recharge/recharge.vue +++ b/pages/plugins/wallet/recharge/recharge.vue @@ -1,17 +1,30 @@ diff --git a/pages/plugins/wallet/user/user.vue b/pages/plugins/wallet/user/user.vue index 63101cbe..76a1d606 100644 --- a/pages/plugins/wallet/user/user.vue +++ b/pages/plugins/wallet/user/user.vue @@ -65,7 +65,7 @@ - + @@ -139,6 +139,17 @@ current: Number(params.type), }); } + + var ck = app.globalData.data.cache_page_pay_key; + var pay_data = uni.getStorageSync(ck) || null; + if (pay_data) { + this.setData({ + current: pay_data.type || 0, + }); + var newurl = app.globalData.updateQueryStringParameter(window.location.href.split('?')[0], 'type', pay_data.type + ''); + //向当前url添加参数,没有历史记录 + window.history.replaceState({ path: newurl }, '', newurl); + } this.init(); }, @@ -252,6 +263,10 @@ uni.navigateBack(); } }, + // 支付成功回调 + pay_success_event() { + this.get_data(); + }, }, }; diff --git a/pages/user-order/user-order.css b/pages/user-order/user-order.css index e376784d..3865f1fc 100644 --- a/pages/user-order/user-order.css +++ b/pages/user-order/user-order.css @@ -12,14 +12,17 @@ min-height: 160rpx; margin-left: 180rpx; } + .goods-image { width: 160rpx; height: 160rpx; } + .warehouse-group-icon { width: 30rpx; height: 30rpx; } + .orderaftersale-btn-text { right: 0; bottom: 0; @@ -32,9 +35,11 @@ .payment-list .item { width: 50%; } + .payment-list .item-content { padding: 20rpx 10rpx; } + .payment-list .item-content image { width: 50rpx; height: 50rpx !important; diff --git a/pages/user-order/user-order.vue b/pages/user-order/user-order.vue index a221b93c..29495f2c 100644 --- a/pages/user-order/user-order.vue +++ b/pages/user-order/user-order.vue @@ -103,7 +103,6 @@ :prop-pay-url="pay_url" :prop-qrcode-url="qrcode_url" :prop-payment-list="payment_list" - :prop-to-page="to_page" prop-pay-data-key="ids" :prop-temp-pay-value="temp_pay_value" :prop-temp-pay-index="temp_pay_index" @@ -157,11 +156,6 @@ // 页面从其他页面跳转过来携带的参数 params: '', // 前往页面携带的参数 - to_page: { - title: '前往订单页', - page: 'user-order/user-order', - msg: '支付成功', - }, pay_price: 0, pay_url: app.globalData.get_request_url('pay', 'order'), qrcode_url: app.globalData.get_request_url('paycheck', 'order'), @@ -399,7 +393,7 @@ // 支付成功数据设置 // 订单完成回调 order_item_pay_success_handle(data, index, order_ids) { - var order_ids_arr = order_ids.split(','); + var order_ids_arr = data.order_id.split(','); var temp_data_list = this.data_list; // 数据设置 @@ -676,6 +670,6 @@ }, }; -