修改目录结构2

This commit is contained in:
zhengxinonly
2021-06-23 23:56:04 +08:00
parent 6da6768f81
commit 0cb74c5eb7
21 changed files with 733 additions and 57 deletions
@@ -12,6 +12,7 @@
<div class="layui-form-item">
<label class="layui-form-label">上级部门</label>
<div class="layui-input-block">
{#渲染树形选择器#}
<ul id="selectParent" name="parentId" class="dtree" data-id="0"></ul>
</div>
</div>
@@ -86,6 +87,7 @@
let $ = layui.jquery
let dtree = layui.dtree
/*渲染下拉选择组件*/
dtree.renderSelect({
elem: '#selectParent',
url: '/dept/tree',
@@ -97,6 +99,7 @@
selectInitVal: '1'
})
/*表单组件,提交按钮之后触发的事件*/
form.on('submit(dept-save)', function (data) {
$.ajax({
url: '/dept/save',
+1 -1
View File
@@ -33,7 +33,7 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label">邮箱</label>
<div class="layui-input-block">x`
<div class="layui-input-block">
<input type="text" value="{{ dept.email }}" name="email" lay-verify="title" autocomplete="off"
placeholder="请输入标题"
class="layui-input">
+40 -24
View File
@@ -4,19 +4,24 @@
<title>部门新增</title>
{% include 'admin/common/header.html' %}
</head>
{#pear 后台边框#}
<body class="pear-container">
{#搜索框布局#}
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">部门名称</label>
<div class="layui-input-inline">
{#部门信息搜索字段#}
<input type="text" name="deptName" placeholder="" class="layui-input">
</div>
{#查询按钮--需要触发layui事件#}
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="dept-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>
重置
@@ -28,10 +33,12 @@
<div class="layui-card">
<div class="layui-card-body">
{#表格字段渲染#}
<table id="dept-table" lay-filter="dept-table"></table>
</div>
</div>
{#表格工具栏,需要在表格中绑定,且需要自定义事件#}
<script type="text/html" id="dept-toolbar">
{% if authorize("admin:dept:edit") %}
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
@@ -47,19 +54,17 @@
{% endif %}
</script>
{#操作字段,需要在表格中使用#}
<script type="text/html" id="dept-bar">
{% if authorize("admin:dept:edit") %}
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
class="layui-icon layui-icon-edit"></i>
</button>
{% endif %}
{% if authorize("admin:dept:remove") %}
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
class="layui-icon layui-icon-delete"></i>
</button>
{% endif %}
<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="dept-status">
<input type="checkbox" name="status" value="{{ "{{ d.deptId }}" }}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="dept-enable"
@@ -78,20 +83,23 @@
let treetable = layui.treetable
let popup = layui.popup
{#定义模块访问路径#}
let MODULE_PATH = '/dept/'
{#定义表格渲染函数#}
window.render = function () {
/*树形表格渲染*/
treetable.render({
treeColIndex: 1,
treeSpid: 0,
treeIdName: 'deptId',
treePidName: 'parentId',
treeIdName: 'deptId', /*表格的顶级字段*/
treePidName: 'parentId', /*父级id选项*/
skin: 'line',
method: 'post',
method: 'post', /**/
treeDefaultClose: false,
toolbar: '#dept-toolbar',
elem: '#dept-table',
url: '/dept/data',
toolbar: '#dept-toolbar', /*表格的工具栏*/
elem: '#dept-table', /*表格挂载的对象*/
url: '/dept/data', /*数据来源接口*/
page: false,
cols: [
[
@@ -105,19 +113,22 @@
{ field: 'sort', title: '排序', width: 100 },
{ title: '操作', templet: '#dept-bar', width: 120, align: 'center' }
]
]
]/*表格渲染的数据*/
})
}
/*查询表单按钮被点击的事件*/
form.on('submit(dept-query)', function (data) {
var keyword = data.field.deptName
var $tds = $('#dept-table').next('.treeTable').find('.layui-table-body tbody tr td')
let keyword = $.trim(data.field.deptName)
/*获取所有的公司节点*/
let $tds = $('#dept-table').next('.treeTable').find('.layui-table-body tbody tr td')
if (!keyword) {
$tds.css('background-color', 'transparent')
layer.msg('请输入关键字', { icon: 5 })
return
return false
}
var searchCount = 0
/*本地查询并且标注高亮*/
let searchCount = 0
$tds.each(function () {
$(this).css('background-color', 'transparent')
if ($(this).text().indexOf(keyword) >= 0) {
@@ -139,14 +150,18 @@
render()
/*表格的操作栏*/
table.on('tool(dept-table)', function (obj) {
if (obj.event === 'remove') {
/*移出事件*/
window.remove(obj)
} else if (obj.event === 'edit') {
/*编辑事件*/
window.edit(obj)
}
})
/*表格的工具栏*/
table.on('toolbar(dept-table)', function (obj) {
if (obj.event === 'add') {
window.add()
@@ -158,6 +173,7 @@
}
})
/*切换选择状态*/
form.on('switch(dept-enable)', function (obj) {
let operate
if (obj.elem.checked) {
@@ -188,8 +204,8 @@
type: 2,
title: '新增',
shade: 0.1,
area: ['450px', '500px'],
content: MODULE_PATH + 'add'
area: ['450px', '500px'], /*新增窗口的大小*/
content: MODULE_PATH + 'add' /*新增窗口从那里来*/
})
}
@@ -199,7 +215,7 @@
title: '修改',
shade: 0.1,
area: ['450px', '500px'],
content: MODULE_PATH + 'edit?deptId=' + obj.data['deptId']
content: MODULE_PATH + 'edit?deptId=' + obj.data['deptId'] /*编辑修改窗口从那里来*/
})
}
+1 -1
View File
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>用户管理</title>
<title>角色管理</title>
{% include 'admin/common/header.html' %}</head>
<body class="pear-container">
<div class="layui-card">
@@ -93,7 +93,7 @@
roleIds = roleIds.substr(0, roleIds.length - 1)
data.field.roleIds = roleIds
$.ajax({
url: '/users/' + data.userId,
url: '/users/' + data.field.userId,
data: JSON.stringify(data.field),
dataType: 'json',
contentType: 'application/json',
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>用户编辑</title>
{% include 'admin/common/header.html' %}
</head>
<body>
<form class="layui-form" action="">
<div class="mainBox">
<div class="main-container">
<div class="main-container">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">编号</label>
<div class="layui-input-block">
<input type="text" value="{{ user.id }}" name="userId" lay-verify="title"
autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">账号</label>
<div class="layui-input-block">
<input type="text" value="{{ user.username }}" name="username" lay-verify="title"
autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-block">
<input type="text" value="{{ user.realname }}" name="realName" lay-verify="title"
autocomplete="off" placeholder="请输入标题"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门</label>
<div class="layui-input-block">
<ul id="selectParent" name="deptId" class="dtree" data-id="0"></ul>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色</label>
<div class="layui-input-block">
{% for role in roles %}
<input {% if role.id in checked_roles %}
checked
{% endif %}
value="{{ role.id }}" title="{{ role.name }}" type="checkbox"
name="roleIds" lay-skin="primary">
{% endfor %}
</div>
</div>
</div>
</div>
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="user-update">
<i class="layui-icon layui-icon-ok"></i>
提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
</div>
</div>
</form>
{% include 'admin/common/footer.html' %}
<script>
layui.use(['form', 'jquery', 'dtree'], function () {
let form = layui.form
let $ = layui.jquery
let dtree = layui.dtree
dtree.renderSelect({
elem: '#selectParent',
url: '/dept/tree',
method: 'get',
selectInputName: { nodeId: 'deptId', context: 'deptName' },
skin: 'layui',
dataFormat: 'list',
response: { treeId: 'deptId', parentId: 'parentId', title: 'deptName' },
selectInitVal: "{{ user.dept_id }}"
})
form.on('submit(user-update)', function (data) {
let roleIds = ''
$('input[type=checkbox]:checked').each(function () {
roleIds += $(this).val() + ','
})
roleIds = roleIds.substr(0, roleIds.length - 1)
data.field.roleIds = roleIds
$.ajax({
url: '/users/' + data.field.userId,
data: JSON.stringify(data.field),
dataType: 'json',
contentType: 'application/json',
type: 'put',
success: function (result) {
if (result.success) {
layer.msg(result.msg, { icon: 1, time: 1000 }, function () {
parent.layer.close(parent.layer.getFrameIndex(window.name))//关闭当前页
parent.layui.table.reload('user-table')
})
} else {
layer.msg(result.msg, { icon: 2, time: 1000 })
}
}
})
return false
})
})
</script>
</body>
</html>
+285
View File
@@ -0,0 +1,285 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>付费学员管理</title>
{% include 'admin/common/header.html' %}
<link rel="stylesheet" href="{{ url_for('static', filename='/admin/admin/css/other/user.css') }}"/>
</head>
<body class="pear-container">
{# 查询表单 #}
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form" action="" lay-filter="user-query-form">
<div class="layui-form-item">
<label class="layui-form-label">用户</label>
<div class="layui-input-inline">
<input type="text" name="username" placeholder="" class="layui-input">
</div>
<label class="layui-form-label">微信</label>
<div class="layui-input-inline">
<input type="text" name="wx" placeholder="" class="layui-input">
</div>
<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>
</div>
</form>
</div>
</div>
{#影藏侧边栏#}
<div class="user-left user-collasped">
<div class="layui-card">
<div class="layui-card-body">
<div class="button button-primary user-group" user-group="1"> 进阶课</div>
<div class="button button-default user-group" user-group="2"> 爬虫课</div>
<div class="button button-default user-group" user-group="3"> 数据分析课</div>
<div style="overflow: auto">
{# <ul id="dept-tree" class="dept-tree" data-id="0"></ul>#}
</div>
</div>
</div>
</div>
{# 用户表格 #}
<div class="user-main user-collasped">
<div class="layui-card">
<div class="layui-card-body">
<table id="user-table" lay-filter="user-table"></table>
</div>
</div>
</div>
</body>
{% include 'admin/common/footer.html' %}
{# 用户更新时间 #}
<script type="text/html" id="user-updateTime">
{{ ' {{layui.util.toDateString(d.update_at, "yyyy-MM-dd HH:mm:ss")}' |safe }}}
</script>
{# 表格操作 #}
<script type="text/html" id="user-toolbar">
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
<i class="pear-icon pear-icon-add"></i>
新增
</button>
<button class="pear-btn pear-btn-md" lay-event="batchRemove">
<i class="pear-icon pear-icon-ashbin"></i>
删除
</button>
<button class="pear-btn pear-btn-md" lay-event="collasped">
<i class="pear-icon pear-icon-modular"></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="pear-icon pear-icon-edit"></i>
</button>
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
<i class="pear-icon pear-icon-ashbin"></i>
</button>
</script>
<script>
layui.use(['table', 'dtree', 'form', 'jquery', 'popup', 'common'], function () {
let table = layui.table
let form = layui.form
let $ = layui.jquery
let dtree = layui.dtree
let popup = layui.popup
let common = layui.common
let MODULE_PATH = '/vip/'
// 表格数据
let cols = [
[
{#{ type: 'checkbox' },#}
{ title: 'ID', field: 'id', align: 'center', width: 110 },
{ title: '期数', field: 'phase', align: 'center', width: 110 },
{ title: '用户名', field: 'username', align: 'center', width: 110 },
{ title: '电话号码', field: 'mobile', align: 'center', hide: true },
{ title: '身份证号', field: 'id_card', align: 'center', hide: true },
{ title: '微信号', field: 'wx', align: 'center' },
{ title: 'QQ号', field: 'qq', align: 'center' },
{ title: '报名账号', field: 'account', align: 'center' },
{ title: '学号', field: 'number', align: 'center' },
{ title: '创建时间', field: 'create_at', templet: '#user-updateTime', align: 'center' },
{ title: '操作', toolbar: '#user-bar', align: 'center', width: 130 }
]
]
// 渲染表格数据
table.render({
elem: '#user-table',
url: MODULE_PATH + 'data',
page: true,
cols: cols,
skin: 'line',
height: 'full-148',
toolbar: '#user-toolbar', /*工具栏*/
text: { none: '暂无人员信息' },
defaultToolbar: [{ layEvent: 'refresh', icon: 'layui-icon-refresh' }, 'filter', 'print', 'exports'] /*默认工具栏*/
})
//
$('.user-group').click(function () {
let group = $(this).attr('user-group')
let field = form.val('user-query-form')
field.class_level = group
$(this).removeClass('button-default')
$(this).siblings().removeClass('button-primary')
$(this).siblings().addClass('button-default')
$(this).addClass('button-primary')
window.refresh(field)
})
table.on('tool(user-table)', function (obj) {
if (obj.event === 'remove') {
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)
} else if (obj.event === 'collasped') {
$('.user-left').toggleClass('user-collasped')
$('.user-main').toggleClass('user-collasped')
table.resize()
}
})
form.on('submit(user-query)', function (data) {
window.refresh(data.field)
return false
})
form.on('switch(user-enable)', function (obj) {
let operate
if (obj.elem.checked) {
operate = 1
} else {
operate = 0
}
let loading = layer.load()
$.ajax({
url: MODULE_PATH + 'enable',
data: JSON.stringify({ operate: operate, userId: this.value }),
dataType: 'json',
contentType: 'application/json',
type: 'put',
success: function (result) {
layer.close(loading)
if (result.success) {
popup.success(result.msg)
} else {
popup.failure(result.msg)
}
}
})
})
window.add = function () {
layer.open({
type: 2,
title: '新增',
shade: 0.1,
area: ['550px', '550px'],
content: MODULE_PATH + 'add'
})
}
window.edit = function (obj) {
layer.open({
type: 2,
title: '修改',
shade: 0.1,
area: ['550px', '500px'],
content: MODULE_PATH + obj.data['id']
})
}
window.remove = function (obj) {
layer.confirm('确定要删除该用户', { icon: 3, title: '提示' }, function (index) {
layer.close(index)
let loading = layer.load()
$.ajax({
url: MODULE_PATH + 'remove/' + obj.data['id'],
dataType: 'json',
type: 'delete',
success: function (result) {
layer.close(loading)
if (result.success) {
popup.success(result.msg, function () {
obj.del()
})
} else {
popup.failure(result.msg)
}
}
})
})
}
window.batchRemove = function (obj) {
let data = table.checkStatus(obj.config.id).data
if (data.length === 0) {
layer.msg('未选中数据', {
icon: 3,
time: 1000
})
return false
}
var ids = []
var hasCheck = table.checkStatus('user-table')
var hasCheckData = hasCheck.data
if (hasCheckData.length > 0) {
$.each(hasCheckData, function (index, element) {
ids.push(element.id)
})
}
{#console.log(ids);#}
layer.confirm('确定要删除选中角色', {
icon: 3,
title: '提示'
}, function (index) {
layer.close(index)
let loading = layer.load()
$.ajax({
url: MODULE_PATH + 'batchRemove',
data: { ids: ids },
dataType: 'json',
type: 'delete',
success: function (result) {
layer.close(loading)
if (result.success) {
popup.success(result.msg, function () {
table.reload('role-table')
})
} else {
popup.failure(result.msg)
}
}
})
})
}
window.refresh = function (param) {
table.reload('user-table', { where: param })
}
})
</script>
</html>