From 5fb3964ed41e9f51d96be52770eb22e9d8b66528 Mon Sep 17 00:00:00 2001 From: chen <2659004835@qq.com> Date: Tue, 16 Aug 2022 18:06:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 6 ++- components/buy-popu.vue | 2 + components/dynamic-frame.vue | 14 +++--- jsFile/requst.js | 4 ++ jsFile/tools.js | 37 ++++++++++++++- pages/tabbar/course/course.vue | 11 +++-- pages/tabbar/my/my.vue | 9 ++-- pages/tabbar/pagehome/pagehome.vue | 4 +- pages/tabbar/shop/shop.vue | 15 +++++- pages/tabbar/video/video.vue | 15 +++--- pagesA/my-coupon/my-coupon.vue | 9 ++-- pagesA/my-course/my-course.vue | 7 ++- pagesA/my-extend/my-extend.vue | 4 +- pagesA/my-integral/my-integral.vue | 9 ++-- pagesA/my-order/my-order.vue | 9 ++-- pagesA/my-sign/my-sign.vue | 2 +- pagesA/my-video/my-video.vue | 13 ++++-- pagesB/buy-now/buy-now.vue | 65 ++++++++++++++------------ pagesB/cart/cart.vue | 3 +- pagesB/confirm-order/confirm-order.vue | 35 +++++++------- pagesB/course-detail/course-detail.vue | 11 +++-- pagesB/order-detail/order-detail.vue | 2 +- pagesB/second-level/second-level.vue | 15 +++--- pagesB/shop-detail/shop-detail.vue | 55 +++++++++++----------- 24 files changed, 215 insertions(+), 141 deletions(-) diff --git a/App.vue b/App.vue index 6e8a4fa..51052ba 100644 --- a/App.vue +++ b/App.vue @@ -13,11 +13,13 @@ }, onShow: ()=> { if(uni.getStorageSync('token')){ - + toolAll.tools.refreshToken();//刷新token } }, onHide: ()=> { - + if(uni.getStorageSync('token')){ + toolAll.tools.refreshToken();//刷新token + } } }; diff --git a/components/buy-popu.vue b/components/buy-popu.vue index 26ad117..ae78bdc 100644 --- a/components/buy-popu.vue +++ b/components/buy-popu.vue @@ -68,6 +68,8 @@ uni.setStorageSync('skuList',params.sku_list); } }) + } else { + this.$toolAll.tools.showToast('库存不足'); } }, // 删除对象中某个字段 diff --git a/components/dynamic-frame.vue b/components/dynamic-frame.vue index 31fdf38..5790a22 100644 --- a/components/dynamic-frame.vue +++ b/components/dynamic-frame.vue @@ -4,14 +4,14 @@ {{tipsTitle}} - - - 物流公司 - {{logisticsObj.express_name}} + + + 物流公司 + 物流单号 - - 物流单号 - {{logisticsObj.express_number}} + + {{logisticsObj.express_name}} + {{logisticsObj.express_number}} diff --git a/jsFile/requst.js b/jsFile/requst.js index 49d8c0c..855b669 100644 --- a/jsFile/requst.js +++ b/jsFile/requst.js @@ -68,6 +68,9 @@ const checkError = (e) => { refreshTokenPage(); break; } + setTimeout(()=>{ + flag = true; + },2000) } } } @@ -113,6 +116,7 @@ const request = (method, url, options) => { // 接口调用成功 resolve(res.data); } else { + reject(res); // 接口返回错误信息 checkError(res); } diff --git a/jsFile/tools.js b/jsFile/tools.js index 3826a1d..af50144 100644 --- a/jsFile/tools.js +++ b/jsFile/tools.js @@ -392,7 +392,42 @@ const tools = { // }, // }); // #endif - } + }, + timeToken:null, + // 开启一个半小时刷新token + refreshToken(){ + clearInterval(this.timeToken); + // 调用登录事件 + this.loginEv(); + this.timeToken = setInterval(()=>{ + // 调用登录事件 + this.loginEv(); + },600000*9) + }, + // 登录事件 + loginEv(){ + uni.login({ + provider: 'weixin', + success: (res)=> { + var params = {code:res.code} + uni.request({ + url: `${uni.getStorageSync('hostapi')}/api/user/login`, + method: 'post', + data: params, + success: res => { + if(res.data.data.token!=''){ + uni.setStorageSync('token',res.data.data.token); // 缓存token + uni.setStorageSync('openid',res.data.data.openid)//缓存openid + uni.setStorageSync('expire',res.data.data.expire); // 缓存失效时间(时间戳格式) + uni.setStorageSync('phone_active',res.data.data.phone_active); // 是否绑定手机号 + uni.setStorageSync('is_active',res.data.data.is_active)//是否第一次授权 + uni.setStorageSync('invite_code',res.data.data.invite_code)//缓存用户邀请码 + } + } + }) + }, + }); + }, } export default { tools diff --git a/pages/tabbar/course/course.vue b/pages/tabbar/course/course.vue index 25f2f51..dbec0ef 100644 --- a/pages/tabbar/course/course.vue +++ b/pages/tabbar/course/course.vue @@ -17,8 +17,8 @@ - - + + @@ -48,6 +48,7 @@ size:10, total:0, noMore:false,//是否没有更多 + loading:false } }, onShow() { @@ -80,7 +81,9 @@ // 如果分类列表不为空 if(this.dataList.length){ // 设置分类id - this.classId = this.dataList[0].id; + if(!this.classId){ + this.classId = this.dataList[0].id; + } // 调用获取课程列表 this.getCourseList(); } @@ -88,6 +91,7 @@ }, // 获取课程列表 getCourseList(){ + this.loading = false; let params = { category_id:this.classId, page:this.page, @@ -104,6 +108,7 @@ if(this.total==this.$refs.refcourse.list.length && this.page!=1){ this.noMore = true; } + this.loading = true; } }) }, diff --git a/pages/tabbar/my/my.vue b/pages/tabbar/my/my.vue index 21785fa..7eb35b2 100644 --- a/pages/tabbar/my/my.vue +++ b/pages/tabbar/my/my.vue @@ -7,9 +7,9 @@ - {{userInfo.nickname}} + {{userInfo.nickname}} - + 签到 @@ -84,9 +84,6 @@ this.$requst.get('/api/user/info').then(res=>{ if(res.code==0) { this.userInfo = res.data; - if(this.userInfo.position==0 && this.funList.length==8){ - this.funList.splice(7,1); - } uni.setStorageSync('userInfo',this.userInfo); } this.isLoading = true; @@ -106,7 +103,7 @@ '', ] if(index==7){ - list[7] = ['','/pagesB/second-level/second-level' ,'/pagesA/my-extend/my-extend'][this.userInfo.position] + list[7] = ['/pagesA/my-extend/my-extend','/pagesB/second-level/second-level?level=1','/pagesB/second-level/second-level?level=2' ][this.userInfo.position] } uni.navigateTo({ url:list[index] diff --git a/pages/tabbar/pagehome/pagehome.vue b/pages/tabbar/pagehome/pagehome.vue index 0d84bae..b169d20 100644 --- a/pages/tabbar/pagehome/pagehome.vue +++ b/pages/tabbar/pagehome/pagehome.vue @@ -38,9 +38,9 @@ 更多+ - + - + {{item.title}} diff --git a/pages/tabbar/shop/shop.vue b/pages/tabbar/shop/shop.vue index d458854..3ff5638 100644 --- a/pages/tabbar/shop/shop.vue +++ b/pages/tabbar/shop/shop.vue @@ -7,12 +7,14 @@ - - + + + + @@ -41,6 +43,7 @@ size:10, total:0, noMore:false,//是否没有更多 + loading:false } }, onLoad() { @@ -85,6 +88,7 @@ }, // 获取商品产品列表 getProductList(){ + this.loading = false; let params = { category_id:this.classId, page:this.page, @@ -100,6 +104,7 @@ if(this.total==this.$refs.refproduct.list.length && this.page!=1){ this.noMore = true; } + this.loading = true; } }) }, @@ -110,6 +115,12 @@ url:`/pagesB/shop-detail/shop-detail?id=${id}` }) } + }, + // 前往购物车 + goCart(){ + if(this.$toolAll.tools.judgeAuth()) { + this.$toolAll.tools.goPage('/pagesB/cart/cart') + } } } } diff --git a/pages/tabbar/video/video.vue b/pages/tabbar/video/video.vue index 2c417eb..ef5b505 100644 --- a/pages/tabbar/video/video.vue +++ b/pages/tabbar/video/video.vue @@ -1,7 +1,7 @@ @@ -74,7 +71,7 @@ } // 商品金额减优惠券抵扣 newPrice = this.$toolAll.tools.operationEv(newPrice,this.couponInfo.coupon_price,'-',2); - return newPrice; + return newPrice < 0 ? 0 : newPrice; } }, methods: { @@ -103,38 +100,44 @@ this.$requst.post('/api/order/create',params).then(res=>{ if(res.code==0){ let info = res.data; - uni.requestPayment({ - provider: 'wxpay', - appId:info.payment_params.appId,//appId - timeStamp: info.payment_params.timeStamp,//时间戳 - nonceStr: info.payment_params.nonceStr,//随机字符串 - package: info.payment_params.package,//package - signType: info.payment_params.signType,//MD5 - paySign: info.payment_params.sign,//签名 - success:(result)=> { - this.$requst.post('/api/order/paid',{order_coding:info.coding}).then(res=>{ - if(res.code==0){ - this.$toolAll.tools.showToast('支付成功(*^▽^*)'); - setTimeout(()=>{ - uni.reLaunch({ - url:'/pages/tabbar/course/course' - }) - },1500) - } else this.$toolAll.tools.showToast(res.msg); - }) - }, - fail:()=> { - this.$toolAll.tools.showToast('支付已取消o(╥﹏╥)o'); - }, - complete:()=> { - this.flag = true; - } - }); + if(info.status!='paid' && info.status!='completed'){ + uni.requestPayment({ + provider: 'wxpay', + appId:info.payment_params.appId,//appId + timeStamp: info.payment_params.timeStamp,//时间戳 + nonceStr: info.payment_params.nonceStr,//随机字符串 + package: info.payment_params.package,//package + signType: info.payment_params.signType,//MD5 + paySign: info.payment_params.sign,//签名 + success:(result)=> { + this.implementEv(info.coding); + }, + fail:()=> { + this.$toolAll.tools.showToast('支付已取消o(╥﹏╥)o'); + }, + complete:()=> { + this.flag = true; + } + }); + } else { + this.implementEv(info.coding); + } } else { this.flag = true; } }) } + }, + // 支付成功接口 + implementEv(coding){ + this.$requst.post('/api/order/paid',{order_coding:coding}).then(res=>{ + if(res.code==0){ + this.$toolAll.tools.showToast('支付成功(*^▽^*)'); + setTimeout(()=>{ + uni.navigateBack({delta:1}) + },1000) + } else this.$toolAll.tools.showToast(res.msg); + }) } } } diff --git a/pagesB/cart/cart.vue b/pagesB/cart/cart.vue index aaaacb4..5e5345d 100644 --- a/pagesB/cart/cart.vue +++ b/pagesB/cart/cart.vue @@ -207,7 +207,8 @@ } }) let params = { - sku_list:newList + sku_list:newList, + score_deduct:1 }; this.$requst.post('/api/order/prepare-info',params).then(res=>{ if(res.code==0){ diff --git a/pagesB/confirm-order/confirm-order.vue b/pagesB/confirm-order/confirm-order.vue index b2b52e5..a5753f9 100644 --- a/pagesB/confirm-order/confirm-order.vue +++ b/pagesB/confirm-order/confirm-order.vue @@ -145,7 +145,7 @@ this.$requst.post('/api/order/create',params).then(res=>{ if(res.code==0){ let info = res.data; - if(info.status!='completed'){ + if(info.status!='completed' && info.status!='paid'){ uni.requestPayment({ provider: 'wxpay', appId:info.payment_params.appId,//appId @@ -155,16 +155,7 @@ signType: info.payment_params.signType,//MD5 paySign: info.payment_params.sign,//签名 success:(result)=> { - this.$requst.post('/api/order/paid',{order_coding:info.coding}).then(res=>{ - if(res.code==0){ - this.$toolAll.tools.showToast('支付成功(*^▽^*)'); - setTimeout(()=>{ - uni.navigateTo({ - url:'/pagesA/my-order/my-order' - }) - },1000) - } else this.$toolAll.tools.showToast(res.msg); - }) + this.implementEv(info.coding); }, fail:()=> { this.$toolAll.tools.showToast('支付已取消o(╥﹏╥)o'); @@ -174,16 +165,13 @@ } }); } else { - this.$toolAll.tools.showToast('支付成功(*^▽^*)'); - setTimeout(()=>{ - uni.navigateTo({ - url:'/pagesA/my-order/my-order' - }) - },1000) + this.implementEv(info.coding); } } else { this.flag = true; } + }).catch(err=>{ + this.flag = true; }) } else { this.flag = true; @@ -195,6 +183,19 @@ },1000) } } + }, + // 支付成功接口 + implementEv(coding){ + this.$requst.post('/api/order/paid',{order_coding:coding}).then(res=>{ + if(res.code==0){ + this.$toolAll.tools.showToast('支付成功(*^▽^*)'); + setTimeout(()=>{ + uni.navigateTo({ + url:'/pagesA/my-order/my-order' + }) + },1000) + } else this.$toolAll.tools.showToast(res.msg); + }) } } } diff --git a/pagesB/course-detail/course-detail.vue b/pagesB/course-detail/course-detail.vue index 5986bcd..0823844 100644 --- a/pagesB/course-detail/course-detail.vue +++ b/pagesB/course-detail/course-detail.vue @@ -4,9 +4,9 @@ {{couresDetail.name}} - + - + @@ -54,9 +54,8 @@ // 底部组件 import footTab from '@/components/foot-tabs/foot-tab.vue'; import list from '@/components/list.vue'; - import pitera from '@/components/nothing/pitera.vue'; export default { - components:{'foot-tab' :footTab,list,pitera}, + components:{'foot-tab' :footTab,list}, data() { return { richText:'', // @@ -83,7 +82,7 @@ this.id = op.id; this.classId = op.category_id; // 获取课程详情 - this.getCouresDetail(op.id); + this.getCouresDetail(this.id); } }, onShareAppMessage(res) { @@ -97,6 +96,8 @@ onShow() { uni.removeStorageSync('courseInfo'); uni.removeStorageSync('skuList'); + // 获取课程详情 + this.getCouresDetail(this.id); }, methods: { // 获取课程详情 diff --git a/pagesB/order-detail/order-detail.vue b/pagesB/order-detail/order-detail.vue index 9b37c6f..9fd6a64 100644 --- a/pagesB/order-detail/order-detail.vue +++ b/pagesB/order-detail/order-detail.vue @@ -10,7 +10,7 @@ 确认收货 - + diff --git a/pagesB/second-level/second-level.vue b/pagesB/second-level/second-level.vue index e51ee9e..3dab113 100644 --- a/pagesB/second-level/second-level.vue +++ b/pagesB/second-level/second-level.vue @@ -9,7 +9,7 @@ 代理登记 - 二级 + {{['','一','二'][levelIndex]}}级 我的佣金 @@ -31,9 +31,7 @@ - - - + @@ -55,14 +53,15 @@ total:0, noMore:false, personCode:'', - loading:false, //二维码相关参数 textstr:`https://chuanwujia.com/share?invite_code=${uni.getStorageSync('invite_code')}`, - scoreInfo:'' + scoreInfo:'', + levelIndex:1 } }, - onLoad() { - this.loading = true; + onLoad(op) { + this.levelIndex = op.level*1; + console.log(this.levelIndex); this.getExtend(); }, onReachBottom() { diff --git a/pagesB/shop-detail/shop-detail.vue b/pagesB/shop-detail/shop-detail.vue index 8a9acc4..90db095 100644 --- a/pagesB/shop-detail/shop-detail.vue +++ b/pagesB/shop-detail/shop-detail.vue @@ -60,11 +60,10 @@ // 底部组件 import footTab from '@/components/foot-tabs/foot-tab.vue'; import list from '@/components/list.vue'; - import pitera from '@/components/nothing/pitera.vue'; import swiperPu from '@/components/swipers/swiper-pu.vue'; import buyPopu from '@/components/buy-popu.vue'; export default { - components:{'foot-tab' :footTab,list,pitera,swiperPu,buyPopu}, + components:{'foot-tab' :footTab,list,swiperPu,buyPopu}, data() { return { richText:'', @@ -145,27 +144,27 @@ }) } // 商品规格 - // this.$requst.get('/api/spu/spec',{id:this.shopId}).then(resspec=>{ - // if(resspec.code==0){ - // // - // this.ifDetail = true; - // // 所有规格列表 - // this.specList = resspec.data.spec; - // // 默认规格 - // this.moSpecList = resspec.data.sku.indexes.split('-'); - // // 存在规格 - // this.haveSpecList = resspec.data.sku_list; - // this.shopList.push({ - // sku_list:[ - // { - // sku_coding:resspec.data.sku.coding, - // num:1, - // sku_id:resspec.data.sku.id - // } - // ] - // }) - // } - // }) + this.$requst.get('/api/spu/spec',{id:this.shopId}).then(resspec=>{ + if(resspec.code==0){ + // + this.ifDetail = true; + // 所有规格列表 + this.specList = resspec.data.spec; + // 默认规格 + this.moSpecList = resspec.data.sku.indexes.split('-'); + // 存在规格 + this.haveSpecList = resspec.data.sku_list; + this.shopList.push({ + sku_list:[ + { + sku_coding:resspec.data.sku.coding, + num:1, + sku_id:resspec.data.sku.id + } + ] + }) + } + }) } }) }, @@ -230,11 +229,11 @@ } }, // 删除对象中某个字段 - // objField(field){ - // let newObj = JSON.parse(JSON.stringify(this.shopList[0].sku_list[0])); - // delete newObj[field]; - // return newObj; - // }, + objField(field){ + let newObj = JSON.parse(JSON.stringify(this.shopList[0].sku_list[0])); + delete newObj[field]; + return newObj; + }, // 前往购物车 goCart(){ if(this.$toolAll.tools.judgeAuth()) {