Files
pear-admin-flask/pear_admin/apis/department.py
T

65 lines
2.1 KiB
Python

from flask import Blueprint, request
from flask_sqlalchemy.pagination import Pagination
from pear_admin.common.utils.responses import JsonResponse
from pear_admin.extensions import db
from pear_admin.orms import DepartmentORM
department_api = Blueprint("department", __name__)
@department_api.get("/department")
def department_list():
page = request.args.get("page", default=1, type=int)
per_page = request.args.get("limit", default=10, type=int)
_type = request.args.get("type")
ret = []
if _type == "tree":
dept_obj: DepartmentORM = DepartmentORM.query.get(1)
for child in dept_obj.children:
child_data = child.json()
child_data["children"] = []
if child.children:
child_data["isParent"] = True
for son in child.children:
son_data = son.json()
# son_data["isParent"] = True
child_data["children"].append(son_data)
ret.append(child_data)
return JsonResponse().set_body(ret).set_msg("请求权限数据成功").ok()
q = db.select(DepartmentORM)
pages: Pagination = db.paginate(q, page=page, per_page=per_page)
return JsonResponse().set_table(pages).set_msg("获取部门数据成功").ok()
@department_api.post("/department")
def create_department():
data = request.get_json()
if data["id"]:
del data["id"]
department = DepartmentORM(**data)
department.save()
return JsonResponse().set_msg("新增部门成功").ok()
@department_api.put("/department/<int:rid>")
def change_department(rid):
data = request.get_json()
del data["id"]
department_obj = DepartmentORM.query.get(rid)
for column in DepartmentORM.__table__.columns:
if column.name in data:
setattr(department_obj, column.name, data[column.name])
department_obj.save()
return JsonResponse().set_msg("修改部门成功").ok()
@department_api.delete("/department/<int:rid>")
def del_department(rid):
department_obj = DepartmentORM.query.get(rid)
department_obj.delete()
return JsonResponse().set_msg("删除删除成功").ok()