diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts
index 5a1d2d38..77fb892a 100644
--- a/frontend/src/api/index.ts
+++ b/frontend/src/api/index.ts
@@ -125,4 +125,32 @@ export const predictApi = {
scenario: (data: any) => api.post('/predict/scenario', data),
}
+export const deviationPushApi = {
+ pushToMap: (data: any) => api.post('/deviation-push/push-to-map', data),
+ getMapNodes: (mapId: number) => api.get(`/deviation-push/map-nodes/${mapId}`),
+}
+
+export const budgetGenerateApi = {
+ getCandidates: () => api.get('/budget/kpi-budget-candidates'),
+ generateFromKpis: (data: any) => api.post('/budget/generate-from-kpis', data),
+}
+
+export const knowledgeArticleApi = {
+ list: (params?: any) => api.get('/knowledge-articles', { params }),
+ get: (id: number) => api.get(`/knowledge-articles/${id}`),
+}
+
+export const roleApi = {
+ list: () => api.get('/roles'),
+ create: (data: any) => api.post('/roles', data),
+ update: (id: number, data: any) => api.put(`/roles/${id}`, data),
+ delete: (id: number) => api.delete(`/roles/${id}`),
+}
+
+export const permissionApi = {
+ getMenuTree: () => api.get('/permissions/menu-tree'),
+ getUserRoles: () => api.get('/user-roles'),
+ setUserRoles: (data: any) => api.post('/user-roles', data),
+}
+
export default api
diff --git a/frontend/src/components/strategy/ConnectionLines.vue b/frontend/src/components/strategy/ConnectionLines.vue
index eed66e70..0e20fbc2 100644
--- a/frontend/src/components/strategy/ConnectionLines.vue
+++ b/frontend/src/components/strategy/ConnectionLines.vue
@@ -1,303 +1,123 @@
-