jiangping
2025-02-28 69283b5a4559509187516355602e32e4bdac9d5d
admin/src/views/combo/components/OrderDetail.vue
@@ -1,45 +1,95 @@
<template>
  <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking">
    <div class="title">支付明细</div>
    <el-table :data="list" stripe border>
      <el-table-column prop="id" label="订单编号" show-overflow-tooltip align="center"></el-table-column>
      <el-table-column prop="onlineorderId" label="交易单号" show-overflow-tooltip align="center"></el-table-column>
      <el-table-column prop="refundType" label="交易类型" width="100px" align="center">
  <GlobalWindow :title="title" width="1100px" :visible.sync="visible" :confirm-working="isWorking">
    <div class="title">订单信息</div>
    <div class="info_warp">
      <div class="item">
        <div class="la">订单编号:</div>
        <div class="val">{{ info.id }}</div>
      </div>
      <div class="item">
        <div class="la">订单状态:</div>
        <div class="val">{{ info.status == 1 ? '已支付' : '未支付' }}</div>
      </div>
      <div class="item">
        <div class="la">下单时间:</div>
        <div class="val">{{ info.createDate }}</div>
      </div>
      <div class="item">
        <div class="la">支付时间:</div>
        <div class="val">{{ info.payDate }}</div>
      </div>
      <div class="item">
        <div class="la">订单金额:</div>
        <div class="val">{{ info.money }}</div>
      </div>
      <div class="item">
        <div class="la">支付方式:</div>
        <div class="val">{{ info.payWay == 0 ? '微信' : '支付宝' }}</div>
      </div>
      <div class="item">
        <div class="la">支付单号:</div>
        <div class="val">{{ info.onlineOrderid }}</div>
      </div>
      <div class="item">
        <div class="la">完成时间:</div>
        <div class="val">{{ info.payDate }}</div>
      </div>
      <div class="item">
        <div class="la">备注:</div>
        <div class="val">{{ info.closeInfo }}</div>
      </div>
    </div>
    <div class="title">买家信息</div>
    <div class="info_warp">
      <div class="item">
        <div class="la">呢称:</div>
        <div class="val">{{ form.member.name }}</div>
      </div>
      <div class="item">
        <div class="la">手机号:</div>
        <div class="val">{{ form.member.phone }}</div>
      </div>
      <div class="item">
        <div class="la">openId:</div>
        <div class="val">{{ form.member.openid }}</div>
      </div>
    </div>
    <div class="title">商品信息</div>
    <el-table :data="[goods]" stripe border>
      <el-table-column prop="name" min-width="100px" label="套餐卡" show-overflow-tooltip align="center"></el-table-column>
      <el-table-column prop="refundType" label="有效期" min-width="160px" align="center">
        <template slot-scope="{row}">
          {{ typeToStr(row.refundType) }}
          {{ row.useStartDate }} 至 {{ row.useEndDate }}
        </template>
      </el-table-column>
      <el-table-column prop="money" label="交易金额(元)" width="100px" align="center"></el-table-column>
      <el-table-column prop="payWay" label="渠道" width="100px" align="center">
      <el-table-column label="数量" width="80px" align="center">
        <template slot-scope="{row}">
          {{ row.payWay==0? '微信' : '支付宝' }}
          <span>1</span>
        </template>
      </el-table-column>
      <el-table-column prop="payDate" label="交易时间" width="150px" align="center"></el-table-column>
      <el-table-column prop="price" label="价格" width="100px" align="center"></el-table-column>
      <el-table-column prop="payWay" label="状态" width="100px" align="center">
        <template slot-scope="{row}">
          {{ info.status == 1 ? '已支付' : '未支付' }}
        </template>
      </el-table-column>
    </el-table>
    <div class="title">骑行记录</div>
    <el-table
      :data="memberRidesList"
      stripe
      border
    >
      <el-table-column prop="openid" label="用户" width="250px" show-overflow-tooltip align="center"></el-table-column>
      <el-table-column prop="bikeCode" label="车辆编号" width="100px" align="center"></el-table-column>
      <el-table-column prop="bikeType" label="车类型" width="200px" align="center"></el-table-column>
      <el-table-column prop="rideTime" label="借出时长(分)" width="200px" align="center"></el-table-column>
      <el-table-column prop="duration" label="计费时长(分)" width="200px" align="center"></el-table-column>
      <el-table-column prop="bikeType" label="车类型" width="150px" align="center"></el-table-column>
      <el-table-column prop="rentDate" label="借出时间" width="150px" align="center"></el-table-column>
      <el-table-column prop="backDate" label="还车时间" width="150px" align="center"></el-table-column>
      <el-table-column prop="closeStatus" fixed="right" label="结算状态" width="100px" align="center">
        <template slot-scope="{row}">
          {{ row.closeStatus == 0 ? '未结算' : '已结算' }}
    <div v-if="form.refundList && form.refundList.length > 0" class="title">退款信息</div>
    <el-table v-if="form.refundList && form.refundList.length > 0" :data="form.refundList" stripe border>
      <el-table-column prop="createDate" label="退款时间" min-width="180px" show-overflow-tooltip align="center"></el-table-column>
      <el-table-column prop="money" label="退款金额" min-width="100px" align="center"></el-table-column>
      <el-table-column label="状态" min-width="100px" align="center">
        <template v-slot="{row}">
          <span v-if="row.status == 0">预退款</span>
          <span v-if="row.status == 1">退款失败</span>
          <span v-if="row.status == 2">退款完成</span>
        </template>
      </el-table-column>
      <el-table-column prop="reason" label="退款备注" min-width="100px" align="center"></el-table-column>
      <el-table-column prop="creatorName" label="操作人" min-width="100px" align="center"></el-table-column>
    </el-table>
    <div slot="footer">
      <el-button @click="visible=false">返回</el-button>
      <el-button @click="visible = false">返回</el-button>
    </div>
  </GlobalWindow>
</template>
@@ -52,12 +102,14 @@
  name: 'OperaSitesWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
  data() {
    return {
      // 表单数据
      form: {
        goodsorderId: ''
        member: {}
      },
      info: {},
      goods: {},
      list: [],
      memberRidesList: [],
      // 0结算退款 1强制结算退款 2结算后退款 [99: 虚拟type 支付押金]
@@ -78,7 +130,11 @@
      this.title = title
      this.visible = true
      // 新建
      console.log('target', target)
      this.form = target
      this.info = target.goodsOrder
      this.goods = target.discountMember
      this.$nextTick(() => {
        this.list = target.payOrderDTOList
        this.memberRidesList = target.memberRidesList
@@ -86,7 +142,7 @@
      })
    },
    typeToStr(type) {
      let temp = this.type.find(item => item.id == type )
      let temp = this.type.find(item => item.id == type)
      return temp ? temp.label : '-'
    }
  },
@@ -94,7 +150,23 @@
}
</script>
<style scoped>
<style scoped lang="scss">
.info_warp {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  .item {
    display: flex;
    width: 33.3%;
    margin-bottom: 6px;
    .val {
      color: #666666;
    }
  }
}
.title {
  font-size: 18px;
  font-weight: 600;