Browse Source

!196 fix: 支付管理/退款订单 对标 vue2
Merge pull request !196 from dhb52/master

芋道源码 1 year ago
parent
commit
3f90ca3a57

+ 1 - 5
src/utils/dict.ts

@@ -131,12 +131,8 @@ export enum DICT_TYPE {
 
 
   // ========== PAY 模块 ==========
   // ========== PAY 模块 ==========
   PAY_CHANNEL_CODE = 'pay_channel_code', // 支付渠道编码类型
   PAY_CHANNEL_CODE = 'pay_channel_code', // 支付渠道编码类型
-  PAY_CHANNEL_CODE_TYPE = 'pay_channel_code_type', // 支付渠道编码类型
   PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态
   PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态
-  PAY_ORDER_REFUND_STATUS = 'pay_order_refund_status', // 商户支付订单退款状态
-  PAY_REFUND_ORDER_STATUS = 'pay_refund_order_status', // 退款订单状态
-  PAY_REFUND_ORDER_TYPE = 'pay_refund_order_type', // 退款订单类别
-
+  PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态
   PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态
   PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态
   PAY_NOTIFY_TYPE = 'pay_notify_type', // 商户支付回调状态
   PAY_NOTIFY_TYPE = 'pay_notify_type', // 商户支付回调状态
 
 

+ 0 - 1
src/views/pay/app/index.vue

@@ -326,7 +326,6 @@ const queryParams = reactive({
   createTime: []
   createTime: []
 })
 })
 const queryFormRef = ref() // 搜索的表单
 const queryFormRef = ref() // 搜索的表单
-const exportLoading = ref(false) // 导出的加载中
 
 
 /** 查询列表 */
 /** 查询列表 */
 const getList = async () => {
 const getList = async () => {

+ 12 - 16
src/views/pay/order/OrderDetail.vue

@@ -7,20 +7,17 @@
       <el-descriptions-item label="支付单号">
       <el-descriptions-item label="支付单号">
         <el-tag type="warning" size="small" v-if="detailData.no">{{ detailData.no }}</el-tag>
         <el-tag type="warning" size="small" v-if="detailData.no">{{ detailData.no }}</el-tag>
       </el-descriptions-item>
       </el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="应用编号">{{ detailData.appId }}</el-descriptions-item>
       <el-descriptions-item label="应用编号">{{ detailData.appId }}</el-descriptions-item>
       <el-descriptions-item label="应用名称">{{ detailData.appName }}</el-descriptions-item>
       <el-descriptions-item label="应用名称">{{ detailData.appName }}</el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="支付状态">
       <el-descriptions-item label="支付状态">
         <dict-tag :type="DICT_TYPE.PAY_ORDER_STATUS" :value="detailData.status" size="small" />
         <dict-tag :type="DICT_TYPE.PAY_ORDER_STATUS" :value="detailData.status" size="small" />
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="支付金额">
       <el-descriptions-item label="支付金额">
         <el-tag type="success" size="small">¥{{ (detailData.price / 100.0).toFixed(2) }}</el-tag>
         <el-tag type="success" size="small">¥{{ (detailData.price / 100.0).toFixed(2) }}</el-tag>
       </el-descriptions-item>
       </el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="手续费">
       <el-descriptions-item label="手续费">
         <el-tag type="warning" size="small">
         <el-tag type="warning" size="small">
           ¥{{ (detailData.channelFeePrice / 100.0).toFixed(2) }}
           ¥{{ (detailData.channelFeePrice / 100.0).toFixed(2) }}
@@ -29,16 +26,14 @@
       <el-descriptions-item label="手续费比例">
       <el-descriptions-item label="手续费比例">
         {{ (detailData.channelFeeRate / 100.0).toFixed(2) }}%
         {{ (detailData.channelFeeRate / 100.0).toFixed(2) }}%
       </el-descriptions-item>
       </el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="支付时间">
       <el-descriptions-item label="支付时间">
         {{ formatDate(detailData.successTime) }}
         {{ formatDate(detailData.successTime) }}
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="失效时间">
       <el-descriptions-item label="失效时间">
         {{ formatDate(detailData.expireTime) }}
         {{ formatDate(detailData.expireTime) }}
       </el-descriptions-item>
       </el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="创建时间">
       <el-descriptions-item label="创建时间">
         {{ formatDate(detailData.createTime) }}
         {{ formatDate(detailData.createTime) }}
       </el-descriptions-item>
       </el-descriptions-item>
@@ -46,27 +41,26 @@
         {{ formatDate(detailData.updateTime) }}
         {{ formatDate(detailData.updateTime) }}
       </el-descriptions-item>
       </el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
+
     <!-- 分割线 -->
     <!-- 分割线 -->
     <el-divider />
     <el-divider />
+
     <el-descriptions :column="2" label-class-name="desc-label">
     <el-descriptions :column="2" label-class-name="desc-label">
       <el-descriptions-item label="商品标题">{{ detailData.subject }}</el-descriptions-item>
       <el-descriptions-item label="商品标题">{{ detailData.subject }}</el-descriptions-item>
       <el-descriptions-item label="商品描述">{{ detailData.body }}</el-descriptions-item>
       <el-descriptions-item label="商品描述">{{ detailData.body }}</el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="支付渠道">
       <el-descriptions-item label="支付渠道">
         <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="detailData.channelCode" />
         <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="detailData.channelCode" />
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="支付 IP">{{ detailData.userIp }}</el-descriptions-item>
       <el-descriptions-item label="支付 IP">{{ detailData.userIp }}</el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="渠道单号">
       <el-descriptions-item label="渠道单号">
         <el-tag size="mini" type="success" v-if="detailData.channelOrderNo">
         <el-tag size="mini" type="success" v-if="detailData.channelOrderNo">
           {{ detailData.channelOrderNo }}
           {{ detailData.channelOrderNo }}
         </el-tag>
         </el-tag>
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="渠道用户">{{ detailData.channelUserId }}</el-descriptions-item>
       <el-descriptions-item label="渠道用户">{{ detailData.channelUserId }}</el-descriptions-item>
-    </el-descriptions>
-    <el-descriptions :column="2" label-class-name="desc-label">
+
       <el-descriptions-item label="退款金额">
       <el-descriptions-item label="退款金额">
         <el-tag size="mini" type="danger">
         <el-tag size="mini" type="danger">
           ¥{{ (detailData.refundPrice / 100.0).toFixed(2) }}
           ¥{{ (detailData.refundPrice / 100.0).toFixed(2) }}
@@ -74,8 +68,10 @@
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="通知 URL">{{ detailData.notifyUrl }}</el-descriptions-item>
       <el-descriptions-item label="通知 URL">{{ detailData.notifyUrl }}</el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
+
     <!-- 分割线 -->
     <!-- 分割线 -->
     <el-divider />
     <el-divider />
+
     <el-descriptions :column="1" label-class-name="desc-label" direction="vertical" border>
     <el-descriptions :column="1" label-class-name="desc-label" direction="vertical" border>
       <el-descriptions-item label="支付通道异步回调内容">
       <el-descriptions-item label="支付通道异步回调内容">
         {{ detailData.extension.channelNotifyData }}
         {{ detailData.extension.channelNotifyData }}

+ 62 - 68
src/views/pay/refund/RefundDetail.vue

@@ -1,86 +1,80 @@
 <template>
 <template>
-  <Dialog v-model="dialogVisible" title="详情" width="50%">
-    <el-descriptions :column="2">
-      <el-descriptions-item label="商户名称">{{ detailData.merchantName }}</el-descriptions-item>
-      <el-descriptions-item label="应用名称">{{ detailData.appName }}</el-descriptions-item>
-      <el-descriptions-item label="商品名称">{{ detailData.subject }}</el-descriptions-item>
-    </el-descriptions>
-    <el-divider />
-    <el-descriptions :column="2">
+  <Dialog v-model="dialogVisible" title="详情" width="700px">
+    <el-descriptions :column="2" label-class-name="desc-label">
       <el-descriptions-item label="商户退款单号">
       <el-descriptions-item label="商户退款单号">
-        <el-tag>{{ detailData.merchantRefundNo }}</el-tag>
+        <el-tag size="small">{{ refundDetail.merchantRefundId }}</el-tag>
       </el-descriptions-item>
       </el-descriptions-item>
-      <el-descriptions-item label="商户订单号">
-        {{ detailData.merchantOrderId }}
+      <el-descriptions-item label="渠道退款单号">
+        <el-tag type="success" size="small" v-if="refundDetail.channelRefundNo">{{
+          refundDetail.channelRefundNo
+        }}</el-tag>
       </el-descriptions-item>
       </el-descriptions-item>
-      <el-descriptions-item label="交易订单号">{{ detailData.tradeNo }}</el-descriptions-item>
-    </el-descriptions>
-    <el-divider />
-    <el-descriptions :column="2">
+
+      <el-descriptions-item label="商户支付单号">
+        <el-tag size="small">{{ refundDetail.merchantOrderId }}</el-tag>
+      </el-descriptions-item>
+      <el-descriptions-item label="渠道支付单号">
+        <el-tag type="success" size="small">{{ refundDetail.channelOrderNo }}</el-tag>
+      </el-descriptions-item>
+
+      <el-descriptions-item label="应用编号">{{ refundDetail.appId }}</el-descriptions-item>
+      <el-descriptions-item label="应用名称">{{ refundDetail.appName }}</el-descriptions-item>
+
       <el-descriptions-item label="支付金额">
       <el-descriptions-item label="支付金额">
-        <el-tag type="success">¥{{ parseFloat(detailData.payAmount / 100, 2).toFixed(2) }}</el-tag>
+        <el-tag type="success" size="small"
+          >¥{{ (refundDetail.payPrice / 100.0).toFixed(2) }}</el-tag
+        >
       </el-descriptions-item>
       </el-descriptions-item>
       <el-descriptions-item label="退款金额">
       <el-descriptions-item label="退款金额">
-        <el-tag class="tag-purple">
-          ¥{{ parseFloat(detailData.refundAmount / 100).toFixed(2) }}
-        </el-tag>
-      </el-descriptions-item>
-      <el-descriptions-item label="退款类型">
-        <dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_TYPE" :value="detailData.type" />
+        <el-tag size="mini" type="danger"
+          >¥{{ (refundDetail.refundPrice / 100.0).toFixed(2) }}</el-tag
+        >
       </el-descriptions-item>
       </el-descriptions-item>
+
       <el-descriptions-item label="退款状态">
       <el-descriptions-item label="退款状态">
-        <dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_STATUS" :value="detailData.status" />
-      </el-descriptions-item>
-      <el-descriptions-item label="创建时间">
-        {{ formatDate(detailData.createTime) }}
-      </el-descriptions-item>
-      <el-descriptions-item label="退款成功时间">
-        {{ formatDate(detailData.successTime) }}
-      </el-descriptions-item>
-      <el-descriptions-item label="退款失效时间">
-        {{ formatDate(detailData.expireTime) }}
-      </el-descriptions-item>
-      <el-descriptions-item label="更新时间">
-        {{ formatDate(detailData.updateTime) }}
+        <dict-tag :type="DICT_TYPE.PAY_REFUND_STATUS" :value="refundDetail.status" />
       </el-descriptions-item>
       </el-descriptions-item>
+      <el-descriptions-item label="退款时间">{{
+        formatDate(refundDetail.successTime)
+      }}</el-descriptions-item>
+
+      <el-descriptions-item label="创建时间">{{
+        formatDate(refundDetail.createTime)
+      }}</el-descriptions-item>
+      <el-descriptions-item label="更新时间">{{
+        formatDate(refundDetail.updateTime)
+      }}</el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
+
+    <!-- 分割线 -->
     <el-divider />
     <el-divider />
-    <el-descriptions :column="2">
-      <el-descriptions-item label="支付渠道">
-        {{ detailData.channelCodeName }}
-      </el-descriptions-item>
-      <el-descriptions-item label="支付 IP">
-        {{ detailData.userIp }}
-      </el-descriptions-item>
-      <el-descriptions-item label="回调地址">{{ detailData.notifyUrl }}</el-descriptions-item>
-      <el-descriptions-item label="回调状态">
-        <dict-tag :type="DICT_TYPE.PAY_ORDER_NOTIFY_STATUS" :value="detailData.notifyStatus" />
-      </el-descriptions-item>
-      <el-descriptions-item label="回调时间">
-        {{ formatDate(detailData.notifyTime) }}
+
+    <el-descriptions :column="2" label-class-name="desc-label">
+      <el-descriptions-item label="退款渠道">
+        <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="refundDetail.channelCode" />
       </el-descriptions-item>
       </el-descriptions-item>
+      <el-descriptions-item label="退款原因">{{ refundDetail.reason }}</el-descriptions-item>
+
+      <el-descriptions-item label="退款 IP">{{ refundDetail.userIp }}</el-descriptions-item>
+      <el-descriptions-item label="通知 URL">{{ refundDetail.notifyUrl }}</el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
+
+    <!-- 分割线 -->
     <el-divider />
     <el-divider />
-    <el-descriptions :column="2">
-      <el-descriptions-item label="渠道订单号">
-        {{ detailData.channelOrderNo }}
-      </el-descriptions-item>
-      <el-descriptions-item label="渠道退款单号">
-        {{ detailData.channelRefundNo }}
-      </el-descriptions-item>
-      <el-descriptions-item label="渠道错误码">
-        {{ detailData.channelErrorCode }}
-      </el-descriptions-item>
-      <el-descriptions-item label="渠道错误码描述">
-        {{ detailData.channelErrorMsg }}
-      </el-descriptions-item>
+
+    <el-descriptions :column="2" label-class-name="desc-label">
+      <el-descriptions-item label="渠道错误码">{{
+        refundDetail.channelErrorCode
+      }}</el-descriptions-item>
+      <el-descriptions-item label="渠道错误码描述">{{
+        refundDetail.channelErrorMsg
+      }}</el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
-    <br />
-    <el-descriptions :column="1" border direction="vertical">
-      <el-descriptions-item label="渠道额外参数">
-        {{ detailData.channelExtras }}
+
+    <el-descriptions :column="1" label-class-name="desc-label" direction="vertical" border>
+      <el-descriptions-item label="支付通道异步回调内容">
+        {{ refundDetail.channelNotifyData }}
       </el-descriptions-item>
       </el-descriptions-item>
-      <el-descriptions-item label="退款原因">{{ detailData.reason }}</el-descriptions-item>
     </el-descriptions>
     </el-descriptions>
   </Dialog>
   </Dialog>
 </template>
 </template>
@@ -93,7 +87,7 @@ defineOptions({ name: 'PayRefundDetail' })
 
 
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogVisible = ref(false) // 弹窗的是否展示
 const detailLoading = ref(false) // 表单的加载中
 const detailLoading = ref(false) // 表单的加载中
-const detailData = ref({})
+const refundDetail = ref({})
 
 
 /** 打开弹窗 */
 /** 打开弹窗 */
 const open = async (id: number) => {
 const open = async (id: number) => {
@@ -101,7 +95,7 @@ const open = async (id: number) => {
   // 设置数据
   // 设置数据
   detailLoading.value = true
   detailLoading.value = true
   try {
   try {
-    detailData.value = await RefundApi.getRefund(id)
+    refundDetail.value = await RefundApi.getRefund(id)
   } finally {
   } finally {
     detailLoading.value = false
     detailLoading.value = false
   }
   }

+ 76 - 124
src/views/pay/refund/index.vue

@@ -10,21 +10,6 @@
       :inline="true"
       :inline="true"
       label-width="120px"
       label-width="120px"
     >
     >
-      <el-form-item label="所属商户" prop="merchantId">
-        <el-select
-          v-model="queryParams.merchantId"
-          clearable
-          placeholder="请选择所属商户"
-          class="!w-240px"
-        >
-          <el-option
-            v-for="item in merchantList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          />
-        </el-select>
-      </el-form-item>
       <el-form-item label="应用编号" prop="appId">
       <el-form-item label="应用编号" prop="appId">
         <el-select
         <el-select
           v-model="queryParams.appId"
           v-model="queryParams.appId"
@@ -35,69 +20,66 @@
           <el-option v-for="item in appList" :key="item.id" :label="item.name" :value="item.id" />
           <el-option v-for="item in appList" :key="item.id" :label="item.name" :value="item.id" />
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
-      <el-form-item label="渠道编码" prop="channelCode">
+      <el-form-item label="退款渠道" prop="channelCode">
         <el-select
         <el-select
           v-model="queryParams.channelCode"
           v-model="queryParams.channelCode"
-          placeholder="请输入渠道编码"
+          placeholder="请选择退款渠道"
           clearable
           clearable
           class="!w-240px"
           class="!w-240px"
         >
         >
           <el-option
           <el-option
-            v-for="dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE_TYPE)"
+            v-for="dict in getStrDictOptions(DICT_TYPE.PAY_CHANNEL_CODE)"
             :key="dict.value"
             :key="dict.value"
             :label="dict.label"
             :label="dict.label"
             :value="dict.value"
             :value="dict.value"
           />
           />
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
-      <el-form-item label="退款类型" prop="type">
-        <el-select
-          v-model="queryParams.type"
-          placeholder="请选择退款类型"
+      <el-form-item label="商户支付单号" prop="merchantOrderId">
+        <el-input
+          v-model="queryParams.merchantOrderId"
+          placeholder="请输入商户支付单号"
           clearable
           clearable
+          @keyup.enter="handleQuery"
           class="!w-240px"
           class="!w-240px"
-        >
-          <el-option
-            v-for="dict in getIntDictOptions(DICT_TYPE.PAY_REFUND_ORDER_TYPE)"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
+        />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="商户退款订单号" prop="merchantRefundNo">
+      <el-form-item label="商户退款单号" prop="merchantRefundId">
         <el-input
         <el-input
-          v-model="queryParams.merchantRefundNo"
-          placeholder="请输入商户退款单号"
+          v-model="queryParams.merchantRefundId"
+          placeholder="请输入商户退款单号"
           clearable
           clearable
           @keyup.enter="handleQuery"
           @keyup.enter="handleQuery"
           class="!w-240px"
           class="!w-240px"
         />
         />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="退款状态" prop="status">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="请选择退款状态"
+      <el-form-item label="渠道支付单号" prop="channelOrderNo">
+        <el-input
+          v-model="queryParams.channelOrderNo"
+          placeholder="请输入渠道支付单号"
           clearable
           clearable
+          @keyup.enter="handleQuery"
           class="!w-240px"
           class="!w-240px"
-        >
-          <el-option
-            v-for="dict in getIntDictOptions(DICT_TYPE.PAY_REFUND_ORDER_STATUS)"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
+        />
+      </el-form-item>
+      <el-form-item label="渠道退款单号" prop="channelRefundNo">
+        <el-input
+          v-model="queryParams.channelRefundNo"
+          placeholder="请输入渠道退款单号"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="退款回调状态" prop="notifyStatus">
+      <el-form-item label="退款状态" prop="status">
         <el-select
         <el-select
-          v-model="queryParams.notifyStatus"
-          placeholder="请选择通知商户退款结果的回调状态"
+          v-model="queryParams.status"
+          placeholder="请选择退款状态"
           clearable
           clearable
           class="!w-240px"
           class="!w-240px"
         >
         >
           <el-option
           <el-option
-            v-for="dict in getIntDictOptions(DICT_TYPE.PAY_ORDER_NOTIFY_STATUS)"
+            v-for="dict in getIntDictOptions(DICT_TYPE.PAY_REFUND_STATUS)"
             :key="dict.value"
             :key="dict.value"
             :label="dict.label"
             :label="dict.label"
             :value="dict.value"
             :value="dict.value"
@@ -116,8 +98,8 @@
         />
         />
       </el-form-item>
       </el-form-item>
       <el-form-item>
       <el-form-item>
-        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
-        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
+        <el-button @click="handleQuery"> <Icon icon="ep:search" class="mr-5px" /> 搜索 </el-button>
+        <el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" /> 重置 </el-button>
         <el-button
         <el-button
           type="success"
           type="success"
           plain
           plain
@@ -134,81 +116,68 @@
   <ContentWrap>
   <ContentWrap>
     <el-table v-loading="loading" :data="list">
     <el-table v-loading="loading" :data="list">
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="商户名称" align="center" prop="merchantName" width="120" />
-      <el-table-column label="应用名称" align="center" prop="appName" width="120" />
-      <el-table-column label="渠道名称" align="center" prop="channelCodeName" width="120" />
-      <el-table-column label="交易订单号" align="center" prop="tradeNo" width="140" />
-      <el-table-column label="商户订单编号" align="center" prop="merchantOrderId" width="140" />
-      <el-table-column label="商户订单号" align="left" width="230">
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="createTime"
+        width="180"
+        :formatter="dateFormatter"
+      />
+      <el-table-column label="支付金额" align="center" prop="payPrice" width="100">
+        <template #default="scope">
+          ¥{{ parseFloat(scope.row.payPrice / 100).toFixed(2) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="退款金额" align="center" prop="refundPrice" width="100">
+        <template #default="scope">
+          ¥{{ parseFloat(scope.row.refundPrice / 100).toFixed(2) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="退款订单号" align="left" width="300">
         <template #default="scope">
         <template #default="scope">
           <p class="order-font">
           <p class="order-font">
-            <el-tag>退款</el-tag>
-            {{ scope.row.merchantRefundNo }}
+            <el-tag size="small">商户</el-tag> {{ scope.row.merchantRefundId }}
           </p>
           </p>
           <p class="order-font">
           <p class="order-font">
-            <el-tag type="success">交易</el-tag>
-            {{ scope.row.merchantOrderId }}
+            <el-tag size="small" type="warning">退款</el-tag> {{ scope.row.no }}
+          </p>
+          <p class="order-font" v-if="scope.row.channelRefundNo">
+            <el-tag size="small" type="success">渠道</el-tag> {{ scope.row.channelRefundNo }}
           </p>
           </p>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="支付订单号" align="center" prop="merchantRefundNo" width="250">
+      <el-table-column label="支付订单号" align="left" width="300">
         <template #default="scope">
         <template #default="scope">
           <p class="order-font">
           <p class="order-font">
-            <el-tag>交易</el-tag>
-            {{ scope.row.tradeNo }}
+            <el-tag size="small">商户</el-tag> {{ scope.row.merchantOrderId }}
           </p>
           </p>
           <p class="order-font">
           <p class="order-font">
-            <el-tag type="warning">渠道</el-tag>
-            {{ scope.row.channelOrderNo }}
+            <el-tag size="small" type="success">渠道</el-tag> {{ scope.row.channelOrderNo }}
           </p>
           </p>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="支付金额(元)" align="center" prop="payAmount" width="100">
-        <template #default="scope">
-          ¥{{ parseFloat(scope.row.payAmount / 100).toFixed(2) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="退款金额(元)" align="center" prop="refundAmount" width="100">
-        <template #default="scope">
-          ¥{{ parseFloat(scope.row.refundAmount / 100).toFixed(2) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="退款类型" align="center" prop="type" width="80">
-        <template #default="scope">
-          <dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_TYPE" :value="scope.row.type" />
-        </template>
-      </el-table-column>
       <el-table-column label="退款状态" align="center" prop="status">
       <el-table-column label="退款状态" align="center" prop="status">
         <template #default="scope">
         <template #default="scope">
-          <dict-tag :type="DICT_TYPE.PAY_REFUND_ORDER_STATUS" :value="scope.row.status" />
+          <dict-tag :type="DICT_TYPE.PAY_REFUND_STATUS" :value="scope.row.status" />
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="回调状态" align="center" prop="notifyStatus">
+      <el-table-column label="退款渠道" align="center" width="140">
         <template #default="scope">
         <template #default="scope">
-          <dict-tag :type="DICT_TYPE.PAY_ORDER_NOTIFY_STATUS" :value="scope.row.notifyStatus" />
+          <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="scope.row.channelCode" />
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column
       <el-table-column
-        label="退款原因"
-        align="center"
-        prop="reason"
-        width="140"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="180"
-        :formatter="dateFormatter"
-      />
-      <el-table-column
-        label="退款成功时间"
+        label="成功时间"
         align="center"
         align="center"
         prop="successTime"
         prop="successTime"
         width="180"
         width="180"
         :formatter="dateFormatter"
         :formatter="dateFormatter"
       />
       />
+      <el-table-column label="支付应用" align="center" prop="successTime" width="100">
+        <template #default="scope">
+          <span>{{ scope.row.appName }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" fixed="right">
       <el-table-column label="操作" align="center" fixed="right">
         <template #default="scope">
         <template #default="scope">
           <el-button
           <el-button
@@ -237,8 +206,8 @@
 <script lang="ts" setup>
 <script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
 import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import { dateFormatter } from '@/utils/formatTime'
-// import * as MerchantApi from '@/api/pay/merchant'
 import * as RefundApi from '@/api/pay/refund'
 import * as RefundApi from '@/api/pay/refund'
+import * as AppApi from '@/api/pay/app'
 import RefundDetail from './RefundDetail.vue'
 import RefundDetail from './RefundDetail.vue'
 import download from '@/utils/download'
 import download from '@/utils/download'
 
 
@@ -254,34 +223,20 @@ const queryParams = reactive({
   pageSize: 10,
   pageSize: 10,
   merchantId: undefined,
   merchantId: undefined,
   appId: undefined,
   appId: undefined,
-  channelId: undefined,
   channelCode: undefined,
   channelCode: undefined,
-  orderId: undefined,
-  tradeNo: undefined,
   merchantOrderId: undefined,
   merchantOrderId: undefined,
-  merchantRefundNo: undefined,
-  notifyUrl: undefined,
-  notifyStatus: undefined,
+  merchantRefundId: undefined,
   status: undefined,
   status: undefined,
-  type: undefined,
-  payAmount: undefined,
-  refundAmount: undefined,
-  reason: undefined,
-  userIp: undefined,
+  payPrice: undefined,
+  refundPrice: undefined,
   channelOrderNo: undefined,
   channelOrderNo: undefined,
   channelRefundNo: undefined,
   channelRefundNo: undefined,
-  channelErrorCode: undefined,
-  channelErrorMsg: undefined,
-  channelExtras: undefined,
-  expireTime: [],
-  successTime: [],
-  notifyTime: [],
-  createTime: []
+  createTime: [],
+  successTime: []
 })
 })
 const queryFormRef = ref() // 搜索的表单
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出等待
 const exportLoading = ref(false) // 导出等待
 const appList = ref([]) // 支付应用列表集合
 const appList = ref([]) // 支付应用列表集合
-const merchantList = ref([]) // 商户列表
 
 
 /** 搜索按钮操作 */
 /** 搜索按钮操作 */
 const handleQuery = () => {
 const handleQuery = () => {
@@ -303,7 +258,7 @@ const getList = async () => {
 
 
 /** 重置按钮操作 */
 /** 重置按钮操作 */
 const resetQuery = () => {
 const resetQuery = () => {
-  queryFormRef.value.resetFields()
+  queryFormRef.value?.resetFields()
   handleQuery()
   handleQuery()
 }
 }
 
 
@@ -331,10 +286,7 @@ const openDetail = (id: number) => {
 /** 初始化 **/
 /** 初始化 **/
 onMounted(async () => {
 onMounted(async () => {
   await getList()
   await getList()
-  // 加载商户列表
-  // merchantList.value = await MerchantApi.getMerchantListByName()
-  // TODO 芋艿:候选少一个查询应用列表的接口
-  // appList.value = await AppApi.getAppListByMerchantId()
+  appList.value = await AppApi.getAppList()
 })
 })
 </script>
 </script>