|
|
@ -15,6 +15,7 @@ const getAdminData = async function () { |
|
|
|
"http://54.251.137.151:10702/admin/userinfo", |
|
|
|
{} |
|
|
|
); |
|
|
|
|
|
|
|
adminData.value = result; |
|
|
|
console.log("请求成功", result); |
|
|
|
console.log("用户信息", adminData.value); |
|
|
@ -62,13 +63,38 @@ const consumeType = [ |
|
|
|
// }); |
|
|
|
|
|
|
|
// 方法 |
|
|
|
// 统计合计数 |
|
|
|
const trueGold = ref(0); |
|
|
|
const trueRgold = ref(0); |
|
|
|
const trueFgold = ref(0); |
|
|
|
const trueTgold = ref(0); |
|
|
|
// 待审核各种类金币数 |
|
|
|
const pendingRgold = ref(0); |
|
|
|
const pendingFgold = ref(0); |
|
|
|
const pendingTgold = ref(0); |
|
|
|
// 待审核金币数 |
|
|
|
const pendingGold = ref(0); |
|
|
|
// 已通过各种类金币数 |
|
|
|
const approvedRgold = ref(0); |
|
|
|
const approvedFgold = ref(0); |
|
|
|
const approvedTgold = ref(0); |
|
|
|
// 已通过金币数 |
|
|
|
const approvedGold = ref(0); |
|
|
|
// 已驳回各种类金币数 |
|
|
|
const rejectedRgold = ref(0); |
|
|
|
const rejectedFgold = ref(0); |
|
|
|
const rejectedTgold = ref(0); |
|
|
|
// 已驳回金币数 |
|
|
|
const rejectedGold = ref(0); |
|
|
|
// 搜索============================================================== |
|
|
|
// 搜索方法 |
|
|
|
const get = async function (val) { |
|
|
|
try { |
|
|
|
// 地区赋值 |
|
|
|
if (adminData.value.area != "总部") { |
|
|
|
rechargeVo.value.area = adminData.value.area; |
|
|
|
if (adminData.value.area === "泰国") { |
|
|
|
detail.value.areas = ["泰国", "越南"]; |
|
|
|
} else if (adminData.value.area !== "总部") { |
|
|
|
detail.value.area = adminData.value.area; |
|
|
|
} |
|
|
|
// 搜索参数页码赋值 |
|
|
|
if (typeof val === "number") { |
|
|
@ -84,13 +110,62 @@ const get = async function (val) { |
|
|
|
detail.value.startDate = ""; |
|
|
|
detail.value.endDate = ""; |
|
|
|
} |
|
|
|
// 添加排序字段和排序方式到请求参数 |
|
|
|
detail.value.sortField = sortField.value; |
|
|
|
detail.value.sortOrder = sortOrder.value; |
|
|
|
console.log("搜索参数", getObj.value); |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API.post("http://54.251.137.151:10702/refund/search", { |
|
|
|
...getObj.value, |
|
|
|
detail: { ...detail.value }, |
|
|
|
}); |
|
|
|
// 复制一份 detail.value 并移除排序字段和排序方式 |
|
|
|
const detailWithoutSort = { ...detail.value }; |
|
|
|
delete detailWithoutSort.sortField; |
|
|
|
delete detailWithoutSort.sortOrder; |
|
|
|
|
|
|
|
const result2 = await API.post( |
|
|
|
"http://54.251.137.151:10702/refund/RefundA", |
|
|
|
{ |
|
|
|
...detailWithoutSort, |
|
|
|
} |
|
|
|
); |
|
|
|
// 统计合计数 |
|
|
|
if (result2.data) { |
|
|
|
result2.data.forEach((item) => { |
|
|
|
switch (item.status) { |
|
|
|
case "待审核": |
|
|
|
// 若 item.raudit 为空则赋值为 0 |
|
|
|
pendingRgold.value = item.sumRaudit1 || 0; |
|
|
|
pendingFgold.value = item.sumRaudit2 || 0; |
|
|
|
pendingTgold.value = item.sumRaudit3 || 0; |
|
|
|
// 若 item.sumRaudit 为空则赋值为 0 |
|
|
|
pendingGold.value = item.sumRaudit || 0; |
|
|
|
break; |
|
|
|
case "已通过": |
|
|
|
approvedRgold.value = item.sumRaudit1 || 0; |
|
|
|
approvedFgold.value = item.sumRaudit2 || 0; |
|
|
|
approvedTgold.value = item.sumRaudit3 || 0; |
|
|
|
approvedGold.value = item.sumRaudit || 0; |
|
|
|
break; |
|
|
|
case "已驳回": |
|
|
|
rejectedRgold.value = item.sumRaudit1 || 0; |
|
|
|
rejectedFgold.value = item.sumRaudit2 || 0; |
|
|
|
rejectedTgold.value = item.sumRaudit3 || 0; |
|
|
|
rejectedGold.value = item.sumRaudit || 0; |
|
|
|
break; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
trueFgold.value = |
|
|
|
pendingFgold.value + approvedFgold.value + rejectedFgold.value; |
|
|
|
trueRgold.value = |
|
|
|
pendingRgold.value + approvedRgold.value + rejectedRgold.value; |
|
|
|
trueTgold.value = |
|
|
|
pendingTgold.value + approvedTgold.value + rejectedTgold.value; |
|
|
|
trueGold.value = |
|
|
|
pendingGold.value + approvedGold.value + rejectedGold.value; |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log("请求成功", result); |
|
|
|
// 存储表格数据 |
|
|
@ -99,6 +174,8 @@ const get = async function (val) { |
|
|
|
// 存储分页总数 |
|
|
|
total.value = result.data.total; |
|
|
|
console.log("total", total.value); |
|
|
|
// 调用分类的方法 |
|
|
|
handleClick(); |
|
|
|
} catch (error) { |
|
|
|
console.log("请求失败", error); |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
@ -116,6 +193,8 @@ const reset = function () { |
|
|
|
detail.value.area = ""; |
|
|
|
detail.value.startDate = ""; |
|
|
|
detail.value.endDate = ""; |
|
|
|
sortField.value = ""; |
|
|
|
sortOrder.value = ""; |
|
|
|
getTime.value = {}; |
|
|
|
}; |
|
|
|
// 今天 |
|
|
@ -175,30 +254,52 @@ const adminAll = function () { |
|
|
|
console.log("adminAll"); |
|
|
|
detail.value.status = ""; |
|
|
|
getObj.value.pageNum = 1; |
|
|
|
|
|
|
|
get(); |
|
|
|
trueFgold.value = |
|
|
|
pendingFgold.value + approvedFgold.value + rejectedFgold.value; |
|
|
|
trueRgold.value = |
|
|
|
pendingRgold.value + approvedRgold.value + rejectedRgold.value; |
|
|
|
trueTgold.value = |
|
|
|
pendingTgold.value + approvedTgold.value + rejectedTgold.value; |
|
|
|
trueGold.value = pendingGold.value + approvedGold.value + rejectedGold.value; |
|
|
|
}; |
|
|
|
//待审核充值明细 |
|
|
|
const adminWait = function () { |
|
|
|
const adminWait = async function () { |
|
|
|
detail.value.status = 0; |
|
|
|
getObj.value.pageNum = 1; |
|
|
|
get(); |
|
|
|
await get(); |
|
|
|
console.log("adminWait"); |
|
|
|
trueFgold.value = pendingFgold.value; |
|
|
|
trueRgold.value = pendingRgold.value; |
|
|
|
trueTgold.value = pendingTgold.value; |
|
|
|
trueGold.value = pendingGold.value; |
|
|
|
}; |
|
|
|
//已通过充值明细 |
|
|
|
const adminPass = function () { |
|
|
|
const adminPass = async function () { |
|
|
|
detail.value.status = 1; |
|
|
|
getObj.value.pageNum = 1; |
|
|
|
get(); |
|
|
|
await get(); |
|
|
|
console.log("adminPass"); |
|
|
|
trueFgold.value = approvedFgold.value; |
|
|
|
trueRgold.value = approvedRgold.value; |
|
|
|
trueTgold.value = approvedTgold.value; |
|
|
|
trueGold.value = approvedGold.value; |
|
|
|
}; |
|
|
|
//已驳回充值明细 |
|
|
|
const adminReject = function () { |
|
|
|
const adminReject = async function () { |
|
|
|
detail.value.status = 2; |
|
|
|
getObj.value.pageNum = 1; |
|
|
|
get(); |
|
|
|
await get(); |
|
|
|
console.log("adminReject"); |
|
|
|
trueFgold.value = rejectedFgold.value; |
|
|
|
trueRgold.value = rejectedRgold.value; |
|
|
|
trueTgold.value = rejectedTgold.value; |
|
|
|
trueGold.value = rejectedGold.value; |
|
|
|
}; |
|
|
|
//点击标签页 |
|
|
|
// 设置tab.props.name默认为all |
|
|
|
const tabName = ref("all"); |
|
|
|
const handleClick = function (tab, event) { |
|
|
|
if (tab.props.name === "all") { |
|
|
|
adminAll(); |
|
|
@ -309,6 +410,25 @@ onMounted(async function () { |
|
|
|
await get(); |
|
|
|
await getArea(); |
|
|
|
}); |
|
|
|
// 新增排序字段和排序方式 |
|
|
|
const sortField = ref(""); |
|
|
|
const sortOrder = ref(""); |
|
|
|
// 处理排序事件 |
|
|
|
const handleSortChange = (column) => { |
|
|
|
console.log("排序字段:", column.prop); |
|
|
|
console.log("排序方式:", column.order); |
|
|
|
if (column.prop === "rechargeCoin") { |
|
|
|
sortField.value = "recharge_coin"; |
|
|
|
} else if (column.prop === "taskCoin") { |
|
|
|
sortField.value = "task_coin"; |
|
|
|
} else if (column.prop === "freeCoin") { |
|
|
|
sortField.value = "free_coin"; |
|
|
|
} else if (column.prop === "createTime") { |
|
|
|
sortField.value = "create_time"; |
|
|
|
} |
|
|
|
sortOrder.value = column.order === "ascending" ? "ASC" : "DESC"; |
|
|
|
get(); |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|
|
|
|
<template> |
|
|
@ -416,12 +536,21 @@ onMounted(async function () { |
|
|
|
<el-tab-pane label="已通过" name="pass"></el-tab-pane> |
|
|
|
<el-tab-pane label="已驳回" name="reject"></el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
|
|
|
|
<div> |
|
|
|
退款金币总数:{{ Math.abs(trueGold) }},永久金币:{{ |
|
|
|
Math.abs(trueRgold) |
|
|
|
}},免费金币:{{ Math.abs(trueFgold) }},任务金币:{{ |
|
|
|
Math.abs(trueTgold) |
|
|
|
}} |
|
|
|
</div> |
|
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
|
<div style="height: 520px; overflow-y: auto"> |
|
|
|
<el-table |
|
|
|
:data="tableData" |
|
|
|
v-if="(tableData.detaillFlag = 1)" |
|
|
|
:height="tableHeight" |
|
|
|
style="width: 100%" |
|
|
|
@sort-change="handleSortChange" |
|
|
|
height="520px" |
|
|
|
> |
|
|
|
<el-table-column |
|
|
|
type="index" |
|
|
@ -435,16 +564,26 @@ onMounted(async function () { |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="username" label="姓名" width="150px" /> |
|
|
|
<el-table-column prop="jwcode" label="精网号" width="120px" /> |
|
|
|
<el-table-column prop="area" label="所属地区" width="120px" /> |
|
|
|
<el-table-column |
|
|
|
prop="username" |
|
|
|
label="姓名" |
|
|
|
fixed="left" |
|
|
|
width="150px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="jwcode" |
|
|
|
label="精网号" |
|
|
|
fixed="left" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column prop="area" label="所属地区" width="110px" /> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px" /> |
|
|
|
<el-table-column |
|
|
|
prop="productName" |
|
|
|
prop="refundGoods" |
|
|
|
label="退款商品" |
|
|
|
width="200px" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column label="退款金币数" width="120px"> |
|
|
|
<el-table-column label="退款金币数" width="110px"> |
|
|
|
<template #default="scope"> |
|
|
|
{{ |
|
|
|
scope.row.rechargeCoin + |
|
|
@ -456,15 +595,26 @@ onMounted(async function () { |
|
|
|
<el-table-column |
|
|
|
prop="rechargeCoin" |
|
|
|
label="永久金币" |
|
|
|
width="100px" |
|
|
|
width="110px" |
|
|
|
sortable="“custom”" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="freeCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="免费金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="taskCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="任务金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column prop="freeCoin" label="免费金币" width="100px" /> |
|
|
|
<el-table-column prop="taskCoin" label="任务金币" width="100px" /> |
|
|
|
<!-- 修改prop为taskGold --> |
|
|
|
<el-table-column |
|
|
|
prop="remark" |
|
|
|
label="备注" |
|
|
|
width="200px" |
|
|
|
width="160px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px" /> |
|
|
@ -497,7 +647,12 @@ onMounted(async function () { |
|
|
|
width="200px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="createTime" label="提交时间" width="180px"> |
|
|
|
<el-table-column |
|
|
|
prop="createTime" |
|
|
|
sortable="“custom”" |
|
|
|
label="提交时间" |
|
|
|
width="180px" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }} |
|
|
|
</template> |
|
|
|