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/views/order/order/orderDetail.vue |  175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 174 insertions(+), 1 deletions(-)

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