|
|
@ -30,8 +30,8 @@ const paytypeList = [ |
|
|
const payPlatformOptions = ref([...paytypeList]) |
|
|
const payPlatformOptions = ref([...paytypeList]) |
|
|
|
|
|
|
|
|
const statusOptions = [ |
|
|
const statusOptions = [ |
|
|
{ label: '已到账', value: 4 }, |
|
|
|
|
|
{ label: '已退款', value: 6 } |
|
|
|
|
|
|
|
|
{ label: t('cash.statusList.received'), value: 4 }, |
|
|
|
|
|
{ label: t('cash.statusList.refunded'), value: 6 } |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
|
// 地区树 |
|
|
// 地区树 |
|
|
@ -103,13 +103,13 @@ const fetchData = async () => { |
|
|
total.value = res.data.total || 0 |
|
|
total.value = res.data.total || 0 |
|
|
loading.value = false |
|
|
loading.value = false |
|
|
} else { |
|
|
} else { |
|
|
ElMessage.error(res.msg || '获取数据失败') |
|
|
|
|
|
|
|
|
ElMessage.error(res.msg || t('elmessage.getDataFailed')) |
|
|
loading.value = false |
|
|
loading.value = false |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.error(error) |
|
|
console.error(error) |
|
|
loading.value = false |
|
|
loading.value = false |
|
|
ElMessage.error('获取数据失败') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.getDataFailed')) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -138,14 +138,12 @@ const handleCurrentChange = (val) => { |
|
|
|
|
|
|
|
|
// 退款操作 |
|
|
// 退款操作 |
|
|
const handleRefund = (row) => { |
|
|
const handleRefund = (row) => { |
|
|
ElMessageBox.confirm(`确定要对订单 ${row.systemTradeNo} 进行退款吗?`, '退款确认', { |
|
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
|
|
|
|
ElMessageBox.confirm(t('elmessage.refundConfirmContent', { orderNo: row.systemTradeNo }), t('elmessage.refundConfirmTitle'), { |
|
|
|
|
|
confirmButtonText: t('common.confirm'), |
|
|
|
|
|
cancelButtonText: t('common.cancel'), |
|
|
type: 'warning' |
|
|
type: 'warning' |
|
|
}).then(() => { |
|
|
}).then(() => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ElMessage.success('退款申请已提交') |
|
|
|
|
|
|
|
|
ElMessage.success(t('elmessage.refundSubmitSuccess')) |
|
|
// 刷新列表 |
|
|
// 刷新列表 |
|
|
fetchData() |
|
|
fetchData() |
|
|
}).catch(() => {}) |
|
|
}).catch(() => {}) |
|
|
@ -182,7 +180,7 @@ const handleExport = async () => { |
|
|
|
|
|
|
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.error(error) |
|
|
console.error(error) |
|
|
ElMessage.error('导出失败') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.exportError')) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -259,11 +257,11 @@ onMounted(() => { |
|
|
<!-- 第一行 --> |
|
|
<!-- 第一行 --> |
|
|
<div class="search-row"> |
|
|
<div class="search-row"> |
|
|
<div class="search-item"> |
|
|
<div class="search-item"> |
|
|
<span class="label">精网号:</span> |
|
|
|
|
|
<el-input v-model="queryParams.jwcode" placeholder="请输入精网号" clearable /> |
|
|
|
|
|
|
|
|
<span class="label">{{ t('common.jwcode') }}:</span> |
|
|
|
|
|
<el-input v-model="queryParams.jwcode" :placeholder="t('common.jwcodePlaceholder')" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search-item"> |
|
|
<div class="search-item"> |
|
|
<span class="label">所属地区:</span> |
|
|
|
|
|
|
|
|
<span class="label">{{ t('common.market') }}:</span> |
|
|
<!-- 下拉多选,使用 el-cascader 匹配地区树结构 --> |
|
|
<!-- 下拉多选,使用 el-cascader 匹配地区树结构 --> |
|
|
<el-cascader |
|
|
<el-cascader |
|
|
v-model="queryParams.customerMarket" |
|
|
v-model="queryParams.customerMarket" |
|
|
@ -271,20 +269,20 @@ onMounted(() => { |
|
|
:props="{ multiple: true, emitPath: false }" |
|
|
:props="{ multiple: true, emitPath: false }" |
|
|
collapse-tags |
|
|
collapse-tags |
|
|
collapse-tags-tooltip |
|
|
collapse-tags-tooltip |
|
|
placeholder="请选择地区" |
|
|
|
|
|
|
|
|
:placeholder="t('common.marketPlaceholder')" |
|
|
clearable |
|
|
clearable |
|
|
style="width: 220px;" |
|
|
style="width: 220px;" |
|
|
/> |
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="search-item" style="width: auto;"> |
|
|
<div class="search-item" style="width: auto;"> |
|
|
<span class="label">付款时间:</span> |
|
|
|
|
|
|
|
|
<span class="label">{{ t('common.payTime2') }}:</span> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-model="queryParams.timeRange" |
|
|
v-model="queryParams.timeRange" |
|
|
type="datetimerange" |
|
|
type="datetimerange" |
|
|
range-separator="至" |
|
|
|
|
|
start-placeholder="开始时间" |
|
|
|
|
|
end-placeholder="结束时间" |
|
|
|
|
|
|
|
|
:range-separator="t('common.to')" |
|
|
|
|
|
:start-placeholder="t('common.startTime')" |
|
|
|
|
|
:end-placeholder="t('common.endTime')" |
|
|
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" |
|
|
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" |
|
|
style="width: 350px;" |
|
|
style="width: 350px;" |
|
|
/> |
|
|
/> |
|
|
@ -303,27 +301,27 @@ onMounted(() => { |
|
|
<!-- 表格区域 --> |
|
|
<!-- 表格区域 --> |
|
|
<el-card class="table-card"> |
|
|
<el-card class="table-card"> |
|
|
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }"> |
|
|
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }"> |
|
|
<el-table-column type="index" label="序号" min-width="60" align="center" fixed="left" /> |
|
|
|
|
|
<el-table-column prop="jwcode" label="精网号" min-width="120" fixed="left" /> |
|
|
|
|
|
<el-table-column prop="name" label="姓名" min-width="150" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="marketName" label="所属地区" min-width="120" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="orderCode" label="系统交易号" min-width="280" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column type="index" :label="t('common_list.id')" min-width="60" align="center" fixed="left" /> |
|
|
|
|
|
<el-table-column prop="jwcode" :label="t('common_list.jwcode')" min-width="120" fixed="left" /> |
|
|
|
|
|
<el-table-column prop="name" :label="t('common_list.name')" min-width="150" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="marketName" :label="t('common_list.market')" min-width="120" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="orderCode" :label="t('common_list.orderCode')" min-width="280" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column prop="paymentAmount" label="付款金额" min-width="150" align="right"> |
|
|
|
|
|
|
|
|
<el-table-column prop="paymentAmount" :label="t('common_list.payAmount')" min-width="150" align="right"> |
|
|
<!-- <template #default="{ row }"> |
|
|
<!-- <template #default="{ row }"> |
|
|
{{ row.paymentAmount }} {{ row.paymentCurrency }} |
|
|
{{ row.paymentAmount }} {{ row.paymentCurrency }} |
|
|
</template> --> |
|
|
</template> --> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="paymentCurrency" label="付款币种" min-width="180" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column prop="paymentCurrency" :label="t('common_list.payCurrency')" min-width="180" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column prop="receivedAmount" label="到账金额" min-width="150" align="right"> |
|
|
|
|
|
|
|
|
<el-table-column prop="receivedAmount" :label="t('common_list.receiveAmount')" min-width="150" align="right"> |
|
|
<!-- <template #default="{ row }"> |
|
|
<!-- <template #default="{ row }"> |
|
|
{{ row.receivedAmount }} {{ row.receivedCurrency }} |
|
|
{{ row.receivedAmount }} {{ row.receivedCurrency }} |
|
|
</template> --> |
|
|
</template> --> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="receivedCurrency" label="到账币种" min-width="180" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column prop="receivedCurrency" :label="t('common_list.receiveCurrency')" min-width="180" show-overflow-tooltip /> |
|
|
|
|
|
|
|
|
<el-table-column prop="handlingCharge" label="手续费" min-width="100" align="right" /> |
|
|
|
|
|
|
|
|
<el-table-column prop="handlingCharge" :label="t('common_list.fee')" min-width="100" align="right" /> |
|
|
</el-table> |
|
|
</el-table> |
|
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
<!-- 分页 --> |
|
|
@ -410,56 +408,43 @@ onMounted(() => { |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
|
|
|
|
|
|
.label { |
|
|
.label { |
|
|
font-size: 15px; // 参考 coinConsumeDetail 的 .text size="large" |
|
|
|
|
|
color: #000; // 或 #606266 |
|
|
|
|
|
white-space: nowrap; |
|
|
white-space: nowrap; |
|
|
margin-right: 8px; |
|
|
|
|
|
min-width: 60px; |
|
|
|
|
|
text-align: right; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.el-input, .el-select { |
|
|
|
|
|
width: 200px; |
|
|
|
|
|
|
|
|
margin-right: 10px; |
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
color: #606266; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.search-btn-group { |
|
|
.search-btn-group { |
|
|
margin-left: 2vw; |
|
|
|
|
|
|
|
|
margin-left: auto; |
|
|
display: flex; |
|
|
display: flex; |
|
|
gap: 10px; |
|
|
gap: 10px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.table-card { |
|
|
.table-card { |
|
|
background: #E7F4FD; |
|
|
|
|
|
flex: 1; |
|
|
flex: 1; |
|
|
border: none; |
|
|
|
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
border: none; |
|
|
|
|
|
|
|
|
:deep(.el-card__body) { |
|
|
:deep(.el-card__body) { |
|
|
padding: 20px; |
|
|
|
|
|
flex: 1; |
|
|
|
|
|
|
|
|
height: 100%; |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
padding: 0; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.pagination-container { |
|
|
.pagination-container { |
|
|
margin-top: 15px; |
|
|
|
|
|
|
|
|
padding: 15px; |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: flex-start; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 表格样式覆盖 (参考 coinConsumeDetail) |
|
|
|
|
|
:deep(.el-table__header-wrapper), |
|
|
|
|
|
:deep(.el-table__body-wrapper), |
|
|
|
|
|
:deep(.el-table__cell), |
|
|
|
|
|
:deep(.el-table__body td) { |
|
|
|
|
|
background-color: #F3FAFE !important; // 如果想完全一致可以加这个,但有时候会影响阅读,暂保留头部颜色 |
|
|
|
|
|
|
|
|
justify-content: flex-end; |
|
|
|
|
|
background: #fff; |
|
|
|
|
|
border-top: 1px solid #ebeef5; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
:deep(.el-table__row:hover > .el-table__cell) { |
|
|
|
|
|
background-color: #E5EBFE !important; |
|
|
|
|
|
|
|
|
.dialog-footer { |
|
|
|
|
|
text-align: right; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |