白名单功能暂存

This commit is contained in:
Dragon
2023-11-16 14:57:56 +08:00
parent 9ee10ef721
commit 6d8117050c
4 changed files with 433 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
import request from '@/utils/request';
import qs from 'qs';
//
export const redEnvelopePage = query => {
return request({
url: '/admin/room/redEnvelope/page',
method: 'get',
params: query
});
};
//
export const redEnvelopeSave = query => {
return request({
url: '/admin/room/redEnvelope/save',
method: 'post',
params: query
});
};

View File

@@ -0,0 +1,152 @@
<template>
<div class="outer">
<div class="search">
<div class="searchLeft">
<span>用户平台ID</span>
<el-input
v-model="userId"
size="default"
placeholder="用户平台ID"
class="input"
></el-input>
</div>
</div>
<!-- 按钮 -->
<div class="buttonBox">
<el-button class="primary" type="primary" size="default" @click="search()"
>查询</el-button
>
</div>
<!-- 列表 -->
<el-table :data="tableData" border style="width: 100%; margin-top: 25px">
<el-table-column prop="" align="center" label="用戶id" />
<el-table-column prop="" align="center" label="用戶昵称" />
<el-table-column prop="" align="center" label="手机号" />
<el-table-column prop="" align="center" label="注册时间" />
<el-table-column prop="" align="center" label="进入访问限制时间" />
<el-table-column prop="" align="center" label="邀请码" />
<el-table-column prop="" align="center" label="注册设备" />
<el-table-column prop="" align="center" label="访问设备" />
<el-table-column prop="" align="center" label="最近一次访问低点" />
<el-table-column align="center" label="操作" width="400">
<template v-slot="scope">
<el-button
@click="unfreeze(scope.row)"
class="primary"
type="primary"
size="default"
>解除限制</el-button
>
<el-button
@click="addWhite(scope.row)"
class="primary"
type="primary"
size="default"
>加入白名单</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]"
:small="small"
:disabled="disabled"
:background="background"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!-- 公共二次确认删除弹窗 -->
<el-dialog v-model="delDialog" title="提示" width="30%" center>
<span> {{ delDialogText }}</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="sureClick(val, type)"> 确认 </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script>
// import {} from "@/api/accessRestriction.vue/AccessRestriction.vue";
import { ElMessage } from "element-plus";
export default {
name: "AccessRestriction",
data() {
return {
userId: "", //用戶id
tableData: [], //列表数据
total: 10, //总页数
currentPage: 1, //页码
pageSize: 10, //条数
delDialog: true, //控制公共弹窗展示
delDialogText: "", //公共弹窗标题
};
},
created() {},
methods: {
// 搜索
search() {},
// 解除限制按钮
unfreeze(row) {
console.log(row);
},
// 加入白名单
addWhite(row) {
console.log(row);
},
// 二次确认
sureClick() {},
// 分页导航
handleSizeChange(val) {
// this.getData();
},
handleCurrentChange(val) {
// this.getData();
},
},
};
</script>
<style lang="less" scoped>
.outer {
padding-top: 20px;
background: #ecf0f5;
border-top: 3px solid #d2d6de;
.search {
width: 100%;
height: 41px;
.searchLeft,
.searchRight {
width: 20%;
float: left;
span {
margin-right: 10px;
}
.input {
width: 75%;
}
}
}
.buttonBox {
margin-top: 10px;
}
.authorityBox {
.authoritySpan {
margin-right: 20px;
}
.authorityInpput {
width: 50%;
}
}
.dialogTableVisibleBut {
margin: -25px 0 20px 0px;
}
}
</style>

View File

@@ -0,0 +1,261 @@
<template>
<div class="outer">
<!-- 搜索 -->
<div class="search">
<div class="searchLeft">
<span>用户平台ID</span>
<el-input
v-model="userId"
size="default"
placeholder="用户平台ID"
class="input"
></el-input>
</div>
<div class="searchRight">
<span>用户手机号</span>
<el-input
v-model="userPhone"
size="default"
placeholder="用户手机号"
class="input"
></el-input>
</div>
</div>
<!-- 按钮 -->
<div class="buttonBox">
<el-button class="primary el-icon-edi" type="primary" size="default" @click="add()"
>新增</el-button
>
<el-button class="primary" type="primary" size="default" @click="search()"
>查询</el-button
>
</div>
<!-- 列表 -->
<el-table :data="tableData" border style="width: 100%; margin-top: 25px">
<el-table-column prop="" align="center" label="用戶id" />
<el-table-column prop="" align="center" label="用戶昵称" />
<el-table-column prop="" align="center" label="昵称" />
<el-table-column prop="" align="center" label="注册时间" />
<el-table-column prop="" align="center" label="身份" />
<el-table-column prop="" align="center" label="进入白名单时间" />
<el-table-column prop="" align="center" label="最近一次访问低点" />
<el-table-column prop="" align="center" label="进入白名单来源" />
<el-table-column align="center" label="操作" width="400">
<template v-slot="scope">
<el-button
@click="delWhite(scope.row)"
class="primary"
type="primary"
size="default"
>加入白名单</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]"
:small="small"
:disabled="disabled"
:background="background"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!-- 公共二次确认删除弹窗 -->
<el-dialog v-model="delDialog" title="提示" width="30%" center>
<span> {{ delDialogText }}</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="sureClick(val, type)"> 确认 </el-button>
</span>
</template>
</el-dialog>
<!-- 添加弹窗 -->
<el-dialog v-model="addSure" title="提示" width="30%" center>
<div class="selectBox">
<span>添加号码类型</span>
<el-select v-model="value" placeholder="请选择" @change="changeFun">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<div class="selectBox">
<span>用户ID</span>
<el-input
v-model="selectUserId"
size="default"
placeholder="用户平台ID"
class="input"
></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="addSureClick(val, type)"> 添加 </el-button>
</span>
</template>
</el-dialog>
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog v-model:visible="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
</div>
</template>
<script>
// import {} from "@/api/accessRestriction/AccessRestriction";
import { ElMessage } from "element-plus";
export default {
name: "AccessWhitelist",
data() {
return {
userId: "", //用戶id
userPhone: "", //用戶手机号
tableData: [], //列表数据
total: 10, //总页数
currentPage: 1, //页码
pageSize: 10, //条数
delDialog: false, //控制公共弹窗展示
delDialogText: "确定要移除白名单吗?", //公共弹窗标题
addSure: false, //控制确认添加弹窗展示
value: "1", //选择器
options: [
{
value: "1",
label: "用户id",
},
{
value: "2",
label: "用户手机号",
},
],
selectUserId: "", //添加弹窗用户id
dialogImageUrl: "",
dialogVisible: false,
};
},
created() {},
methods: {
// 新增
add() {},
// 搜索
search() {},
// 移除白名单
delWhite(row) {
console.log(row);
},
// 二次确认
sureClick() {},
// 添加确认
addSureClick() {},
changeFun(e) {
console.log(this.value);
},
// 分页导航
handleSizeChange(val) {
// this.getData();
},
handleCurrentChange(val) {
// this.getData();
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
},
};
</script>
<style lang="less">
.outer {
padding-top: 20px;
background: #ecf0f5;
border-top: 3px solid #d2d6de;
.search {
width: 100%;
height: 41px;
.searchLeft,
.searchRight {
width: 20%;
float: left;
span {
margin-right: 10px;
}
.input {
width: 75%;
}
}
}
.buttonBox {
margin-top: 10px;
}
.authorityBox {
.authoritySpan {
margin-right: 20px;
}
.authorityInpput {
width: 50%;
}
}
.dialogTableVisibleBut {
margin: -25px 0 20px 0px;
}
.selectBox {
margin-bottom: 10px;
span {
display: inline-block;
margin-right: 25px;
}
.el-input {
width: 40%;
}
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
}
</style>

0
{ Normal file
View File