diff --git a/src/components/BottomSheet/BottomSheet.vue b/src/components/BottomSheet/BottomSheet.vue index 60df2fc..c3e818c 100644 --- a/src/components/BottomSheet/BottomSheet.vue +++ b/src/components/BottomSheet/BottomSheet.vue @@ -426,12 +426,6 @@ import store from '@/store' return glassInfoArr.find(item => item == '0') ==undefined } }, - // beforeDestroy() { - // //获取关心的人列表 - // store.dispatch('myLoveList/getLoveList', { - // uid: this.$store.state.user.userInfo.uid, - // }); - // }, created() { this.skuValueArray = this.skuList[0].sku_value.split("_") // console.log(this.sk_id) diff --git a/src/pages/details/details.vue b/src/pages/details/details.vue index b754f32..e6c93ff 100644 --- a/src/pages/details/details.vue +++ b/src/pages/details/details.vue @@ -424,7 +424,7 @@ export default { addCartList.mp_id = mpId addCartList.sk_id = skId addCartList.num = num - addCartList.checkedSKU = checkedSKU + // addCartList.checkedSKU = checkedSKU addCartList.pid = this.pid addCartList.price = price console.log('添加购物车的参数', addCartList) diff --git a/src/pages/myOrder/components/OrderCard.vue b/src/pages/myOrder/components/OrderCard.vue index 1b0d46e..7461f82 100644 --- a/src/pages/myOrder/components/OrderCard.vue +++ b/src/pages/myOrder/components/OrderCard.vue @@ -3,7 +3,7 @@ <view class="card" v-if="current == status" - @click="toOrderInfo(status,order.pay_id)" + > <view class="cardHeader"> <text @@ -30,6 +30,7 @@ </view> <view class="orderCardInfo" + @click="toOrderInfo(status,order.pay_id)" v-for="(orderInfo, index) in orderInfoList" :key="index" > @@ -65,13 +66,13 @@ class="btns" v-if="status == '2'" > - <view class="btn-type2" @click="toDetail">再次购买</view> + <view class="btn-type2" @click="toDetail(order.order_info[0].pid)">再次购买</view> </view> <!-- <view class="btns" v-if="status == '3'"> <view class="btn-type2">再次购买</view> </view> --> </view> - <view class="card" v-if="current == '10'" @click="toOrderInfo(status,order.pay_id)"> + <view class="card" v-if="current == '10'" > <view class="cardHeader"> <text class="orderId" v-if="status == '0'||status == '1'">订单号:{{order.pay_id}}</text> <text class="orderId" v-if="status == '2'||status == '3'">下单时间:{{order.pay_time}}</text> @@ -80,7 +81,7 @@ <text class="orderType" v-if="status == '2'||status == '3'">已完成</text> <!-- <text class="orderType" v-if="status == '3'">已评价</text> --> </view> - <view class="orderCardInfo" v-for="(orderInfo) in orderInfoList" :key="orderInfo"> + <view class="orderCardInfo" @click="toOrderInfo(status,order.pay_id)" v-for="(orderInfo) in orderInfoList" :key="orderInfo"> <image :src="orderInfo.imgUrl" mode="aspectFill"></image> <view class="infoText"> <view class="orderName">{{orderInfo.p_name}}</view> @@ -93,8 +94,8 @@ </view> <view class="payPrice">实付:<text class="priceNum">{{order.total_fee}}</text> </view> <view class="btns" v-if="status == '0'"> - <view class="btn-type1" >取消订单</view> - <view class="btn-type2">去支付</view> + <view class="btn-type1" @click="cancleOrder">取消订单</view> + <view class="btn-type2" @click="paylog">去支付</view> </view> <view class="btns" v-if="status == '1'"> <view class="btn-type2">确认收货</view> @@ -102,16 +103,19 @@ <view class="btns" v-if="status == '2'||status == '3'"> <view class="btn-type2" @click="toDetail(order.order_info[0].pid)">再次购买</view> </view> - <!-- <view class="btns" v-if="status == '3'"> - - <view class="btn-type2">再次购买</view> - </view> --> </view> </view> </template> <script> + import MD5Util from '../../../utils/md5' + import store from "@/store"; export default { + data() { + return { + + }; + }, props: { /** * 订单数据 @@ -136,32 +140,142 @@ return this.order.order_info } }, - data() { - return { - }; - }, methods:{ - cancleOrder() { - // const openid = uni.getStorageSync('openid') - // const uid = this.order.uid; - // const openid = openid; - // const keyname = this.orderInfo.order_info.keyname - // // console.log('keyname',this.orderInfo.keyname) - // uni.showModal({ - // title: "提示", - // content: "现在取消,订单不可恢复哦,确认取消吗?", - // success: function(res) { - // if (res.confirm) { - // store.dispatch("cancelOrder/cancel", { - // keyname: keyname, - // uid: uid, - // openid: openid - // }); - // } else if (res.cancel) { - // console.log("用户点击取消"); - // } - // } - // }); + async paylog() { + const openid = uni.getStorageSync('openid') + const uid = this.order.uid; + //先拿订单详情 + await store.dispatch('orderRead/getOrderInfo', { + pay_id: this.order.pay_id, + uid: uid, + openid: openid + }).then((res)=>{ + // console.log(res) + const { data, exKeyName: keyName } = res.order_info + const timeStamp = new Date().getTime().toString() + const total_fee = res.total_fee + const payId = res.pay_id + const nonceStr = 'asfafasfasfasfasf' + // 支付参数 + const fieldSet = { + openid: openid, + uid: uid, + shopid: 0, + payCate: 2020, + payMoney: total_fee, + payWoodId: `fcdj-${uid}-${keyName}`, + payWoodDesc: '在【非常戴镜】的微信付款凭证', + nonceStr, + signType: 'MD5', + app_uid: 2020, + timeStamp, + keyname: keyName, + billInfo: JSON.stringify(data), + } + // 请求后台支付接口 + store.dispatch('order/pay', fieldSet).then(({ data, data2, pay_id: payId }) => { + if (data.return_code === 'SUCCESS' && data.result_code === 'SUCCESS') { + const stringA = `appId=wx115b25aa396d27ac&nonceStr=${nonceStr}&package=prepay_id=${data.prepay_id}&signType=MD5&timeStamp=${timeStamp}` + const stringSignTemp = stringA + '&key=NewMoney2017hatemydaddy123456789' + + // 微信支付接口 + uni.requestPayment({ + appId: data.appid, + timeStamp, + nonceStr, + total_fee: total_fee, + package: `prepay_id=${data.prepay_id}`, + signType: 'MD5', + paySign: MD5Util.MD5(stringSignTemp).toUpperCase(), + success: (res) => { + // 支付成功 + uni.showModal({ + content: '支付成功', + showCancel: false, + }) + // //修改订单状态 待付款==>待收货 + // store.dispatch("statusConfirm/confirm", { + // uid: this.uid, + // openid: this.openid, + // oldway: "0", + // way: "1", + // pay_id: payId, + // judgeContent: "", + // orderInfo: this.orderInfo.order_info + // }) + }, + fail: (res) => { + // 支付失败 + uni.showModal({ + content: '支付失败', + showCancel: false, + }) + }, + complete: () => { + uni.hideLoading() + }, + }) + } else { + uni.showModal({ + content: '支付失败', + showCancel: false, + }) + console.log('支付失败') + uni.hideLoading() + } + }) + //修改订单状态 待付款==>待收货 + // store.dispatch("statusConfirm/confirm", { + // uid: this.uid, + // openid: this.openid, + // oldway: "0", + // way: "1", + // pay_id: this.payId, + // judgeContent: "", + // orderInfo: this.orderInfo.order_info + // }) + }) + }, + + async cancleOrder(e) { + const openid = uni.getStorageSync('openid') + const uid = this.order.uid; + //先从订单详情中拿到keyname + await store.dispatch('orderRead/getOrderInfo', { + pay_id: this.order.pay_id, + uid: uid, + openid: openid + }).then((res)=>{ + const keyname = res.order_info.keyname + uni.showModal({ + title: "提示", + content: "现在取消,订单不可恢复哦,确认取消吗?", + success: function(res) { + if (res.confirm) { + store.dispatch("cancelOrder/cancel", { + keyname: keyname, + uid: uid, + openid: openid + }).then((res)=>{ + console.log(res) + if(res.code == 1){ + store.dispatch("myOrder/getList", { + way: "" + }); + }else{ + uni.showToast({ + title:'取消失败,服务器错误!', + icon:'none' + }) + } + }); + } else if (res.cancel) { + console.log("用户点击取消"); + } + } + }); + }); + }, toDetail(pid){ console.log('pid',pid) @@ -220,7 +334,7 @@ <style lang="scss"> .card { width: 670rpx; - height: 478rpx; + // height: 478rpx; background: #ffffff; box-shadow: 0 0 10px 0 rgba(177, 128, 128, 0.06); border-radius: 8px; diff --git a/src/pages/myOrder/myOrder.vue b/src/pages/myOrder/myOrder.vue index 086738f..248eed4 100644 --- a/src/pages/myOrder/myOrder.vue +++ b/src/pages/myOrder/myOrder.vue @@ -27,6 +27,7 @@ <OrderCard :order="order" :current="current" + v-if="order.order_info !== null" ></OrderCard> </view> </view> diff --git a/src/pages/myOrderPaying/myOrderPaying.vue b/src/pages/myOrderPaying/myOrderPaying.vue index e51c7ce..4bffccd 100644 --- a/src/pages/myOrderPaying/myOrderPaying.vue +++ b/src/pages/myOrderPaying/myOrderPaying.vue @@ -13,21 +13,21 @@ mode="aspectFill" ></image> </view> - <!-- 待付款 --> - <view class="order-time" v-if="status == '0'" > - <text>请在</text> - <uni-countdown - color="#EC5D3B" - splitor-color="#EC5D3B" - :show-day="false" - :hour="0" - :second="getTime" - @timeup=timeup > - </uni-countdown> - - <text>内完成付款</text> - </view> - + <!-- 待付款 --> + <view class="order-time" v-if="status == '0'" > + <text>请在</text> + <uni-countdown + color="#EC5D3B" + splitor-color="#EC5D3B" + :show-day="false" + :hour="0" + :second="getLeftTime" + @timeup="timeup" > + </uni-countdown> + + <text>内完成付款</text> + </view> + <view class="headerBanner" v-if="status == '1'"> <view class="bannerLeft"> <view class="T1">卖家已发货</view> @@ -96,8 +96,7 @@ <text>订单号:{{payId}}</text> </text> <text class="order-info-time"> - <text>下单时间:{{orderInfo.order_info.pay_time | timerChange}}</text> - + <text>下单时间:{{orderInfo.order_info?orderInfo.order_info.pay_time:'' | timerChange}}</text> </text> <view class="order-info-hr"></view> <view class="order-info-contact"> @@ -160,7 +159,7 @@ export default { openid: "", lefttime: 0, isPay: 0, - orderInfo:Object, + orderInfo:{}, totalPrice:0, }; }, @@ -168,7 +167,7 @@ export default { this.payId = payId this.status = status this.isPay = isPay - console.log('++++++++++++++++++',this.status) + // console.log('++++++++++++++++++',this.status) const openid = uni.getStorageSync('openid') const uid = this.$store.state.user.userInfo.uid this.uid = uid @@ -192,17 +191,16 @@ export default { } }, computed: { - orderInfoList () { - return this.orderInfo.order_info.list + orderInfoList () { + return this.orderInfo.order_info?this.orderInfo.order_info.list:null }, // 获取订单地址信息 - orderAddressInfo () { - return this.orderInfo.order_info.address + orderAddressInfo () { + return this.orderInfo.order_info?this.orderInfo.order_info.address:null }, // 订单付款时间 - getTime () { - return this.orderInfo.order_info.lefttime - + getLeftTime () { + return this.orderInfo.order_info?this.orderInfo.order_info.lefttime:1800 }, // 计算总优惠额 totalDiscount() { diff --git a/src/pages/user/user.vue b/src/pages/user/user.vue index 461280c..9150b6a 100644 --- a/src/pages/user/user.vue +++ b/src/pages/user/user.vue @@ -77,12 +77,9 @@ ></image> </view> <view class="myOrder"> - <view class="orderHeader"> + <view class="orderHeader" @click="toMyOrder('10')" > <text>我的订单</text> - <view - class="btn" - @click="toMyOrder('10')" - > + <view class="btn"> 全部 <image src="../../static/right.png" diff --git a/src/store/modules/cancelOrder.js b/src/store/modules/cancelOrder.js index c2e7da8..1aad54e 100644 --- a/src/store/modules/cancelOrder.js +++ b/src/store/modules/cancelOrder.js @@ -5,32 +5,21 @@ const { cancelOrder } = urlAlias; -const state = { - orderList: [], -}; - -const mutations = { - INIT: (state, data) => { - state.orderList = data; - }, -}; - const actions = { cancel({ commit }, param) { - request({ - url: cancelOrder, - data: param, - success: (res) => { - console.log(res.data); - // commit("INIT", res.data.data); - }, - }) + return new Promise((resolve)=> + request({ + url: cancelOrder, + data: param, + success: (res) => { + // console.log(res.data); + resolve(res.data) + }, + }) ) } } export default { namespaced: true, - state, - mutations, actions, } \ No newline at end of file diff --git a/src/store/modules/orderRead.js b/src/store/modules/orderRead.js index 9de17af..e47a50c 100644 --- a/src/store/modules/orderRead.js +++ b/src/store/modules/orderRead.js @@ -20,7 +20,8 @@ const actions = { return new Promise ((resolve) => request({ url: orderRead, data: param, - success: (res) => { + success: (res) => { + console.log(res) commit("INIT", res.data.data) resolve(res.data.data) }