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/") 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/") def del_department(rid): department_obj = DepartmentORM.query.get(rid) department_obj.delete() return JsonResponse().set_msg("删除删除成功").ok()