Browse Source

导出好了

zhangrenyuan/feature-20250623164058-金币前端
lihuilin 1 day ago
parent
commit
ba5d48fec1
  1. 210
      src/views/recharge/coinRechargeDetail.vue

210
src/views/recharge/coinRechargeDetail.vue

@ -42,16 +42,13 @@ const activity = ref([])
const allData = ref([]) const allData = ref([])
// //
const market = ref([]) const market = ref([])
// //
const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : '' const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : ''
// money permanentGold freeGold // money permanentGold freeGold
const money = ref(0) const money = ref(0)
const permanentGold = ref(0) const permanentGold = ref(0)
const freeGold = ref(0) const freeGold = ref(0)
// //
const permanentGolds = ref(0) const permanentGolds = ref(0)
const freeGolds = ref(0) const freeGolds = ref(0)
@ -96,7 +93,7 @@ const getActivity = async function () {
// //
console.log('请求成功', result) console.log('请求成功', result)
// //
if (Array.isArray(result.data)) { if (Array.isArray(result.data)) {
// { value, label } // { value, label }
@ -143,16 +140,16 @@ const getPlatform = async () => {
data: {}// data: {}//
}) })
// { value, label } // { value, label }
if(Array.isArray(result.data)) {
if (Array.isArray(result.data)) {
platform.value = result.data.map(item => ({ value: item, label: item })); platform.value = result.data.map(item => ({ value: item, label: item }));
} else { } else {
console.error('充值类型格式错误',result)
console.error('充值类型格式错误', result)
ElMessage.error('充值类型格式错误,请联系管理员') ElMessage.error('充值类型格式错误,请联系管理员')
}
}
} catch (error) { } catch (error) {
console.error('获取充值类型失败:', error); console.error('获取充值类型失败:', error);
ElMessage.error('获取充值类型失败,请稍后重试'); ElMessage.error('获取充值类型失败,请稍后重试');
} finally {
} finally {
isLoadingPlatform.value = false isLoadingPlatform.value = false
} }
} }
@ -182,9 +179,9 @@ const get = async function (val) {
// POST // POST
const result = await API({ const result = await API({
url: '/recharge/selectBy', url: '/recharge/selectBy',
data: {
...getObj.value,
rechargeUser: { ...rechargeUser.value }
data: {
...getObj.value,
rechargeUser: { ...rechargeUser.value }
} }
}) })
// rechargeUser.value // rechargeUser.value
@ -193,8 +190,8 @@ const get = async function (val) {
adminId: rechargeUser.value.adminId, adminId: rechargeUser.value.adminId,
startTime: rechargeUser.value.startTime, startTime: rechargeUser.value.startTime,
endTime: rechargeUser.value.endTime, endTime: rechargeUser.value.endTime,
jwcode: rechargeUser.value.jwcode,
goodsName: rechargeUser.value.goodsName,
jwcode: rechargeUser.value.jwcode,
goodsName: rechargeUser.value.goodsName,
payPlatform: rechargeUser.value.payPlatform payPlatform: rechargeUser.value.payPlatform
}) })
const resultTotalGold = await API({ const resultTotalGold = await API({
@ -208,11 +205,11 @@ const get = async function (val) {
const data = resultTotalGold.data const data = resultTotalGold.data
console.log('获取到的金币数据:', data) console.log('获取到的金币数据:', data)
permanentGolds.value = (Number(data.permanentGolds) || 0)/100
freeGolds.value = (Number(data.freeGolds) || 0)/100
permanentGolds.value = (Number(data.permanentGolds) || 0) / 100
freeGolds.value = (Number(data.freeGolds) || 0) / 100
} }
// //
console.log('请求成功', result) console.log('请求成功', result)
// //
@ -225,7 +222,7 @@ const get = async function (val) {
// //
freeGold: (Number(item.freeGold) || 0) / 100, freeGold: (Number(item.freeGold) || 0) / 100,
// //
money: (Number(item.money) || 0) / 100
money: (Number(item.money) || 0) / 100
})) }))
console.log('tableData', tableData.value) console.log('tableData', tableData.value)
// //
@ -314,45 +311,31 @@ const get7Days = function () {
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
get() get()
} }
//
const checkNumber = function () {
if (typeof parseInt(getObj.value.pageNum) === 'number') {
console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize))
if (
getObj.value.pageNum > 0 &&
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize)
) {
getObj.value.pageNum = parseInt(getObj.value.pageNum)
console.log('输入的数字合法')
get()
} else {
//
ElMessage({
type: 'error',
message: '请检查输入内容'
})
}
} else {
//
ElMessage({
type: 'error',
message: '数字输入有误'
})
const exportExcel = async function () {
const params = {
text:'',
deptid:'',
sort:1,
field:'',
page:getObj.pageNum,
size:getObj.pageSize
}
const res = await API({ url: '/export/exportRecharge', data: params })
if (res.code === 200) {
ElMessage.success('导出成功')
} }
} }
// //
onMounted(async function () { onMounted(async function () {
await getAdminData()
await get() await get()
await getActivity() await getActivity()
await getArea() await getArea()
await getPlatform() await getPlatform()
}) })
// //
const sortField = ref('')
const sortOrder = ref('')
const sortField = ref()
const sortOrder = ref(1)
// //
const handleSortChange = (column) => { const handleSortChange = (column) => {
@ -366,19 +349,18 @@ const handleSortChange = (column) => {
sortField.value = 'payTime' sortField.value = 'payTime'
} else if (column.prop === 'createTime') { } else if (column.prop === 'createTime') {
sortField.value = 'createTime' sortField.value = 'createTime'
} else if(column.prop === 'permanentGold'){
} else if (column.prop === 'permanentGold') {
sortField.value = 'permanentGold' sortField.value = 'permanentGold'
} }
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
sortOrder.value = column.order === 'ascending' ? '1' : '0'
console.log('传递给后端的排序字段:', sortField.value) console.log('传递给后端的排序字段:', sortField.value)
console.log('传递给后端的排序方式:', sortOrder.value) console.log('传递给后端的排序方式:', sortOrder.value)
get() get()
} }
</script> </script>
<template> <template>
<el-row>
<el-row>
<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">
@ -391,23 +373,19 @@ const handleSortChange = (column) => {
<el-col :span="6"> <el-col :span="6">
<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-select v-model="rechargeUser.activity" placeholder="请选择活动名称" style="width: 180px"
clearable>
<el-option v-for="item in activity" :key="item.value" :label="item.label"
:value="item.value" />
<el-select v-model="rechargeUser.activity" placeholder="请选择活动名称" style="width: 180px" clearable>
<el-option v-for="item in activity" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<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-select v-model="rechargeUser.market" placeholder="请选择所属地区" style="width: 180px" clearable> <el-select v-model="rechargeUser.market" placeholder="请选择所属地区" style="width: 180px" clearable>
<el-option v-for="item in market" :key="item" :label="item" :value="item" /> <el-option v-for="item in market" :key="item" :label="item" :value="item" />
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<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>
@ -416,28 +394,17 @@ const handleSortChange = (column) => {
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21"> <el-col :span="21">
<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="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-button style="margin-left: 10px" @click="getToday()"></el-button>
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
<!-- </div>
</el-col>
<el-col :span="3">
<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>
@ -457,113 +424,44 @@ const handleSortChange = (column) => {
</div> </div>
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 520px; overflow-y: auto;margin-top: 10px;"> <div style="height: 520px; overflow-y: auto;margin-top: 10px;">
<el-table
:data="tableData"
style="width: 100%"
height="520px"
@sort-change="handleSortChange"
>
<el-table-column
type="index"
label="序号"
width="80px"
fixed="left"
>
<el-table :data="tableData" style="width: 100%" height="520px" @sort-change="handleSortChange">
<el-table-column type="index" label="序号" width="80px" fixed="left">
<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="80px"
/>
<el-table-column
fixed="left"
prop="jwcode"
label="精网号"
width="80px"
/>
<el-table-column fixed="left" prop="name" label="姓名" width="80px" />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="80px" />
<el-table-column prop="market" label="所属地区" width="100px" /> <el-table-column prop="market" label="所属地区" width="100px" />
<el-table-column
prop="activity"
label="活动名称"
width="100px"
/>
<el-table-column prop="activity" label="活动名称" width="100px" />
<el-table-column prop="rateName" label="货币名称" width="110px" /> <el-table-column prop="rateName" label="货币名称" width="110px" />
<el-table-column
prop="money"
sortable="custom"
label="充值金额"
width="110px"
/>
<el-table-column
prop="permanentGold"
label="永久金币"
sortable="custom"
width="110px"
/>
<el-table-column
prop="freeGold"
label="免费金币"
sortable="custom"
width="110px"
/>
<el-table-column
prop="payPlatform"
label="充值方式"
width="100px"
/>
<el-table-column prop="money" sortable="custom" label="充值金额" width="110px" />
<el-table-column prop="permanentGold" label="永久金币" sortable="custom" width="110px" />
<el-table-column prop="freeGold" label="免费金币" sortable="custom" width="110px" />
<el-table-column prop="payPlatform" label="充值方式" width="100px" />
<el-table-column prop="payModel" label="支付方式" width="100px" /> <el-table-column prop="payModel" label="支付方式" width="100px" />
<el-table-column
prop="remark"
label="备注"
width="150px"
show-overflow-tooltip
/>
<el-table-column prop="remark" label="备注" width="150px" show-overflow-tooltip />
<el-table-column prop="adminName" label="提交人" width="100px" /> <el-table-column prop="adminName" label="提交人" width="100px" />
<el-table-column
prop="payTime"
sortable
label="充值时间"
width="200px"
>
<el-table-column prop="payTime" sortable label="充值时间" width="200px">
<template #default="scope"> <template #default="scope">
{{
moment(scope.row.payTime).format('YYYY-MM-DD HH:mm:ss')
}}
{{ moment(scope.row.payTime).format('YYYY-MM-DD HH:mm:ss') }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"
:page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
</template> </template>
<style scoped> <style scoped>
.pagination { .pagination {
display: flex; display: flex;

Loading…
Cancel
Save