resource.py 4.1 KB

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