diff --git a/example-servers-billing.json b/example-servers-billing.json index fa84e66..90887e2 100644 --- a/example-servers-billing.json +++ b/example-servers-billing.json @@ -2,7 +2,7 @@ { "id": "1", "hostName": "VDSINA", - "nodeName": "VDSINA", + "purpose": "relay", "country": "RU", "provider": "VDSINA", "loginUrl": "cp.vdsina.com", @@ -16,7 +16,7 @@ { "id": "2", "hostName": "Macloud", - "nodeName": "Macloud", + "purpose": "bgp", "country": "RU", "provider": "Macloud", "loginUrl": "cp.macloud.ru", @@ -30,7 +30,7 @@ { "id": "3", "hostName": "Hosting VDS", - "nodeName": "Steal", + "purpose": "monitoring", "country": "RU", "provider": "Hosting VDS", "loginUrl": "my.hosting-vds.com/", @@ -44,7 +44,7 @@ { "id": "4", "hostName": "Waicore", - "nodeName": "Waicore", + "purpose": "dns", "country": "DE", "provider": "Waicore", "loginUrl": "my.waicore.com/billmgr", @@ -58,7 +58,7 @@ { "id": "5", "hostName": "IHOR", - "nodeName": "Ihore", + "purpose": "proxy", "country": "RU", "provider": "IHOR", "loginUrl": "billing.ihor-hosting.ru/billmgr", diff --git a/frontend/src/BillingManager.jsx b/frontend/src/BillingManager.jsx index 43a9af2..9df2168 100644 --- a/frontend/src/BillingManager.jsx +++ b/frontend/src/BillingManager.jsx @@ -40,7 +40,7 @@ function BillingManager() { // Новый элемент для добавления const [newItem, setNewItem] = useState({ hostName: '', - nodeName: '', + purpose: '', country: '', provider: '', loginUrl: '', @@ -66,78 +66,78 @@ function BillingManager() { console.error('Ошибка при загрузке данных биллинга:', err); setError('Ошибка при загрузке данных'); // Загружаем тестовые данные если API недоступен - setBillingData([ - { - "id": "1", - "hostName": "VDSINA", - "nodeName": "VDSINA", - "country": "RU", - "provider": "VDSINA", - "loginUrl": "cp.vdsina.com", - "monthlyCost": 12.00, - "nextPaymentDate": "2026-04-25", - "lastPaymentDate": "2025-05-05", - "lastPaymentAmount": 12.00, - "status": "active", - "notes": "" - }, - { - "id": "2", - "hostName": "Macloud", - "nodeName": "Macloud", - "country": "RU", - "provider": "Macloud", - "loginUrl": "cp.macloud.ru", - "monthlyCost": 7.00, - "nextPaymentDate": "2025-09-02", - "lastPaymentDate": "2025-02-03", - "lastPaymentAmount": 7.00, - "status": "active", - "notes": "" - }, - { - "id": "3", - "hostName": "Hosting VDS", - "nodeName": "Steal", - "country": "RU", - "provider": "Hosting VDS", - "loginUrl": "my.hosting-vds.com/", - "monthlyCost": 11.95, - "nextPaymentDate": "2025-12-21", - "lastPaymentDate": "2025-06-13", - "lastPaymentAmount": 10.00, - "status": "active", - "notes": "" - }, - { - "id": "4", - "hostName": "Waicore", - "nodeName": "Waicore", - "country": "DE", - "provider": "Waicore", - "loginUrl": "my.waicore.com/billmgr", - "monthlyCost": 9.60, - "nextPaymentDate": "2026-04-25", - "lastPaymentDate": "2025-04-25", - "lastPaymentAmount": 9.60, - "status": "active", - "notes": "" - }, - { - "id": "5", - "hostName": "IHOR", - "nodeName": "Ihore", - "country": "RU", - "provider": "IHOR", - "loginUrl": "billing.ihor-hosting.ru/billmgr", - "monthlyCost": 10.00, - "nextPaymentDate": "2025-09-10", - "lastPaymentDate": "2025-06-25", - "lastPaymentAmount": 10.00, - "status": "active", - "notes": "" - } - ]); + setBillingData([ + { + "id": "1", + "hostName": "VDSINA", + "purpose": "relay", + "country": "RU", + "provider": "VDSINA", + "loginUrl": "cp.vdsina.com", + "monthlyCost": 12.00, + "nextPaymentDate": "2026-04-25", + "lastPaymentDate": "2025-05-05", + "lastPaymentAmount": 12.00, + "status": "active", + "notes": "" + }, + { + "id": "2", + "hostName": "Macloud", + "purpose": "bgp", + "country": "RU", + "provider": "Macloud", + "loginUrl": "cp.macloud.ru", + "monthlyCost": 7.00, + "nextPaymentDate": "2025-09-02", + "lastPaymentDate": "2025-02-03", + "lastPaymentAmount": 7.00, + "status": "active", + "notes": "" + }, + { + "id": "3", + "hostName": "Hosting VDS", + "purpose": "monitoring", + "country": "RU", + "provider": "Hosting VDS", + "loginUrl": "my.hosting-vds.com/", + "monthlyCost": 11.95, + "nextPaymentDate": "2025-12-21", + "lastPaymentDate": "2025-06-13", + "lastPaymentAmount": 10.00, + "status": "active", + "notes": "" + }, + { + "id": "4", + "hostName": "Waicore", + "purpose": "dns", + "country": "DE", + "provider": "Waicore", + "loginUrl": "my.waicore.com/billmgr", + "monthlyCost": 9.60, + "nextPaymentDate": "2026-04-25", + "lastPaymentDate": "2025-04-25", + "lastPaymentAmount": 9.60, + "status": "active", + "notes": "" + }, + { + "id": "5", + "hostName": "IHOR", + "purpose": "proxy", + "country": "RU", + "provider": "IHOR", + "loginUrl": "billing.ihor-hosting.ru/billmgr", + "monthlyCost": 10.00, + "nextPaymentDate": "2025-09-10", + "lastPaymentDate": "2025-06-25", + "lastPaymentAmount": 10.00, + "status": "active", + "notes": "" + } + ]); } finally { setLoading(false); } @@ -281,6 +281,19 @@ function BillingManager() { }).format(amount); } + function formatPurpose(purpose) { + const purposeMap = { + 'relay': 'Relay VPS', + 'bgp': 'BGP сервер', + 'monitoring': 'Мониторинг', + 'dns': 'DNS сервер', + 'proxy': 'Прокси сервер', + 'backup': 'Backup сервер', + 'other': 'Другое' + }; + return purposeMap[purpose] || purpose || 'Не указано'; + } + return (
Вы уверены, что хотите удалить ноду {item?.hostName}?
Это действие нельзя отменить.
-