From 51168e50ef3f037e699b9d2cd63ddd9047110d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E4=BA=8C=E7=8C=9B?= Date: Mon, 26 Mar 2018 15:07:09 +0800 Subject: [PATCH] =?UTF-8?q?A=20=E5=8A=9F=E8=83=BD=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=85=B3=E7=B3=BB=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spug_api/apps/configuration/__init__.py | 2 + spug_api/apps/configuration/relationship.py | 21 ++++ .../configuration/RelationChart.vue | 107 ++++++++++++++++++ .../src/components/configuration/routes.js | 8 ++ spug_web/src/config/menu.js | 3 +- 5 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 spug_api/apps/configuration/relationship.py create mode 100644 spug_web/src/components/configuration/RelationChart.vue diff --git a/spug_api/apps/configuration/__init__.py b/spug_api/apps/configuration/__init__.py index 45e17dc..d85e4c9 100644 --- a/spug_api/apps/configuration/__init__.py +++ b/spug_api/apps/configuration/__init__.py @@ -2,6 +2,7 @@ from apps.configuration import environment from apps.configuration import service from apps.configuration import config from apps.configuration import app as app_page +from apps.configuration import relationship def register_blueprint(app): @@ -9,3 +10,4 @@ def register_blueprint(app): app.register_blueprint(service.blueprint, url_prefix='/configuration/services') app.register_blueprint(config.blueprint, url_prefix='/configuration/configs') app.register_blueprint(app_page.blueprint, url_prefix='/configuration/apps') + app.register_blueprint(relationship.blueprint, url_prefix='/configuration/relationship') diff --git a/spug_api/apps/configuration/relationship.py b/spug_api/apps/configuration/relationship.py new file mode 100644 index 0000000..58cb5f6 --- /dev/null +++ b/spug_api/apps/configuration/relationship.py @@ -0,0 +1,21 @@ +from flask import Blueprint +from apps.deploy.models import App +from apps.configuration.models import Service +from libs.tools import json_response +from apps.configuration.models import AppConfigRel +from libs.decorators import require_permission + +blueprint = Blueprint(__name__, __name__) + + +@blueprint.route('/', methods=['GET']) +@require_permission('config_app_rel_view') +def get(): + apps = App.query.all() + services = Service.query.all() + relations = AppConfigRel.query.all() + return json_response({ + 'apps': [x.to_json() for x in apps], + 'services': [x.to_json() for x in services], + 'relations': [x.to_json() for x in relations] + }) diff --git a/spug_web/src/components/configuration/RelationChart.vue b/spug_web/src/components/configuration/RelationChart.vue new file mode 100644 index 0000000..9cfe733 --- /dev/null +++ b/spug_web/src/components/configuration/RelationChart.vue @@ -0,0 +1,107 @@ + + + \ No newline at end of file diff --git a/spug_web/src/components/configuration/routes.js b/spug_web/src/components/configuration/routes.js index b7d97db..5a519f9 100644 --- a/spug_web/src/components/configuration/routes.js +++ b/spug_web/src/components/configuration/routes.js @@ -4,6 +4,7 @@ import App from './App.vue' import Service from './Service.vue' import Environment from './Environment.vue' +import RelationChart from './RelationChart.vue' export default [ { @@ -26,5 +27,12 @@ export default [ meta: { permission: 'config_environment_view' } + }, + { + path: 'relationship', + component: RelationChart, + meta: { + permission: 'config_app_view' + } } ]; \ No newline at end of file diff --git a/spug_web/src/config/menu.js b/spug_web/src/config/menu.js index 9017d79..d132ca7 100644 --- a/spug_web/src/config/menu.js +++ b/spug_web/src/config/menu.js @@ -24,7 +24,8 @@ let menu = { key: '4', desc: '配置管理', icon: 'fa fa-cogs', permission: 'config_environment_view|config_service_view|config_app_view', subs: [ {key: '/configuration/environment', permission: 'config_environment_view', desc: '环境管理'}, {key: '/configuration/service', permission: 'config_service_view', desc: '服务配置'}, - {key: '/configuration/app', permission: 'config_app_view', desc: '应用配置'} + {key: '/configuration/app', permission: 'config_app_view', desc: '应用配置'}, + {key: '/configuration/relationship', permission: 'config_app_view', desc: '配置关系'} ] }, { key: '5', desc: '任务管理', icon: 'fa fa-calendar', permission: 'job_task_view', subs: [