468 lines
20 KiB
HTML
468 lines
20 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>管理用户</title>
|
||
<link rel="stylesheet" href="../../component/pear/css/pear.css" />
|
||
<style>
|
||
.expand.pear-btn:hover {
|
||
color: currentColor;
|
||
background: none;
|
||
}
|
||
|
||
.expand.pear-btn {
|
||
border: 1px solid rgba(255, 255, 255, 0)
|
||
}
|
||
</style>
|
||
<script src="../../assets/token.js"></script>
|
||
</head>
|
||
|
||
<body class="pear-container">
|
||
<div class="layui-card">
|
||
<div class="layui-card-body">
|
||
<form id="userForm" class="layui-form" action="">
|
||
<div class="layui-form-item">
|
||
<div class="layui-inline">
|
||
<label class="layui-form-label">搜索框</label>
|
||
<div class="layui-input-inline">
|
||
<input type="text" name="realName" placeholder="" class="layui-input">
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline" style="margin-left: 50px;">
|
||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="user-query">
|
||
<i class="layui-icon layui-icon-search"></i>
|
||
查询
|
||
</button>
|
||
<button type="reset" class="pear-btn pear-btn-md">
|
||
<i class="layui-icon layui-icon-refresh"></i>
|
||
重置
|
||
</button>
|
||
<button type="button" class="pear-btn pear-btn-md expand">
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<div class="layui-card">
|
||
<div class="layui-card-body">
|
||
<table id="user-table" lay-filter="user-table"></table>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="text/html" id="user-toolbar">
|
||
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
|
||
<i class="layui-icon layui-icon-add-1"></i>
|
||
新增
|
||
</button>
|
||
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
|
||
<i class="layui-icon layui-icon-delete"></i>
|
||
删除
|
||
</button>
|
||
</script>
|
||
|
||
<script type="text/html" id="user-bar">
|
||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
|
||
class="layui-icon layui-icon-edit"></i></button>
|
||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
|
||
class="layui-icon layui-icon-delete"></i></button>
|
||
|
||
</script>
|
||
|
||
<script type="text/html" id="user-enable">
|
||
<input type="checkbox" name="enable" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="user-enable" checked="{{ d.enable == 0 ? 'true' : 'false' }}">
|
||
</script>
|
||
|
||
<script type="text/html" id="user-sex">
|
||
{{#if (d.sex == 1) { }}
|
||
<span>男</span> {{# }else if(d.sex == 2){ }}
|
||
<span>女</span> {{# } }}
|
||
</script>
|
||
|
||
<script type="text/html" id="user-login">
|
||
{{#if (d.login == 0) { }}
|
||
<span>在线</span> {{# }else if(d.sex == 1){ }}
|
||
<span>离线</span> {{# } }}
|
||
</script>
|
||
|
||
<script type="text/html" id="user-createTime">
|
||
{{layui.util.toDateString(d.createTime, 'yyyy-MM-dd')}}
|
||
</script>
|
||
<script type="text/html" id="statusTpl">
|
||
{{# if(d.idCard && d.driverLicense){ }}
|
||
<span>已实名</span> {{# } else { }}
|
||
<span>未实名</span> {{# } }}
|
||
</script>
|
||
<div style="display: none;">
|
||
<div class="layer-top">
|
||
<br />
|
||
<h3>上侧弹层内容...</h3>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="../../component/layui/layui.js"></script>
|
||
<script src="../../component/pear/pear.js"></script>
|
||
<script src="../../assets/jquery-1.9.1.min.js"></script>
|
||
<script src="../../assets/type.js"></script>
|
||
<script src="../../assets/token.js"></script>
|
||
<script>
|
||
layui.use(['table', 'form', 'jquery', 'drawer', 'dropdown', 'toast'], function() {
|
||
let table = layui.table;
|
||
let form = layui.form;
|
||
let $ = layui.jquery;
|
||
let drawer = layui.drawer;
|
||
let dropdown = layui.dropdown;
|
||
var toast = layui.toast;
|
||
let MODULE_PATH = "/system/user/";
|
||
|
||
formToggle({
|
||
elem: "#userForm",
|
||
});
|
||
|
||
function formToggle(options) {
|
||
var defaultsOpt = {
|
||
isExpand: false,
|
||
prefixIcon: "layui-icon",
|
||
toggleIcon: ['layui-icon-down', 'layui-icon-up'],
|
||
toggleText: ['展开', '折叠'],
|
||
}
|
||
var opt = $.extend({}, defaultsOpt, options);
|
||
var elem = opt.elem; // 绑定的表单元素,必填
|
||
var min = opt.min; // 最小显示数,默认显示一行
|
||
var isExpand = opt.isExpand; // 初始展开
|
||
var prefixIcon = opt.prefixIcon + " "; // 图标前缀
|
||
var toggleIcon = opt.toggleIcon; // 折叠和展开时的图标类[unExpandIcon, ExpandIcon]
|
||
var toggleText = opt.toggleText; // 折叠和展开时的文本
|
||
|
||
var eleDOM = $(elem + " .layui-inline");
|
||
var firstElTop = eleDOM.first().offset().top;
|
||
var targetEl = eleDOM.filter(function(index) {
|
||
var isGtMin = (index + 1) > min;
|
||
var isGtFirstElTop = $(this).offset().top > firstElTop;
|
||
var isNeqLast = (index + 1) != eleDOM.length;
|
||
return min ? isGtMin && isNeqLast : isGtFirstElTop && isNeqLast;
|
||
});
|
||
|
||
var unExpandIcon = prefixIcon + toggleIcon[0];
|
||
var expandIcon = prefixIcon + toggleIcon[1];
|
||
var unExpandText = toggleText[0];
|
||
var expandText = toggleText[1];
|
||
var btnSelector = elem + " .expand";
|
||
$(btnSelector).append("<i></i>")
|
||
if (targetEl.length > 0) {
|
||
if (isExpand) {
|
||
$(btnSelector).prepend("<span>" + expandText + "</span>");
|
||
$(btnSelector + ">i").addClass(expandIcon);
|
||
} else {
|
||
$(btnSelector).prepend("<span>" + unExpandText + "</span>")
|
||
$(btnSelector + ">i").addClass(unExpandIcon)
|
||
targetEl.addClass("layui-hide");
|
||
}
|
||
$(btnSelector).click(function() {
|
||
isExpand = !isExpand;
|
||
if (isExpand) {
|
||
$(btnSelector + ">span").html(expandText);
|
||
$(btnSelector + ">i").removeClass(unExpandIcon).addClass(expandIcon);
|
||
targetEl.removeClass("layui-hide")
|
||
} else {
|
||
$(btnSelector + ">span").html(unExpandText);
|
||
$(btnSelector + ">i").removeClass(expandIcon).addClass(unExpandIcon);
|
||
targetEl.addClass("layui-hide")
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
let cols = [
|
||
[{
|
||
type: 'checkbox'
|
||
}, {
|
||
title: '用户ID',
|
||
field: 'userId',
|
||
align: 'center',
|
||
|
||
}, {
|
||
title: '用户名',
|
||
field: 'userName',
|
||
align: 'center',
|
||
|
||
}, {
|
||
title: '密码',
|
||
field: 'passWord',
|
||
align: 'center',
|
||
|
||
}, {
|
||
title: '手机号',
|
||
field: 'phone',
|
||
|
||
align: 'center'
|
||
}, {
|
||
title: '身份证',
|
||
field: 'idCard',
|
||
templet: '#statusTpl',
|
||
align: 'center',
|
||
}, {
|
||
title: '驾照',
|
||
field: 'driverLicense',
|
||
align: 'center',
|
||
templet: '#statusTpl'
|
||
|
||
}, {
|
||
title: '操作',
|
||
toolbar: '#user-bar',
|
||
align: 'left',
|
||
|
||
fixed: 'right'
|
||
}]
|
||
]
|
||
$.ajax({
|
||
url: `${api}/api/AllUser`,
|
||
type: 'POST',
|
||
success: function(res) {
|
||
table.render({
|
||
elem: '#user-table',
|
||
data: res.data,
|
||
page: true,
|
||
cols: cols,
|
||
skin: 'line',
|
||
toolbar: '#user-toolbar',
|
||
defaultToolbar: [{
|
||
layEvent: 'refresh',
|
||
icon: 'layui-icon-refresh',
|
||
}, 'filter', 'print', 'exports'],
|
||
done: function(res, curr, count) {
|
||
for (var i = 0; i < res.data.length; i++) {
|
||
dropdown.render({
|
||
elem: '#more_' + res.data[i].userId,
|
||
data: [{
|
||
title: 'menu item11',
|
||
id: 100
|
||
}, {
|
||
title: 'menu item22',
|
||
id: 101
|
||
}, {
|
||
title: 'menu item33',
|
||
id: 102
|
||
}],
|
||
id: '#more_' + res.data[i].userId,
|
||
click: function(obj) {
|
||
layer.tips('点击了:' + obj.title, this.elem, {
|
||
tips: [1, '#5FB878']
|
||
})
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
})
|
||
table.on('tool(user-table)', function(obj) {
|
||
if (obj.event === 'remove') {
|
||
console.log(obj)
|
||
window.remove(obj);
|
||
} else if (obj.event === 'edit') {
|
||
window.edit(obj);
|
||
}
|
||
});
|
||
|
||
table.on('toolbar(user-table)', function(obj) {
|
||
if (obj.event === 'add') {
|
||
window.add();
|
||
} else if (obj.event === 'refresh') {
|
||
window.refresh();
|
||
} else if (obj.event === 'batchRemove') {
|
||
window.batchRemove(obj);
|
||
}
|
||
});
|
||
|
||
form.on('submit(user-query)', function(data) {
|
||
table.reload('user-table', {
|
||
where: data.field
|
||
})
|
||
return false;
|
||
});
|
||
|
||
form.on('switch(user-enable)', function(obj) {
|
||
layer.tips(this.value + ' ' + this.name + ':' + obj.elem.checked, obj.othis);
|
||
});
|
||
|
||
window.add = function() {
|
||
drawer.open({
|
||
legacy: false,
|
||
offset: "r",
|
||
area: "30%",
|
||
content: `
|
||
<form class="layui-form" action="" onsubmit="return false" style="margin-top:50px;">
|
||
|
||
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">用户名</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="userNames" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" >
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">密码</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="passWord" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" >
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">手机号</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="phones" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" >
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">身份证</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="idCards" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" >
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">驾照</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="driverLicenses" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" >
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<div class="layui-input-block">
|
||
<button class="layui-btn" lay-submit lay-filter="formDemo" onclick="adduser()">立即提交</button>
|
||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||
</div>
|
||
</div>
|
||
</form>`,
|
||
})
|
||
}
|
||
//修改
|
||
window.edit = function(obj) {
|
||
var objs = obj.data
|
||
console.log(objs)
|
||
drawer.open({
|
||
legacy: false,
|
||
offset: "r",
|
||
area: "30%",
|
||
content: `<form class="layui-form" action="" onsubmit="return false" style="margin-top:50px;">
|
||
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">ID</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="userIded" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" readonly value=${obj.data.userId}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">用户名</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="usernameed" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" value=${obj.data.userName}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">密码</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="passworded" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" value=${obj.data.passWord}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">手机号</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="phoneed" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" value=${obj.data.phone}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">身份证</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="idCarded" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" value=${obj.data.idCard}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">驾照</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="dya5n" required id="driverLicenseed" lay-verify="required" placeholder="请输入输入框内容" autocomplete="off" class="layui-input" value=${obj.data.driverLicense}>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<div class="layui-input-block">
|
||
<button class="layui-btn" lay-submit lay-filter="formDemo" onclick="edituser()">立即提交</button>
|
||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||
</div>
|
||
</div>
|
||
</form>`,
|
||
})
|
||
}
|
||
|
||
window.remove = function(obj) {
|
||
layer.confirm('确定要删除该用户', {
|
||
icon: 3,
|
||
title: '提示'
|
||
}, function(index) {
|
||
layer.close(index);
|
||
let loading = layer.load();
|
||
$.ajax({
|
||
url: api + "/api/delete_user",
|
||
contentType: 'application/json',
|
||
data: JSON.stringify({
|
||
userIds: obj.data.userId
|
||
}),
|
||
type: 'post',
|
||
success: function(result) {
|
||
layer.close(loading);
|
||
if (result.status == 200) {
|
||
success(result.message);
|
||
time();
|
||
} else {
|
||
error(result.message)
|
||
}
|
||
}
|
||
})
|
||
});
|
||
}
|
||
|
||
window.batchRemove = function(obj) {
|
||
let data = table.checkStatus(obj.config.id).data;
|
||
if (data.length === 0) {
|
||
layer.msg("未选中数据", {
|
||
icon: 3,
|
||
time: 1000
|
||
});
|
||
return false;
|
||
}
|
||
let ids = "";
|
||
for (let i = 0; i < data.length; i++) {
|
||
ids += data[i].userId + ",";
|
||
}
|
||
ids = ids.substr(0, ids.length - 1);
|
||
layer.confirm('确定要删除这些用户', {
|
||
icon: 3,
|
||
title: '提示'
|
||
}, function(index) {
|
||
layer.close(index);
|
||
let loading = layer.load();
|
||
$.ajax({
|
||
url: `${api}/api/delete_user`,
|
||
contentType: 'application/json',
|
||
type: 'post',
|
||
data: JSON.stringify({
|
||
userIds: ids
|
||
}),
|
||
success: function(result) {
|
||
layer.close(loading);
|
||
if (result.status = 200) {
|
||
success(result.message);
|
||
time();
|
||
} else {
|
||
error(result.message);
|
||
}
|
||
}
|
||
})
|
||
});
|
||
}
|
||
|
||
window.refresh = function(param) {
|
||
table.reload('user-table');
|
||
}
|
||
})
|
||
</script>
|
||
</body>
|
||
|
||
</html> |