Browse Source

Merge branch 'refs/heads/milestone-20250728-金币前端三期' into lihui/feature-20250728114233-金币前端三期

zhangrenyuan/feature-20250728113353-金币前端三期
lihui 2 weeks ago
parent
commit
c3cf6ca467
  1. 4
      .env.development
  2. 52
      src/views/recharge/beanOnlineRecharge.vue
  3. 192
      src/views/recharge/beanSystemRecharge.vue

4
.env.development

@ -1,6 +1,6 @@
# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' # VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# 测试环境 # 测试环境
# VITE_API_BASE='http://18.143.76.3:10704/'
VITE_API_BASE='http://18.143.76.3:10704/'
# VITE_API_BASE='http://192.168.9.52:10705/' # VITE_API_BASE='http://192.168.9.52:10705/'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
# VITE_API_BASE='http://192.168.9.28:8081/' # VITE_API_BASE='http://192.168.9.28:8081/'
@ -10,4 +10,4 @@ VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload
# zhangyong # zhangyong
# VITE_API_BASE='http://192.168.3.83:8081/' # VITE_API_BASE='http://192.168.3.83:8081/'
# 李慧琳 # 李慧琳
VITE_API_BASE='http://localhost:8081/'
# VITE_API_BASE='http://localhost:8081/'

52
src/views/recharge/beanOnlineRecharge.vue

@ -81,6 +81,7 @@ const getToday = () => {
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
activeTimeRange.value = 'today' activeTimeRange.value = 'today'
search();
} }
const getYesterday = () => { const getYesterday = () => {
@ -99,6 +100,7 @@ const getYesterday = () => {
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
activeTimeRange.value = 'yesterday' activeTimeRange.value = 'yesterday'
search();
} }
@ -117,6 +119,7 @@ const get7Days = function () {
) )
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
activeTimeRange.value = '7days' activeTimeRange.value = '7days'
search();
} }
@ -129,6 +132,7 @@ const reset = () => {
} }
getTime.value = [] getTime.value = []
activeTimeRange.value = '' activeTimeRange.value = ''
search()
} }
// //
@ -150,10 +154,10 @@ const get = async () => {
const data = { const data = {
...getObj.value, ...getObj.value,
beanRechargeInfo: { beanRechargeInfo: {
...selectData.value
...selectData.value,
sortField: sortField.value,
sortOrder: sortOrder.value,
}, },
sortField: sortField.value,
sortOrder: sortOrder.value,
} }
console.log('请求参数:', data); console.log('请求参数:', data);
const result = await API({ const result = await API({
@ -191,7 +195,7 @@ const handleSortChange = (column) => {
console.log('排序方式:', column.order) console.log('排序方式:', column.order)
// 使 // 使
const allowedFields = ['money', 'freeGold', 'payTime', 'createTime', 'permanentGold'];
const allowedFields = ['money', 'num'];
if (allowedFields.includes(column.prop)) { if (allowedFields.includes(column.prop)) {
sortField.value = column.prop; sortField.value = column.prop;
} }
@ -201,7 +205,7 @@ const handleSortChange = (column) => {
console.log('传递给后端的排序字段:', sortField.value) console.log('传递给后端的排序字段:', sortField.value)
console.log('传递给后端的排序方式:', sortOrder.value) console.log('传递给后端的排序方式:', sortOrder.value)
// get();
get();
} }
//=================================================== //===================================================
// //
@ -230,7 +234,7 @@ const exportExcel = async () => {
}, },
} }
try { try {
const res = await API({ url: '/export', data: params })
const res = await API({ url: '/export/exportol', data: params })
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('导出成功') ElMessage.success('导出成功')
} else { } else {
@ -259,11 +263,10 @@ const getExportList = async () => {
try { try {
const result = await API({ url: '/export/export' }) const result = await API({ url: '/export/export' })
if (result.code === 200) { if (result.code === 200) {
// const filteredData = result.data.filter(item => {
// return item.type === 2; //2
// });
// exportList.value = filteredData
exportList.value = result.data
const filteredData = result.data.filter(item => {
return item.type === 10;
});
exportList.value = filteredData
} else { } else {
ElMessage.error(result.msg || '获取导出列表失败') ElMessage.error(result.msg || '获取导出列表失败')
} }
@ -390,9 +393,7 @@ onMounted(async function () {
<el-col> <el-col>
<el-card> <el-card>
<div class="bean-info"> <div class="bean-info">
<!-- 汉字用 <strong> 加粗动态数据用 <span> 包一层单独改色 -->
<strong> 充值金豆数</strong><span class="data-text">{{ beanNum }}</span>
<strong>, 合计新币数</strong><span class="data-text">{{ money }}</span>
充值金豆数{{ beanNum }}, 合计新币数{{ money }}
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 520px; overflow-y: auto;margin-top: 10px;"> <div style="height: 520px; overflow-y: auto;margin-top: 10px;">
@ -413,9 +414,9 @@ onMounted(async function () {
<span v-else>其他</span> <span v-else>其他</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rechargeTime" sortable label="充值时间" min-width="200px">
<el-table-column prop="rechargeTime" label="充值时间" min-width="200px">
<template #default="scope"> <template #default="scope">
{{ moment(scope.row.payTime).format('YYYY-MM-DD HH:mm:ss') }}
{{ moment(scope.row.rechargeTime).format('YYYY-MM-DD HH:mm:ss') }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -463,24 +464,5 @@ onMounted(async function () {
</el-dialog> </el-dialog>
</template> </template>
<style scoped> <style scoped>
:deep(.custom-height-dialog .el-dialog__body) {
height: 60vh;
overflow-y: auto;
padding: 15px;
}
.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>

192
src/views/recharge/beanSystemRecharge.vue

@ -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>
Loading…
Cancel
Save