|
|
@ -31,24 +31,7 @@ const getAdminData = async function () { |
|
|
|
console.log('管理员用户信息请求失败', error) |
|
|
|
} |
|
|
|
} |
|
|
|
const exportExcel = async function () { |
|
|
|
const params = { |
|
|
|
goldDetail:{ |
|
|
|
jwcode: goldDetail.value.jwcode || '', |
|
|
|
payPlatform: goldDetail.value.payPlatform || '', |
|
|
|
type: goldDetail.value.type || '', |
|
|
|
market: goldDetail.value.market || '', |
|
|
|
startTime: goldDetail.value.startTime || '', |
|
|
|
endTime: goldDetail.value.endTime || '', |
|
|
|
}, |
|
|
|
page:getObj.pageNum, |
|
|
|
size:getObj.pageSize |
|
|
|
} |
|
|
|
const res = await API({ url: '/goldDetail/export', data: params }) |
|
|
|
if (res.code === 200) { |
|
|
|
ElMessage.success('导出成功') |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 精网号去空格,处理 goldDetail 中的 jwcode |
|
|
|
const trimJwCode = () => { |
|
|
|
if (goldDetail.value.jwcode) { |
|
|
@ -214,13 +197,13 @@ const get = async function (val) { |
|
|
|
url: '/goldDetail/getTotal', |
|
|
|
method: 'post', |
|
|
|
data: { |
|
|
|
goldDetail:{...goldDetail.value}, |
|
|
|
/* jwcode: goldDetail.value.jwcode || '', |
|
|
|
payPlatform: goldDetail.value.payPlatform || '', |
|
|
|
type: goldDetail.value.type || '', |
|
|
|
market: goldDetail.value.market || '', |
|
|
|
startTime: goldDetail.value.startTime || '', |
|
|
|
endTime: goldDetail.value.endTime || ''*/ |
|
|
|
goldDetail: { ...goldDetail.value }, |
|
|
|
/* jwcode: goldDetail.value.jwcode || '', |
|
|
|
payPlatform: goldDetail.value.payPlatform || '', |
|
|
|
type: goldDetail.value.type || '', |
|
|
|
market: goldDetail.value.market || '', |
|
|
|
startTime: goldDetail.value.startTime || '', |
|
|
|
endTime: goldDetail.value.endTime || ''*/ |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
@ -327,13 +310,30 @@ const handleSortChange = (column) => { |
|
|
|
sortField.value = 'free_gold' |
|
|
|
} else if (column.prop === 'auditTime') {//删除了更新时间的creatTime |
|
|
|
sortField.value = 'audit_time' |
|
|
|
} |
|
|
|
} |
|
|
|
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC' |
|
|
|
//get()要写在handleSortChange方法里面,不然会导致排序失效 |
|
|
|
get() |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const exportExcel = async function () { |
|
|
|
const params = { |
|
|
|
goldDetail: { |
|
|
|
jwcode: goldDetail.value.jwcode || '', |
|
|
|
payPlatform: goldDetail.value.payPlatform || '', |
|
|
|
type: goldDetail.value.type || '', |
|
|
|
market: goldDetail.value.market || '', |
|
|
|
startTime: goldDetail.value.startTime || '', |
|
|
|
endTime: goldDetail.value.endTime || '', |
|
|
|
}, |
|
|
|
page: getObj.value.pageNum, |
|
|
|
size: total.value |
|
|
|
} |
|
|
|
const res = await API({ url: '/goldDetail/export', data: params }) |
|
|
|
if (res.code === 200) { |
|
|
|
ElMessage.success('导出成功') |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const handlePageSizeChange = function (val) { |
|
|
|
getObj.value.pageSize = val |
|
|
@ -351,6 +351,80 @@ onMounted(async function () { |
|
|
|
await getAdminData() |
|
|
|
await getPlatform() // 调用获取平台信息的函数 |
|
|
|
}) |
|
|
|
|
|
|
|
const exportListVisible = ref(false) |
|
|
|
|
|
|
|
// 打开导出列表弹窗 |
|
|
|
const openExportList = () => { |
|
|
|
getExportList() |
|
|
|
exportListVisible.value = true |
|
|
|
} |
|
|
|
|
|
|
|
// 导出列表数据 |
|
|
|
const exportList = ref([]) |
|
|
|
// 导出列表加载状态 |
|
|
|
const exportListLoading = ref(false) |
|
|
|
// 获取导出列表 |
|
|
|
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 === 0; //0表示客户明细 |
|
|
|
}); |
|
|
|
exportList.value = filteredData |
|
|
|
} else { |
|
|
|
ElMessage.error(result.msg || '获取导出列表失败') |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('获取导出列表出错:', error) |
|
|
|
ElMessage.error('获取导出列表失败,请稍后重试') |
|
|
|
} finally { |
|
|
|
exportListLoading.value = false |
|
|
|
} |
|
|
|
} |
|
|
|
// 下载导出文件 |
|
|
|
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('文件还在导出中,请稍后再试') |
|
|
|
} |
|
|
|
} |
|
|
|
//根据状态返回对应的标签类型 |
|
|
|
const getTagType = (state) => { |
|
|
|
switch (state) { |
|
|
|
case 0: |
|
|
|
return 'info'; |
|
|
|
case 1: |
|
|
|
return 'primary'; |
|
|
|
case 2: |
|
|
|
return'success'; |
|
|
|
case 3: |
|
|
|
return 'danger'; |
|
|
|
default: |
|
|
|
return 'info'; |
|
|
|
} |
|
|
|
} |
|
|
|
//根据状态返回对应的标签文案 |
|
|
|
const getTagText = (state) => { |
|
|
|
switch (state) { |
|
|
|
case 0: |
|
|
|
return '待执行'; |
|
|
|
case 1: |
|
|
|
return '执行中'; |
|
|
|
case 2: |
|
|
|
return'执行完成'; |
|
|
|
case 3: |
|
|
|
return '执行出错'; |
|
|
|
default: |
|
|
|
return '未知状态'; |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
<template> |
|
|
|
<div> |
|
|
@ -405,6 +479,7 @@ onMounted(async function () { |
|
|
|
<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-card> |
|
|
|
</el-col> |
|
|
@ -416,7 +491,7 @@ onMounted(async function () { |
|
|
|
金币总数:{{ (totalGoldTotal) / 100 }} |
|
|
|
永久金币:{{ (totalPermanentGold) / 100 }} |
|
|
|
免费金币:{{ (totalFreeGold) / 100 }} |
|
|
|
任务金币:{{(totalTaskGold) / 100 }} |
|
|
|
任务金币:{{ (totalTaskGold) / 100 }} |
|
|
|
</div> |
|
|
|
<div style="height: 584px; overflow-y: auto"> |
|
|
|
<el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px"> |
|
|
@ -424,7 +499,7 @@ onMounted(async function () { |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
|
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize |
|
|
|
}}</span> |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="left" prop="name" label="姓名" width="150" /> |
|
|
@ -477,7 +552,7 @@ onMounted(async function () { |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
|
moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') |
|
|
|
}}</span> |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
@ -493,6 +568,38 @@ onMounted(async function () { |
|
|
|
</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> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|