diff --git a/pear_admin/apis/__init__.py b/pear_admin/apis/__init__.py index 6fa0bde..79eb8b1 100644 --- a/pear_admin/apis/__init__.py +++ b/pear_admin/apis/__init__.py @@ -4,6 +4,7 @@ from .department import department_api from .passport import passport_api from .rights import rights_api from .role import role_api +from .user import user_api def register_apis(app: Flask): @@ -13,5 +14,6 @@ def register_apis(app: Flask): apis.register_blueprint(rights_api) apis.register_blueprint(role_api) apis.register_blueprint(department_api) + apis.register_blueprint(user_api) app.register_blueprint(apis) diff --git a/pear_admin/apis/user.py b/pear_admin/apis/user.py new file mode 100644 index 0000000..69775f5 --- /dev/null +++ b/pear_admin/apis/user.py @@ -0,0 +1,60 @@ +from datetime import datetime + +from flask import Blueprint, request +from flask_sqlalchemy.pagination import Pagination + +from pear_admin.extensions import db +from pear_admin.orms import UserORM + +user_api = Blueprint("user", __name__) + + +@user_api.get("/user") +def user_list(): + page = request.args.get("page", default=1, type=int) + per_page = request.args.get("limit", default=10, type=int) + q = db.select(UserORM) + + pages: Pagination = db.paginate(q, page=page, per_page=per_page) + + return { + "code": 0, + "message": "获取用户数据成功", + "data": [item.json() for item in pages.items], + "count": pages.total, + } + + +@user_api.post("/user") +def create_user(): + data = request.get_json() + if data["id"]: + del data["id"] + role = UserORM(**data) + create_at = data['create_at'] + if create_at: + role.create_at = datetime.strptime(create_at, '%Y-%m-%d %H:%M:%S') + role.password = '123456' + role.save() + return {"code": 0, "message": "新增用户成功"} + + +@user_api.put("/user/") +def change_user(uid): + data = request.get_json() + del data["id"] + + user_obj = UserORM.query.get(uid) + for key, value in data.items(): + if key == 'create_at': + value = datetime.strptime(value, '%Y-%m-%d %H:%M:%S') + setattr(user_obj, key, value) + user_obj.save() + return {"code": 0, "message": "修改用户信息成功"} + + +@user_api.delete("/user/") +def del_user(rid): + user_obj = UserORM.query.get(rid) + user_obj.delete() + return {"code": 0, "message": "删除用户成功"} diff --git a/pear_admin/orms/user.py b/pear_admin/orms/user.py index f5e5494..78ea87b 100644 --- a/pear_admin/orms/user.py +++ b/pear_admin/orms/user.py @@ -41,7 +41,7 @@ class UserORM(BaseORM): "nickname": self.nickname, "mobile": self.mobile, "email": self.email, - "create_at": self.create_at, + "create_at": self.create_at.strftime("%Y-%m-%d %H:%M:%S"), } @property diff --git a/pear_admin/views/views.py b/pear_admin/views/views.py index 4ecf759..bad74e4 100644 --- a/pear_admin/views/views.py +++ b/pear_admin/views/views.py @@ -16,3 +16,8 @@ def role_view(): @views_bp.get("/department") def department_view(): return render_template("views/department/index.html") + + +@views_bp.get("/user") +def user_view(): + return render_template("views/user/index.html") diff --git a/static/data/ums_rights.csv b/static/data/ums_rights.csv index 249a728..f53826b 100644 --- a/static/data/ums_rights.csv +++ b/static/data/ums_rights.csv @@ -15,11 +15,11 @@ id,name,code,type,url,icon_sign,status,sort,open_type,pid 113,修改部门,ums:department:update,auth,,,,0,,111 114,删除部门,ums:department:delete,auth,,,,0,,111 115,查询部门,ums:department:read,auth,,,,0,,111 -116,员工管理,ums:user,path,/views/user,layui-icon layui-icon-console,,4,,100 -117,新增员工,ums:user:create,auth,,,,0,,116 -118,修改员工,ums:user:update,auth,,,,0,,116 -119,查询员工,ums:user:read,auth,,,,0,,116 -120,查询员工,ums:user:read,auth,,,,0,,116 +116,用户管理,ums:user,path,/views/user,layui-icon layui-icon-console,,4,,100 +117,新增用户,ums:user:create,auth,,,,0,,116 +118,修改用户,ums:user:update,auth,,,,0,,116 +119,查询用户,ums:user:read,auth,,,,0,,116 +120,查询用户,ums:user:read,auth,,,,0,,116 121,数据图表,,menu,,layui-icon layui-icon-chart,,3,,0 122,折线图,,path,/views/echarts/line,layui-icon layui-icon-face-smile,,0,,121 123,柱状图,,path,/views/echarts/column,layui-iconlayui-icon-face-smile,,0,,121 diff --git a/templates/views/role/index.html b/templates/views/role/index.html index bfd65fc..15c0de1 100644 --- a/templates/views/role/index.html +++ b/templates/views/role/index.html @@ -155,7 +155,7 @@ { field: "id", title: "ID", width: 80, sort: true }, { field: "name", title: "用户名", width: 120 }, { field: "code", title: "用户标识", width: 160 }, - { field: "desc", title: "描述", minWidth: 80 }, + { field: "desc", title: "描述", maxWidth: 120 }, { field: "ids", title: "权限列表", width: 100 }, { fixed: "right", @@ -176,7 +176,7 @@ content: $("#role-form"), area: ["50%", "80%"], }); - form.render($("#role")); + form.render($("#role-form")); } }); diff --git a/templates/views/user/index.html b/templates/views/user/index.html new file mode 100644 index 0000000..8e098d2 --- /dev/null +++ b/templates/views/user/index.html @@ -0,0 +1,258 @@ + + + + + 用户管理 + + + + + +
+
+
+
+
+
+
+ + + + + +