|
@@ -1,5 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
|
|
+ <!-- 订单信息 -->
|
|
<div class="info">
|
|
<div class="info">
|
|
<div class="info-title">订单信息</div>
|
|
<div class="info-title">订单信息</div>
|
|
<div class="info-item">
|
|
<div class="info-item">
|
|
@@ -21,44 +22,46 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 买家信息 -->
|
|
<div class="info">
|
|
<div class="info">
|
|
<div class="info-title">买家信息</div>
|
|
<div class="info-title">买家信息</div>
|
|
<div class="info-item">
|
|
<div class="info-item">
|
|
<div class="info-item-content">
|
|
<div class="info-item-content">
|
|
<div class="info-item-content-one">
|
|
<div class="info-item-content-one">
|
|
<div class="title">用户昵称:</div>
|
|
<div class="title">用户昵称:</div>
|
|
- <div class="txt">{{ info.nickName }}</div>
|
|
|
|
|
|
+ <div class="txt">{{ info.nickName || "--" }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="info-item-content-one">
|
|
<div class="info-item-content-one">
|
|
<div class="title">收货人:</div>
|
|
<div class="title">收货人:</div>
|
|
- <div class="txt">{{ info.receiver }}</div>
|
|
|
|
|
|
+ <div class="txt">{{ info.receiver || "--" }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="info-item-content-one">
|
|
<div class="info-item-content-one">
|
|
<div class="title">联系电话:</div>
|
|
<div class="title">联系电话:</div>
|
|
- <div class="txt">{{ info.tel }}</div>
|
|
|
|
|
|
+ <div class="txt">{{ info.tel || "--" }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="info-item-content">
|
|
<div class="info-item-content">
|
|
<div class="info-item-content-one">
|
|
<div class="info-item-content-one">
|
|
<div class="title">收货地址:</div>
|
|
<div class="title">收货地址:</div>
|
|
<div class="">
|
|
<div class="">
|
|
- {{ `${info.province}${info.city}${info.area}${info.address}` }}
|
|
|
|
|
|
+ {{
|
|
|
|
+ `${info.province || "--"}${info.city || "--"}${
|
|
|
|
+ info.area || "--"
|
|
|
|
+ }${info.address || "--"}`
|
|
|
|
+ }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 订单状态 -->
|
|
<div class="info">
|
|
<div class="info">
|
|
<div class="info-title">订单状态</div>
|
|
<div class="info-title">订单状态</div>
|
|
<div class="info-item">
|
|
<div class="info-item">
|
|
<div class="info-item-content">
|
|
<div class="info-item-content">
|
|
<div class="info-item-content-one">
|
|
<div class="info-item-content-one">
|
|
<div class="title">订单状态:</div>
|
|
<div class="title">订单状态:</div>
|
|
- <div class="txt">{{ status.desc }}</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="info-item-content-one" v-if="status.value === 2">
|
|
|
|
- <div class="title">发货时间:</div>
|
|
|
|
- <div class="txt">{{ "--" }}</div>
|
|
|
|
|
|
+ <div class="txt">{{ status.desc || "--" }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="info-item-content">
|
|
<div class="info-item-content">
|
|
@@ -69,18 +72,47 @@
|
|
@click="toGoods()"
|
|
@click="toGoods()"
|
|
>发货</el-button
|
|
>发货</el-button
|
|
>
|
|
>
|
|
- <div class="info-item-content-one" v-if="status.value === 2">
|
|
|
|
- <div class="title">快递公司:</div>
|
|
|
|
- <div class="txt">{{ "--" }}</div>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 物流信息 -->
|
|
|
|
+ <div class="info" v-if="status.value === 2">
|
|
|
|
+ <div class="info-title">物流信息</div>
|
|
|
|
+ <div class="info-item">
|
|
|
|
+ <div
|
|
|
|
+ class="info-item-logistics"
|
|
|
|
+ v-for="(item, index) in deliverList"
|
|
|
|
+ :key="index"
|
|
|
|
+ >
|
|
|
|
+ <div class="title">快递{{ index + 1 }}</div>
|
|
|
|
+ <div class="info">
|
|
|
|
+ <div class="info-one">
|
|
|
|
+ <div class="tit">快递公司:</div>
|
|
|
|
+ <div class="txt">{{ item.companyName || "--" }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-one">
|
|
|
|
+ <div class="tit">快递单号:</div>
|
|
|
|
+ <div class="txt">{{ item.deliveryFlowId || "--" }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="info-one">
|
|
|
|
+ <div class="tit">发货时间:</div>
|
|
|
|
+ <div class="txt">{{ parseTime(item.deliveryTime) || "--" }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="info-item-content-one" v-if="status.value === 2">
|
|
|
|
- <div class="title">快递单号:</div>
|
|
|
|
- <div class="txt">{{ "--" }}</div>
|
|
|
|
|
|
+ <div class="goods">
|
|
|
|
+ <div class="goods-item" v-for="(ele, ins) in item.items" :key="ins">
|
|
|
|
+ <img :src="ele.picUrl" alt="" />
|
|
|
|
+ <div class="info">
|
|
|
|
+ <div>{{ ele.title || "--" }}</div>
|
|
|
|
+ <div>{{ ele.properties || "--" }}</div>
|
|
|
|
+ <div>{{ ele.goodsNum }}件</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+ <!-- 商品信息 -->
|
|
<div class="info">
|
|
<div class="info">
|
|
<div class="info-title">商品信息</div>
|
|
<div class="info-title">商品信息</div>
|
|
<div class="info-table">
|
|
<div class="info-table">
|
|
@@ -112,6 +144,7 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 按钮 -->
|
|
<div class="info-amt">
|
|
<div class="info-amt">
|
|
<div class="info-amt-price">
|
|
<div class="info-amt-price">
|
|
<span>运费:</span>{{ $numberFormat(info.freightAmt) }}元
|
|
<span>运费:</span>{{ $numberFormat(info.freightAmt) }}元
|
|
@@ -121,65 +154,94 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <!-- 发货 -->
|
|
|
|
+ <send-goods :send-show="goodsShow" :goods-info="info" @close="close" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import { deliverDetail } from "@/api/business/order";
|
|
import { deliverDetail } from "@/api/business/order";
|
|
import { publicFileGetUrl } from "@/api/common";
|
|
import { publicFileGetUrl } from "@/api/common";
|
|
-import { accMul } from "@/utils/util";
|
|
|
|
|
|
+import SendGoods from "./components/SendGoods";
|
|
export default {
|
|
export default {
|
|
- name: "Detail",
|
|
|
|
|
|
+ name: "UserDetail",
|
|
|
|
+ components: {
|
|
|
|
+ SendGoods,
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ // 订单ID
|
|
orderId: "",
|
|
orderId: "",
|
|
|
|
+ // 订单详情
|
|
info: {},
|
|
info: {},
|
|
|
|
+ // 订单状态
|
|
status: {},
|
|
status: {},
|
|
|
|
+ // 商品信息列表
|
|
list: [],
|
|
list: [],
|
|
|
|
+ // 物流信息性别
|
|
|
|
+ deliverList: [],
|
|
|
|
+ // 发货显示
|
|
|
|
+ goodsShow: false,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.orderId = this.$route.query.id;
|
|
this.orderId = this.$route.query.id;
|
|
- console.log(this.orderId);
|
|
|
|
this.getDetail();
|
|
this.getDetail();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // 订单详情
|
|
getDetail() {
|
|
getDetail() {
|
|
deliverDetail({ orderId: this.orderId }).then((res) => {
|
|
deliverDetail({ orderId: this.orderId }).then((res) => {
|
|
- console.log("res", res);
|
|
|
|
if (res.code == 0) {
|
|
if (res.code == 0) {
|
|
this.info = res.data;
|
|
this.info = res.data;
|
|
this.status = JSON.parse(res.data.status);
|
|
this.status = JSON.parse(res.data.status);
|
|
- res.data.items.forEach((item) => {
|
|
|
|
- let picUrlArr = item.picUrl.split(",");
|
|
|
|
- item.picUrl = publicFileGetUrl + picUrlArr[0];
|
|
|
|
- });
|
|
|
|
|
|
+ res.data.deliverList &&
|
|
|
|
+ res.data.deliverList.forEach((item) => {
|
|
|
|
+ item.items.forEach((ele) => {
|
|
|
|
+ let picUrlArr = ele.picUrl.split(",");
|
|
|
|
+ ele.picUrl = publicFileGetUrl + picUrlArr[0];
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ this.deliverList = res.data.deliverList;
|
|
|
|
+ res.data.items &&
|
|
|
|
+ res.data.items.forEach((item) => {
|
|
|
|
+ let picUrlArr = item.picUrl.split(",");
|
|
|
|
+ item.picUrl = publicFileGetUrl + picUrlArr[0];
|
|
|
|
+ });
|
|
this.list = res.data.items;
|
|
this.list = res.data.items;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
|
|
- toGoods() {},
|
|
|
|
|
|
+ // 点击发货
|
|
|
|
+ toGoods() {
|
|
|
|
+ this.goodsShow = true;
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 发货关闭
|
|
|
|
+ close() {
|
|
|
|
+ this.goodsShow = false;
|
|
|
|
+ this.getDetail();
|
|
|
|
+ },
|
|
},
|
|
},
|
|
- components: {},
|
|
|
|
- mounted() {},
|
|
|
|
- destroyed() {},
|
|
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
.info {
|
|
.info {
|
|
- margin-bottom: 40px;
|
|
|
|
|
|
+ margin-bottom: 30px;
|
|
&-title {
|
|
&-title {
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
&-item {
|
|
&-item {
|
|
|
|
+ padding-left: 50px;
|
|
&-content {
|
|
&-content {
|
|
display: flex;
|
|
display: flex;
|
|
|
|
|
|
&-one {
|
|
&-one {
|
|
display: flex;
|
|
display: flex;
|
|
- margin-bottom: 40px;
|
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
|
.title {
|
|
.title {
|
|
width: 100px;
|
|
width: 100px;
|
|
@@ -190,6 +252,45 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ &-logistics {
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ .title {
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ }
|
|
|
|
+ .info {
|
|
|
|
+ display: flex;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ &-one {
|
|
|
|
+ display: flex;
|
|
|
|
+ }
|
|
|
|
+ .tit {
|
|
|
|
+ width: 100px;
|
|
|
|
+ }
|
|
|
|
+ .txt {
|
|
|
|
+ width: 200px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .goods {
|
|
|
|
+ margin: 10px 0;
|
|
|
|
+ &-item {
|
|
|
|
+ display: flex;
|
|
|
|
+ border-bottom: 1px solid #f3eeee;
|
|
|
|
+ img {
|
|
|
|
+ width: 100px;
|
|
|
|
+ height: 100px;
|
|
|
|
+ }
|
|
|
|
+ .info {
|
|
|
|
+ padding-left: 20px;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ height: 100px;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
&-amt {
|
|
&-amt {
|
|
margin-top: 20px;
|
|
margin-top: 20px;
|