doum
2026-04-27 46e6a2b43b042963953b4d1d6a36e0cee69962b0
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">
@@ -157,7 +158,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.type===1">
            <span class="label">司机取件拍照:</span>
            <div v-if="detailInfo.driverTakeImages && detailInfo.driverTakeImages.length" class="image-list">
              <el-image
@@ -171,7 +172,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.type===1">
            <span class="label">司机送达拍照/门店入库拍照:</span>
            <div v-if="detailInfo.driverDoneImages && detailInfo.driverDoneImages.length" class="image-list">
              <el-image
@@ -185,7 +186,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
@@ -285,37 +286,39 @@
          <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) }}
              ¥{{ ((row.subtotal ||0) / 100).toFixed(2) }}
            </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>基础服务费:¥{{ ((detailInfo.order.price||0) / 100).toFixed(2) }}</span>
          <span>物品保费:¥{{ ((detailInfo.order.declaredFee||0) / 100).toFixed(2) }}</span>
          <span>订单总价:¥{{ ((detailInfo.order.totalAmount||0) / 100).toFixed(2) }}</span>
          <span>实际支付:¥{{ ((detailInfo.order.payAmount||0) / 100).toFixed(2) }}</span>
          <span>退款金额:¥{{ ((detailInfo.order.refundAmount ||0)/ 100).toFixed(2) }}</span>
          <span>超时金额:¥{{ ((detailInfo.order.overdueAmount ||0)/ 100).toFixed(2) }}</span>
          <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: '订单详情',
@@ -333,6 +336,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 +364,7 @@
<style scoped>
.order-detail {
}
.section {
  margin-bottom: 25px;