Browse Source

导出excel

zhangrenyuan/feature-20250714163943-金币前端二期
zhangyongQINGHU 3 weeks ago
parent
commit
d38712de15
  1. 163
      src/views/consume/coinConsumeDetail.vue
  2. 161
      src/views/recharge/coinRechargeDetail.vue
  3. 165
      src/views/refund/coinRefundDetail.vue
  4. 14
      src/views/usergold/clientCountBalance.vue
  5. 167
      src/views/usergold/clientCountDetail.vue

163
src/views/consume/coinConsumeDetail.vue

@ -3,6 +3,7 @@ import {computed, onMounted, ref} from 'vue'
import {dayjs, ElMessage} from 'element-plus' import {dayjs, ElMessage} from 'element-plus'
import request from '@/util/http' import request from '@/util/http'
import API from '@/util/http' import API from '@/util/http'
import moment from 'moment'
// //
/* /*
@ -380,24 +381,7 @@ const handleSortChange = (column) => {
sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC' sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC'
ConsumeSelectBy() ConsumeSelectBy()
} }
const exportExcel = async function () {
const params = {
consumUser: {
jwcode: consumeUser.value.jwcode || '',
payPlatform: consumeUser.value.payPlatform || '',
market: consumeUser.value.market || '',
startTime: consumeUser.value.startTime || '',
endTime: consumeUser.value.endTime || '',
goodsName: consumeUser.value.goodsName || ''
},
page: getObj.pageNum,
size: getObj.pageSize
}
const res = await API({url: '/export/exportConsume', data: params})
if (res.code === 200) {
ElMessage.success('导出成功')
}
}
const handlePageSizeChange = function (val) { const handlePageSizeChange = function (val) {
getObj.value.pageSize = val getObj.value.pageSize = val
ConsumeSelectBy() ConsumeSelectBy()
@ -432,6 +416,97 @@ onMounted(async function () {
}) })
const exportExcel = async function () {
const params = {
consumUser: {
jwcode: consumeUser.value.jwcode || '',
payPlatform: consumeUser.value.payPlatform || '',
market: consumeUser.value.market || '',
startTime: consumeUser.value.startTime || '',
endTime: consumeUser.value.endTime || '',
goodsName: consumeUser.value.goodsName || ''
},
page: getObj.value.pageNum,
size: total.value
}
const res = await API({url: '/export/exportConsume', data: params})
if (res.code === 200) {
ElMessage.success('导出成功')
}
}
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 === 4; //4
});
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> </script>
<template> <template>
@ -439,12 +514,15 @@ onMounted(async function () {
<el-col> <el-col>
<el-card style="margin-bottom: 20px;margin-top:10px"> <el-card style="margin-bottom: 20px;margin-top:10px">
<el-row style="margin-bottom: 10px"> <el-row style="margin-bottom: 10px">
<el-col :span="6">
<div class="head-card-element">
<el-text size="large">精网号</el-text>
<el-input v-model="consumeUser.jwcode" placeholder="请输入精网号" size="large" style="width: 240px"
clearable>
</el-input>
<el-col :span="5">
<div class="head-card-element">
<el-text class="mx-1" >精网号</el-text>
<el-input
v-model="consumeUser.jwcode"
placeholder="请输入精网号"
style="width: 150px"
clearable
/>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -478,7 +556,7 @@ onMounted(async function () {
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21">
<el-col :span="24">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消耗时间</el-text> <el-text class="mx-1" size="large">消耗时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间" <el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
@ -493,8 +571,8 @@ onMounted(async function () {
<div class="head-card-btn"> --> <div class="head-card-btn"> -->
<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" @click="exportExcel()">导出excel</el-button> <el-button type="primary" @click="exportExcel()">导出excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -580,6 +658,39 @@ onMounted(async function () {
</el-card> </el-card>
</el-col> </el-col>
</el-row> </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> </template>
<style scoped> <style scoped>

161
src/views/recharge/coinRechargeDetail.vue

@ -312,31 +312,7 @@ const get7Days = function () {
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
get() get()
} }
const exportExcel = async function () {
const params = {
rechargeUser: {
jwcode: rechargeUser.value.jwcode || '',
market: rechargeUser.value.market || '',
payPlatform: rechargeUser.value.payPlatform || '',
activity: rechargeUser.value.activity || '',
startTime: rechargeUser.value.startTime || '',
endTime: rechargeUser.value.endTime || ''
},
page: getObj.value.pageNum,
size: getObj.value.pageSize
}
try {
const res = await API({ url: '/export/exportRecharge', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
} else {
ElMessage.error(res.message || '导出失败,请稍后重试')
}
} catch (error) {
console.log('请求失败', error)
ElMessage.error('导出失败,请稍后重试')
}
}
// //
onMounted(async function () { onMounted(async function () {
@ -369,6 +345,106 @@ const handleSortChange = (column) => {
console.log('传递给后端的排序方式:', sortOrder.value) console.log('传递给后端的排序方式:', sortOrder.value)
get() get()
} }
const exportExcel = async function () {
const params = {
rechargeUser: {
jwcode: rechargeUser.value.jwcode || '',
market: rechargeUser.value.market || '',
payPlatform: rechargeUser.value.payPlatform || '',
activity: rechargeUser.value.activity || '',
startTime: rechargeUser.value.startTime || '',
endTime: rechargeUser.value.endTime || ''
},
page: getObj.value.pageNum,
size: total.value
}
try {
const res = await API({ url: '/export/exportRecharge', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
} else {
ElMessage.error(res.message || '导出失败,请稍后重试')
}
} catch (error) {
console.log('请求失败', error)
ElMessage.error('导出失败,请稍后重试')
}
}
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 === 2; //2
});
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> </script>
<template> <template>
@ -409,7 +485,7 @@ const handleSortChange = (column) => {
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21">
<el-col :span="24">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text> <el-text class="mx-1" size="large">充值时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间" <el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
@ -420,6 +496,7 @@ const handleSortChange = (column) => {
<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" @click="exportExcel()">导出Excel</el-button> <el-button type="primary" @click="exportExcel()">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -473,6 +550,38 @@ const handleSortChange = (column) => {
</el-card> </el-card>
</el-col> </el-col>
</el-row> </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> </template>
<style scoped> <style scoped>
.pagination { .pagination {

165
src/views/refund/coinRefundDetail.vue

@ -317,33 +317,7 @@ const getGoods = async function () {
// //
} }
} }
const exportExcel = async function () {
const params = {
refundUser: {
jwcode: refundUser.value.jwcode || '',
refundModel : refundUser.value.refundModel || '',
market: refundUser.value.market || '',
startTime: refundUser.value.startTime || '',
endTime: refundUser.value.endTime || '',
goodsName: refundUser.value.goodsName || '',
},
page:getObj.pageNum,
size:getObj.pageSize
}
try{
const res = await API({ url: '/export/exportRefund', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
} else {
ElMessage.error(res.message || '导出失败,请稍后重试')
}
} catch (error) {
console.log('请求失败', error)
ElMessage.error('导出失败,请稍后重试')
}
}
// //
onMounted(async function () { onMounted(async function () {
await getAdminData() await getAdminData()
@ -383,6 +357,107 @@ const handleCurrentChange = function (val) {
getObj.value.pageNum = val getObj.value.pageNum = val
getSelectBy() getSelectBy()
} }
const exportExcel = async function () {
const params = {
refundUser: {
jwcode: refundUser.value.jwcode || '',
refundModel : refundUser.value.refundModel || '',
market: refundUser.value.market || '',
startTime: refundUser.value.startTime || '',
endTime: refundUser.value.endTime || '',
goodsName: refundUser.value.goodsName || '',
},
page:getObj.pageNum,
size:total.value
}
try{
const res = await API({ url: '/export/exportRefund', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
} else {
ElMessage.error(res.message || '导出失败,请稍后重试')
}
} catch (error) {
console.log('请求失败', error)
ElMessage.error('导出失败,请稍后重试')
}
}
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 === 3; //3退
});
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> </script>
<template> <template>
@ -393,11 +468,9 @@ const handleCurrentChange = function (val) {
<el-col :span="5"> <el-col :span="5">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" >精网号</el-text> <el-text class="mx-1" >精网号</el-text>
<el-input <el-input
v-model="refundUser.jwcode" v-model="refundUser.jwcode"
placeholder="请输入精网号" placeholder="请输入精网号"
style="width: 150px" style="width: 150px"
clearable clearable
/> />
@ -465,7 +538,7 @@ const handleCurrentChange = function (val) {
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21">
<el-col :span="24">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" >退款时间</el-text> <el-text class="mx-1" >退款时间</el-text>
<el-date-picker <el-date-picker
@ -485,6 +558,7 @@ const handleCurrentChange = function (val) {
<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" @click="exportExcel">导出Excel</el-button> <el-button type="primary" @click="exportExcel">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -614,6 +688,39 @@ const handleCurrentChange = function (val) {
</el-card> </el-card>
</el-col> </el-col>
</el-row> </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> </template>
<style scoped> <style scoped>

14
src/views/usergold/clientCountBalance.vue

@ -231,11 +231,15 @@ const handleCurrentChange = function (val) {
} }
const exportExcel = async function () { const exportExcel = async function () {
const params = { const params = {
text:'',
deptid:'',
sort:1,
field:'',
page:getObj.pageNum,
goldDetail: {
jwcode: user.value.jwcode || '',
payPlatform: user.value.payPlatform || '',
type: user.value.type || '',
market: user.value.market || '',
startTime: user.value.startTime || '',
endTime: user.value.endTime || '',
},
page:getObj.value.pageNum,
size:total.value size:total.value
} }
const res = await API({url: '/goldDetail/exportGold', data: params}) const res = await API({url: '/goldDetail/exportGold', data: params})

167
src/views/usergold/clientCountDetail.vue

@ -31,24 +31,7 @@ const getAdminData = async function () {
console.log('管理员用户信息请求失败', error) 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 // goldDetail jwcode
const trimJwCode = () => { const trimJwCode = () => {
if (goldDetail.value.jwcode) { if (goldDetail.value.jwcode) {
@ -214,13 +197,13 @@ const get = async function (val) {
url: '/goldDetail/getTotal', url: '/goldDetail/getTotal',
method: 'post', method: 'post',
data: { 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' sortField.value = 'free_gold'
} else if (column.prop === 'auditTime') {//creatTime } else if (column.prop === 'auditTime') {//creatTime
sortField.value = 'audit_time' sortField.value = 'audit_time'
}
}
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC' sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
//gethandleSortChange //gethandleSortChange
get() 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) { const handlePageSizeChange = function (val) {
getObj.value.pageSize = val getObj.value.pageSize = val
@ -351,6 +351,80 @@ onMounted(async function () {
await getAdminData() await getAdminData()
await getPlatform() // 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> </script>
<template> <template>
<div> <div>
@ -405,6 +479,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" @click="exportExcel">导出Excel表格</el-button> <el-button type="primary" @click="exportExcel">导出Excel表格</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
@ -416,7 +491,7 @@ onMounted(async function () {
金币总数{{ (totalGoldTotal) / 100 }} 金币总数{{ (totalGoldTotal) / 100 }}
永久金币{{ (totalPermanentGold) / 100 }} 永久金币{{ (totalPermanentGold) / 100 }}
免费金币{{ (totalFreeGold) / 100 }} 免费金币{{ (totalFreeGold) / 100 }}
任务金币{{(totalTaskGold) / 100 }}
任务金币{{ (totalTaskGold) / 100 }}
</div> </div>
<div style="height: 584px; overflow-y: auto"> <div style="height: 584px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px"> <el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px">
@ -424,7 +499,7 @@ onMounted(async function () {
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150" /> <el-table-column fixed="left" prop="name" label="姓名" width="150" />
@ -477,7 +552,7 @@ onMounted(async function () {
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss')
}}</span>
}}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -493,6 +568,38 @@ onMounted(async function () {
</el-col> </el-col>
</el-row> </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> </div>
</template> </template>

Loading…
Cancel
Save