Update: (步骤备份)角色管理页面更新完成并增加参数效验

This commit is contained in:
wojiaoyishang
2025-01-20 14:59:41 +08:00
parent 830b9b246d
commit 9f8fe2c83e
7 changed files with 79 additions and 56 deletions
-6
View File
@@ -119,9 +119,6 @@ def menu():
# 当前节点添加子节点
_dict['children'] = copy.deepcopy(menu_dict[_dict['id']])
_dict['children'].sort(key=lambda item: item['sort'])
# 为每个子菜单添加 "openType": "_component"
for child in _dict['children']:
child['openType'] = '_component'
# 删除子节点
del menu_dict[_dict['id']]
@@ -142,9 +139,6 @@ def menu():
# 当前节点添加子节点
_dict['children'] = copy.deepcopy(menu_dict[_dict['id']])
_dict['children'].sort(key=lambda item: item['sort'])
# 为每个子菜单添加 "openType": "_component"
for child in _dict['children']:
child['openType'] = '_component'
# 删除子节点
del menu_dict[_dict['id']]
+42 -16
View File
@@ -45,21 +45,31 @@ def add():
@authorize("system:role:add", log=True)
def save():
req = request.get_json(force=True)
details = str_escape(req.get("details"))
enable = str_escape(req.get("enable"))
roleCode = str_escape(req.get("roleCode"))
roleName = str_escape(req.get("roleName"))
sort = str_escape(req.get("sort"))
role = Role(
details=details,
enable=enable,
code=roleCode,
name=roleName,
sort=sort
)
data = {
"details": str_escape(req.get("details")),
"enable": str_escape(req.get("enable")),
"code": str_escape(req.get("roleCode")), # 角色标识
"name": str_escape(req.get("roleName")), # 角色名称
"sort": str_escape(req.get("sort"))
}
details = data.get('details')
del data['details']
if not all(data.values()):
return fail_api(msg="参数不足")
data['details'] = details
# 参数效验
if not data['sort'].isdigit():
return fail_api(msg="参数 sort 需为整数")
role = Role(**data)
db.session.add(role)
db.session.commit()
return success_api(msg="成功")
return success_api(msg="添加角色成功")
# 角色授权
@@ -103,6 +113,9 @@ def save_role_power():
role_id = req_form.get("roleId")
role = Role.query.filter_by(id=role_id).first()
if not role:
return fail_api(msg="角色不存在")
powers = Power.query.filter(Power.id.in_(power_list)).all()
role.power = powers
@@ -124,6 +137,7 @@ def edit(id):
def update():
req_json = request.get_json(force=True)
id = req_json.get("roleId")
data = {
"code": str_escape(req_json.get("roleCode")),
"name": str_escape(req_json.get("roleName")),
@@ -131,10 +145,18 @@ def update():
"enable": str_escape(req_json.get("enable")),
"details": str_escape(req_json.get("details"))
}
if not data['enable'].isdigit():
return fail_api(msg="参数 enable 需为整数")
if not data['sort'].isdigit():
return fail_api(msg="参数 sort 需为整数")
role = Role.query.filter_by(id=id).update(data)
db.session.commit()
if not role:
return fail_api(msg="更新角色失败")
return success_api(msg="更新角色成功")
@@ -142,9 +164,9 @@ def update():
@bp.put('/enable')
@authorize("system:role:edit", log=True)
def enable():
id = request.get_json(force=True).get('roleId')
if id:
res = enable_status(Role, id)
_id = request.get_json(force=True).get('roleId')
if _id:
res = enable_status(Role, _id)
if not res:
return fail_api(msg="出错啦")
return success_api(msg="启动成功")
@@ -169,6 +191,10 @@ def dis_enable():
@authorize("system:role:remove", log=True)
def remove(id):
role = Role.query.filter_by(id=id).first()
if not role:
return fail_api(msg="角色不存在")
# 删除该角色的权限和用户
role.power = []
role.user = []
+8 -8
View File
@@ -11,14 +11,14 @@
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="roleName" lay-verify="title" autocomplete="off" placeholder="请输入标题"
<input type="text" name="roleName" 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" name="roleCode" lay-verify="title" autocomplete="off" placeholder="请输入标题"
<input type="text" name="roleCode" lay-verify="title" autocomplete="off" placeholder="角色标识"
class="layui-input">
</div>
</div>
@@ -31,15 +31,15 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="text" name="sort" lay-verify="title" autocomplete="off" placeholder="请输入标题"
class="layui-input">
<div class="layui-input-inline" style="width: 100px;">
<input type="text" value="0" name="sort" lay-verify="title" autocomplete="off"
placeholder="排序" min="0" step="1" lay-affix="number" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<textarea placeholder="请输入描述" name="details" class="layui-textarea"></textarea>
<textarea placeholder="角色描述" name="details" class="layui-textarea"></textarea>
</div>
</div>
</div>
@@ -47,11 +47,11 @@
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="role-save">
<button type="submit" class="layui-btn layui-btn-sm" lay-submit="" lay-filter="role-save">
<i class="layui-icon layui-icon-ok"></i>
提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
+8 -9
View File
@@ -12,21 +12,21 @@
<label class="layui-form-label">编号</label>
<div class="layui-input-block">
<input type="text" value="{{ role.id }}" name="roleId" lay-verify="title"
autocomplete="off" placeholder="请输入标题" class="layui-input">
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="{{ role.name }}" name="roleName" lay-verify="title"
autocomplete="off" placeholder="请输入标题" class="layui-input">
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="{{ role.code }}" readonly name="roleCode" lay-verify="title"
autocomplete="off" placeholder="请输入标题" class="layui-input">
autocomplete="off" placeholder="角色标识" class="layui-input">
</div>
</div>
<div class="layui-form-item">
@@ -40,16 +40,15 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="sort" value="{{ role.sort }}" lay-verify="title" autocomplete="off"
placeholder="请输入标题"
class="layui-input">
placeholder="排序" min="0" step="1" lay-affix="number" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" name="details"
<textarea placeholder="角色描述" name="details"
class="layui-textarea">{{ role.details }}</textarea>
</div>
</div>
@@ -58,12 +57,12 @@
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
<button type="submit" class="layui-btn layui-btn-sm" lay-submit=""
lay-filter="role-update">
<i class="layui-icon layui-icon-ok"></i>
提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
+13 -12
View File
@@ -2,12 +2,13 @@
<html>
<head>
<title>用户管理</title>
{% include 'system/common/header.html' %}</head>
{% include 'system/common/header.html' %}
</head>
<body class="pear-container">
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form" action="">
<div class="layui-form-item">
<div class="layui-form-item" style="margin-bottom: unset;">
<label class="layui-form-label">角色名</label>
<div class="layui-input-inline">
<input type="text" name="roleName" placeholder="" class="layui-input">
@@ -16,11 +17,11 @@
<div class="layui-input-inline">
<input type="text" name="roleCode" placeholder="" class="layui-input">
</div>
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="role-query">
<button class="layui-btn layui-btn-md layui-btn-primary" lay-submit lay-filter="role-query">
<i class="layui-icon layui-icon-search"></i>
查询
</button>
<button type="reset" class="pear-btn pear-btn-md">
<button type="reset" class="layui-btn layui-btn-md">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
@@ -34,11 +35,11 @@
</div>
</div>
</body>
{% include 'system/common/footer.html' %}
<script type="text/html" id="role-toolbar">
{% if authorize("system:role:add") %}
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
<i class="layui-icon layui-icon-add-1"></i>
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-event="add">
<i class="pear-icon pear-icon-add"></i>
新增
</button>
{% endif %}
@@ -46,17 +47,17 @@
<script type="text/html" id="role-bar">
{% if authorize("system:role:edit") %}
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit"><i
class="layui-icon layui-icon-edit"> 编辑</i>
</button>
{% endif %}
{% if authorize("system:role:power") %}
<button class="pear-btn pear-btn-warming pear-btn-sm" lay-event="power"><i
<button class="layui-btn layui-btn-warming layui-btn-xs" lay-event="power"><i
class="layui-icon layui-icon-vercode"> 授权</i>
</button>
{% endif %}
{% if authorize("system:role:remove") %}
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove"><i
class="layui-icon layui-icon-delete"> 删除</i>
</button>
{% endif %}
@@ -66,7 +67,7 @@
<input type="checkbox" name="enable" value="{{ "{{d.id}}" }}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="role-enable" {{ "{{# if(d.enable==1){ }} checked {{# } }}" }}>
</script>
{% include 'system/common/footer.html' %}
<script>
layui.use(['table', 'form', 'jquery', 'popup', 'common'], function () {
let table = layui.table
@@ -78,7 +79,7 @@
let cols = [
[
{title: 'id', field: 'id', align: 'center'},
{title: '编号', field: 'id', align: 'center'},
{title: '角色名', field: 'name', align: 'center', width: 100},
{title: 'Key值', field: 'code', align: 'center'},
{title: '描述', field: 'details', align: 'center'},
+4 -3
View File
@@ -2,7 +2,8 @@
<html>
<head>
<title>角色授权</title>
{% include 'system/common/header.html' %}</head>
{% include 'system/common/header.html' %}
</head>
<body>
<form class="layui-form" action="">
<div class="mainBox">
@@ -14,11 +15,11 @@
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="power-save">
<button type="submit" class="layui-btn layui-btn-sm" lay-submit="" lay-filter="power-save">
<i class="layui-icon layui-icon-ok"></i>
提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
+4 -2
View File
@@ -2,6 +2,7 @@
<html>
<head>
<title>用户管理</title>
{% include 'system/common/header.html' %}
<link rel="stylesheet" href="{{ url_for('static', filename='system/admin/css/other/user.css') }}"/>
</head>
<body class="pear-container">
@@ -9,7 +10,7 @@
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form" action="" lay-filter="user-query-form">
<div class="layui-form-item">
<div class="layui-form-item" style="margin-bottom: unset;">
<label class="layui-form-label">用户</label>
<div class="layui-input-inline">
<input type="text" name="realname" placeholder="" class="layui-input">
@@ -50,6 +51,8 @@
</div>
</div>
</body>
{% include 'system/common/footer.html' %}
{# 表格操作 #}
<script type="text/html" id="user-toolbar">
{% if authorize("system:user:add") %}
@@ -124,7 +127,6 @@
page: true,
cols: cols,
skin: 'line',
height: 'full-148',
toolbar: '#user-toolbar', /*工具栏*/
text: {none: '暂无人员信息'},
defaultToolbar: [{layEvent: 'refresh', icon: 'layui-icon-refresh'}, 'filter', 'print', 'exports'] /*默认工具栏*/