61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
from flask import Blueprint, request, render_template
|
|
from flask_restful import Api, reqparse
|
|
|
|
from applications.common.utils.http import table_api
|
|
from applications.common.utils.rights import authorize
|
|
from applications.models import Role, User, Dept
|
|
|
|
users_bp = Blueprint('users', __name__, url_prefix='/users')
|
|
user_api = Api(users_bp)
|
|
|
|
|
|
# 用户分页查询
|
|
@users_bp.get('/data')
|
|
@authorize("admin:user:main", log=True)
|
|
def data():
|
|
parser = reqparse.RequestParser()
|
|
parser.add_argument('page', type=int, default=1)
|
|
parser.add_argument('limit', type=int, default=10)
|
|
parser.add_argument('realName', type=str, dest='real_name')
|
|
parser.add_argument('username', type=str)
|
|
parser.add_argument('deptId', type=int, dest='dept_id', default=0)
|
|
|
|
res = parser.parse_args()
|
|
|
|
filters = []
|
|
|
|
if res.real_name:
|
|
filters.append(User.realname.like('%' + res.real_name + '%'))
|
|
if res.username:
|
|
filters.append(User.username.like('%' + res.username + '%'))
|
|
if res.dept_id:
|
|
filters.append(User.dept_id == res.dept_id)
|
|
|
|
paginate = User.query.filter(*filters).paginate(page=res.page,
|
|
per_page=res.limit,
|
|
error_out=False)
|
|
|
|
dept_name = lambda dept_id: Dept.query.filter_by(id=dept_id).first().dept_name
|
|
user_data = [{
|
|
'id': item.id,
|
|
'username': item.username,
|
|
'realname': item.realname,
|
|
'enable': item.enable,
|
|
'create_at': item.create_at,
|
|
'update_at': item.update_at,
|
|
'dept': dept_name(item.dept_id),
|
|
} for item in paginate.items]
|
|
|
|
return table_api(data=user_data, count=paginate.total)
|
|
|
|
|
|
# 用户增加
|
|
@users_bp.get('/')
|
|
@authorize("admin:user:main", log=True)
|
|
def get():
|
|
return render_template('admin/user/main.html')
|
|
|
|
|
|
from . import profile, _utils
|
|
from . import user_view
|