- 新增家庭共享订阅管理 - 新增用户邀请统计 - 新增签名和订阅模式设置表单 - 更新 API 服务层和国际化文件 - UI 组件优化(enhanced-input、pro-table)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// @ts-nocheck
|
||||
// @ts-expect-error
|
||||
/* eslint-disable */
|
||||
import request from "@workspace/ui/lib/request";
|
||||
|
||||
@@ -291,32 +291,6 @@ export async function getUserSubscribe(
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
transformResponse: [
|
||||
(data) => {
|
||||
try {
|
||||
if (typeof data === "string") {
|
||||
// Convert large integers (int64) to strings BEFORE JSON.parse to prevent precision loss
|
||||
// JavaScript MAX_SAFE_INTEGER is 2^53 - 1 = 9007199254740991
|
||||
// This regex finds all numbers >= 10^16 (larger than MAX_SAFE_INTEGER)
|
||||
const processedData = data.replace(
|
||||
/"([^"]+)":\s*(\d{16,})/g,
|
||||
(match, key, value) => {
|
||||
// Check if number exceeds MAX_SAFE_INTEGER
|
||||
const num = parseInt(value, 10);
|
||||
if (!Number.isSafeInteger(num)) {
|
||||
return `"${key}": "${value}"`;
|
||||
}
|
||||
return match;
|
||||
}
|
||||
);
|
||||
return JSON.parse(processedData);
|
||||
}
|
||||
return data;
|
||||
} catch {
|
||||
return data;
|
||||
}
|
||||
},
|
||||
],
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
@@ -531,3 +505,169 @@ export async function getUserSubscribeTrafficLogs(
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取家庭组详情
|
||||
* GET /v1/admin/user/family/detail
|
||||
* @param params - 家庭组 ID
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 家庭组详情
|
||||
*/
|
||||
export async function getFamilyDetail(
|
||||
params: API.GetFamilyDetailParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: API.FamilyDetail }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/family/detail`,
|
||||
{
|
||||
method: "GET",
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取家庭组列表
|
||||
* GET /v1/admin/user/family/list
|
||||
* @param params - 分页及筛选参数
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 家庭组列表
|
||||
*/
|
||||
export async function getFamilyList(
|
||||
params: API.GetFamilyListParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: API.GetFamilyListResponse }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/family/list`,
|
||||
{
|
||||
method: "GET",
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解散家庭组
|
||||
* PUT /v1/admin/user/family/dissolve
|
||||
* @param body - 解散请求参数
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 解散结果
|
||||
*/
|
||||
export async function dissolveFamily(
|
||||
body: API.DissolveFamilyRequest,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: any }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/family/dissolve`,
|
||||
{
|
||||
method: "PUT",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新家庭组最大成员数
|
||||
* PUT /v1/admin/user/family/max_members
|
||||
* @param body - 更新参数
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 更新结果
|
||||
*/
|
||||
export async function updateFamilyMaxMembers(
|
||||
body: API.UpdateFamilyMaxMembersRequest,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: any }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/family/max_members`,
|
||||
{
|
||||
method: "PUT",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除家庭组成员
|
||||
* PUT /v1/admin/user/family/member/remove
|
||||
* @param body - 移除成员请求参数
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 移除结果
|
||||
*/
|
||||
export async function removeFamilyMember(
|
||||
body: API.RemoveFamilyMemberRequest,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: any }>(
|
||||
`${
|
||||
import.meta.env.VITE_API_PREFIX || ""
|
||||
}/v1/admin/user/family/member/remove`,
|
||||
{
|
||||
method: "PUT",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取管理员用户邀请统计
|
||||
* GET /v1/admin/user/invite/stats
|
||||
* @param params - 用户 ID
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 邀请统计数据
|
||||
*/
|
||||
export async function getAdminUserInviteStats(
|
||||
params: API.GetAdminUserInviteStatsParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: API.GetAdminUserInviteStatsResponse }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/invite/stats`,
|
||||
{
|
||||
method: "GET",
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取管理员用户邀请列表
|
||||
* GET /v1/admin/user/invite/list
|
||||
* @param params - 用户 ID 及分页参数
|
||||
* @param options - 可选的请求配置
|
||||
* @returns 邀请用户列表
|
||||
*/
|
||||
export async function getAdminUserInviteList(
|
||||
params: API.GetAdminUserInviteListParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.Response & { data?: API.GetAdminUserInviteListResponse }>(
|
||||
`${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/invite/list`,
|
||||
{
|
||||
method: "GET",
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user