|
|
@ -1,18 +1,36 @@ |
|
|
|
<script setup> |
|
|
|
// 这是退款明细页面 |
|
|
|
import { ref, onMounted, reactive, computed } from 'vue' |
|
|
|
import {ref, onMounted, reactive, computed} from 'vue' |
|
|
|
import ElementPlus from 'element-plus' |
|
|
|
import { AiFillRead } from 'vue-icons-plus/ai' |
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus' |
|
|
|
import {AiFillRead} from 'vue-icons-plus/ai' |
|
|
|
import {ElMessage, ElMessageBox} from 'element-plus' |
|
|
|
import axios from 'axios' |
|
|
|
import moment from 'moment' |
|
|
|
import API from '@/util/http' |
|
|
|
import request from '@/util/http' |
|
|
|
|
|
|
|
// 精网号去空格 |
|
|
|
const trimJwCode = () => { |
|
|
|
if (refundUser.value.jwcode) { |
|
|
|
// 去除所有空格,并尝试转换为整数 |
|
|
|
const trimmed = refundUser.value.jwcode.toString().replace(/\s/g, ''); |
|
|
|
const numeric = Number(trimmed); |
|
|
|
|
|
|
|
// 如果转换为数字成功,保存为数字,否则提示错误 |
|
|
|
if (!isNaN(numeric)) { |
|
|
|
refundUser.value.jwcode = numeric; |
|
|
|
} else { |
|
|
|
ElMessage.error("精网号格式不正确,请输入数字"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 变量 |
|
|
|
//这是获取用户信息的接口 |
|
|
|
const adminData = ref({}) |
|
|
|
const getAdminData = async function () { |
|
|
|
try { |
|
|
|
const result = await API({ url: '/admin/userinfo', data: {} }) |
|
|
|
const result = await API({url: '/admin/userinfo', data: {}}) |
|
|
|
|
|
|
|
adminData.value = result |
|
|
|
console.log('请求成功', result) |
|
|
@ -24,8 +42,15 @@ const getAdminData = async function () { |
|
|
|
// 充值明细表格 |
|
|
|
const tableData = ref([]) |
|
|
|
// 搜索====================================== |
|
|
|
// 搜索detail |
|
|
|
const detail = ref({}) |
|
|
|
// 搜索(筛选)明细 表单 |
|
|
|
const refundUser = ref({ |
|
|
|
jwcode: null, |
|
|
|
refundModel: "", |
|
|
|
market: "", |
|
|
|
startTime: "", |
|
|
|
endTime: "", |
|
|
|
goodsName: "" |
|
|
|
}) |
|
|
|
// 搜索对象 |
|
|
|
const getObj = ref({ |
|
|
|
pageNum: 1, |
|
|
@ -35,13 +60,8 @@ const getObj = ref({ |
|
|
|
const total = ref(100) |
|
|
|
// 搜索对象时间 |
|
|
|
const getTime = ref([]) |
|
|
|
// 所有信息 |
|
|
|
const allData = ref([]) |
|
|
|
// 搜索地区列表 |
|
|
|
const area = ref([]) |
|
|
|
|
|
|
|
//标签页默认高亮选项 |
|
|
|
const activeName = ref('all') |
|
|
|
const market = ref([]) |
|
|
|
|
|
|
|
// 退款类型 |
|
|
|
const consumeType = [ |
|
|
@ -51,119 +71,74 @@ const consumeType = [ |
|
|
|
} |
|
|
|
] |
|
|
|
|
|
|
|
// //表格高度 |
|
|
|
// const tableHeight = computed(function () { |
|
|
|
// return (getObj.value.pageSize + 2) * 45 + "px"; |
|
|
|
// }); |
|
|
|
|
|
|
|
// 方法 |
|
|
|
// 统计合计数 |
|
|
|
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 === '泰国') { |
|
|
|
detail.value.areas = ['泰国', '越南'] |
|
|
|
} else if (adminData.value.area !== '总部') { |
|
|
|
detail.value.area = adminData.value.area |
|
|
|
} |
|
|
|
// 搜索参数页码赋值 |
|
|
|
if (typeof val === 'number') { |
|
|
|
getObj.value.pageNum = val |
|
|
|
} |
|
|
|
|
|
|
|
// todo 时间格式化 |
|
|
|
// 搜索参数时间赋值 |
|
|
|
if (getTime.value != null) { |
|
|
|
if (getTime.value.startDate != '' && getTime.value.endDate != '') { |
|
|
|
detail.value.startDate = getTime.value[0] |
|
|
|
detail.value.endDate = getTime.value[1] |
|
|
|
refundUser.value.startDate = getTime.value[0] |
|
|
|
refundUser.value.endDate = getTime.value[1] |
|
|
|
} |
|
|
|
} else { |
|
|
|
detail.value.startDate = '' |
|
|
|
detail.value.endDate = '' |
|
|
|
refundUser.value.startDate = '' |
|
|
|
refundUser.value.endDate = '' |
|
|
|
} |
|
|
|
|
|
|
|
// todo 排序后端还没有弄 |
|
|
|
// 添加排序字段和排序方式到请求参数 |
|
|
|
detail.value.sortField = sortField.value |
|
|
|
detail.value.sortOrder = sortOrder.value |
|
|
|
refundUser.value.sortField = sortField.value |
|
|
|
refundUser.value.sortOrder = sortOrder.value |
|
|
|
|
|
|
|
console.log('搜索参数', getObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ |
|
|
|
url: '/refund/search', |
|
|
|
url: 'http://192.168.8.247:8081/refund/selectBy', |
|
|
|
data: { |
|
|
|
...getObj.value, |
|
|
|
detail: { ...detail.value } |
|
|
|
pageNum: getObj.value.pageNum, |
|
|
|
pageSize: getObj.value.pageSize, |
|
|
|
refundUser: refundUser.value |
|
|
|
} |
|
|
|
}) |
|
|
|
// 复制一份 detail.value 并移除排序字段和排序方式 |
|
|
|
const detailWithoutSort = { ...detail.value } |
|
|
|
// 复制一份 refundUser.value 并移除排序字段和排序方式 |
|
|
|
const detailWithoutSort = {...refundUser.value} |
|
|
|
delete detailWithoutSort.sortField |
|
|
|
delete detailWithoutSort.sortOrder |
|
|
|
|
|
|
|
const result2 = await API({ |
|
|
|
url: '/refund/RefundA', |
|
|
|
url: 'http://192.168.8.247:8081/refund/statsGold', |
|
|
|
data: { |
|
|
|
...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) |
|
|
|
|
|
|
|
console.log("") |
|
|
|
// 存储表格数据 |
|
|
|
tableData.value = result.data.list |
|
|
|
console.log('tableData', tableData.value) |
|
|
@ -184,11 +159,7 @@ const search = function () { |
|
|
|
} |
|
|
|
// 重置 |
|
|
|
const reset = function () { |
|
|
|
detail.value.refundGoods = '' |
|
|
|
detail.value.refundType = '' |
|
|
|
detail.value.area = '' |
|
|
|
detail.value.startDate = '' |
|
|
|
detail.value.endDate = '' |
|
|
|
refundUser.value = {} |
|
|
|
sortField.value = '' |
|
|
|
sortOrder.value = '' |
|
|
|
getTime.value = {} |
|
|
@ -197,14 +168,14 @@ const reset = function () { |
|
|
|
const getToday = function () { |
|
|
|
const today = new Date() |
|
|
|
const startDate = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() |
|
|
|
) |
|
|
|
const endDate = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startDate, endDate] |
|
|
|
console.log('getTime', getTime.value) |
|
|
@ -215,14 +186,14 @@ const getYesterday = function () { |
|
|
|
const yesterday = new Date() |
|
|
|
yesterday.setDate(yesterday.getDate() - 1) |
|
|
|
const startDate = new Date( |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() |
|
|
|
) |
|
|
|
const endDate = new Date( |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() + 1 |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startDate, endDate] |
|
|
|
console.log('getTime', getTime.value) |
|
|
@ -232,67 +203,22 @@ const getYesterday = function () { |
|
|
|
const get7Days = function () { |
|
|
|
const today = new Date() |
|
|
|
const startDate = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() - 6 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() - 6 |
|
|
|
) |
|
|
|
const endDate = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startDate, endDate] |
|
|
|
console.log('getTime', getTime.value) |
|
|
|
get() |
|
|
|
} |
|
|
|
//全部充值明细 |
|
|
|
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 = async function () { |
|
|
|
detail.value.status = 0 |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
await get() |
|
|
|
console.log('adminWait') |
|
|
|
trueFgold.value = pendingFgold.value |
|
|
|
trueRgold.value = pendingRgold.value |
|
|
|
trueTgold.value = pendingTgold.value |
|
|
|
trueGold.value = pendingGold.value |
|
|
|
} |
|
|
|
//已通过充值明细 |
|
|
|
const adminPass = async function () { |
|
|
|
detail.value.status = 1 |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
await get() |
|
|
|
console.log('adminPass') |
|
|
|
trueFgold.value = approvedFgold.value |
|
|
|
trueRgold.value = approvedRgold.value |
|
|
|
trueTgold.value = approvedTgold.value |
|
|
|
trueGold.value = approvedGold.value |
|
|
|
} |
|
|
|
//已驳回充值明细 |
|
|
|
const adminReject = async function () { |
|
|
|
detail.value.status = 2 |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
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') |
|
|
@ -308,73 +234,58 @@ const handleClick = function (tab, event) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 获取地区 |
|
|
|
const getArea = async function () { |
|
|
|
// 获取地区列表的方法 |
|
|
|
const getMarket = async function () { |
|
|
|
try { |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ url: '/recharge/user/search', data: {} }) |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
// 存储地区信息 |
|
|
|
area.value = result.data |
|
|
|
console.log('地区', area.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//删除气泡 |
|
|
|
const delObj = ref({}) |
|
|
|
const del = function (row) { |
|
|
|
delObj.value.detailId = row.detailId |
|
|
|
console.log('delObj', delObj.value) |
|
|
|
} |
|
|
|
// 删除按钮的气泡弹出框确认按钮 |
|
|
|
const delConfirm = async function () { |
|
|
|
try { |
|
|
|
console.log('delObj', delObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ |
|
|
|
url: '/refund/softDelete?detailId=' + delObj.value.detailId, |
|
|
|
// 发送请求获取地区列表 |
|
|
|
const result = await request({ |
|
|
|
// todo 接口不对 |
|
|
|
// url: '/general/market', |
|
|
|
url: 'http://192.168.8.247:8081/general/market', // todo 换成实际接口地址 |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
// 刷新表格数据 |
|
|
|
get() |
|
|
|
console.log('请求地区列表成功', result) |
|
|
|
// 存储地区数据 |
|
|
|
market.value = result.data |
|
|
|
console.log('地区数据', market.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
console.log('请求地区列表失败', error) |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '获取地区列表失败,请稍后重试' |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 查询商品的接口 |
|
|
|
const goods = ref([]) |
|
|
|
const getGoods = async function () { |
|
|
|
try { |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ url: '/product', data: {} }) |
|
|
|
const result = await request({ |
|
|
|
url: 'http://192.168.8.247:8081/general/goods', |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
console.log('请求成功product', result) |
|
|
|
// 存储全部数据 |
|
|
|
goods.value = result.data |
|
|
|
console.log('allData', allData.value) |
|
|
|
console.log('地区', area.value) |
|
|
|
console.log('goods 数据', goods.value) // 修改日志输出 |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
getGoods() |
|
|
|
|
|
|
|
|
|
|
|
// 验证跳转输入框的数字是否合法 |
|
|
|
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 > 0 && |
|
|
|
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize) |
|
|
|
) { |
|
|
|
getObj.value.pageNum = parseInt(getObj.value.pageNum) |
|
|
|
console.log('输入的数字合法') |
|
|
@ -398,7 +309,8 @@ const checkNumber = function () { |
|
|
|
onMounted(async function () { |
|
|
|
await getAdminData() |
|
|
|
await get() |
|
|
|
await getArea() |
|
|
|
await getMarket() |
|
|
|
await getGoods() |
|
|
|
}) |
|
|
|
// 新增排序字段和排序方式 |
|
|
|
const sortField = ref('') |
|
|
@ -439,13 +351,13 @@ const handleCurrentChange = function (val) { |
|
|
|
<el-col :span="5"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">精网号:</el-text> |
|
|
|
|
|
|
|
|
|
|
|
<el-input |
|
|
|
v-model="detail.jwcode" |
|
|
|
placeholder="请输入精网号" |
|
|
|
size="large" |
|
|
|
style="width: 150px" |
|
|
|
clearable |
|
|
|
v-model="refundUser.jwcode" |
|
|
|
placeholder="请输入精网号" |
|
|
|
size="large" |
|
|
|
style="width: 150px" |
|
|
|
clearable |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
@ -453,17 +365,18 @@ const handleCurrentChange = function (val) { |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">退款类型:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="detail.refundType" |
|
|
|
placeholder="请选择退款类型" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
v-model="refundUser.refundType" |
|
|
|
placeholder="请选择退款类型" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<!-- todo 这需要改--> |
|
|
|
<el-option |
|
|
|
v-for="item in consumeType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
v-for="item in consumeType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
@ -472,18 +385,18 @@ const handleCurrentChange = function (val) { |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">退款商品:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="detail.refundGoods" |
|
|
|
placeholder="请选择退款商品" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
|
|
|
|
v-model="refundUser.refundGoods" |
|
|
|
placeholder="请选择退款商品" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
|
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in goods" |
|
|
|
:key="item.value" |
|
|
|
:label="item.name" |
|
|
|
:value="item.name" |
|
|
|
v-for="item in goods" |
|
|
|
:key="item.value" |
|
|
|
:label="item.name" |
|
|
|
:value="item.name" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
@ -492,17 +405,17 @@ const handleCurrentChange = function (val) { |
|
|
|
<div class="head-card-element" v-if="adminData.area == '总部'"> |
|
|
|
<el-text class="mx-1" size="large">所属地区:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="detail.area" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
v-model="refundUser.market" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
size="large" |
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in area" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
v-for="item in market" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
@ -513,18 +426,19 @@ const handleCurrentChange = function (val) { |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">退款时间:</el-text> |
|
|
|
<el-date-picker |
|
|
|
v-model="getTime" |
|
|
|
type="datetimerange" |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="起始时间" |
|
|
|
end-placeholder="结束时间" |
|
|
|
v-model="getTime" |
|
|
|
type="datetimerange" |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="起始时间" |
|
|
|
end-placeholder="结束时间" |
|
|
|
/> |
|
|
|
<el-button style="margin-left: 10px" @click="getToday()" |
|
|
|
>今</el-button |
|
|
|
>今 |
|
|
|
</el-button |
|
|
|
> |
|
|
|
<el-button @click="getYesterday()">昨</el-button> |
|
|
|
<el-button @click="get7Days()">近7天</el-button> |
|
|
|
|
|
|
|
|
|
|
|
<el-button type="success" @click="reset()">重置</el-button> |
|
|
|
<el-button type="primary" @click="search()">查询</el-button> |
|
|
|
<el-button type="primary" @click="exportExcel">导出Excel</el-button> |
|
|
@ -559,38 +473,39 @@ const handleCurrentChange = function (val) { |
|
|
|
<!-- 设置表格容器的高度和滚动样式 --> |
|
|
|
<div style="height: 520px; overflow-y: auto;margin-top:10px"> |
|
|
|
<el-table |
|
|
|
:data="tableData" |
|
|
|
style="width: 100%" |
|
|
|
@sort-change="handleSortChange" |
|
|
|
height="520px" |
|
|
|
:data="tableData" |
|
|
|
style="width: 100%" |
|
|
|
@sort-change="handleSortChange" |
|
|
|
height="520px" |
|
|
|
> |
|
|
|
<el-table-column |
|
|
|
type="index" |
|
|
|
label="序号" |
|
|
|
width="100px" |
|
|
|
fixed="left" |
|
|
|
type="index" |
|
|
|
label="序号" |
|
|
|
width="100px" |
|
|
|
fixed="left" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
|
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize |
|
|
|
}}</span> |
|
|
|
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize |
|
|
|
}}</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="username" |
|
|
|
label="姓名" |
|
|
|
fixed="left" |
|
|
|
width="100px" |
|
|
|
prop="name" |
|
|
|
label="姓名" |
|
|
|
fixed="left" |
|
|
|
width="100px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="jwcode" |
|
|
|
label="精网号" |
|
|
|
fixed="left" |
|
|
|
width="110px" |
|
|
|
prop="jwcode" |
|
|
|
label="精网号" |
|
|
|
fixed="left" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column prop="area" label="所属地区" width="110px" /> |
|
|
|
<el-table-column prop="refundGoods" label="商品名称" width="100px" /> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px" /> |
|
|
|
<el-table-column prop="market" label="所属地区" width="110px"/> |
|
|
|
<el-table-column prop="refundGoods" label="商品名称" width="100px"/> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px"/> |
|
|
|
|
|
|
|
<el-table-column label="退款金币总数" width="110px"> |
|
|
|
<template #default="scope"> |
|
|
@ -603,108 +518,57 @@ const handleCurrentChange = function (val) { |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="typeR" label="退款方式" width="110px"/> |
|
|
|
<el-table-column |
|
|
|
prop="rechargeCoin" |
|
|
|
label="永久金币" |
|
|
|
width="110px" |
|
|
|
sortable="“custom”" |
|
|
|
prop="rechargeCoin" |
|
|
|
label="永久金币" |
|
|
|
width="110px" |
|
|
|
sortable="“custom”" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="freeCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="免费金币" |
|
|
|
width="110px" |
|
|
|
prop="freeCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="免费金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="taskCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="任务金币" |
|
|
|
width="110px" |
|
|
|
prop="taskCoin" |
|
|
|
sortable="“custom”" |
|
|
|
label="任务金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<!-- 修改prop为taskGold --> |
|
|
|
<el-table-column |
|
|
|
prop="remark" |
|
|
|
label="退款原因" |
|
|
|
width="160px" |
|
|
|
show-overflow-tooltip |
|
|
|
prop="remark" |
|
|
|
label="退款原因" |
|
|
|
width="160px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px" /> |
|
|
|
<!-- <el-table-column prop="status" label="审核状态" width="120px"> |
|
|
|
<template #default="scope"> |
|
|
|
<span v-if="scope.row.status == 1"> |
|
|
|
<div class="status"> |
|
|
|
<span class="green-dot"></span> |
|
|
|
<span>已通过</span> |
|
|
|
</div> |
|
|
|
</span> |
|
|
|
<span v-if="scope.row.status == 0"> |
|
|
|
<div class="status"> |
|
|
|
<span class="grey-dot"></span> |
|
|
|
<span>待审核</span> |
|
|
|
</div> |
|
|
|
</span> |
|
|
|
<span v-if="scope.row.status == 2"> |
|
|
|
<div class="status"> |
|
|
|
<span class="red-dot"></span> |
|
|
|
<span>已驳回</span> |
|
|
|
</div> |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="reson" |
|
|
|
label="驳回理由" |
|
|
|
width="200px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> --> |
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="createTime" |
|
|
|
sortable="“custom”" |
|
|
|
label="提交时间" |
|
|
|
width="180px" |
|
|
|
prop="createTime" |
|
|
|
sortable="“custom”" |
|
|
|
label="提交时间" |
|
|
|
width="180px" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<!-- <el-table-column |
|
|
|
prop="operation" |
|
|
|
label="操作" |
|
|
|
fixed="right" |
|
|
|
width="120px" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<el-popconfirm |
|
|
|
title="确定将此条活动删除吗?" |
|
|
|
@confirm="delConfirm" |
|
|
|
> |
|
|
|
<template #reference> |
|
|
|
<el-button type="primary" text @click="del(scope.row)"> |
|
|
|
删除 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
<template #actions="{ delConfirm, cancel }"> |
|
|
|
<el-button size="small" @click="cancel">取消</el-button> |
|
|
|
<el-button type="primary" size="small" @click="delConfirm"> |
|
|
|
确定 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
</template> |
|
|
|
</el-table-column> --> |
|
|
|
|
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
|
<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" |
|
|
|
@jump="checkPageNumber" |
|
|
|
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" |
|
|
|
@jump="checkPageNumber" |
|
|
|
></el-pagination> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
@ -728,6 +592,7 @@ const handleCurrentChange = function (val) { |
|
|
|
.head-card-btn { |
|
|
|
margin-left: auto; |
|
|
|
} |
|
|
|
|
|
|
|
.pagination { |
|
|
|
display: flex; |
|
|
|
margin-top: 20px; |
|
|
|