Browse Source

导出

zhangrenyuan/feature-20250714163943-金币前端二期
zhangyongQINGHU 2 weeks ago
parent
commit
28ee03f0dd
  1. 3
      .env.development
  2. 4
      src/views/home.vue
  3. 110
      src/views/usergold/clientCountBalance.vue

3
.env.development

@ -1,4 +1,5 @@
# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
VITE_API_BASE='http://192.168.9.21:8081/'
# VITE_API_BASE='http://192.168.9.21:8081/'
VITE_API_BASE='http://18.143.76.3:10704/'

4
src/views/home.vue

@ -252,9 +252,7 @@ const openExportList = () => {
<el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
<el-badge @click="openExportList" class="item" > <!-- 用的el-badgeBadge 徽章 之后可以加数字 -->
<el-button>查看导出列表</el-button>
</el-badge>
<el-sub-menu index="1" class="admin">
<template #title>
<el-image :src="imgrule1" alt="错误" style="width: 50px; height: 50px" />

110
src/views/usergold/clientCountBalance.vue

@ -219,6 +219,7 @@ onMounted(async function () {
await getAdminData()
await get()
await getmarket()
await getExportList()
})
const handlePageSizeChange = function (val) {
getObj.value.pageSize = val
@ -235,13 +236,87 @@ const exportExcel = async function () {
sort:1,
field:'',
page:getObj.pageNum,
size:getObj.pageSize
size:total.value
}
const res = await API({ url: '/goldDetail/exportGold', 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 === 1; //type0
});
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>
@ -261,6 +336,7 @@ const exportExcel = async function () {
</div>
<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>
<!-- </div> -->
</el-card>
@ -348,6 +424,38 @@ const exportExcel = 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>
</template>
<style scoped lang="scss">

Loading…
Cancel
Save