From e9a7cddce776382916e975402986144a88899ac5 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 14 五月 2026 18:29:14 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
admin/src/components/business/OperaOrderDetail.vue | 129 ++++++++++++++++++++++++++++++-------------
1 files changed, 90 insertions(+), 39 deletions(-)
diff --git a/admin/src/components/business/OperaOrderDetail.vue b/admin/src/components/business/OperaOrderDetail.vue
index b150cf9..5e6f870 100644
--- a/admin/src/components/business/OperaOrderDetail.vue
+++ b/admin/src/components/business/OperaOrderDetail.vue
@@ -2,17 +2,18 @@
<GlobalWindow
:title="title"
:visible.sync="visible"
- width="900px"
+ width="1000px"
:withFooter="false"
>
<div class="order-detail" v-if="detailInfo">
<div class="section">
<div class="section-header">
<span class="section-title">璁㈠崟璇︽儏</span>
- <el-tag v-if="detailInfo.status === 1" type="warning">寰呭彇浠�</el-tag>
- <el-tag v-else-if="detailInfo.status === 2" type="primary">閰嶉�佷腑</el-tag>
- <el-tag v-else-if="detailInfo.status === 3" type="success">宸插畬鎴�</el-tag>
- <el-tag v-else-if="detailInfo.status === 4" type="info">宸插彇娑�</el-tag>
+ <el-tag v-if="detailInfo.order && detailInfo.order.status === 4" type="primary">{{detailInfo.statusDesc}}</el-tag>
+ <el-tag v-else-if="detailInfo.order && detailInfo.order.status <7" type="warning" >{{detailInfo.statusDesc}}</el-tag>
+ <el-tag v-else-if="detailInfo.order && detailInfo.order.status ===7" type="success">{{detailInfo.statusDesc}}</el-tag>
+ <el-tag v-else type="info">{{detailInfo.statusDesc}}</el-tag>
+ <el-button style="" type="primary" @click="showLogList" >鍔犳�ユ棩蹇�</el-button>
</div>
<div class="info-grid">
<div class="info-item">
@@ -27,7 +28,7 @@
<span class="label">璁㈠崟绫诲瀷锛�</span>
<span class="value">
<span v-if="detailInfo.order.type === 0">灏卞湴瀛樺彇</span>
- <span v-else-if="detailInfo.order.type === 1">寮傚湴瀛樺彇</span>
+ <span v-else-if="detailInfo.order.type === 1">鍚屽煄瀵勯��</span>
<span v-else>-</span>
</span>
</div>
@@ -49,9 +50,9 @@
</span>
</div>
- <div class="info-item">
+ <div class="info-item" v-if="detailInfo.order.type ===1">
<span class="label">璁㈠崟绾у埆锛�</span>
- <span class="value">{{ detailInfo.order.orderLevel || '-' }}</span>
+ <span class="value">{{ detailInfo.order.isUrgent === 1?'鏋侀�熻揪':'鏍囬�熻揪' }}</span>
</div>
<div class="info-item">
<span class="label">棰勮鍒板簵鏃堕棿锛�</span>
@@ -74,8 +75,9 @@
<span class="value">楼{{ (detailInfo.order.declaredFee / 100).toFixed(2) }}</span>
</div>
<div class="info-item">
- <span class="label">棰勮瀵勫瓨澶╂暟/閰嶉�侀噷绋嬶細</span>
- <span class="value">{{ detailInfo.order.estimatedDepositDays || '-' }}澶�/{{ detailInfo.order.distance || '-' }}鍏噷</span>
+ <span class="label">{{detailInfo.order.type === 0 ? '棰勮瀵勫瓨澶╂暟' : '閰嶉�侀噷绋�'}}锛�</span>
+ <span class="value" v-if="detailInfo.order.type === 0">{{ detailInfo.order.estimatedDepositDays || '-' }}澶�</span>
+ <span class="value" v-if="detailInfo.order.type === 1">{{ detailInfo.order.distance || '-' }}鍏噷</span>
</div>
<div class="info-item full-width">
<span class="label">瀹㈡埛澶囨敞锛�</span>
@@ -83,13 +85,13 @@
</div>
<div class="info-item full-width">
<span class="label">鐗╁搧鎷嶇収锛�</span>
- <div v-if="detailInfo.depositImages && detailInfo.depositImages.length" class="image-list">
+ <div v-if="detailInfo.orderFiles && detailInfo.orderFiles.length" class="image-list">
<el-image
- v-for="(img, index) in detailInfo.depositImages"
+ v-for="(img, index) in detailInfo.orderFiles"
:key="index"
style="width: 80px; height: 80px; margin-right: 10px"
:src="img"
- :preview-src-list="detailInfo.depositImages"
+ :preview-src-list="detailInfo.orderFiles"
fit="cover"
></el-image>
</div>
@@ -129,11 +131,11 @@
</div>
<div class="info-item">
<span class="label">瀵勪欢鍦板潃锛�</span>
- <span class="value">{{ detailInfo.order.depositLocation || '' }}{{ detailInfo.order.depositLocationRemark || '' }}</span>
+ <span class="value">{{ detailInfo.order.depositLocationRemark || '' }}</span>
</div>
<div class="info-item">
<span class="label">鏀朵欢鍦板潃锛�</span>
- <span class="value">{{ detailInfo.order.takeLocation || '' }}{{ detailInfo.order.takeLocationRemark || '' }}</span>
+ <span class="value">{{ detailInfo.order.takeLocationRemark || '' }}</span>
</div>
<div class="info-item">
<span class="label">鏄惁鏀朵欢鏈嶅姟鐐癸細</span>
@@ -145,19 +147,19 @@
</div>
<div class="info-item full-width">
<span class="label">闂ㄥ簵鏀朵欢鎷嶇収锛�</span>
- <div v-if="detailInfo.storeInImages && detailInfo.storeInImages.length" class="image-list">
+ <div v-if="detailInfo.depositImages && detailInfo.depositImages.length" class="image-list">
<el-image
- v-for="(img, index) in detailInfo.storeInImages"
+ v-for="(img, index) in detailInfo.depositImages"
:key="index"
style="width: 80px; height: 80px; margin-right: 10px"
:src="img"
- :preview-src-list="detailInfo.storeInImages"
+ :preview-src-list="detailInfo.depositImages"
fit="cover"
></el-image>
</div>
<span v-else>-</span>
</div>
- <div class="info-item full-width">
+ <div class="info-item full-width" v-if="detailInfo.order && detailInfo.order.type===1">
<span class="label">鍙告満鍙栦欢鎷嶇収锛�</span>
<div v-if="detailInfo.driverTakeImages && detailInfo.driverTakeImages.length" class="image-list">
<el-image
@@ -171,8 +173,22 @@
</div>
<span v-else>-</span>
</div>
- <div class="info-item full-width">
- <span class="label">鍙告満閫佽揪鎷嶇収/闂ㄥ簵鍏ュ簱鎷嶇収锛�</span>
+ <div class="info-item full-width" v-if="detailInfo.order && detailInfo.order.type===1 && detailInfo.order.takeShopId">
+ <span class="label">闂ㄥ簵鍏ュ簱鎷嶇収锛�</span>
+ <div v-if="detailInfo.storeInImages && detailInfo.storeInImages.length" class="image-list">
+ <el-image
+ v-for="(img, index) in detailInfo.storeInImages"
+ :key="index"
+ style="width: 80px; height: 80px; margin-right: 10px"
+ :src="img"
+ :preview-src-list="detailInfo.storeInImages"
+ fit="cover"
+ ></el-image>
+ </div>
+ <span v-else>-</span>
+ </div>
+ <div class="info-item full-width" v-if="detailInfo.order && detailInfo.order.type===1 && !detailInfo.order.takeShopId">
+ <span class="label">鍙告満閫佽揪鎷嶇収锛�</span>
<div v-if="detailInfo.driverDoneImages && detailInfo.driverDoneImages.length" class="image-list">
<el-image
v-for="(img, index) in detailInfo.driverDoneImages"
@@ -185,7 +201,7 @@
</div>
<span v-else>-</span>
</div>
- <div class="info-item full-width">
+ <div class="info-item full-width" v-if="detailInfo.order && detailInfo.order.takeShopId">
<span class="label">闂ㄥ簵鍑哄簱鎷嶇収锛�</span>
<div v-if="detailInfo.storeOutImages && detailInfo.storeOutImages.length" class="image-list">
<el-image
@@ -202,7 +218,7 @@
</div>
</div>
- <div class="section">
+ <div class="section" v-if="detailInfo.order.cancelTime">
<div class="section-header">
<span class="section-title">鍙栨秷淇℃伅</span>
</div>
@@ -235,7 +251,7 @@
<div class="info-item">
<span class="label">閫�娆鹃噾棰濓細</span>
- <span class="value">{{ detailInfo.ordersRefund.createTime || '-' }}</span>
+ <span class="value">楼{{ (detailInfo.ordersRefund.refundAmount / 100).toFixed(2) || '-' }}</span>
</div>
<div class="info-item">
<span class="label">閫�娆惧鐞嗘椂闂达細</span>
@@ -280,42 +296,44 @@
<div class="section-header">
<span class="section-title">鐗╁搧淇℃伅</span>
</div>
- <el-table :data="detailInfo.detailList" stripe class="goods-table">
+ <el-table :data="detailInfo.detailList" stripe class="goods-table" :header-row-style="headerRowStyle">
<el-table-column prop="typeName" label="鐗╁搧鍚嶇О" min-width="80px"></el-table-column>
<el-table-column prop="luggageName" label="鐗╁搧灏哄" min-width="80px"></el-table-column>
<el-table-column label="鍗曚环锛堝厓锛�" min-width="100px">
<template slot-scope="{row}">
- 楼{{ (row.unitPriceYuan / 100).toFixed(2) }}
+ 楼{{ ((row.unitPrice||0) / 100).toFixed(2) }}
</template>
</el-table-column>
<el-table-column prop="num" label="鏁伴噺" min-width="60px"></el-table-column>
<el-table-column label="灏忚锛堝厓锛�" min-width="100px">
<template slot-scope="{row}">
- 楼{{ (row.subtotal / 100).toFixed(2) }}
+ <span class="yellowstate"> 楼{{ ((row.subtotal ||0) / 100).toFixed(2) }}</span>
</template>
</el-table-column>
</el-table>
- <div class="price-summary">
- <span>鍩虹鏈嶅姟璐癸細楼{{ (detailInfo.order.price / 100).toFixed(2) }}</span>
- <span>鐗╁搧淇濊垂锛毬{ (detailInfo.order.declaredFee / 100).toFixed(2) }}</span>
- <span>璁㈠崟鎬讳环锛毬{ (detailInfo.order.totalAmount / 100).toFixed(2) }}</span>
- <span>瀹為檯鏀粯锛毬{ (detailInfo.order.payAmount / 100).toFixed(2) }}</span>
- <span>閫�娆鹃噾棰濓細楼{{ (detailInfo.order.refundAmount / 100).toFixed(2) }}</span>
- <span>瓒呮椂閲戦锛毬{ (detailInfo.order.overdueAmount / 100).toFixed(2) }}</span>
- <span>寮傚父閲戦锛毬{ (detailInfo.order.exceptionAmount / 100).toFixed(2) }}</span>
+ <div class="price-summary" v-if="detailInfo.order">
+ <span class="price-span">鍩虹鏈嶅姟璐癸細楼{{ ((detailInfo.order.price||0) / 100).toFixed(2) }}</span>
+ <span class="price-span">鐗╁搧淇濊垂锛毬{ ((detailInfo.order.declaredFee||0) / 100).toFixed(2) }}</span>
+ <span class="price-span">璁㈠崟鎬讳环锛毬{ ((detailInfo.order.totalAmount||0) / 100).toFixed(2) }}</span>
+ <span class="price-span">瀹為檯鏀粯锛毬{ ((detailInfo.order.payAmount||0) / 100).toFixed(2) }}</span>
+ <span class="price-span">閫�娆鹃噾棰濓細楼{{ ((detailInfo.order.refundAmount ||0)/ 100).toFixed(2) }}</span>
+ <span class="price-span">瓒呮椂閲戦锛毬{ ((detailInfo.order.overdueAmount ||0)/ 100).toFixed(2) }}</span>
+ <span class="price-span">寮傚父閲戦锛毬{ ((detailInfo.order.exceptionAmount ||0)/ 100).toFixed(2) }}</span>
</div>
</div>
</div>
+
+ <orderProgress ref ='orderProgress'></orderProgress>
</GlobalWindow>
</template>
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
-import { getById } from '@/api/business/orderManagement'
-
+import { getById ,logListPage} from '@/api/business/orderManagement'
+import orderProgress from '@/components/business/orderProgress'
export default {
name: 'OperaOrderDetail',
- components: { GlobalWindow },
+ components: { GlobalWindow ,orderProgress},
data () {
return {
title: '璁㈠崟璇︽儏',
@@ -324,6 +342,13 @@
}
},
methods: {
+ headerRowStyle({ rowIndex }) {
+ return {
+ background: '#007bff' ,
+ color : '#333',
+ height: '50px'
+ }
+ },
open (row) {
this.title = '璁㈠崟璇︽儏'
getById(row.id).then(res => {
@@ -333,6 +358,27 @@
}).catch(e => {
this.$tip.apiFailed(e)
})
+ },
+ showLogList () {
+ var that = this
+ if (!this.detailInfo.order || !this.detailInfo.order.id) {
+ return
+ }
+ logListPage({
+ capacity: 10000,
+ model: {
+ orderId: this.detailInfo.order.id
+ },
+ page: 1
+ }).then(res => {
+ var orderLogList = res.records || []
+ if (orderLogList.length) {
+ this.$refs.orderProgress.open('璁㈠崟娲惧崟鏃ュ織', orderLogList || [])
+ } else {
+ this.$message.warning('鏈煡璇㈠埌浠讳綍娲惧崟璁板綍锛�')
+ }
+ }).catch(e => {
+ })
}
}
}
@@ -340,7 +386,7 @@
<style scoped>
.order-detail {
-
+
}
.section {
margin-bottom: 25px;
@@ -385,6 +431,7 @@
}
.goods-table {
margin-bottom: 15px;
+ border: 1px solid #f2f2f2;
}
.price-summary {
display: flex;
@@ -395,5 +442,9 @@
border-radius: 4px;
font-size: 14px;
color: #606266;
+
+}
+.price-span{
+ width: 20%;
}
</style>
--
Gitblit v1.9.3