用户管理页面开发
This commit is contained in:
@@ -69,6 +69,16 @@ public class UserInfo implements Serializable {
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 性别 0=女 1=男
|
||||
*/
|
||||
private Integer sex;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
@@ -155,4 +165,20 @@ public class UserInfo implements Serializable {
|
||||
", updateTime=" + updateTime +
|
||||
"}";
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public Integer getSex() {
|
||||
return sex;
|
||||
}
|
||||
|
||||
public void setSex(Integer sex) {
|
||||
this.sex = sex;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.zyplayer.doc.manage.web.manage;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||
import com.zyplayer.doc.core.json.ResponseJson;
|
||||
import com.zyplayer.doc.core.annotation.AuthMan;
|
||||
@@ -9,9 +12,11 @@ import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserAuth;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.UserInfo;
|
||||
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
|
||||
import com.zyplayer.doc.data.service.manage.AuthInfoService;
|
||||
import com.zyplayer.doc.data.service.manage.UserAuthService;
|
||||
import com.zyplayer.doc.data.service.manage.UserInfoService;
|
||||
import com.zyplayer.doc.manage.web.manage.param.UserListParam;
|
||||
import com.zyplayer.doc.manage.web.manage.vo.AuthInfoVo;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.dozer.Mapper;
|
||||
@@ -21,6 +26,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -30,27 +36,63 @@ import java.util.stream.Collectors;
|
||||
@AuthMan("USER_MANAGE")
|
||||
public class UserInfoController {
|
||||
|
||||
@Autowired
|
||||
@Resource
|
||||
UserInfoService userInfoService;
|
||||
@Autowired
|
||||
@Resource
|
||||
AuthInfoService authInfoService;
|
||||
@Autowired
|
||||
@Resource
|
||||
UserAuthService userAuthService;
|
||||
@Autowired
|
||||
@Resource
|
||||
Mapper mapper;
|
||||
|
||||
@PostMapping("/list")
|
||||
public ResponseJson<Object> list(String userName) {
|
||||
public ResponseJson<Object> list(UserListParam param) {
|
||||
QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
|
||||
if (StringUtils.isNotBlank(userName)) {
|
||||
queryWrapper.like("user_name", userName);
|
||||
if (StringUtils.isNotBlank(param.getKeyword())) {
|
||||
queryWrapper.like(param.getType() == 1, "id", param.getKeyword());
|
||||
queryWrapper.like(param.getType() == 2, "user_no", param.getKeyword());
|
||||
queryWrapper.like(param.getType() == 3, "user_name", param.getKeyword());
|
||||
queryWrapper.like(param.getType() == 4, "phone", param.getKeyword());
|
||||
queryWrapper.like(param.getType() == 5, "email", param.getKeyword());
|
||||
}
|
||||
queryWrapper.eq("del_flag", 0);
|
||||
queryWrapper.ne("del_flag", 1);
|
||||
PageHelper.startPage(param.getPageNum(), param.getPageSize(), true);
|
||||
List<UserInfo> userInfoList = userInfoService.list(queryWrapper);
|
||||
if (userInfoList != null && userInfoList.size() > 0) {
|
||||
userInfoList.forEach(val -> val.setPassword(null));
|
||||
}
|
||||
return DocResponseJson.ok(userInfoList);
|
||||
PageInfo<UserInfo> pageInfo = new PageInfo<>(userInfoList);
|
||||
return DocResponseJson.ok(pageInfo);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public ResponseJson<Object> update(UserInfo userInfo) {
|
||||
// 不允许修改密码
|
||||
userInfo.setPassword(null);
|
||||
if (userInfo.getId() != null && userInfo.getId() > 0) {
|
||||
userInfo.setUpdateTime(new Date());
|
||||
userInfoService.updateById(userInfo);
|
||||
} else {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
userInfo.setCreationTime(new Date());
|
||||
userInfo.setCreateUid(currentUser.getUserId());
|
||||
userInfoService.save(userInfo);
|
||||
}
|
||||
return DocResponseJson.ok();
|
||||
}
|
||||
|
||||
@PostMapping("/resetPassword")
|
||||
public ResponseJson<Object> resetPassword(UserInfo userInfo) {
|
||||
String password = RandomUtil.randomNumbers(6);
|
||||
UserInfo userInfoUp = new UserInfo();
|
||||
if (StringUtils.isNotBlank(password)) {
|
||||
String newPassword = DigestUtils.md5DigestAsHex(password.getBytes());
|
||||
userInfoUp.setPassword(newPassword);
|
||||
}
|
||||
userInfoUp.setId(userInfo.getId());
|
||||
userInfoUp.setUpdateTime(new Date());
|
||||
userInfoService.updateById(userInfoUp);
|
||||
return DocResponseJson.ok(password);
|
||||
}
|
||||
|
||||
@PostMapping("/auth/list")
|
||||
@@ -111,23 +153,4 @@ public class UserInfoController {
|
||||
userInfoService.updateById(userInfo);
|
||||
return DocResponseJson.ok();
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public ResponseJson<Object> update(UserInfo userInfo) {
|
||||
String password = userInfo.getPassword();
|
||||
if (StringUtils.isNotBlank(password)) {
|
||||
password = DigestUtils.md5DigestAsHex(password.getBytes());
|
||||
userInfo.setPassword(password);
|
||||
}
|
||||
if (userInfo.getId() != null && userInfo.getId() > 0) {
|
||||
userInfo.setUpdateTime(new Date());
|
||||
userInfoService.updateById(userInfo);
|
||||
} else {
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
userInfo.setCreationTime(new Date());
|
||||
userInfo.setCreateUid(currentUser.getUserId());
|
||||
userInfoService.save(userInfo);
|
||||
}
|
||||
return DocResponseJson.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.zyplayer.doc.manage.web.manage.param;
|
||||
|
||||
public class UserListParam {
|
||||
private Integer type;
|
||||
private String keyword;
|
||||
private Integer pageNum;
|
||||
private Integer pageSize;
|
||||
|
||||
public Integer getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(Integer type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
||||
public void setKeyword(String keyword) {
|
||||
this.keyword = keyword;
|
||||
}
|
||||
|
||||
public Integer getPageNum() {
|
||||
return pageNum;
|
||||
}
|
||||
|
||||
public void setPageNum(Integer pageNum) {
|
||||
this.pageNum = pageNum;
|
||||
}
|
||||
|
||||
public Integer getPageSize() {
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(Integer pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,9 @@ CREATE TABLE `wiki_page_history` (
|
||||
KEY `idx_page_id` (`page_id`) USING BTREE COMMENT '页面ID索引'
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
||||
|
||||
|
||||
ALTER TABLE `user_info` ADD COLUMN `phone` varchar(20) NULL COMMENT '手机号';
|
||||
ALTER TABLE `user_info` ADD COLUMN `sex` tinyint NOT NULL DEFAULT 0 COMMENT '性别 0=女 1=男';
|
||||
ALTER TABLE `user_info` MODIFY COLUMN `del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除 2=已停用';
|
||||
|
||||
|
||||
-- ------------------------全新的库:------------------------
|
||||
@@ -133,10 +135,12 @@ CREATE TABLE `user_info` (
|
||||
`user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
|
||||
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
|
||||
`avatar` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',
|
||||
`del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除',
|
||||
`del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除 2=已停用',
|
||||
`creation_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`create_uid` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户ID',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`phone` varchar(20) NULL COMMENT '手机号',
|
||||
`sex` tinyint NOT NULL DEFAULT 0 COMMENT '性别 0=女 1=男',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `idx_userNo`(`user_no`) USING BTREE COMMENT '登录用户名'
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Compact;
|
||||
|
||||
@@ -2,27 +2,10 @@ var URL = {
|
||||
userLogin: '/login',
|
||||
userLogout: '/logout',
|
||||
getUserInfo: '/user/getUserInfo',
|
||||
pageUpdate: '/zyplayer-doc-wiki/page/update',
|
||||
pageChangeParent: '/zyplayer-doc-wiki/page/changeParent',
|
||||
pageList: '/zyplayer-doc-wiki/page/list',
|
||||
updatePage: '/zyplayer-doc-wiki/page/update',
|
||||
pageDetail: '/zyplayer-doc-wiki/page/detail',
|
||||
pageDelete: '/zyplayer-doc-wiki/page/delete',
|
||||
pageNews: '/zyplayer-doc-wiki/page/news',
|
||||
pageLock: '/zyplayer-doc-wiki/page/lock',
|
||||
pageUnlock: '/zyplayer-doc-wiki/page/unlock',
|
||||
spaceList: '/zyplayer-doc-wiki/space/list',
|
||||
updateSpace: '/zyplayer-doc-wiki/space/update',
|
||||
getPageUserAuthList: '/zyplayer-doc-wiki/page/auth/list',
|
||||
assignPageUserAuth: '/zyplayer-doc-wiki/page/auth/assign',
|
||||
getUserInfoList: '/user/info/list',
|
||||
updateUserInfo: '/user/info/update',
|
||||
resetPassword: '/user/info/resetPassword',
|
||||
|
||||
updatePageFile: '/zyplayer-doc-wiki/page/file/update',
|
||||
pageCommentList: '/zyplayer-doc-wiki/page/comment/list',
|
||||
updatePageComment: '/zyplayer-doc-wiki/page/comment/update',
|
||||
pageZanList: '/zyplayer-doc-wiki/page/zan/list',
|
||||
updatePageZan: '/zyplayer-doc-wiki/page/zan/update',
|
||||
|
||||
commonUpload: '/zyplayer-doc-wiki/common/upload',
|
||||
getUserBaseInfo: '/zyplayer-doc-wiki/common/user/base',
|
||||
|
||||
systemUpgradeInfo: '/system/info/upgrade',
|
||||
|
||||
@@ -5,11 +5,11 @@ var href = window.location.href;
|
||||
var _fn = {
|
||||
href: href,
|
||||
// 本地启动时使用本地接口调试
|
||||
// HOST: 'http://local.zyplayer.com:8083/zyplayer-doc-manage',
|
||||
// HOST1: 'http://local.zyplayer.com:8083/zyplayer-doc-manage',
|
||||
HOST: 'http://local.zyplayer.com:8083/zyplayer-doc-manage',
|
||||
HOST1: 'http://local.zyplayer.com:8083/zyplayer-doc-manage',
|
||||
// 也可以直接使用线上的服务调试
|
||||
HOST: 'http://doc.zyplayer.com/zyplayer-doc-manage',
|
||||
HOST1: 'http://doc.zyplayer.com/zyplayer-doc-manage',
|
||||
// HOST: 'http://doc.zyplayer.com/zyplayer-doc-manage',
|
||||
// HOST1: 'http://doc.zyplayer.com/zyplayer-doc-manage',
|
||||
// 打包时使用下面这两行,文件就放在根目录下,所以当前路劲就好
|
||||
// HOST: './',
|
||||
// HOST1: './',
|
||||
|
||||
@@ -24,7 +24,9 @@ export default {
|
||||
} else if (res.data.errCode == 400) {
|
||||
global.vue.$message('请先登录');
|
||||
var href = encodeURIComponent(window.location.href);
|
||||
global.vue.$router.push({path: '/user/login', query: {redirect: href}});
|
||||
if (global.vue.$router.currentRoute.path != '/user/login') {
|
||||
global.vue.$router.push({path: '/user/login', query: {redirect: href}});
|
||||
}
|
||||
} else if (res.data.errCode == 402) {
|
||||
global.vue.$router.push("/common/noAuth");
|
||||
} else if (res.data.errCode !== 200) {
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="border-bottom: 1px solid #fafafa;padding: 10px;margin-bottom: 10px;">用户管理</div>
|
||||
<div class="user-list-vue">
|
||||
<el-breadcrumb separator-class="el-icon-arrow-right" style="padding: 20px 10px;">
|
||||
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>系统管理</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>用户列表</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
<el-form :inline="true" :model="searchParam" class="search-form-box">
|
||||
<el-form-item label="搜索类型">
|
||||
<el-select v-model="searchParam.type" placeholder="请选择">
|
||||
@@ -15,27 +19,30 @@
|
||||
<el-input v-model="searchParam.keyword" placeholder="输入关键字"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="">查询</el-button>
|
||||
<el-button type="primary" @click="getUserList">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="padding: 10px;">
|
||||
<div style="padding: 10px;" v-loading="searchLoading">
|
||||
<el-table :data="searchResultList" border style="width: 100%; margin-bottom: 5px;" max-height="500">
|
||||
<el-table-column prop="id" label="编号" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="账号"></el-table-column>
|
||||
<el-table-column prop="spaceExplain" label="用户名"></el-table-column>
|
||||
<el-table-column prop="createUserName" label="手机号"></el-table-column>
|
||||
<el-table-column prop="createUserName" label="性别"></el-table-column>
|
||||
<el-table-column prop="createTime" label="创建时间"></el-table-column>
|
||||
<el-table-column prop="userNo" label="账号"></el-table-column>
|
||||
<el-table-column prop="email" label="邮箱"></el-table-column>
|
||||
<el-table-column prop="userName" label="用户名"></el-table-column>
|
||||
<el-table-column prop="phone" label="手机号"></el-table-column>
|
||||
<el-table-column label="性别">
|
||||
<template slot-scope="scope">{{scope.row.sex==0?'女':'男'}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="creationTime" label="创建时间"></el-table-column>
|
||||
<el-table-column label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-switch v-model="scope.row.status" active-text="正常" inactive-text="停用">
|
||||
</el-switch>
|
||||
<el-switch v-on:change="delFlagChange" v-model="scope.row.delFlag" :active-value="0" active-text="正常" :inactive-value="1" inactive-text="停用"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<el-table-column label="操作" width="240">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="small" plain type="primary" v-on:click="editUserInfo(scope.row)">修改</el-button>
|
||||
<el-button size="small" plain type="warning" v-on:click="resetPassword(scope.row)">重置密码</el-button>
|
||||
<el-button size="mini" plain type="primary" v-on:click="editUserInfo(scope.row)">修改</el-button>
|
||||
<el-button size="mini" plain type="warning" v-on:click="resetPassword(scope.row)">重置密码</el-button>
|
||||
<el-button size="mini" plain type="danger" v-on:click="deleteUser(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -56,31 +63,31 @@
|
||||
<el-dialog title="修改用户" :visible.sync="editUserDialogVisible" width="600px">
|
||||
<el-form ref="form" :model="editUserForm" label-width="80px">
|
||||
<el-form-item label="账号">
|
||||
<el-input v-model="editUserForm.name"></el-input>
|
||||
<el-input v-model="editUserForm.userNo"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model="editUserForm.name"></el-input>
|
||||
<el-input v-model="editUserForm.userName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="editUserForm.name"></el-input>
|
||||
<el-input v-model="editUserForm.phone"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱">
|
||||
<el-input v-model="editUserForm.name"></el-input>
|
||||
<el-input v-model="editUserForm.email"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-radio-group v-model="editUserForm.resource">
|
||||
<el-radio label="男"></el-radio>
|
||||
<el-radio label="女"></el-radio>
|
||||
<el-radio-group v-model="editUserForm.sex">
|
||||
<el-radio :label="1">男</el-radio>
|
||||
<el-radio :label="0">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色">
|
||||
<el-select v-model="editUserForm.xx" multiple filterable placeholder="请选择">
|
||||
<el-select v-model="editUserForm.role" multiple filterable placeholder="请选择">
|
||||
<el-option v-for="item in roleOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="">确定</el-button>
|
||||
<el-button>取消</el-button>
|
||||
<el-button type="primary" @click="updateEditUser">确定</el-button>
|
||||
<el-button @click="editUserDialogVisible = false">取消</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
@@ -88,11 +95,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import toast from '../../common/lib/common/toast'
|
||||
var app;
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
searchLoading: false,
|
||||
editUserDialogVisible: false,
|
||||
totalCount: 0,
|
||||
searchParam: {
|
||||
@@ -101,9 +110,7 @@
|
||||
pageSize: 20,
|
||||
pageNum: 1,
|
||||
},
|
||||
searchResultList: [
|
||||
{name: '张三'}
|
||||
],
|
||||
searchResultList: [],
|
||||
roleOptions: [
|
||||
{value: '管理员'}
|
||||
],
|
||||
@@ -112,25 +119,73 @@
|
||||
},
|
||||
mounted: function () {
|
||||
app = this;
|
||||
this.getUserList();
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(val) {
|
||||
this.searchParam.pageSize = val;
|
||||
this.getUserList();
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.searchParam.pageNum = val;
|
||||
this.getUserList();
|
||||
},
|
||||
editUserInfo() {
|
||||
editUserInfo(row) {
|
||||
this.editUserDialogVisible = true;
|
||||
this.editUserForm = row;
|
||||
},
|
||||
resetPassword() {
|
||||
resetPassword(row) {
|
||||
this.$confirm('确定要重置此用户密码吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.editUserForm = row;
|
||||
this.common.post(this.apilist1.resetPassword, this.editUserForm, function (json) {
|
||||
app.$confirm("重置成功!新的密码为:" + json.data).then(()=> {
|
||||
done();
|
||||
}).catch(()=> {});
|
||||
});
|
||||
}).catch(()=>{});
|
||||
},
|
||||
delFlagChange(row, xx) {
|
||||
debugger
|
||||
// this.editUserForm = row;
|
||||
},
|
||||
deleteUser(row) {
|
||||
this.$confirm('确定要删除此用户吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.editUserForm = row;
|
||||
this.editUserForm.delFlag = 1;
|
||||
this.updateEditUser();
|
||||
}).catch(()=>{});
|
||||
},
|
||||
updateEditUser() {
|
||||
this.common.post(this.apilist1.updateUserInfo, this.editUserForm, function (json) {
|
||||
toast.success("保存成功!");
|
||||
app.editUserDialogVisible = false;
|
||||
app.getUserList();
|
||||
});
|
||||
},
|
||||
getUserList() {
|
||||
this.searchLoading = true;
|
||||
this.common.post(this.apilist1.getUserInfoList, this.searchParam, function (json) {
|
||||
// 让加载动画停留一会
|
||||
setTimeout(()=>{app.searchLoading = false;}, 500);
|
||||
app.totalCount = json.total;
|
||||
app.searchResultList = json.data;
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.search-form-box{padding: 10px;}
|
||||
.page-info-box{text-align: right;margin: 20px 0 50px 0;}
|
||||
.user-list-vue .search-form-box{padding: 10px;}
|
||||
.user-list-vue .page-info-box{text-align: right;margin: 20px 0 50px 0;}
|
||||
.user-list-vue .el-button+.el-button{margin-left: 5px;}
|
||||
</style>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user