feat: 自定义版本功能更新
Build and Release / Build (push) Has been cancelled

- 新增家庭共享订阅管理
- 新增用户邀请统计
- 新增签名和订阅模式设置表单
- 更新 API 服务层和国际化文件
- UI 组件优化(enhanced-input、pro-table)
This commit is contained in:
2026-03-19 01:56:13 -07:00
parent 31803a1d24
commit 6b92979c7c
82 changed files with 3266 additions and 739 deletions
+167 -27
View File
@@ -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 || {}),
}
);
}