From 4049531e168e3abd88c1c7809c4350424622cd8e Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 23 六月 2025 21:03:05 +0800 Subject: [PATCH] Merge branch 'dev' of http://42.193.1.25:9521/r/lmk-shop-web into dev --- 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