Files
peko-admin-web/src/views/gameWhitelist/gameWhitelist.vue
2025-07-01 11:29:41 +08:00

298 lines
7.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="box">
<!-- 查询 -->
<div class="inquire">
<span>ID</span>
<el-input v-model="inquire.userId"
placeholder=""
class="input"></el-input>
</div>
<div class="inquire">
<span>状态</span>
<el-select v-model="inquire.validStatus"
placeholder="请选择">
<el-option v-for="item in inquire.options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- 新增按钮 -->
<el-button class="primary"
type="primary"
@click="addDialog = true">新增</el-button>
<!-- 查询按钮 -->
<el-button class="primary"
type="primary"
@click="getData()">查询</el-button>
<!-- 表格 -->
<el-table v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px">
<el-table-column prop="uid"
align="center"
label="UID" />
<el-table-column prop="erbanNo"
align="center"
label="用户ID" />
<el-table-column prop="userRechargeLevel"
align="center"
label="充值等级" />
<el-table-column prop="gameId"
align="center"
label="游戏ID" />
<el-table-column prop="gameName"
align="center"
label="游戏名称" />
<el-table-column prop="feeRate"
align="center"
label="water" />
<el-table-column prop="adminName"
align="center"
label="操作人" />
<el-table-column prop="createTime"
align="center"
label="添加时间" />
<el-table-column align="center"
label="操作"
width="100">
<template v-slot="scope">
<el-button v-show="scope.row.validStatus == 1"
@click="invalid(scope.row.id)"
class="primary"
type="primary"
size="default">失效</el-button>
<div v-show="scope.row.validStatus == 0">无效</div>
<div v-show="scope.row.validStatus == -1">全部</div>
</template>
</el-table-column>
<el-table-column prop="invalidTime"
align="center"
label="失效时间" />
</el-table>
<!-- 分页 -->
<el-pagination style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 50, 100, 200, 500]"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</div>
<!-- 新增弹窗 -->
<el-dialog v-model="addDialog"
title="新增"
width="30%"
center>
<el-form label-width="80px">
<el-form-item label="用户id">
<el-input style="width: 100%;"
v-model="adduserID"
placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="游戏id">
<el-select v-model="gameID"
placeholder="请选择"
style="width: 100%;">
<el-option v-for="item in gameIDArr"
:key="item.gameId"
:label="item.gameName"
:value="item.gameId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="Water">
<el-input style="width: 100%;"
v-model="water"
placeholder="请输入"></el-input>
</el-form-item>
<el-form-item>
例如water:0.2%则填0.2即可water2%则填2
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="addDialog = false">取消</el-button>
<el-button type="primary"
@click="addClick()"> 保存 </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import {
gameList,
gameFeeRateList,
gameFeeRate,
feeRateInvalid,
} from "@/api/gameWhitelist/gameWhitelist";
// @ts-ignore
import { dateFormat } from "@/utils/system-helper";
// @ts-ignore
import { ElMessage } from "element-plus";
export default {
name: "gameWhitelist",
data () {
return {
loading: false,
//查询所需条件对象
inquire: {
userId: "",
validStatus: "-1",
options: [
{
label: "无效",
value: "0",
},
{
label: "有效",
value: "1",
},
{
label: "全部",
value: "-1",
},
],
},
//新增所需对象
resource: {},
// 表格
tableData: [],
// 分页
total: 10, //总页数
currentPage: 1, //页码
pageSize: 10, //条数
// 新增
addDialog: false,
adduserID: "",
gameID: "",
gameIDArr: [],
water: "",
};
},
created () {
gameList().then((res) => {
if (res.code == 200) {
this.gameIDArr = res.data;
} else {
this.butClick = false;
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
this.getData();
},
methods: {
// 查询接口
getData () {
this.loading = true;
gameFeeRateList({
erbanNo: this.inquire.userId,
validStatus: this.inquire.validStatus,
pageNo: this.currentPage,
pageSize: this.pageSize,
}).then((res) => {
if (res.code == 200) {
this.total = res.data.total;
this.tableData = res.data.rows;
this.loading = false;
} else {
this.butClick = false;
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
},
// 确认新增按钮
addClick () {
gameFeeRate({
erbanNo: this.adduserID,
gameFeeRate: this.water,
gameId: this.gameID,
}).then((res) => {
if (res.code == 200) {
this.getData();
this.addDialog = false;
ElMessage({
showClose: true,
message: "新增成功",
type: "success",
});
} else {
this.butClick = false;
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
},
invalid (id) {
feeRateInvalid({ id }).then((res) => {
if (res.code == 200) {
this.getData();
ElMessage({
showClose: true,
message: "设置成功",
type: "success",
});
} else {
this.butClick = false;
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
},
// 分页导航
handleSizeChange () {
this.getData();
},
handleCurrentChange () {
this.getData();
},
},
};
</script>
<style lang="less" scoped>
.box {
padding-top: 20px;
background: #ecf0f5;
.inquire {
display: inline-block;
margin-right: 20px;
span {
margin-right: 10px;
}
.input {
width: 180px;
margin-right: 10px;
}
}
.dialogTableVisibleBut {
display: block;
margin: 30px 0 0 830px;
}
.paginationClass {
margin: 15px 0 5px 0px;
}
}
</style>