|
@ -78,6 +78,7 @@ const getToday = () => { |
|
|
) |
|
|
) |
|
|
getTime.value = [startTime, endTime] |
|
|
getTime.value = [startTime, endTime] |
|
|
activeTimeRange.value = 'today' |
|
|
activeTimeRange.value = 'today' |
|
|
|
|
|
search() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const getYesterday = () => { |
|
|
const getYesterday = () => { |
|
@ -96,6 +97,7 @@ const getYesterday = () => { |
|
|
) |
|
|
) |
|
|
getTime.value = [startTime, endTime] |
|
|
getTime.value = [startTime, endTime] |
|
|
activeTimeRange.value = 'yesterday' |
|
|
activeTimeRange.value = 'yesterday' |
|
|
|
|
|
search() |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -114,6 +116,7 @@ const get7Days = function () { |
|
|
) |
|
|
) |
|
|
getTime.value = [startTime, endTime] |
|
|
getTime.value = [startTime, endTime] |
|
|
activeTimeRange.value = '7days' |
|
|
activeTimeRange.value = '7days' |
|
|
|
|
|
search() |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -126,6 +129,7 @@ const reset = () => { |
|
|
} |
|
|
} |
|
|
getTime.value = [] |
|
|
getTime.value = [] |
|
|
activeTimeRange.value = '' |
|
|
activeTimeRange.value = '' |
|
|
|
|
|
search() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//查询 |
|
|
//查询 |
|
@ -204,7 +208,7 @@ const handleCurrentChange = (value) => { |
|
|
get() |
|
|
get() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//======================导出======================= |
|
|
|
|
|
|
|
|
//==========================导出======================= |
|
|
const exportExcel = async () => { |
|
|
const exportExcel = async () => { |
|
|
const params = { |
|
|
const params = { |
|
|
...getObj.value, |
|
|
...getObj.value, |
|
@ -215,7 +219,9 @@ const exportExcel = async () => { |
|
|
}, |
|
|
}, |
|
|
} |
|
|
} |
|
|
try { |
|
|
try { |
|
|
const res = await API({ url: '/export', data: params }) |
|
|
|
|
|
|
|
|
const res = await API({ url: '/export/exportBean', data: params }) |
|
|
|
|
|
console.log('系统充值导出的参数为:', params); |
|
|
|
|
|
|
|
|
if (res.code === 200) { |
|
|
if (res.code === 200) { |
|
|
ElMessage.success('导出成功') |
|
|
ElMessage.success('导出成功') |
|
|
} else { |
|
|
} else { |
|
@ -230,8 +236,8 @@ const exportListVisible = ref(false) |
|
|
|
|
|
|
|
|
// 打开导出列表弹窗 |
|
|
// 打开导出列表弹窗 |
|
|
const openExportList = () => { |
|
|
const openExportList = () => { |
|
|
getExportList() |
|
|
|
|
|
exportListVisible.value = true |
|
|
|
|
|
|
|
|
getExportList() |
|
|
|
|
|
exportListVisible.value = true |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 导出列表数据 |
|
|
// 导出列表数据 |
|
@ -240,65 +246,64 @@ const exportList = ref([]) |
|
|
const exportListLoading = ref(false) |
|
|
const exportListLoading = ref(false) |
|
|
// 获取导出列表 |
|
|
// 获取导出列表 |
|
|
const getExportList = async () => { |
|
|
const getExportList = async () => { |
|
|
exportListLoading.value = true |
|
|
|
|
|
try { |
|
|
|
|
|
const result = await API({url: '/export/export'}) |
|
|
|
|
|
if (result.code === 200) { |
|
|
|
|
|
// const filteredData = result.data.filter(item => { |
|
|
|
|
|
// return item.type === 2; //2表示金币充值列表 |
|
|
|
|
|
// }); |
|
|
|
|
|
// exportList.value = filteredData |
|
|
|
|
|
exportList.value = result.data |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.error(result.msg || '获取导出列表失败') |
|
|
|
|
|
|
|
|
exportListLoading.value = true |
|
|
|
|
|
try { |
|
|
|
|
|
const result = await API({ url: '/export/export' }) |
|
|
|
|
|
if (result.code === 200) { |
|
|
|
|
|
const filteredData = result.data.filter(item => { |
|
|
|
|
|
return item.type === 9; |
|
|
|
|
|
}); |
|
|
|
|
|
exportList.value = filteredData |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.error(result.msg || '获取导出列表失败') |
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('获取导出列表出错:', error) |
|
|
|
|
|
ElMessage.error('获取导出列表失败,请稍后重试') |
|
|
|
|
|
} finally { |
|
|
|
|
|
exportListLoading.value = false |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
|
|
|
console.error('获取导出列表出错:', error) |
|
|
|
|
|
ElMessage.error('获取导出列表失败,请稍后重试') |
|
|
|
|
|
} finally { |
|
|
|
|
|
exportListLoading.value = false |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
// 下载导出文件 |
|
|
// 下载导出文件 |
|
|
const downloadExportFile = (item) => { |
|
|
const downloadExportFile = (item) => { |
|
|
if (item.state === 2) { |
|
|
|
|
|
const link = document.createElement('a') |
|
|
|
|
|
link.href = item.url |
|
|
|
|
|
link.download = item.fileName |
|
|
|
|
|
link.click() |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.warning('文件还在导出中,请稍后再试') |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (item.state === 2) { |
|
|
|
|
|
const link = document.createElement('a') |
|
|
|
|
|
link.href = item.url |
|
|
|
|
|
link.download = item.fileName |
|
|
|
|
|
link.click() |
|
|
|
|
|
} else { |
|
|
|
|
|
ElMessage.warning('文件还在导出中,请稍后再试') |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
//根据状态返回对应的标签类型 |
|
|
//根据状态返回对应的标签类型 |
|
|
const getTagType = (state) => { |
|
|
const getTagType = (state) => { |
|
|
switch (state) { |
|
|
|
|
|
case 0: |
|
|
|
|
|
return 'info'; |
|
|
|
|
|
case 1: |
|
|
|
|
|
return 'primary'; |
|
|
|
|
|
case 2: |
|
|
|
|
|
return 'success'; |
|
|
|
|
|
case 3: |
|
|
|
|
|
return 'danger'; |
|
|
|
|
|
default: |
|
|
|
|
|
return 'info'; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
switch (state) { |
|
|
|
|
|
case 0: |
|
|
|
|
|
return 'info'; |
|
|
|
|
|
case 1: |
|
|
|
|
|
return 'primary'; |
|
|
|
|
|
case 2: |
|
|
|
|
|
return 'success'; |
|
|
|
|
|
case 3: |
|
|
|
|
|
return 'danger'; |
|
|
|
|
|
default: |
|
|
|
|
|
return 'info'; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
//根据状态返回对应的标签文案 |
|
|
//根据状态返回对应的标签文案 |
|
|
const getTagText = (state) => { |
|
|
const getTagText = (state) => { |
|
|
switch (state) { |
|
|
|
|
|
case 0: |
|
|
|
|
|
return '待执行'; |
|
|
|
|
|
case 1: |
|
|
|
|
|
return '执行中'; |
|
|
|
|
|
case 2: |
|
|
|
|
|
return '执行完成'; |
|
|
|
|
|
case 3: |
|
|
|
|
|
return '执行出错'; |
|
|
|
|
|
default: |
|
|
|
|
|
return '未知状态'; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
switch (state) { |
|
|
|
|
|
case 0: |
|
|
|
|
|
return '待执行'; |
|
|
|
|
|
case 1: |
|
|
|
|
|
return '执行中'; |
|
|
|
|
|
case 2: |
|
|
|
|
|
return '执行完成'; |
|
|
|
|
|
case 3: |
|
|
|
|
|
return '执行出错'; |
|
|
|
|
|
default: |
|
|
|
|
|
return '未知状态'; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
onMounted(async function () { |
|
|
onMounted(async function () { |
|
|
await get() |
|
|
await get() |
|
@ -343,7 +348,7 @@ onMounted(async function () { |
|
|
<el-button type="success" @click="reset()">重置</el-button> |
|
|
<el-button type="success" @click="reset()">重置</el-button> |
|
|
<el-button type="primary" @click="search()">查询</el-button> |
|
|
<el-button type="primary" @click="search()">查询</el-button> |
|
|
<el-button type="primary" style="width: 80px;" @click="exportExcel()">导出Excel</el-button> |
|
|
<el-button type="primary" style="width: 80px;" @click="exportExcel()">导出Excel</el-button> |
|
|
<el-button type="primary" style="width: 95px;" @click="openExportList">查看导出列表</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" style="width: 95px;" @click="openExportList">查看导出列表</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</el-row> |
|
@ -358,9 +363,9 @@ onMounted(async function () { |
|
|
<el-card> |
|
|
<el-card> |
|
|
<div class="bean-info"> |
|
|
<div class="bean-info"> |
|
|
<!-- 汉字用 <strong> 加粗,动态数据用 <span> 包一层单独改色 --> |
|
|
<!-- 汉字用 <strong> 加粗,动态数据用 <span> 包一层单独改色 --> |
|
|
<strong>金豆总数:</strong><span class="data-text">{{ beanNum }}</span> |
|
|
|
|
|
<strong>, 充值金豆数:</strong><span class="data-text">{{ permanentBeans }}</span> |
|
|
|
|
|
<strong>, 合计新币数:</strong><span class="data-text">{{ money }}</span>。 |
|
|
|
|
|
|
|
|
金豆总数:{{ beanNum }} |
|
|
|
|
|
, 充值金豆数:{{ permanentBeans }} |
|
|
|
|
|
, 合计新币数:{{ money }}。 |
|
|
</div> |
|
|
</div> |
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
<div style="height: 520px; overflow-y: auto;margin-top: 10px;"> |
|
|
<div style="height: 520px; overflow-y: auto;margin-top: 10px;"> |
|
@ -392,50 +397,33 @@ onMounted(async function () { |
|
|
<!-- 导出弹窗 --> |
|
|
<!-- 导出弹窗 --> |
|
|
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> |
|
|
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> |
|
|
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading"> |
|
|
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :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') }} |
|
|
|
|
|
|
|
|
<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> |
|
|
</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> |
|
|
|
|
|
|
|
|
</el-dialog> |
|
|
</template> |
|
|
</template> |
|
|
<style scoped> |
|
|
|
|
|
.bean-info { |
|
|
|
|
|
background-color: #eaf5ff; |
|
|
|
|
|
padding: 12px 16px; |
|
|
|
|
|
border-radius: 6px; |
|
|
|
|
|
font-size: 16px; |
|
|
|
|
|
color: #333; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.bean-info strong { |
|
|
|
|
|
font-weight: 700; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.bean-info .data-text { |
|
|
|
|
|
color: #007bff; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
<style scoped></style> |