From 9944e3613fb7db6e7f029abf7616503830a19095 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 23 六月 2025 14:16:45 +0800
Subject: [PATCH] update 解决后台无法查看快递问题
---
manager/src/api/order.js | 4 +
manager/src/views/order/order/orderDetail.vue | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 178 insertions(+), 1 deletions(-)
diff --git a/manager/src/api/order.js b/manager/src/api/order.js
index 4981a96..b46c866 100644
--- a/manager/src/api/order.js
+++ b/manager/src/api/order.js
@@ -130,6 +130,10 @@
export const getLogisticsChecked = () => {
return getRequest(`/other/logistics/getChecked`)
}
+//鏌ヨ鍖呰9鍒楄〃
+export const getPackage = (orderSn) => {
+ return getRequest(`/order/order/getPackage/${orderSn}`);
+}
//鏌ヨ鐗╂祦
export const getTraces = (sn, params) => {
diff --git a/manager/src/views/order/order/orderDetail.vue b/manager/src/views/order/order/orderDetail.vue
index dbf46b1..0007005 100644
--- a/manager/src/views/order/order/orderDetail.vue
+++ b/manager/src/views/order/order/orderDetail.vue
@@ -7,6 +7,7 @@
<Button v-if="allowOperation.editConsignee" @click="editAddress" type="primary" ghost>淇敼鏀惰揣鍦板潃</Button>
<Button v-if="allowOperation.cancel" @click="orderCancel" type="warning" ghost>璁㈠崟鍙栨秷</Button>
<Button v-if="orderInfo.order.orderStatus === 'UNPAID'" @click="confirmPrice" type="primary">鏀舵</Button>
+ <Button v-if="allowOperation.showLogistics || orderPackage.length > 0" @click="checkLogistics" type="primary">鏌ョ湅鐗╂祦</Button>
<Button @click="orderLog" type="info" ghost>璁㈠崟鏃ュ織</Button>
<Button @click="printOrder" type="primary" ghost style="float:right;"
v-if="$route.query.orderType != 'VIRTUAL'">鎵撳嵃鍙戣揣鍗�</Button>
@@ -310,6 +311,74 @@
<Button type="primary" @click="modifyPriceSubmit">璋冩暣</Button>
</div>
</Modal>
+ <!-- 鏌ヨ鐗╂祦 -->
+ <Modal v-model="logisticsModal" width="40">
+ <p slot="header">
+ <span>鏌ヨ鐗╂祦</span>
+ </p>
+ <div class="layui-layer-wrap">
+ <dl>
+ <dt>璁㈠崟鍙凤細</dt>
+ <dd>
+ <div class="text-box">{{ sn }}</div>
+ </dd>
+ </dl>
+ </div>
+ <div v-if="packageTraceList.length > 0" v-for="(packageItem, packageIndex) in packageTraceList" :key="packageIndex">
+ <div class="layui-layer-wrap">
+ <dl>
+ <dt>鐗╂祦鍏徃锛�</dt>
+ <dd><div class="text-box">{{ packageItem.logisticsName }}</div></dd>
+ </dl>
+ <dl>
+ <dt>蹇�掑崟鍙凤細</dt>
+ <dd><div nctype="ordersSn" class="text-box">{{ packageItem.logisticsNo }}</div></dd>
+ </dl>
+ <div class="div-express-log">
+ <ul class="express-log express-log-name">
+ <li v-for="(item, index) in packageItem.orderPackageItemList" :key="index">
+ <span class="time" style="width: 50%;"><span>鍟嗗搧鍚嶇О锛�</span><span>{{ item.goodsName }}</span></span>
+ <span class="time" style="width: 30%;"><span>鍙戣揣鏃堕棿锛�</span><span>{{ item.logisticsTime }}</span></span>
+ <span class="time" style="width: 20%;"><span>鍙戣揣鏁伴噺锛�</span><span>{{ item.deliverNumber }}</span></span>
+ </li>
+ </ul>
+ </div>
+ <div class="div-express-log">
+ <ul class="express-log" v-if="packageItem.traces && packageItem.traces.traces">
+ <li v-for="(item, index) in packageItem.traces.traces" :key="index">
+ <span class="time">{{ item.AcceptTime || item.acceptTime }}</span>
+ <span class="detail">{{ item.AcceptStation || item.remark }}</span>
+ </li>
+ </ul>
+ <ul class="express-log" v-else><li>鏆傛棤鐗╂祦淇℃伅</li></ul>
+ </div>
+ </div>
+ </div>
+ <div v-if = "packageTraceList.length == 0 && logisticsInfo">
+ <div class="layui-layer-wrap">
+ <dl>
+ <dt>鐗╂祦鍏徃锛�</dt>
+ <dd><div class="text-box">{{ logisticsInfo.shipper }}</div></dd>
+ </dl>
+ <dl>
+ <dt>蹇�掑崟鍙凤細</dt>
+ <dd><div nctype="ordersSn" class="text-box">{{ logisticsInfo.logisticCode }}</div></dd>
+ </dl>
+ <div class="div-express-log">
+ <ul class="express-log" v-if="logisticsInfo && logisticsInfo.traces">
+ <li v-for="(item, index) in logisticsInfo.traces" :key="index">
+ <span class="time">{{ item.AcceptTime }}</span>
+ <span class="detail">{{ item.AcceptStation }}</span>
+ </li>
+ </ul>
+ <ul class="express-log" v-else><li>鏆傛棤鐗╂祦淇℃伅</li></ul>
+ </div>
+ </div>
+ </div>
+ <div slot="footer" style="text-align: right">
+ <Button @click="logisticsModal = false">鍙栨秷</Button>
+ </div>
+ </Modal>
<!-- 璁㈠崟鍙栨秷妯℃�佹 -->
<Modal v-model="orderCancelModal" width="530">
<p slot="header">
@@ -468,6 +537,12 @@
orderLogModal: false, //寮瑰嚭璋冩暣浠锋牸妗�
checkedLogistics: [], //閫変腑鐨勭墿娴佸叕鍙搁泦鍚�
allowOperation: {}, //璁㈠崟鍙墠鍋氶�夐」
+ logisticsModal: false, //寮瑰嚭鏌ヨ鐗╂祦妗�
+ packageTraceList: [],
+ orderPackage: [],
+ logisticsInfo: {
+ shipper: "",
+ }, //鐗╂祦淇℃伅
sn: "", //璁㈠崟缂栧彿
orderInfo: {
order: {
@@ -645,7 +720,39 @@
gotoHomes () {
return false
},
-
+ getOrderPackage() {
+ API_Order.getPackage(this.sn).then(res => {
+ if (res.success) {
+ this.orderPackage = res.result;
+ console.log('this.orderPackage',this.orderPackage);
+ }
+ })
+ },
+ //鏌ヨ鐗╂祦
+ checkLogistics () {
+ this.logisticsModal = true;
+ if (this.orderPackage.length > 0) {
+ this.logisticsList();
+ } else {
+ this.logistics();
+ }
+ },
+ logisticsList () {
+ this.logisticsModal = true;
+ API_Order.getPackage(this.sn).then((res) => {
+ if (res.success && res.result != null) {
+ this.packageTraceList = res.result;
+ }
+ });
+ },
+ logistics () {
+ this.logisticsModal = true;
+ API_Order.getTraces(this.sn).then((res) => {
+ if (res.success && res.result != null) {
+ this.logisticsInfo = res.result;
+ }
+ });
+ },
//纭鏀舵
confirmPrice () {
this.$Modal.confirm({
@@ -805,6 +912,7 @@
mounted () {
this.sn = this.$route.query.sn;
this.getDataList();
+ this.getOrderPackage();
},
};
</script>
@@ -910,7 +1018,72 @@
}
}
}
+.div-express-log {
+ max-height: 300px;
+ border: solid 1px #e7e7e7;
+ background: #fafafa;
+ overflow-y: auto;
+ overflow-x: auto;
+}
+.layui-layer-wrap {
+ dl {
+ border-top: solid 1px #f5f5f5;
+ margin-top: -1px;
+ overflow: hidden;
+ dt {
+ font-size: 14px;
+ line-height: 28px;
+ display: inline-block;
+ padding: 8px 1% 8px 0;
+ color: #999;
+ }
+
+ dd {
+ font-size: 14px;
+ line-height: 28px;
+ display: inline-block;
+ padding: 8px 0 8px 8px;
+ border-left: solid 1px #f5f5f5;
+
+ .text-box {
+ line-height: 40px;
+ color: #333;
+ word-break: break-all;
+ }
+ }
+ }
+}
+.express-log {
+ /*margin: 5px -10px 5px 5px;*/
+ padding: 10px;
+ list-style-type: none;
+
+ .time {
+ width: 30%;
+ display: inline-block;
+ float: left;
+ }
+
+ .detail {
+ width: 60%;
+ margin-left: 30px;
+ display: inline-block;
+ }
+
+ li {
+ line-height: 30px;
+ }
+}
+
+.express-log-name {
+ li {
+ display: flex;
+ span {
+ display: flex;
+ }
+ }
+}
.f14 {
font-size: 14px;
color: #333;
--
Gitblit v1.8.0