You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
255 lines
7.0 KiB
255 lines
7.0 KiB
<!-- -->
|
|
<template>
|
|
<div class="userStyle">
|
|
<!-- 搜索 -->
|
|
<div class="topSearch">
|
|
<div class="formSearch">
|
|
<el-form :inline="true" :model="formInline">
|
|
<el-form-item label="关键词">
|
|
<el-input v-model="formInline.search" maxlength="20" clearable placeholder="请输入userid/openid/昵称/手机号" style="width: 300px;" class="filter-item" @keyup.enter.native="toQuery" />
|
|
</el-form-item>
|
|
<el-form-item label="状态">
|
|
<el-select v-model="formInline.state" clearable placeholder="请选择" class="filter-item">
|
|
<el-option label="有效" :value="1" />
|
|
<el-option label="无效" :value="0" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" plain @click="search">查询</el-button>
|
|
<el-button type="info" plain @click="clear">重置</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="rightBTn">
|
|
<el-button type="primary" @click="add">新增黑名单</el-button>
|
|
</div>
|
|
</div>
|
|
<!-- 表格 -->
|
|
<div class="tableBox">
|
|
<el-table
|
|
ref="multipleTable"
|
|
:data="tableData"
|
|
border
|
|
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
|
|
tooltip-effect="dark"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column prop="buyerUserId" label="userid" />
|
|
<el-table-column prop="openId" label="openid" />
|
|
<el-table-column prop="name" label="昵称" />
|
|
<el-table-column prop="phone" label="手机号" />
|
|
<el-table-column prop="createTime" label="创建时间" >
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.createTime }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="createTime" label="更新时间" >
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.updateTime }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="发布状态" align="center">
|
|
<template slot-scope="scope">
|
|
<div @click="toggle(scope.row.id,scope.row.state)">
|
|
<el-tag v-if="scope.row.state" style="cursor: pointer" :type="''">有效</el-tag>
|
|
<el-tag v-else style="cursor: pointer" :type=" 'info' ">失效</el-tag>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="操作" show-overflow-tooltip width="300">
|
|
<template slot-scope="scope">
|
|
<div class="btnList">
|
|
<el-button
|
|
v-if="scope.row.state"
|
|
size="mini"
|
|
type="primary"
|
|
@click="toggle(scope.row.id,scope.row.state)"
|
|
>
|
|
点击无效
|
|
</el-button>
|
|
<el-button
|
|
v-else
|
|
size="mini"
|
|
type="primary"
|
|
@click="toggle(scope.row.id,scope.row.state)"
|
|
>
|
|
点击生效
|
|
</el-button>
|
|
<el-button slot="reference" icon="el-icon-delete" size="mini" @click="del(scope.row.id)">删除</el-button>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="fenye">
|
|
<el-pagination
|
|
:current-page="currentPage"
|
|
:page-sizes="[10, 20, 50, 100]"
|
|
:page-size="10"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="total"
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
/>
|
|
</div>
|
|
</div>
|
|
<ad-form ref="adForm" @reset="getAll" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getUserBlackList,
|
|
delBlack,
|
|
updateBlack
|
|
} from '@/api/risk'
|
|
|
|
import AdForm from './form'
|
|
export default {
|
|
components: { AdForm },
|
|
data () {
|
|
// 这里存放数据
|
|
return {
|
|
formInline: {
|
|
page: '1', // 当前页
|
|
pageSize: '10' // 每页记录数
|
|
},
|
|
total: 1,
|
|
tableData: [],
|
|
currentPage: 1
|
|
}
|
|
},
|
|
mounted () {
|
|
this.getAll()
|
|
},
|
|
// 方法集合
|
|
methods: {
|
|
// 初始化查询列表数据
|
|
async getAll () {
|
|
const formInline = this.formInline
|
|
const res = await getUserBlackList(formInline)
|
|
this.tableData = res.data.list
|
|
this.total = res.data.total
|
|
},
|
|
// 页码每页页数修改回调
|
|
handleSizeChange (val) {
|
|
this.formInline.pageSize = val
|
|
this.getAll(this.formInline)
|
|
},
|
|
// 页码当前页修改回调
|
|
handleCurrentChange (val) {
|
|
this.formInline.page = val
|
|
this.getAll()
|
|
},
|
|
// 查询
|
|
search () {
|
|
this.total = 0
|
|
this.formInline.page = 1
|
|
this.getAll()
|
|
},
|
|
// 清除
|
|
clear () {
|
|
this.formInline = {
|
|
search: '', // 搜索字段
|
|
state: '', // 是否启用 1-是 0-否
|
|
page: '1', // 当前页
|
|
pageSize: '10' // 每页记录数
|
|
}
|
|
this.getAll()
|
|
},
|
|
// 新增
|
|
add () {
|
|
this.$refs.adForm.show()
|
|
},
|
|
// 编辑
|
|
edit (row) {
|
|
this.$refs.adForm.show(row)
|
|
},
|
|
// 删除
|
|
async del (id) {
|
|
this.$confirm('是否确认删除该内容?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
})
|
|
.then(() => {
|
|
delBlack({ id }).then(res => {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '删除成功!'
|
|
})
|
|
this.getAll()
|
|
})
|
|
})
|
|
.catch(() => {
|
|
return false
|
|
})
|
|
},
|
|
toggle (id, state) {
|
|
this.$confirm(`${state ? '确定让选择项失效?' : '确定让选择项生效?'}`, '提示', {
|
|
confirmButtonText: '确认',
|
|
cancelButtonText: '我再想想',
|
|
type: 'warning'
|
|
})
|
|
.then(() => {
|
|
updateBlack({
|
|
id,
|
|
state: state ? 0 : 1
|
|
}).then(({ data }) => {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '操作成功!'
|
|
})
|
|
this.getAll()
|
|
})
|
|
})
|
|
.catch(() => { })
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang='scss' scoped>
|
|
//@import url(); 引入公共css类
|
|
@import url("../../../styles/elDialog.scss");
|
|
.userStyle {
|
|
background: #FFFFFF;
|
|
border-radius: 10px;
|
|
padding: 20px;
|
|
.topSearch {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
//align-items: center;
|
|
.formSearch,
|
|
.rightBTn {
|
|
margin-left: 20px;
|
|
}
|
|
}
|
|
.btnList .el-popover__reference{
|
|
margin-left: 10px;
|
|
}
|
|
}
|
|
</style>
|
|
<style>
|
|
.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: 120px;
|
|
height: 120px;
|
|
line-height: 120px;
|
|
text-align: center;
|
|
}
|
|
.avatar {
|
|
width: 120px;
|
|
height: 120px;
|
|
display: block;
|
|
}
|
|
</style>
|