detail.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <el-dialog :close-on-click-modal="false" :title="$t('order.payOrder.detail')" draggable v-model="visible" width="900px">
  3. <el-descriptions :column="2" border v-loading="loading">
  4. <el-descriptions-item :label="$t('order.payOrder.orderId')">{{ orderData.id }}</el-descriptions-item>
  5. <el-descriptions-item :label="$t('order.payOrder.appId')">{{ orderData.appId }}</el-descriptions-item>
  6. <el-descriptions-item :label="$t('order.payOrder.mchOrderNo')" :span="2">{{ orderData.mchOrderNo }}</el-descriptions-item>
  7. <el-descriptions-item :label="$t('order.payOrder.transactionId')" :span="2">{{ orderData.transactionId || '-' }}</el-descriptions-item>
  8. <el-descriptions-item :label="$t('order.payOrder.orderStatus')">
  9. <el-tag v-if="orderData.orderStatus === 'CREATE_ORDER'" type="info">{{ $t('order.payOrder.createOrder') }}</el-tag>
  10. <el-tag v-else-if="orderData.orderStatus === 'PAY_SUCCESS'" type="success">{{ $t('order.payOrder.paySuccess') }}</el-tag>
  11. <el-tag v-else-if="orderData.orderStatus === 'PAY_FAIL'" type="danger">{{ $t('order.payOrder.payFail') }}</el-tag>
  12. <el-tag v-else-if="orderData.orderStatus === 'CANCEL_ORDER'" type="warning">{{ $t('order.payOrder.cancelOrder') }}</el-tag>
  13. <el-tag v-else-if="orderData.orderStatus === 'PAY_TIMEOUT'" type="info">{{ $t('order.payOrder.payTimeout') }}</el-tag>
  14. <el-tag v-else>{{ orderData.orderStatus }}</el-tag>
  15. </el-descriptions-item>
  16. <el-descriptions-item :label="$t('order.payOrder.currency')">{{ orderData.currency }}</el-descriptions-item>
  17. <el-descriptions-item :label="$t('order.payOrder.orderAmount')">
  18. <span style="color: #f56c6c; font-weight: bold; font-size: 16px">¥{{ orderData.amount ? orderData.amount.toFixed(2) : '0.00' }}</span>
  19. </el-descriptions-item>
  20. <el-descriptions-item :label="$t('order.payOrder.paidAmount')">
  21. <span v-if="orderData.noticeAmount" style="color: #67c23a; font-weight: bold; font-size: 16px">¥{{ orderData.noticeAmount.toFixed(2) }}</span>
  22. <span v-else>-</span>
  23. </el-descriptions-item>
  24. <el-descriptions-item :label="$t('order.payOrder.paymentChannelId')">{{ orderData.paymentChannelId }}</el-descriptions-item>
  25. <el-descriptions-item :label="$t('order.payOrder.paymentChannelName')">{{ orderData.paymentChannelName || '-' }}</el-descriptions-item>
  26. <el-descriptions-item :label="$t('order.payOrder.merchantId')">{{ orderData.merchantUserId }}</el-descriptions-item>
  27. <el-descriptions-item :label="$t('order.payOrder.agentId')">{{ orderData.agentUserId }}</el-descriptions-item>
  28. <el-descriptions-item :label="$t('order.payOrder.merchantFeeType')">
  29. <el-tag v-if="orderData.mFeeType === 'PERCENTAGE'" type="info">{{ $t('order.payOrder.feeTypePercentage') }}</el-tag>
  30. <el-tag v-else-if="orderData.mFeeType === 'FIXED'" type="warning">{{ $t('order.payOrder.feeTypeFixed') }}</el-tag>
  31. <el-tag v-else-if="orderData.mFeeType === 'MIXED'" type="success">{{ $t('order.payOrder.feeTypeMixed') }}</el-tag>
  32. <span v-else>-</span>
  33. </el-descriptions-item>
  34. <el-descriptions-item :label="$t('order.payOrder.merchantFee')">
  35. {{ orderData.mFee ? `¥${orderData.mFee.toFixed(2)}` : '-' }}
  36. </el-descriptions-item>
  37. <el-descriptions-item :label="$t('order.payOrder.merchantFeeRate')">
  38. {{ orderData.mFeeRate ? `${orderData.mFeeRate}%` : '-' }}
  39. </el-descriptions-item>
  40. <el-descriptions-item :label="$t('order.payOrder.merchantFeeFixed')">
  41. {{ orderData.mFeeEvery ? `¥${orderData.mFeeEvery.toFixed(2)}` : '-' }}
  42. </el-descriptions-item>
  43. <el-descriptions-item :label="$t('order.payOrder.agentFeeType')">
  44. <el-tag v-if="orderData.aFeeType === 'PERCENTAGE'" type="info">{{ $t('order.payOrder.feeTypePercentage') }}</el-tag>
  45. <el-tag v-else-if="orderData.aFeeType === 'FIXED'" type="warning">{{ $t('order.payOrder.feeTypeFixed') }}</el-tag>
  46. <el-tag v-else-if="orderData.aFeeType === 'MIXED'" type="success">{{ $t('order.payOrder.feeTypeMixed') }}</el-tag>
  47. <span v-else>-</span>
  48. </el-descriptions-item>
  49. <el-descriptions-item :label="$t('order.payOrder.agentFee')">
  50. {{ orderData.aFee ? `¥${orderData.aFee.toFixed(2)}` : '-' }}
  51. </el-descriptions-item>
  52. <el-descriptions-item :label="$t('order.payOrder.agentFeeRate')">
  53. {{ orderData.aFeeRate ? `${orderData.aFeeRate}%` : '-' }}
  54. </el-descriptions-item>
  55. <el-descriptions-item :label="$t('order.payOrder.agentFeeFixed')">
  56. {{ orderData.aFeeEvery ? `¥${orderData.aFeeEvery.toFixed(2)}` : '-' }}
  57. </el-descriptions-item>
  58. <el-descriptions-item :label="$t('order.payOrder.clientIp')">{{ orderData.clientIp || '-' }}</el-descriptions-item>
  59. <el-descriptions-item :label="$t('order.payOrder.device')">{{ orderData.device || '-' }}</el-descriptions-item>
  60. <el-descriptions-item :label="$t('order.payOrder.subject')" :span="2">{{ orderData.subject || '-' }}</el-descriptions-item>
  61. <el-descriptions-item :label="$t('order.payOrder.body')" :span="2">{{ orderData.body || '-' }}</el-descriptions-item>
  62. <el-descriptions-item :label="$t('order.payOrder.returnUrl')" :span="2">{{ orderData.returnUrl || '-' }}</el-descriptions-item>
  63. <el-descriptions-item :label="$t('order.payOrder.notifyUrl')" :span="2">{{ orderData.notifyUrl || '-' }}</el-descriptions-item>
  64. <el-descriptions-item :label="$t('order.payOrder.extraParams')" :span="2">{{ orderData.extra || '-' }}</el-descriptions-item>
  65. <el-descriptions-item :label="$t('order.payOrder.reqTime')">{{ orderData.reqTime || '-' }}</el-descriptions-item>
  66. <el-descriptions-item :label="$t('order.payOrder.payCompleteTime')">{{ orderData.noticeDatetime || '-' }}</el-descriptions-item>
  67. <el-descriptions-item :label="$t('order.payOrder.createTime')">{{ orderData.createTime }}</el-descriptions-item>
  68. <el-descriptions-item :label="$t('order.payOrder.updateTime')">{{ orderData.updateTime }}</el-descriptions-item>
  69. </el-descriptions>
  70. <template #footer>
  71. <span class="dialog-footer">
  72. <el-button @click="visible = false">{{ $t('order.payOrder.close') }}</el-button>
  73. </span>
  74. </template>
  75. </el-dialog>
  76. </template>
  77. <script lang="ts" name="PayOrderDetailDialog" setup>
  78. // 定义变量
  79. const visible = ref(false);
  80. const loading = ref(false);
  81. const orderData = reactive<any>({});
  82. // 打开弹窗
  83. const openDialog = (row: any) => {
  84. visible.value = true;
  85. Object.assign(orderData, row);
  86. };
  87. // 暴露方法
  88. defineExpose({
  89. openDialog,
  90. });
  91. </script>