resource.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. from ..base import base
  2. from ..models import Resource, Organization
  3. from ..models import Role
  4. from ..models import User
  5. from flask import g, jsonify
  6. from flask_login import current_user
  7. import json
  8. from ..models import ResourceType
  9. from flask import render_template, request
  10. from .. import db
  11. import uuid
  12. from datetime import datetime
  13. from sqlalchemy import desc
  14. from sqlalchemy import asc
  15. from flask_login import login_required
  16. from .. import permission
  17. @base.route('/system/menu/list', methods=['GET'])
  18. @login_required
  19. @permission('system:menu:list')
  20. def syresource_treeGrid():
  21. filters = []
  22. if 'menuName' in request.args:
  23. filters.append(Resource.NAME.like('%' + request.args['menuName'] + '%'))
  24. order_by = []
  25. order_by.append(asc(getattr(Resource, 'SYRESOURCE_ID')))
  26. order_by.append(asc(getattr(Resource, 'SEQ')))
  27. res_list = Resource.query.filter(*filters).order_by(*order_by)
  28. return jsonify({"msg":"操作成功","code":200, "data": [org.to_json() for org in res_list]})
  29. @base.route('/system/menu/<id>', methods=['GET'])
  30. @login_required
  31. @permission('system:menu:query')
  32. def syresource_getById(id):
  33. res = Resource.query.get(id)
  34. if res:
  35. return jsonify({'code': 200, 'msg': '操作成功', 'data': res.to_json()})
  36. else:
  37. return jsonify({'success': False, 'msg': 'error'})
  38. @base.route('/system/menu', methods=['PUT'])
  39. @login_required
  40. @permission('system:menu:edit')
  41. def syresource_update():
  42. res = Resource.query.get(request.json['menuId'])
  43. res.UPDATEDATETIME = datetime.now()
  44. if 'icon' in request.json: res.ICONCLS = request.json['icon']
  45. if 'component' in request.json: res.URL = request.json['component']
  46. if 'path' in request.json: res.PATH = request.json['path']
  47. if 'menuName' in request.json: res.NAME = request.json['menuName']
  48. if 'orderNum' in request.json: res.SEQ = request.json['orderNum']
  49. if 'perms' in request.json: res.PERMS = request.json['perms']
  50. if 'menuType' in request.json: res.SYRESOURCETYPE_ID = '1' if request.json['menuType'] == 'F' else '0' if request.json['menuType'] == 'C' else '3'
  51. if 'parentId' in request.json: res.parent = Resource.query.get(request.json['parentId'])
  52. if 'status' in request.json: res.STATUS = request.json['status']
  53. db.session.add(res)
  54. return jsonify({'code': 200, 'msg': '操作成功'})
  55. @base.route('/system/menu', methods=['POST'])
  56. @login_required
  57. @permission('system:menu:add')
  58. def syresource_save():
  59. res = Resource()
  60. res.ID = str(uuid.uuid4())
  61. if 'icon' in request.json: res.ICONCLS = request.json['icon']
  62. if 'component' in request.json: res.URL = request.json['component']
  63. if 'path' in request.json: res.PATH = request.json['path']
  64. if 'menuName' in request.json: res.NAME = request.json['menuName']
  65. if 'orderNum' in request.json: res.SEQ = request.json['orderNum']
  66. if 'perms' in request.json: res.PERMS = request.json['perms']
  67. if 'menuType' in request.json: res.SYRESOURCETYPE_ID = '1' if request.json['menuType'] == 'F' else '0' if request.json['menuType'] == 'F' else '3'
  68. if 'parentId' in request.json: res.parent = Resource.query.get(request.json['parentId'])
  69. if 'status' in request.json: res.STATUS = request.json['status']
  70. db.session.add(res)
  71. return jsonify({'code': 200, 'msg': '操作成功'})
  72. @base.route('/system/menu/<id>', methods=['DELETE'])
  73. @login_required
  74. @permission('system:menu:remove')
  75. def syresource_delete(id):
  76. res = Resource.query.get(id)
  77. if res:
  78. db.session.delete(res)
  79. return jsonify({'code': 200, 'msg': '操作成功'})
  80. @base.route('/system/menu/treeselect', methods=['GET'])
  81. @login_required
  82. def syresource_tree_select():
  83. resList = Resource.query.filter(Resource.SYRESOURCE_ID == None)
  84. return jsonify({'msg': '操作成功', 'code': 200, "data": [res.to_tree_select_json() for res in resList]})
  85. @base.route('/system/menu/roleMenuTreeselect/<roleId>', methods=['GET'])
  86. @login_required
  87. def syresource_role_tree_select(roleId):
  88. role = Role.query.get(roleId)
  89. resList = Resource.query.filter(Resource.SYRESOURCE_ID == None)
  90. return jsonify({'msg': '操作成功', 'code': 200, \
  91. "menus": [res.to_tree_select_json() for res in resList], \
  92. "checkedKeys": [res.ID for res in role.resources]})