|
|
@ -197,8 +197,8 @@ const adminReject = function () { |
|
|
|
detail.value.status = 2; |
|
|
|
getObj.value.pageNum = 1; |
|
|
|
get(); |
|
|
|
console.log('adminReject'); |
|
|
|
} |
|
|
|
console.log("adminReject"); |
|
|
|
}; |
|
|
|
//点击标签页 |
|
|
|
const handleClick = function (tab, event) { |
|
|
|
if (tab.props.name === "all") { |
|
|
@ -207,7 +207,7 @@ const handleClick = function (tab, event) { |
|
|
|
adminWait(); |
|
|
|
} else if (tab.props.name === "pass") { |
|
|
|
adminPass(); |
|
|
|
} else if (tab.props.name === 'reject') { |
|
|
|
} else if (tab.props.name === "reject") { |
|
|
|
adminReject(); |
|
|
|
} |
|
|
|
}; |
|
|
@ -227,27 +227,27 @@ const getProduct = async function () { |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
}; |
|
|
|
// 获取地区 |
|
|
|
const getArea = async function () { |
|
|
|
try { |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API.post( |
|
|
|
"http://192.168.8.93:10010/recharge/recharge", |
|
|
|
{} |
|
|
|
); |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log("请求成功", result); |
|
|
|
// 存储全部数据 |
|
|
|
allData.value = result.data; |
|
|
|
console.log("allData", allData.value); |
|
|
|
// 分离并去重地区列表 |
|
|
|
area.value = [...new Set(allData.value.map((item) => item.area))]; |
|
|
|
console.log("地区", area.value); |
|
|
|
} catch (error) { |
|
|
|
console.log("请求失败", error); |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
}; |
|
|
|
// // 获取地区 |
|
|
|
// const getArea = async function () { |
|
|
|
// try { |
|
|
|
// // 发送POST请求 |
|
|
|
// const result = await API.post( |
|
|
|
// "http://192.168.8.93:10010/recharge/recharge", |
|
|
|
// {} |
|
|
|
// ); |
|
|
|
// // 将响应结果存储到响应式数据中 |
|
|
|
// console.log("请求成功", result); |
|
|
|
// // 存储全部数据 |
|
|
|
// allData.value = result.data; |
|
|
|
// console.log("allData", allData.value); |
|
|
|
// // 分离并去重地区列表 |
|
|
|
// area.value = [...new Set(allData.value.map((item) => item.area))]; |
|
|
|
// console.log("地区", area.value); |
|
|
|
// } catch (error) { |
|
|
|
// console.log("请求失败", error); |
|
|
|
// // 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
// } |
|
|
|
// }; |
|
|
|
// 验证跳转输入框的数字是否合法 |
|
|
|
const checkNumber = function () { |
|
|
|
if (typeof parseInt(getObj.value.pageNum) === "number") { |
|
|
@ -391,26 +391,57 @@ onMounted(async function () { |
|
|
|
<el-col :span="8"> |
|
|
|
<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: 240px" |
|
|
|
clearable> |
|
|
|
<el-option v-for="item in refundType" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
<el-select |
|
|
|
v-model="detail.refundType" |
|
|
|
placeholder="请选择退款类型" |
|
|
|
size="large" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in refundType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<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: 240px" |
|
|
|
clearable> |
|
|
|
<el-option v-for="item in product" :key="item.name" :label="item.name" :value="item.name" /> |
|
|
|
<el-select |
|
|
|
v-model="detail.refundGoods" |
|
|
|
placeholder="请选择退款商品" |
|
|
|
size="large" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in product" |
|
|
|
:key="item.name" |
|
|
|
:label="item.name" |
|
|
|
:value="item.name" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">所属地区:</el-text> |
|
|
|
<el-select v-model="detail.area" placeholder="请选择所属地区" size="large" style="width: 240px" clearable> |
|
|
|
<el-option v-for="item in area" :key="item" :label="item" :value="item" /> |
|
|
|
<el-select |
|
|
|
v-model="detail.area" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
size="large" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in area" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
@ -419,9 +450,16 @@ onMounted(async function () { |
|
|
|
<el-col :span="21"> |
|
|
|
<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="结束时间" /> |
|
|
|
<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="get7Days()">近7天</el-button> |
|
|
|
</div> |
|
|
@ -439,7 +477,12 @@ onMounted(async function () { |
|
|
|
<el-row> |
|
|
|
<el-col> |
|
|
|
<el-card> |
|
|
|
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick"> |
|
|
|
<el-tabs |
|
|
|
v-model="activeName" |
|
|
|
type="card" |
|
|
|
class="demo-tabs" |
|
|
|
@tab-click="handleClick" |
|
|
|
> |
|
|
|
<el-tab-pane label="全部" name="all"></el-tab-pane> |
|
|
|
<el-tab-pane label="待审核" name="wait"></el-tab-pane> |
|
|
|
<el-tab-pane label="已通过" name="pass"></el-tab-pane> |
|
|
@ -451,7 +494,11 @@ onMounted(async function () { |
|
|
|
<el-table-column prop="jwcode" label="精网号" width="150px" /> |
|
|
|
<el-table-column prop="area" label="所属地区" width="100px" /> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px" /> |
|
|
|
<el-table-column prop="refundGoods" label="退款商品" width="200px" /> |
|
|
|
<el-table-column |
|
|
|
prop="refundGoods" |
|
|
|
label="退款商品" |
|
|
|
width="200px" |
|
|
|
/> |
|
|
|
<el-table-column prop="refundCoin" label="退款金币数" width="100px"> |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
@ -461,26 +508,36 @@ onMounted(async function () { |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="rechargeCoin" label="充值金币" width="100px" /> |
|
|
|
<el-table-column |
|
|
|
prop="rechargeCoin" |
|
|
|
label="充值金币" |
|
|
|
width="100px" |
|
|
|
/> |
|
|
|
<el-table-column prop="freeCoin" label="免费金币" width="100px" /> |
|
|
|
<el-table-column prop="taskCoin" label="任务金币" width="100px" /> |
|
|
|
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip /> |
|
|
|
<el-table-column |
|
|
|
prop="remark" |
|
|
|
label="备注" |
|
|
|
width="200px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px" /> |
|
|
|
<el-table-column prop="status" label="审核状态" width="100px"> |
|
|
|
<!-- 模板内容 --> |
|
|
|
<template #default="scope"> |
|
|
|
<span v-if="scope.row.status === 1"> |
|
|
|
<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"> |
|
|
|
<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"> |
|
|
|
<span v-if="scope.row.status == 2"> |
|
|
|
<div class="status"> |
|
|
|
<span class="red-dot"></span> |
|
|
|
<span>已驳回</span> |
|
|
@ -488,21 +545,40 @@ onMounted(async function () { |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="reson" label="驳回理由" width="200px" show-overflow-tooltip /> |
|
|
|
<el-table-column |
|
|
|
prop="reson" |
|
|
|
label="驳回理由" |
|
|
|
width="200px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="createTime" label="提交时间" width="200px"> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="right" prop="operation" label="操作" width="150px"> |
|
|
|
<el-table-column |
|
|
|
fixed="right" |
|
|
|
prop="operation" |
|
|
|
label="操作" |
|
|
|
width="150px" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<div class="operation"> |
|
|
|
<el-popconfirm title="确定要通过此条记录吗?" @confirm="passConfirm"> |
|
|
|
<el-popconfirm |
|
|
|
title="确定要通过此条记录吗?" |
|
|
|
@confirm="passConfirm" |
|
|
|
> |
|
|
|
<template #reference> |
|
|
|
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2 |
|
|
|
? true |
|
|
|
: false |
|
|
|
" type="primary" text @click="pass(scope.row)"> |
|
|
|
<el-button |
|
|
|
:disabled=" |
|
|
|
scope.row.status === 1 || scope.row.status === 2 |
|
|
|
? true |
|
|
|
: false |
|
|
|
" |
|
|
|
type="primary" |
|
|
|
text |
|
|
|
@click="pass(scope.row)" |
|
|
|
> |
|
|
|
通过 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
@ -513,10 +589,16 @@ onMounted(async function () { |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2 |
|
|
|
? true |
|
|
|
: false |
|
|
|
" type="primary" text @click="reject(scope.row)"> |
|
|
|
<el-button |
|
|
|
:disabled=" |
|
|
|
scope.row.status === 1 || scope.row.status === 2 |
|
|
|
? true |
|
|
|
: false |
|
|
|
" |
|
|
|
type="primary" |
|
|
|
text |
|
|
|
@click="reject(scope.row)" |
|
|
|
> |
|
|
|
驳回 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
@ -527,17 +609,42 @@ onMounted(async function () { |
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
|
<div class="pagination"> |
|
|
|
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total"> |
|
|
|
<el-pagination |
|
|
|
background |
|
|
|
:page-size="getObj.pageSize" |
|
|
|
layout="slot" |
|
|
|
:total="total" |
|
|
|
> |
|
|
|
<div>共{{ total }}条,每页</div> |
|
|
|
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px"> |
|
|
|
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option> |
|
|
|
<el-select |
|
|
|
v-model="getObj.pageSize" |
|
|
|
class="page-size" |
|
|
|
@change="get()" |
|
|
|
style="width: 80px" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in [5, 10, 20, 50, 100]" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
></el-option> |
|
|
|
</el-select> |
|
|
|
<div>条</div> |
|
|
|
</el-pagination> |
|
|
|
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total" |
|
|
|
:current-page="getObj.pageNum" @current-change="get"> |
|
|
|
<el-pagination |
|
|
|
background |
|
|
|
layout="prev, pager, next,slot" |
|
|
|
:page-size="getObj.pageSize" |
|
|
|
:total="total" |
|
|
|
:current-page="getObj.pageNum" |
|
|
|
@current-change="get" |
|
|
|
> |
|
|
|
<div>跳至</div> |
|
|
|
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" /> |
|
|
|
<el-input |
|
|
|
v-model="getObj.pageNum" |
|
|
|
style="width: 40px" |
|
|
|
@change="checkNumber" |
|
|
|
/> |
|
|
|
<div>页</div> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
@ -546,12 +653,29 @@ onMounted(async function () { |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<!-- 驳回弹出框 --> |
|
|
|
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible"> |
|
|
|
<el-dialog |
|
|
|
v-model="rejectVisible" |
|
|
|
title="驳回理由" |
|
|
|
width="500" |
|
|
|
:before-close="closeRejectVisible" |
|
|
|
> |
|
|
|
<template #footer> |
|
|
|
<el-form :model="rejectObj" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px"> |
|
|
|
<el-form |
|
|
|
:model="rejectObj" |
|
|
|
ref="Ref" |
|
|
|
:rules="rules" |
|
|
|
label-width="auto" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item prop="reson" label="驳回理由:"> |
|
|
|
<el-input v-model="rejectObj.reson" maxlength="150" show-word-limit style="width: 350px" type="textarea" |
|
|
|
placeholder="请输入内容" /> |
|
|
|
<el-input |
|
|
|
v-model="rejectObj.reson" |
|
|
|
maxlength="150" |
|
|
|
show-word-limit |
|
|
|
style="width: 350px" |
|
|
|
type="textarea" |
|
|
|
placeholder="请输入内容" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|