|
|
|
|
@ -11,7 +11,7 @@
|
|
|
|
|
<el-form-item label="渠道编码" prop="channelCode">
|
|
|
|
|
<el-select v-model="queryParams.channelCode" placeholder="请输入渠道编码" clearable
|
|
|
|
|
@clear="()=>{queryParams.channelCode = null}">
|
|
|
|
|
<el-option v-for="dict in payChannelCodeDictDatum" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
|
|
|
|
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE)" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="商户订单编号" prop="merchantOrderId">
|
|
|
|
|
@ -24,13 +24,13 @@
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="支付状态" prop="status">
|
|
|
|
|
<el-select v-model="queryParams.status" placeholder="请选择支付状态" clearable size="small">
|
|
|
|
|
<el-option v-for="dict in payOrderDictDatum" :key="parseInt(dict.value)"
|
|
|
|
|
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_ORDER_STATUS)" :key="parseInt(dict.value)"
|
|
|
|
|
:label="dict.label" :value="parseInt(dict.value)"/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="退款状态" prop="refundStatus">
|
|
|
|
|
<el-select v-model="queryParams.refundStatus" placeholder="请选择退款状态" clearable>
|
|
|
|
|
<el-option v-for="dict in payOrderRefundDictDatum" :key="parseInt(dict.value)"
|
|
|
|
|
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.PAY_ORDER_REFUND_STATUS)" :key="parseInt(dict.value)"
|
|
|
|
|
:label="dict.label" :value="parseInt(dict.value)"/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -102,6 +102,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<!-- TODO 芋艿:要放开 -->
|
|
|
|
|
<!-- <el-table-column label="退款状态" align="center" prop="refundStatus">-->
|
|
|
|
|
<!-- <template v-slot="scope">-->
|
|
|
|
|
<!-- <span>{{ getDictDataLabel(DICT_TYPE.PAY_ORDER_REFUND_STATUS, scope.row.refundStatus) }}</span>-->
|
|
|
|
|
@ -124,7 +125,7 @@
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
|
|
|
|
<template v-slot="scope">
|
|
|
|
|
<el-button size="mini" type="text" icon="el-icon-search" @click="handleQueryDetails(scope.row)"
|
|
|
|
|
<el-button size="mini" type="text" icon="el-icon-search" @click="handleDetail(scope.row)"
|
|
|
|
|
v-hasPermi="['pay:order:query']">查看详情
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
@ -134,7 +135,7 @@
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
|
|
|
|
@pagination="getList"/>
|
|
|
|
|
|
|
|
|
|
<!-- 对话框(添加 / 修改) -->
|
|
|
|
|
<!-- 对话框(详情) -->
|
|
|
|
|
<el-dialog title="订单详情" :visible.sync="open" width="50%">
|
|
|
|
|
<el-descriptions :column="2" label-class-name="desc-label">
|
|
|
|
|
<el-descriptions-item label="应用名称">{{ orderDetail.appName }}</el-descriptions-item>
|
|
|
|
|
@ -149,8 +150,8 @@
|
|
|
|
|
<el-tag class="tag-purple" size="small">{{ orderDetail.channelOrderNo }}</el-tag>
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="支付订单号">
|
|
|
|
|
<el-tag v-if="orderDetail.payOrderExtension.no !== ''" class="tag-pink" size="small">
|
|
|
|
|
{{ orderDetail.payOrderExtension.no }}
|
|
|
|
|
<el-tag v-if="orderDetail.extension.no !== ''" class="tag-pink" size="small">
|
|
|
|
|
{{ orderDetail.extension.no }}
|
|
|
|
|
</el-tag>
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="金额">
|
|
|
|
|
@ -176,7 +177,9 @@
|
|
|
|
|
</el-descriptions>
|
|
|
|
|
<el-divider></el-divider>
|
|
|
|
|
<el-descriptions :column="2" label-class-name="desc-label">
|
|
|
|
|
<el-descriptions-item label="支付渠道">{{ orderDetail.channelCodeName }}</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="支付渠道">
|
|
|
|
|
<dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="orderDetail.channelCode" />
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="支付IP">{{ orderDetail.userIp }}</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="退款状态">
|
|
|
|
|
<dict-tag :type="DICT_TYPE.PAY_ORDER_REFUND_STATUS" :value="orderDetail.refundStatus" />
|
|
|
|
|
@ -194,7 +197,7 @@
|
|
|
|
|
{{ orderDetail.body }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
<el-descriptions-item label="支付通道异步回调内容">
|
|
|
|
|
{{ orderDetail.payOrderExtension.channelNotifyData }}
|
|
|
|
|
{{ orderDetail.extension.channelNotifyData }}
|
|
|
|
|
</el-descriptions-item>
|
|
|
|
|
</el-descriptions>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
@ -204,34 +207,6 @@
|
|
|
|
|
<script>
|
|
|
|
|
import { getOrderDetail, getOrderPage, exportOrderExcel } from "@/api/pay/order";
|
|
|
|
|
import { DICT_TYPE, getDictDatas } from "@/utils/dict";
|
|
|
|
|
import { getNowDateTime} from "@/utils/ruoyi";
|
|
|
|
|
|
|
|
|
|
const defaultOrderDetail = {
|
|
|
|
|
appName: '',
|
|
|
|
|
channelCodeName: '',
|
|
|
|
|
subject: '',
|
|
|
|
|
merchantOrderId: null,
|
|
|
|
|
channelOrderNo: '',
|
|
|
|
|
body: '',
|
|
|
|
|
price: null,
|
|
|
|
|
channelFeeRate: null,
|
|
|
|
|
channelFeePrice: null,
|
|
|
|
|
userIp: '',
|
|
|
|
|
status: null,
|
|
|
|
|
notifyUrl: '',
|
|
|
|
|
notifyStatus: null,
|
|
|
|
|
refundStatus: null,
|
|
|
|
|
refundTimes: '',
|
|
|
|
|
refundPrice: null,
|
|
|
|
|
createTime: '',
|
|
|
|
|
successTime: '',
|
|
|
|
|
notifyTime: '',
|
|
|
|
|
expireTime: '',
|
|
|
|
|
payOrderExtension: {
|
|
|
|
|
channelNotifyData: '',
|
|
|
|
|
no: ''
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: "PayOrder",
|
|
|
|
|
@ -278,47 +253,24 @@ export default {
|
|
|
|
|
notifyTime: [],
|
|
|
|
|
createTime: []
|
|
|
|
|
},
|
|
|
|
|
// 商户加载遮罩层
|
|
|
|
|
merchantLoading: false,
|
|
|
|
|
// 商户列表集合
|
|
|
|
|
merchantList: null,
|
|
|
|
|
|
|
|
|
|
// 支付应用列表集合
|
|
|
|
|
appList: null,
|
|
|
|
|
// 支付渠道编码字典数据集合
|
|
|
|
|
payChannelCodeDictDatum: getDictDatas(DICT_TYPE.PAY_CHANNEL_CODE),
|
|
|
|
|
appList: [],
|
|
|
|
|
// 订单回调商户状态字典数据集合
|
|
|
|
|
payOrderNotifyDictDatum: getDictDatas(DICT_TYPE.PAY_ORDER_NOTIFY_STATUS),
|
|
|
|
|
// 订单状态字典数据集合
|
|
|
|
|
payOrderDictDatum: getDictDatas(DICT_TYPE.PAY_ORDER_STATUS),
|
|
|
|
|
// 订单退款状态字典数据集合
|
|
|
|
|
payOrderRefundDictDatum: getDictDatas(DICT_TYPE.PAY_ORDER_REFUND_STATUS),
|
|
|
|
|
orderDetail: JSON.parse(JSON.stringify(defaultOrderDetail)),
|
|
|
|
|
|
|
|
|
|
// 订单详情
|
|
|
|
|
orderDetail: {
|
|
|
|
|
extension: {}
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
// 初始化默认时间
|
|
|
|
|
this.initTime();
|
|
|
|
|
this.getList();
|
|
|
|
|
this.handleGetMerchantListByName(null);
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
initTime(){
|
|
|
|
|
this.queryParams.createTime = [getNowDateTime("00:00:00"), getNowDateTime("23:59:59")];
|
|
|
|
|
},
|
|
|
|
|
/** 查询列表 */
|
|
|
|
|
getList() {
|
|
|
|
|
// 判断选择的日期是否超过了一个月
|
|
|
|
|
let oneMonthTime = 31 * 24 * 3600 * 1000;
|
|
|
|
|
if (this.queryParams.createTime == null){
|
|
|
|
|
this.initTime();
|
|
|
|
|
} else {
|
|
|
|
|
let minDateTime = new Date(this.queryParams.createTime[0]).getTime();
|
|
|
|
|
let maxDateTime = new Date(this.queryParams.createTime[1]).getTime()
|
|
|
|
|
if (maxDateTime - minDateTime > oneMonthTime) {
|
|
|
|
|
this.$message.error('时间范围最大为 31 天!');
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.loading = true;
|
|
|
|
|
// 执行查询
|
|
|
|
|
getOrderPage(this.queryParams).then(response => {
|
|
|
|
|
@ -339,23 +291,22 @@ export default {
|
|
|
|
|
/** 重置按钮操作 */
|
|
|
|
|
resetQuery() {
|
|
|
|
|
this.resetForm("queryForm");
|
|
|
|
|
this.initTime();
|
|
|
|
|
this.handleQuery();
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 查看订单详情
|
|
|
|
|
*/
|
|
|
|
|
handleQueryDetails(row) {
|
|
|
|
|
this.orderDetail = JSON.parse(JSON.stringify(defaultOrderDetail));
|
|
|
|
|
/** 详情按钮操作 */
|
|
|
|
|
handleDetail(row) {
|
|
|
|
|
this.orderDetail = {};
|
|
|
|
|
getOrderDetail(row.id).then(response => {
|
|
|
|
|
// 设置值
|
|
|
|
|
this.orderDetail = response.data;
|
|
|
|
|
if (response.data.payOrderExtension === null) {
|
|
|
|
|
this.orderDetail.payOrderExtension = Object.assign(defaultOrderDetail.payOrderExtension, {});
|
|
|
|
|
if (!this.orderDetail.extension) {
|
|
|
|
|
this.orderDetail.extension = {}
|
|
|
|
|
}
|
|
|
|
|
// 弹窗打开
|
|
|
|
|
this.open = true;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/** 导出按钮操作 */
|
|
|
|
|
handleExport() {
|
|
|
|
|
// 处理查询参数
|
|
|
|
|
|