feat: Add log cleanup settings and update localization files

- Introduced log cleanup settings in the admin panel, allowing configuration of automatic log clearing and retention periods.
- Updated English, Spanish, French, German, and other localization files to include new log cleanup settings.
- Added new fields for referral percentage and first purchase only in user settings.
- Implemented API endpoints for getting and updating log settings.
- Enhanced the admin dashboard with a new log cleanup form component.
This commit is contained in:
web
2025-09-01 10:25:04 -07:00
parent d4b37e4997
commit 6ccf9b8bdc
88 changed files with 827 additions and 125 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
// @ts-ignore
// API 更新时间:
// API 唯一标识:
import * as ads from './ads';
+20
View File
@@ -155,6 +155,26 @@ export async function filterServerTrafficLog(
);
}
/** Get log setting GET /v1/admin/log/setting */
export async function getLogSetting(options?: { [key: string]: any }) {
return request<API.Response & { data?: API.LogSetting }>('/v1/admin/log/setting', {
method: 'GET',
...(options || {}),
});
}
/** Update log setting POST /v1/admin/log/setting */
export async function updateLogSetting(body: API.LogSetting, options?: { [key: string]: any }) {
return request<API.Response & { data?: any }>('/v1/admin/log/setting', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** Filter subscribe log GET /v1/admin/log/subscribe/list */
export async function filterSubscribeLog(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
+30
View File
@@ -111,6 +111,21 @@ export async function filterNodeList(
);
}
/** Reset node sort POST /v1/admin/server/node/sort */
export async function resetSortWithNode(
body: API.ResetSortRequest,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: any }>('/v1/admin/server/node/sort', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** Toggle Node Status POST /v1/admin/server/node/status/toggle */
export async function toggleNodeStatus(
body: API.ToggleNodeStatusRequest,
@@ -156,6 +171,21 @@ export async function getServerProtocols(
);
}
/** Reset server sort POST /v1/admin/server/server/sort */
export async function resetSortWithServer(
body: API.ResetSortRequest,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: any }>('/v1/admin/server/server/sort', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** Update Server POST /v1/admin/server/update */
export async function updateServer(
body: API.UpdateServerRequest,
+25 -3
View File
@@ -366,6 +366,8 @@ declare namespace API {
password: string;
product_id: number;
duration: number;
referral_percentage: number;
only_first_purchase: boolean;
referer_user: string;
refer_code: string;
balance: number;
@@ -1289,6 +1291,11 @@ declare namespace API {
list: Record<string, any>;
};
type LogSetting = {
auto_clear: boolean;
clear_days: number;
};
type MessageLog = {
id: number;
type: number;
@@ -1321,6 +1328,7 @@ declare namespace API {
server_id: number;
protocol: string;
enabled: boolean;
sort?: number;
created_at: number;
updated_at: number;
};
@@ -1622,6 +1630,10 @@ declare namespace API {
order_no: string;
};
type ResetSortRequest = {
sort: SortItem[];
};
type ResetSubscribeLog = {
type: number;
user_id: number;
@@ -1696,8 +1708,13 @@ declare namespace API {
updated_at: number;
};
type ServerOnlineIP = {
ip: string;
protocol: string;
};
type ServerOnlineUser = {
ip: string[];
ip: ServerOnlineIP[];
user_id: number;
subscribe: string;
subscribe_id: number;
@@ -1719,14 +1736,15 @@ declare namespace API {
};
type ServerStatus = {
online: ServerOnlineUser[];
cpu: number;
mem: number;
disk: number;
protocol: string;
online: ServerOnlineUser[];
};
type ServerTotalDataResponse = {
online_user_ips: number;
online_users: number;
online_servers: number;
offline_servers: number;
today_upload: number;
@@ -2161,6 +2179,8 @@ declare namespace API {
avatar: string;
balance: number;
commission: number;
referral_percentage: number;
only_first_purchase: boolean;
gift_amount: number;
telegram: number;
refer_code: string;
@@ -2191,6 +2211,8 @@ declare namespace API {
avatar: string;
balance: number;
commission: number;
referral_percentage: number;
only_first_purchase: boolean;
gift_amount: number;
telegram: number;
refer_code: string;
+1 -1
View File
@@ -1,5 +1,5 @@
// @ts-ignore
// API 更新时间:
// API 唯一标识:
import * as auth from './auth';
+2
View File
@@ -890,6 +890,8 @@ declare namespace API {
avatar: string;
balance: number;
commission: number;
referral_percentage: number;
only_first_purchase: boolean;
gift_amount: number;
telegram: number;
refer_code: string;