|
|
@ -1,52 +1,103 @@ |
|
|
|
<template> |
|
|
|
<div class="app-container"> |
|
|
|
<div class="search_con m-b-28"> |
|
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" |
|
|
|
class="form" style="position: relative"> |
|
|
|
<el-form |
|
|
|
:model="queryParams" |
|
|
|
ref="queryForm" |
|
|
|
:inline="true" |
|
|
|
v-show="showSearch" |
|
|
|
label-width="116px" |
|
|
|
class="form" |
|
|
|
style="position: relative" |
|
|
|
> |
|
|
|
<el-form-item label="平台订单号" prop="noOrder"> |
|
|
|
<el-input size="medium" v-model="queryParams.noOrder" placeholder="请输入平台订单号" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
<el-input |
|
|
|
size="medium" |
|
|
|
v-model="queryParams.noOrder" |
|
|
|
placeholder="请输入平台订单号" |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
style="width: 180px; border-color: #e6f1ff" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="商户订单号" prop="merchantOrderNo"> |
|
|
|
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
<el-input |
|
|
|
size="medium" |
|
|
|
v-model="queryParams.merchantOrderNo" |
|
|
|
placeholder="请输入商户订单号" |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
style="width: 180px; border-color: #e6f1ff" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="收款卡号" prop="cardNumber"> |
|
|
|
<!-- <el-form-item label="收款卡号" prop="cardNumber"> |
|
|
|
<el-input size="medium" v-model="queryParams.cardNumber" placeholder="请输入收款卡号" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> --> |
|
|
|
<el-form-item label="商户名称" prop="merchantName"> |
|
|
|
<el-input size="medium" v-model="queryParams.merchantName" placeholder="请输入商户名称" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
<el-input |
|
|
|
size="medium" |
|
|
|
v-model="queryParams.merchantName" |
|
|
|
placeholder="请输入商户名称" |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
style="width: 180px; border-color: #e6f1ff" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="开户名" prop="accountName"> |
|
|
|
<!-- <el-form-item label="开户名" prop="accountName"> |
|
|
|
<el-input size="medium" v-model="queryParams.accountName" placeholder="请输入开户名" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> --> |
|
|
|
<el-form-item label="代付金额" prop="tranAmt"> |
|
|
|
<el-input size="medium" v-model="queryParams.tranAmt" placeholder="请输入代付金额" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
<el-input |
|
|
|
size="medium" |
|
|
|
v-model="queryParams.tranAmt" |
|
|
|
placeholder="请输入代付金额" |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
style="width: 180px; border-color: #e6f1ff" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="批次号" prop="batchNo"> |
|
|
|
<el-input size="medium" v-model="queryParams.batchNo" placeholder="请输入批次号" |
|
|
|
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" /> |
|
|
|
<el-input |
|
|
|
size="medium" |
|
|
|
v-model="queryParams.batchNo" |
|
|
|
placeholder="请输入批次号" |
|
|
|
@keyup.enter.native="handleQuery" |
|
|
|
style="width: 180px; border-color: #e6f1ff" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="订单状态" prop="orderStatus"> |
|
|
|
<el-select v-model="queryParams.orderStatus" placeholder="请选择状态" clearable size="medium"> |
|
|
|
<el-option v-for="dict in sysOrderStatus" :key="dict.dictValue" :label="dict.dictLabel" |
|
|
|
:value="dict.dictValue" /> |
|
|
|
<el-select |
|
|
|
v-model="queryParams.orderStatus" |
|
|
|
placeholder="请选择状态" |
|
|
|
clearable |
|
|
|
size="medium" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="dict in sysOrderStatus" |
|
|
|
:key="dict.dictValue" |
|
|
|
:label="dict.dictLabel" |
|
|
|
:value="dict.dictValue" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="创建时间"> |
|
|
|
<el-date-picker v-model="dateRange" size="medium" style="width: 360px" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" :unlink-panels="true" |
|
|
|
:default-time="['00:00:00', '23:59:59']"></el-date-picker> |
|
|
|
<el-date-picker |
|
|
|
v-model="dateRange" |
|
|
|
size="medium" |
|
|
|
style="width: 360px" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
type="datetimerange" |
|
|
|
range-separator="-" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
:unlink-panels="true" |
|
|
|
:default-time="['00:00:00', '23:59:59']" |
|
|
|
></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button type="primary" size="medium" @click="handleQuery">搜索</el-button> |
|
|
|
<el-button type="primary" size="medium" @click="handleQuery" |
|
|
|
>搜索</el-button |
|
|
|
> |
|
|
|
<el-button size="medium" @click="resetQuery">重置</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
@ -54,50 +105,80 @@ |
|
|
|
<div class="bg bg-white"> |
|
|
|
<el-row :gutter="10" class="m-b-16"> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="primary" size="medium" |
|
|
|
@click="handleExport">导出</el-button> |
|
|
|
<el-button type="primary" size="medium" @click="handleExport" |
|
|
|
>导出</el-button |
|
|
|
> |
|
|
|
</el-col> |
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
|
|
|
<right-toolbar |
|
|
|
:showSearch.sync="showSearch" |
|
|
|
@queryTable="getList" |
|
|
|
></right-toolbar> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-table :data="otcCoinList" v-loading="loading"> |
|
|
|
|
|
|
|
<el-table-column label="平台订单号" align="center" prop="noOrder" /> |
|
|
|
|
|
|
|
<el-table-column label="商户订单号" align="center" prop="outTradeNo" /> |
|
|
|
<el-table-column label="商户名称" align="center" prop="merchantName" /> |
|
|
|
<el-table-column label="批次号" align="center" prop="batchNo" min-width="120" /> |
|
|
|
<el-table-column |
|
|
|
label="批次号" |
|
|
|
align="center" |
|
|
|
prop="batchNo" |
|
|
|
min-width="120" |
|
|
|
/> |
|
|
|
<el-table-column :label="'代付金额'" align="center" prop="tranAmt"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.tranAmt }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column :label="'商户手续费'" align="center" prop="merchantFee"> |
|
|
|
<el-table-column |
|
|
|
:label="'商户手续费'" |
|
|
|
align="center" |
|
|
|
prop="merchantFee" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.merchantFee }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column :label="'商户单笔手续费'" align="center" prop="merchantSingleFee"> |
|
|
|
<el-table-column |
|
|
|
:label="'商户单笔手续费'" |
|
|
|
align="center" |
|
|
|
prop="merchantSingleFee" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.merchantSingleFee }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column :label="'商户费率(%)'" align="center" prop="merchantSingleFee"> |
|
|
|
<el-table-column |
|
|
|
:label="'商户费率(%)'" |
|
|
|
align="center" |
|
|
|
prop="merchantSingleFee" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ parseFloat(NumberMul(scope.row.merchantRate, 100)).toFixed(2) }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="银行名称" align="center" prop="bankName" /> |
|
|
|
<!-- <el-table-column label="银行名称" align="center" prop="bankName" /> |
|
|
|
<el-table-column label="卡号" align="center" prop="cardNumber" /> |
|
|
|
<el-table-column label="开户名" align="center" prop="accountName" /> |
|
|
|
<el-table-column label="开户行" align="center" prop="branchName" /> |
|
|
|
<el-table-column label="开户行" align="center" prop="branchName" /> --> |
|
|
|
|
|
|
|
<el-table-column label="地址" align="center" prop="address" /> |
|
|
|
|
|
|
|
<!-- <el-table-column label="订单状态" align="center" prop="orderStatus" :formatter="sysOrderStatusFormat" /> --> |
|
|
|
|
|
|
|
<el-table-column label="订单状态" align="center" prop="orderStatus" width="180"> |
|
|
|
<el-table-column |
|
|
|
label="订单状态" |
|
|
|
align="center" |
|
|
|
prop="orderStatus" |
|
|
|
width="180" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span :style="classObje(scope.row.orderStatus)">{{ sysOrderStatusFormat(scope.row) }}</span> |
|
|
|
<span :style="classObje(scope.row.orderStatus)">{{ |
|
|
|
sysOrderStatusFormat(scope.row) |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
@ -105,18 +186,91 @@ |
|
|
|
|
|
|
|
<el-table-column label="备注" align="center" prop="orderMsg" /> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
label="创建时间" |
|
|
|
align="center" |
|
|
|
prop="createTime" |
|
|
|
min-width="180" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="更新时间" |
|
|
|
align="center" |
|
|
|
prop="updateTime" |
|
|
|
min-width="180" |
|
|
|
/> |
|
|
|
|
|
|
|
<el-table-column label="创建时间" align="center" prop="createTime" min-width="180" /> |
|
|
|
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="180" /> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
label="操作" |
|
|
|
align="center" |
|
|
|
class-name="small-padding fixed-width" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
size="medium" |
|
|
|
v-if="scope.row.orderStatus == 'processreview'||scope.row.orderStatus == 'processing'" |
|
|
|
type="text" |
|
|
|
@click="handleOrder(scope.row)" |
|
|
|
>手工处理</el-button |
|
|
|
> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
|
|
|
:limit.sync="queryParams.pageSize" @pagination="getList" /> |
|
|
|
<pagination |
|
|
|
v-show="total > 0" |
|
|
|
:total="total" |
|
|
|
:page.sync="queryParams.pageNum" |
|
|
|
:limit.sync="queryParams.pageSize" |
|
|
|
@pagination="getList" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 处理当前订单 --> |
|
|
|
<el-dialog |
|
|
|
v-dialogDrag |
|
|
|
title="手工处理" |
|
|
|
:visible.sync="open" |
|
|
|
width="500px" |
|
|
|
append-to-body |
|
|
|
:close-on-click-modal="false" |
|
|
|
:before-close="cancel" |
|
|
|
> |
|
|
|
<el-form ref="formDeal" :model="form" :rules="rules" label-width="120px"> |
|
|
|
<el-form-item label="订单状态" prop="status"> |
|
|
|
<el-select |
|
|
|
v-model="form.status" |
|
|
|
placeholder="请选择订单状态" |
|
|
|
clearable |
|
|
|
size="medium" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="(item, i) in orderStatusType" |
|
|
|
:key="i" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="谷歌动态验证码" prop="googleCode"> |
|
|
|
<el-input |
|
|
|
v-model="form.googleCode" |
|
|
|
placeholder="请输入谷歌动态验证码" |
|
|
|
style="width: 217px" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<el-button |
|
|
|
:disabled="!form.status || !form.googleCode" |
|
|
|
:type="form.status && form.googleCode ? 'primary' : 'info'" |
|
|
|
icon="" |
|
|
|
size="medium" |
|
|
|
@click="submitForm('processsuccess', 'formDeal')" |
|
|
|
>确定</el-button |
|
|
|
> |
|
|
|
<el-button plain size="medium" @click="cancel">取消</el-button> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
@ -124,22 +278,31 @@ |
|
|
|
import { paymentDaiFuRecord, common_api } from "@/api/form"; |
|
|
|
export default { |
|
|
|
name: "otcStoreDaiFuOrder", |
|
|
|
components: { |
|
|
|
}, |
|
|
|
components: {}, |
|
|
|
computed: { |
|
|
|
classObje(status) { |
|
|
|
return (status) => { |
|
|
|
if(status=='processing'){ |
|
|
|
return {'color':'rgba(255, 124, 30, 1)'} |
|
|
|
} |
|
|
|
if(status=='fail_appeal'){ |
|
|
|
return {'color':'rgba(237, 80, 89, 1)'} |
|
|
|
} |
|
|
|
if (status == "processing") { |
|
|
|
return { color: "rgba(255, 124, 30, 1)" }; |
|
|
|
} |
|
|
|
if (status == "fail_appeal") { |
|
|
|
return { color: "rgba(237, 80, 89, 1)" }; |
|
|
|
} |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
orderStatusType: [ |
|
|
|
{ |
|
|
|
label: "成功", |
|
|
|
value: 2, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "失败", |
|
|
|
value: 3, |
|
|
|
}, |
|
|
|
], |
|
|
|
dateRange: [], |
|
|
|
sysOrderStatus: [], |
|
|
|
notifyStatusOptions: [], |
|
|
@ -168,42 +331,78 @@ export default { |
|
|
|
pageSize: 10, |
|
|
|
noOrder: null, |
|
|
|
merchantOrderNo: null, |
|
|
|
cardNumber: null, |
|
|
|
// cardNumber: null, |
|
|
|
merchantName: null, |
|
|
|
accountName: null, |
|
|
|
// accountName: null, |
|
|
|
tranAmt: null, |
|
|
|
orderStatus: null, |
|
|
|
batchNo: null |
|
|
|
batchNo: null, |
|
|
|
}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
// 表单校验 |
|
|
|
rules: { |
|
|
|
type: [{ required: true, message: "请选择订单类型", trigger: "blur" }], |
|
|
|
merchantId: [ |
|
|
|
{ required: true, message: "请选择商户", trigger: "blur" }, |
|
|
|
], |
|
|
|
amount: [{ required: true, message: "请输入金额", trigger: "blur" }], |
|
|
|
}, |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.getList(); |
|
|
|
|
|
|
|
this.getDicts("d_order_status").then(response => { |
|
|
|
this.getDicts("d_order_status").then((response) => { |
|
|
|
this.sysOrderStatus = response.data; |
|
|
|
this.sysOrderStatus.unshift({ |
|
|
|
dictLabel:'全部', |
|
|
|
dictLabel: "全部", |
|
|
|
dictValue: null, |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.getDicts("notify_status").then(response => { |
|
|
|
this.getDicts("notify_status").then((response) => { |
|
|
|
this.notifyStatusOptions = response.data; |
|
|
|
this.notifyStatusOptions.unshift({ |
|
|
|
dictLabel:'全部', |
|
|
|
dictLabel: "全部", |
|
|
|
dictValue: null, |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/** 提交按钮 */ |
|
|
|
submitForm(t, f) { |
|
|
|
this.$refs[f].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
if (!this.form.status) { |
|
|
|
return; |
|
|
|
} |
|
|
|
let form = { |
|
|
|
orderNo: this.form.orderNo, |
|
|
|
status: this.form.status, |
|
|
|
googleCode: this.form.googleCode, |
|
|
|
}; |
|
|
|
paymentDaiFuRecord |
|
|
|
.payHandle(form) |
|
|
|
.then((response) => { |
|
|
|
this.open = false; |
|
|
|
this.msgSuccess("处理成功"); |
|
|
|
this.getList(); |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 手工处理 */ |
|
|
|
handleOrder(row) { |
|
|
|
this.reset(); |
|
|
|
this.form.orderNo = row.noOrder; |
|
|
|
this.open = true; |
|
|
|
}, |
|
|
|
getList() { |
|
|
|
this.loading = true; |
|
|
|
paymentDaiFuRecord.listInfo(this.addSESDateRange(this.queryParams, this.dateRange)).then(response => { |
|
|
|
paymentDaiFuRecord |
|
|
|
.listInfo(this.addSESDateRange(this.queryParams, this.dateRange)) |
|
|
|
.then((response) => { |
|
|
|
this.otcCoinList = response.rows; |
|
|
|
this.total = Number(response.total); |
|
|
|
this.loading = false; |
|
|
@ -225,8 +424,7 @@ export default { |
|
|
|
}, |
|
|
|
// 表单重置 |
|
|
|
reset() { |
|
|
|
this.form = { |
|
|
|
}; |
|
|
|
this.form = {}; |
|
|
|
this.resetForm("form"); |
|
|
|
}, |
|
|
|
/** 搜索按钮操作 */ |
|
|
@ -236,7 +434,7 @@ export default { |
|
|
|
}, |
|
|
|
/** 重置按钮操作 */ |
|
|
|
resetQuery() { |
|
|
|
this.dateRange = [] |
|
|
|
this.dateRange = []; |
|
|
|
this.resetForm("queryForm"); |
|
|
|
this.handleQuery(); |
|
|
|
}, |
|
|
@ -244,17 +442,19 @@ export default { |
|
|
|
/** 导出按钮操作 */ |
|
|
|
handleExport() { |
|
|
|
const queryParams = this.queryParams; |
|
|
|
this.$confirm('是否确认导出所有数据项?', "警告", { |
|
|
|
this.$confirm("是否确认导出所有数据项?", "警告", { |
|
|
|
confirmButtonText: "确定", |
|
|
|
cancelButtonText: "取消", |
|
|
|
type: "warning" |
|
|
|
}).then(function () { |
|
|
|
type: "warning", |
|
|
|
}) |
|
|
|
.then(function () { |
|
|
|
return paymentDaiFuRecord.exportList(queryParams); |
|
|
|
}).then(response => { |
|
|
|
this.download(response.msg); |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
.then((response) => { |
|
|
|
this.download(response.msg); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|