187 lines
4.9 KiB
Vue
187 lines
4.9 KiB
Vue
<template>
|
|
<view class="pad-b140">
|
|
<status-nav :ifReturn="true" navBarTitle="订单详情" :marginBottom="0"></status-nav>
|
|
<!-- 订单简介 -->
|
|
<view class="order-info-bg" v-if="isLoading">
|
|
<view class="order-info">
|
|
<view class="flex">
|
|
<text>订单编号</text>
|
|
<text>{{orderDetail.coding}}</text>
|
|
</view>
|
|
<view class="flex">
|
|
<text>下单时间</text>
|
|
<text>{{orderDetail.created_at}}</text>
|
|
</view>
|
|
<view class="flex">
|
|
<text>订单状态</text>
|
|
<text>{{orderDetail.status_text}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 订单信息 -->
|
|
<view class="order-list" v-if="isLoading">
|
|
<view class="order-item order-item-detail">
|
|
<view class="order-information">订单信息</view>
|
|
<view class="item-bg">
|
|
<view class="item flex" v-for="(item,index) in orderDetail.skus" :key="index" @tap="toDetail(item.spu_id,item.is_series)">
|
|
<view class="img"><image :src="item.spu_cover" mode="widthFix"></image></view>
|
|
<view class="txt">
|
|
<view class="title">{{item.spu_name}}</view>
|
|
<view class="specs clips2">规格:{{item.custom_title}}</view>
|
|
<view class="price flex">
|
|
<text>¥{{item.price}}</text>
|
|
<view><text>x</text>{{item.num}}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="total-price total-price-detail flex">
|
|
<text>总价:¥{{orderDetail.original_price}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 联系方式 -->
|
|
<view class="contact-info-bg" v-if="isLoading">
|
|
<view class="contact-info">
|
|
<view class="title">联系方式</view>
|
|
<view class="name">
|
|
<text>{{orderDetail.contact}}</text>
|
|
<text>{{orderDetail.phone}}</text>
|
|
</view>
|
|
<view class="item">{{orderDetail.address}}</view>
|
|
<view class="item" v-if="orderDetail.remarks!==''">希望到货时间:{{orderDetail.remarks}}</view>
|
|
</view>
|
|
</view>
|
|
<!-- 底部按钮 -->
|
|
<view class="shop-btns order-btns flex">
|
|
<view class="btn btn-grey" @tap="cancleEv" v-if="orderDetail.status == 'ordered'">取消订单</view>
|
|
<view class="btn" @tap="buyAgain" v-if="orderDetail.status == 'completed' || orderDetail.status == 'closed'">再次购买</view>
|
|
</view>
|
|
<!-- 客服btn -->
|
|
<customer-service></customer-service>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import statusNav from '@/components/status-navs/status-nav';
|
|
import customerService from '@/components/customer-service/customer-service.vue';
|
|
import {userInfoEv} from '@/jsFile/public-api.js';
|
|
export default {
|
|
components:{
|
|
statusNav,
|
|
customerService
|
|
},
|
|
data() {
|
|
return {
|
|
orderDetail:{}, //订单详情
|
|
flag:true,
|
|
ifLoading:false,
|
|
id:0, //订单id
|
|
cacheBusinessId:-1, //商户id
|
|
isLoading:false,
|
|
}
|
|
},
|
|
onLoad(op) {
|
|
if(op.id !== ''){
|
|
this.id = op.id;
|
|
if(op.business_id){
|
|
this.cacheBusinessId = op.business_id;
|
|
}
|
|
}
|
|
},
|
|
onShow() {
|
|
if(this.cacheBusinessId !== -1){
|
|
this.$requst.post('/api/index/change-business',{business_id:this.cacheBusinessId}).then(res=>{
|
|
if(res.code == 0){
|
|
this.getOrderDetail();
|
|
userInfoEv();
|
|
}
|
|
})
|
|
}else{
|
|
this.getOrderDetail();
|
|
userInfoEv();
|
|
}
|
|
},
|
|
// 分享到微信
|
|
onShareAppMessage() {
|
|
let path = uni.getStorageSync('page-path-options')+'?business_id='+uni.getStorageSync('business_id');
|
|
return {
|
|
path:path
|
|
}
|
|
},
|
|
// 分享到朋友圈
|
|
onShareTimeline(res){
|
|
let path = uni.getStorageSync('page-path-options')+'?business_id='+uni.getStorageSync('business_id');
|
|
return {
|
|
path:path
|
|
}
|
|
},
|
|
methods: {
|
|
// 查询订单详情
|
|
getOrderDetail(){
|
|
uni.showLoading({
|
|
title: '加载中'
|
|
});
|
|
this.isLoading =false;
|
|
this.$requst.get('/api/user/order-detail',{id:this.id}).then(res=>{
|
|
if(res.code==0){
|
|
this.orderDetail = res.data;
|
|
}
|
|
uni.hideLoading();
|
|
this.isLoading =true;
|
|
})
|
|
},
|
|
|
|
|
|
// 取消订单
|
|
cancleEv(){
|
|
let params = {
|
|
order_coding: this.orderDetail.coding //订单号
|
|
}
|
|
this.$requst.post('/api/order/cancel',params).then(res=>{
|
|
if(res.code==0) {
|
|
this.$toolAll.tools.showToast('取消订单成功(*^▽^*)');
|
|
uni.navigateTo({
|
|
url:'/pagesA/order/order'
|
|
})
|
|
} else {
|
|
this.$toolAll.tools.showToast(res.msg)
|
|
}
|
|
})
|
|
},
|
|
// 再次购买
|
|
buyAgain(index){
|
|
let buyList = [];
|
|
let newArr = this.orderDetail;
|
|
newArr.skus.forEach(item=>{
|
|
let obj = {
|
|
sku_coding: item.coding,
|
|
num: item.num
|
|
}
|
|
buyList.push(obj);
|
|
})
|
|
uni.setStorageSync('buyList',buyList);
|
|
uni.navigateTo({
|
|
url:'/pagesA/cart/prepare'
|
|
})
|
|
},
|
|
//去商品详情页
|
|
toDetail(id,type){
|
|
if(type == 0){
|
|
uni.navigateTo({
|
|
url:`/pagesA/shop/detail?id=${id}&source=shop`
|
|
})
|
|
}
|
|
if(type == 1){
|
|
uni.navigateTo({
|
|
url:`/pages/tabbar/kit/detail?id=${id}`
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style> |