3 changed files with 367 additions and 41 deletions
-
304src/views/recharge/beanOnlineRecharge.vue
-
103src/views/recharge/beanSystemRecharge.vue
-
1src/views/recharge/coinRechargeDetail.vue
@ -1,8 +1,304 @@ |
|||
<script setup lang="ts"> |
|||
<script setup> |
|||
import { ref, onMounted, reactive, computed } from 'vue' |
|||
import ElementPlus from 'element-plus' |
|||
import { ElMessage, ElMessageBox } from 'element-plus' |
|||
import { AiFillRead } from 'vue-icons-plus/ai' |
|||
import axios from 'axios' |
|||
import moment from 'moment' |
|||
import API from '@/util/http' |
|||
|
|||
const selectData = ref({ |
|||
jwcode: '', |
|||
market: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
|
|||
}) |
|||
//时间格式化 |
|||
const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : '' |
|||
const tableData = ref([]) |
|||
//存储所有的地区数据 |
|||
const market = ref() |
|||
const getTime = ref([]) |
|||
//记录当前选中时间按钮状态 |
|||
const activeTimeRange = ref('') |
|||
const handleDatePickerChange = () => { |
|||
activeTimeRange.value = '' |
|||
} |
|||
//获取所有地区 |
|||
const getArea = () => { |
|||
|
|||
} |
|||
//获取今天日期 |
|||
const getToday = () => { |
|||
const today = new Date() |
|||
const startTime = new Date( |
|||
today.getFullYear(), |
|||
today.getMonth(), |
|||
today.getDate(), |
|||
) |
|||
const endTime = new Date( |
|||
today.getFullYear(), |
|||
today.getMonth(), |
|||
today.getDate(), |
|||
23, 59, 59 |
|||
) |
|||
getTime.value = [startTime, endTime] |
|||
activeTimeRange.value = 'today' |
|||
} |
|||
|
|||
const getYesterday = () => { |
|||
const yesterday = new Date() |
|||
yesterday.setDate(yesterday.getDate() - 1) |
|||
const startTime = new Date( |
|||
yesterday.getFullYear(), |
|||
yesterday.getMonth(), |
|||
yesterday.getDate() |
|||
) |
|||
const endTime = new Date( |
|||
yesterday.getFullYear(), |
|||
yesterday.getMonth(), |
|||
yesterday.getDate(), |
|||
23, 59, 59 |
|||
) |
|||
getTime.value = [startTime, endTime] |
|||
activeTimeRange.value = 'yesterday' |
|||
|
|||
} |
|||
|
|||
const get7Days = function () { |
|||
const today = new Date() |
|||
const startTime = new Date( |
|||
today.getFullYear(), |
|||
today.getMonth(), |
|||
today.getDate() - 6 |
|||
) |
|||
const endTime = new Date( |
|||
today.getFullYear(), |
|||
today.getMonth(), |
|||
today.getDate(), |
|||
23, 59, 59 |
|||
) |
|||
getTime.value = [startTime, endTime] |
|||
activeTimeRange.value = '7days' |
|||
|
|||
} |
|||
|
|||
const reset = () => { |
|||
selectData.value = { |
|||
jwcode: '', |
|||
market: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
} |
|||
getTime.value = [] |
|||
activeTimeRange.value = '' |
|||
} |
|||
|
|||
//查询 |
|||
const search = () => { |
|||
getObj.value.pageNum = 1 |
|||
get() |
|||
} |
|||
//获取表格数据 |
|||
const get = async () => { |
|||
try { |
|||
if (getTime != null) { |
|||
selectData.value.startTime = formatTime(getTime.value[0]) |
|||
selectData.value.endTime = formatTime(getTime.value[1]) |
|||
} else { |
|||
selectData.value.startTime = '' |
|||
selectData.value.endTime = '' |
|||
} |
|||
const data = { |
|||
...getObj.value, |
|||
...selectData.value, |
|||
sortField: sortField.value, |
|||
sortOrder: sortOrder.value, |
|||
} |
|||
console.log('请求参数:', data); |
|||
const result = await API({ |
|||
url: '/beanRecharge/selectOnline', |
|||
data: data |
|||
}) |
|||
if (result.code == 200) { |
|||
tableData.value = result.data.list |
|||
total.value = result.data.total |
|||
ElMessage.success('数据查询成功') |
|||
} else { |
|||
ElMessage.error(result.message) |
|||
} |
|||
} catch (error) { |
|||
console.log('搜索失败', error); |
|||
} |
|||
} |
|||
//排序字段 |
|||
//处理表格排序事件 |
|||
const sortField = ref('') |
|||
const sortOrder = ref('') |
|||
const handleSortChange = (column) => { |
|||
console.log('排序字段:', column.prop) |
|||
console.log('排序方式:', column.order) |
|||
|
|||
// 直接使用允许的排序字段列表进行过滤 |
|||
const allowedFields = ['money', 'freeGold', 'payTime', 'createTime', 'permanentGold']; |
|||
if (allowedFields.includes(column.prop)) { |
|||
sortField.value = column.prop; |
|||
} |
|||
|
|||
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'; |
|||
|
|||
console.log('传递给后端的排序字段:', sortField.value) |
|||
console.log('传递给后端的排序方式:', sortOrder.value) |
|||
|
|||
// get(); |
|||
} |
|||
//========================分页=========================== |
|||
// 搜索对象 |
|||
const total = ref(0) |
|||
const getObj = ref({ |
|||
pageNum: 1, |
|||
pageSize: 20 |
|||
}) |
|||
const handlePageSizeChange = (value) => { |
|||
getObj.value.pageSize = value |
|||
} |
|||
const handleCurrentChange = (value) => { |
|||
getObj.value.pageNum = value |
|||
} |
|||
|
|||
onMounted(async function () { |
|||
await get() |
|||
await getArea() |
|||
}) |
|||
</script> |
|||
<template> |
|||
<el-row> |
|||
<el-col> |
|||
<el-card style="margin-bottom: 20px;margin-top: 10px"> |
|||
<el-row style="margin-bottom: 10px"> |
|||
<el-col :span="5"> |
|||
<div class="head-card-element"> |
|||
<el-text class="mx-1" size="large">精网号:</el-text> |
|||
<el-input v-model="selectData.jwcode" placeholder="请输入精网号" style="width: 150px" clearable /> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<div class="head-card-element"> |
|||
<el-text class="mx-1" size="large">所属地区:</el-text> |
|||
<el-cascader v-model="selectData.market" :options="market" placeholder="请选择所属地区" clearable |
|||
style="width:150px" /> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="5"> |
|||
<div class="head-card-element"> |
|||
<el-text class="mx-1" size="large">订单号:</el-text> |
|||
<el-input v-model="selectData.OrderNumber" placeholder="请输入订单号" style="width: 150px" clearable /> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="6"> |
|||
<div class="head-card-element"> |
|||
<el-text class="mx-1" size="large">充值平台:</el-text> |
|||
<el-cascader v-model="selectData.PayPlatform" :options="market" placeholder="请选择充值平台" clearable |
|||
style="width:150px" /> |
|||
</div> |
|||
</el-col> |
|||
|
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="23"> |
|||
<div class="head-card-element"> |
|||
<el-text class="mx-1" size="large">充值时间:</el-text> |
|||
<el-date-picker v-model="getTime" type="datetimerange" range-separator="至" |
|||
start-placeholder="起始时间" end-placeholder="结束时间" style="width: 350px" |
|||
@change="handleDatePickerChange" /> |
|||
<el-button @click="getToday()" style="margin-left: 10px" |
|||
:type="activeTimeRange === 'today' ? 'primary' : ''"> 今 |
|||
</el-button> |
|||
<el-button @click="getYesterday()" style="margin-left: 10px" |
|||
:type="activeTimeRange === 'yesterday' ? 'primary' : ''"> 昨 |
|||
</el-button> |
|||
<el-button @click="get7Days()" style="margin-left: 10px" |
|||
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天 |
|||
</el-button> |
|||
<el-button type="success" @click="reset()">重置</el-button> |
|||
<el-button type="primary" @click="search()">查询</el-button> |
|||
<!-- <el-button type="primary" @click="exportExcel()">导出Excel</el-button> |
|||
<el-button type="primary" @click="openExportList">查看导出列表</el-button> --> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
</el-card> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col> |
|||
<el-card> |
|||
<!-- <div> |
|||
充值金额:{{ (permanentGolds) / 100 }}新币,永久金币:{{ |
|||
permanentGolds / 100 |
|||
}}金币,免费金币:{{ freeGolds / 100 }}金币 |
|||
</div> --> |
|||
<!-- 设置表格容器的高度和滚动样式 --> |
|||
<div style="height: 520px; overflow-y: auto;margin-top: 10px;"> |
|||
<el-table :data="tableData" style="width: 100%" height="520px" @sort-change="handleSortChange"> |
|||
<el-table-column type="id" label="ID" min-width="80px" fixed="left"></el-table-column> |
|||
<el-table-column fixed="left" prop="name" label="姓名" min-width="100" /> |
|||
<el-table-column fixed="left" prop="jwcode" label="精网号" min-width="110px" /> |
|||
<el-table-column prop="market" label="所属地区" min-width="100px" /> |
|||
<el-table-column prop="permanentBean" label="订单号" min-width="110px" /> |
|||
<el-table-column prop="freeBean" label="数量" sortable="custom" min-width="110px" /> |
|||
<el-table-column prop="remark" label="金额" sortable="custom" min-width="150px" show-overflow-tooltip /> |
|||
<el-table-column prop="remark" label="充值平台" min-width="150px" show-overflow-tooltip /> |
|||
<el-table-column prop="rechargeTime" sortable label="充值时间" min-width="200px"> |
|||
<template #default="scope"> |
|||
{{ moment(scope.row.payTime).format('YYYY-MM-DD HH:mm:ss') }} |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
|
|||
线上充值 |
|||
<!-- 分页 --> |
|||
<div class="pagination" style="margin-top: 20px"> |
|||
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" |
|||
layout="total, sizes, prev, pager, next, jumper" :total="total" |
|||
@size-change="handlePageSizeChange" @current-change="handleCurrentChange"></el-pagination> |
|||
</div> |
|||
</el-card> |
|||
</el-col> |
|||
</el-row> |
|||
<!-- 导出弹窗 --> |
|||
<!-- <el-dialog v-model="exportListVisible" title="导出列表" width="80%"> |
|||
<el-table :data="exportList" style="width: 100%" :loading="exportListLoading"> |
|||
<el-table-column prop="fileName" label="文件名"/> |
|||
<el-table-column prop="state" label="状态"> |
|||
<template #default="scope"> |
|||
<el-tag :type="getTagType(scope.row.state)" |
|||
:effect="scope.row.state === 3 ? 'light' : 'plain'"> |
|||
{{ getTagText(scope.row.state) }} |
|||
</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="createTime" label="创建时间"> |
|||
<template #default="scope"> |
|||
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="操作"> |
|||
<template #default="scope"> |
|||
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)" |
|||
:disabled="scope.row.state !== 2"> |
|||
下载 |
|||
</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button text @click="exportListVisible = false">关闭</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> --> |
|||
</template> |
|||
<style> |
|||
</style> |
|||
<style></style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue