2019-08-21 06:48:12 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
2019-08-27 01:10:58 +00:00
|
|
|
<meta charset="utf-8">
|
2019-08-21 06:48:12 +00:00
|
|
|
<title>用户列表</title>
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
2019-08-27 07:10:13 +00:00
|
|
|
<link rel="stylesheet" href="../../css/oksub.css">
|
2019-08-21 06:48:12 +00:00
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="ok-body">
|
|
|
|
|
<!--面包屑导航区域-->
|
|
|
|
|
<div class="ok-body-breadcrumb">
|
|
|
|
|
<span class="layui-breadcrumb">
|
|
|
|
|
<a><cite>首页</cite></a>
|
2019-08-21 07:45:45 +00:00
|
|
|
<a><cite>会员管理</cite></a>
|
2019-08-21 06:48:12 +00:00
|
|
|
<a><cite>用户列表</cite></a>
|
|
|
|
|
</span>
|
|
|
|
|
<a class="layui-btn layui-btn-sm" href="javascript:location.replace(location.href);" title="刷新">
|
|
|
|
|
<i class="layui-icon layui-icon-refresh"></i>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<!--模糊搜索区域-->
|
|
|
|
|
<div class="layui-row">
|
|
|
|
|
<form class="layui-form layui-col-md12 ok-search">
|
2019-10-14 15:35:29 +00:00
|
|
|
<input class="layui-input" placeholder="开始日期" autocomplete="off" id="startTime" name="startTime">
|
|
|
|
|
<input class="layui-input" placeholder="截止日期" autocomplete="off" id="endTime" name="endTime">
|
|
|
|
|
<input class="layui-input" placeholder="账号" autocomplete="off" name="username">
|
2019-08-21 06:48:12 +00:00
|
|
|
<button class="layui-btn" lay-submit="" lay-filter="search">
|
2019-08-25 04:47:42 +00:00
|
|
|
<i class="layui-icon"></i>
|
2019-08-21 06:48:12 +00:00
|
|
|
</button>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<!--数据表格-->
|
|
|
|
|
<table class="layui-hide" id="tableId" lay-filter="tableFilter"></table>
|
|
|
|
|
</div>
|
|
|
|
|
<!--js逻辑-->
|
|
|
|
|
<script src="../../lib/layui/layui.js"></script>
|
|
|
|
|
<script src="../../lib/nprogress/nprogress.js"></script>
|
|
|
|
|
<script>
|
2019-08-25 08:07:05 +00:00
|
|
|
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
|
2019-08-21 06:48:12 +00:00
|
|
|
var table = layui.table;
|
|
|
|
|
var form = layui.form;
|
|
|
|
|
var laydate = layui.laydate;
|
2019-08-22 03:30:35 +00:00
|
|
|
var okLayer = layui.okLayer;
|
|
|
|
|
var okUtils = layui.okUtils;
|
2019-08-25 08:07:05 +00:00
|
|
|
var okMock = layui.okMock;
|
2019-08-21 06:48:12 +00:00
|
|
|
|
|
|
|
|
laydate.render({elem: "#startTime", type: "datetime"});
|
|
|
|
|
laydate.render({elem: "#endTime", type: "datetime"});
|
|
|
|
|
|
2019-08-21 07:12:39 +00:00
|
|
|
var userTable = table.render({
|
2019-08-21 06:48:12 +00:00
|
|
|
elem: '#tableId',
|
2019-08-25 08:07:05 +00:00
|
|
|
url: okMock.api.user.list,
|
|
|
|
|
limit: 20,
|
2019-08-21 06:48:12 +00:00
|
|
|
page: true,
|
2019-08-22 03:30:35 +00:00
|
|
|
toolbar: true,
|
|
|
|
|
toolbar: "#toolbarTpl",
|
|
|
|
|
size: "sm",
|
2019-08-21 06:48:12 +00:00
|
|
|
cols: [[
|
2019-08-22 11:35:43 +00:00
|
|
|
{type: "checkbox", fixed: "left"},
|
2019-10-09 14:16:46 +00:00
|
|
|
{field: "id", title: "ID", width: 160, sort: true},
|
2019-08-25 08:07:05 +00:00
|
|
|
{field: "username", title: "账号", width: 100},
|
2019-08-21 06:48:12 +00:00
|
|
|
{field: "password", title: "密码", width: 100},
|
2019-08-25 08:07:05 +00:00
|
|
|
{field: "reallyName", title: "姓名", width: 100},
|
|
|
|
|
{field: "nickname", title: "昵称", width: 100},
|
2019-08-21 06:48:12 +00:00
|
|
|
{field: "role", title: "角色", width: 100, templet: "#roleTpl"},
|
2019-08-25 08:07:05 +00:00
|
|
|
{field: "status", title: "状态", width: 100, templet: "#statusTpl"},
|
2019-08-21 06:48:12 +00:00
|
|
|
{field: "email", title: "邮箱", width: 200},
|
2019-08-30 01:17:41 +00:00
|
|
|
{field: "province", title: "省份", width: 120},
|
|
|
|
|
{field: "city", title: "城市", width: 100},
|
|
|
|
|
{field: "county", title: "区县", width: 120},
|
2019-08-25 08:07:05 +00:00
|
|
|
{field: "createTime", title: "创建时间", width: 150},
|
2019-08-21 06:48:12 +00:00
|
|
|
{field: "logins", title: "登陆次数", width: 100},
|
2019-08-30 01:17:41 +00:00
|
|
|
{title: "操作", width: 100, align: "center", fixed: "right", templet: "#operationTpl"}
|
2019-08-21 06:48:12 +00:00
|
|
|
]],
|
|
|
|
|
done: function (res, curr, count) {
|
|
|
|
|
console.info(res, curr, count);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2019-08-21 07:12:39 +00:00
|
|
|
form.on("submit(search)", function (data) {
|
|
|
|
|
userTable.reload({
|
2019-08-22 03:30:35 +00:00
|
|
|
where: data.field,
|
|
|
|
|
page: {curr: 1}
|
|
|
|
|
});
|
2019-08-21 06:48:12 +00:00
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
|
2019-08-22 03:30:35 +00:00
|
|
|
table.on("toolbar(tableFilter)", function (obj) {
|
|
|
|
|
switch (obj.event) {
|
|
|
|
|
case "batchEnabled":
|
|
|
|
|
batchEnabled();
|
|
|
|
|
break;
|
|
|
|
|
case "batchDisabled":
|
|
|
|
|
batchDisabled();
|
|
|
|
|
break;
|
|
|
|
|
case "batchDel":
|
|
|
|
|
batchDel();
|
|
|
|
|
break;
|
|
|
|
|
case "add":
|
|
|
|
|
add();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2019-08-21 06:48:12 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
table.on("tool(tableFilter)", function (obj) {
|
2019-08-22 03:30:35 +00:00
|
|
|
var data = obj.data;
|
2019-08-21 06:48:12 +00:00
|
|
|
switch (obj.event) {
|
2019-08-22 03:30:35 +00:00
|
|
|
case "edit":
|
|
|
|
|
edit(data);
|
|
|
|
|
break;
|
|
|
|
|
case "del":
|
|
|
|
|
del(data.id);
|
|
|
|
|
break;
|
|
|
|
|
}
|
2019-08-21 06:48:12 +00:00
|
|
|
});
|
|
|
|
|
|
2019-08-22 03:30:35 +00:00
|
|
|
function batchEnabled() {
|
|
|
|
|
okLayer.confirm("确定要批量启用吗?", function (index) {
|
|
|
|
|
// TODO
|
|
|
|
|
layer.close(index);
|
|
|
|
|
var idsStr = okUtils.table.batchCheck(table);
|
|
|
|
|
if (idsStr) {
|
2019-08-29 16:11:39 +00:00
|
|
|
okUtils.ajax(okMock.api.user.batchNormal, "put", {idsStr: idsStr}).done(function (response) {
|
2019-08-27 07:10:13 +00:00
|
|
|
console.log(response);
|
2019-08-22 03:30:35 +00:00
|
|
|
okUtils.table.successMsg("批量启用成功");
|
|
|
|
|
}).fail(function (error) {
|
|
|
|
|
console.log(error)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function batchDisabled() {
|
|
|
|
|
okLayer.confirm("确定要批量停用吗?", function (index) {
|
|
|
|
|
layer.close(index);
|
|
|
|
|
var idsStr = okUtils.table.batchCheck(table);
|
|
|
|
|
if (idsStr) {
|
2019-08-29 16:11:39 +00:00
|
|
|
okUtils.ajax(okMock.api.user.batchStop, "put", {idsStr: idsStr}).done(function (response) {
|
2019-08-27 07:10:13 +00:00
|
|
|
console.log(response);
|
2019-08-22 03:30:35 +00:00
|
|
|
okUtils.table.successMsg("批量停用成功");
|
|
|
|
|
}).fail(function (error) {
|
|
|
|
|
console.log(error)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-08-21 06:48:12 +00:00
|
|
|
|
2019-08-22 03:30:35 +00:00
|
|
|
function batchDel() {
|
|
|
|
|
okLayer.confirm("确定要批量删除吗?", function (index) {
|
|
|
|
|
layer.close(index);
|
|
|
|
|
var idsStr = okUtils.table.batchCheck(table);
|
|
|
|
|
if (idsStr) {
|
2019-08-29 16:11:39 +00:00
|
|
|
okUtils.ajax(okMock.api.user.batchDel, "delete", {idsStr: idsStr}).done(function (response) {
|
2019-08-27 07:10:13 +00:00
|
|
|
console.log(response);
|
2019-08-22 03:30:35 +00:00
|
|
|
okUtils.table.successMsg("批量删除成功");
|
|
|
|
|
}).fail(function (error) {
|
|
|
|
|
console.log(error)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function add() {
|
|
|
|
|
okLayer.open("添加用户", "user-add.html", "90%", "90%", null, function () {
|
|
|
|
|
userTable.reload();
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function edit(data) {
|
|
|
|
|
okLayer.open("编辑用户", "user-edit.html", "90%", "90%", function (layero) {
|
|
|
|
|
var iframeWin = window[layero.find("iframe")[0]["name"]];
|
|
|
|
|
iframeWin.initForm(data);
|
|
|
|
|
}, function () {
|
2019-08-21 07:12:39 +00:00
|
|
|
userTable.reload();
|
2019-08-22 03:30:35 +00:00
|
|
|
})
|
|
|
|
|
}
|
2019-08-21 06:48:12 +00:00
|
|
|
|
2019-08-22 11:35:43 +00:00
|
|
|
function del(id) {
|
2019-08-22 03:30:35 +00:00
|
|
|
okLayer.confirm("确定要删除吗?", function () {
|
2019-08-29 16:11:39 +00:00
|
|
|
okUtils.ajax(okMock.api.user.batchDel, "delete", {idsStr: id}).done(function (response) {
|
2019-08-27 07:10:13 +00:00
|
|
|
console.log(response);
|
2019-08-22 03:30:35 +00:00
|
|
|
okUtils.table.successMsg("删除成功");
|
|
|
|
|
}).fail(function (error) {
|
|
|
|
|
console.log(error)
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
}
|
2019-08-21 06:48:12 +00:00
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
<!-- 头工具栏模板 -->
|
|
|
|
|
<script type="text/html" id="toolbarTpl">
|
2019-08-22 03:30:35 +00:00
|
|
|
<div class="layui-btn-container">
|
2019-08-25 04:47:42 +00:00
|
|
|
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="batchEnabled">批量启用</button>
|
|
|
|
|
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batchDisabled">批量停用</button>
|
|
|
|
|
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchDel">批量删除</button>
|
|
|
|
|
<button class="layui-btn layui-btn-sm" lay-event="add">添加用户</button>
|
2019-08-22 03:30:35 +00:00
|
|
|
</div>
|
2019-08-21 06:48:12 +00:00
|
|
|
</script>
|
2019-08-21 07:45:45 +00:00
|
|
|
<!-- 行工具栏模板 -->
|
|
|
|
|
<script type="text/html" id="operationTpl">
|
|
|
|
|
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon"></i></a>
|
|
|
|
|
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon"></i></a>
|
|
|
|
|
</script>
|
|
|
|
|
<!-- 启用|停用模板 -->
|
2019-08-21 06:48:12 +00:00
|
|
|
<script type="text/html" id="statusTpl">
|
2019-08-21 07:45:45 +00:00
|
|
|
{{# if(d.status == 0){ }}
|
2019-08-25 08:07:05 +00:00
|
|
|
<span class="layui-btn layui-btn-normal layui-btn-xs">已启用</span>
|
2019-08-21 07:45:45 +00:00
|
|
|
{{# } else if(d.status == 1) { }}
|
2019-08-25 08:07:05 +00:00
|
|
|
<span class="layui-btn layui-btn-warm layui-btn-xs">已停用</span>
|
2019-08-21 07:45:45 +00:00
|
|
|
{{# } }}
|
2019-08-21 06:48:12 +00:00
|
|
|
</script>
|
|
|
|
|
<script type="text/html" id="roleTpl">
|
2019-08-25 08:07:05 +00:00
|
|
|
{{# if(d.role == 0){ }}
|
|
|
|
|
<span class="layui-btn layui-btn-normal layui-btn-xs">超级会员</span>
|
|
|
|
|
{{# } else if(d.role == 1) { }}
|
|
|
|
|
<span class="layui-btn layui-btn-warm layui-btn-xs">普通用户</span>
|
|
|
|
|
{{# } }}
|
2019-08-21 06:48:12 +00:00
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|