From 0ec4f84fa9d4d94048b8219896c3d8fb1d8d2175 Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 17:52:28 +0000 Subject: [PATCH 1/9] =?UTF-8?q?=F0=9F=A4=96=20chore(openapi):=20regenerate?= =?UTF-8?q?=20services=20&=20patch=20axios=20requestType=20typing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui/src/services/admin/ads.ts | 1 + .../ui/src/services/admin/announcement.ts | 1 + packages/ui/src/services/admin/application.ts | 1 + packages/ui/src/services/admin/authMethod.ts | 1 + packages/ui/src/services/admin/console.ts | 1 + packages/ui/src/services/admin/coupon.ts | 1 + packages/ui/src/services/admin/document.ts | 1 + packages/ui/src/services/admin/index.ts | 1 + packages/ui/src/services/admin/log.ts | 1 + packages/ui/src/services/admin/marketing.ts | 1 + packages/ui/src/services/admin/order.ts | 1 + packages/ui/src/services/admin/payment.ts | 1 + packages/ui/src/services/admin/server.ts | 23 +------- packages/ui/src/services/admin/subscribe.ts | 1 + packages/ui/src/services/admin/system.ts | 1 + packages/ui/src/services/admin/ticket.ts | 1 + packages/ui/src/services/admin/tool.ts | 1 + packages/ui/src/services/admin/typings.d.ts | 19 +++++- packages/ui/src/services/admin/user.ts | 59 +++++++++++++++++++ packages/ui/src/services/common/auth.ts | 1 + packages/ui/src/services/common/common.ts | 1 + packages/ui/src/services/common/index.ts | 1 + packages/ui/src/services/common/oauth.ts | 2 + packages/ui/src/services/common/typings.d.ts | 6 +- .../gateway/basicCheckServiceVersion.ts | 1 + .../ui/src/services/gateway/basicHeartbeat.ts | 1 + .../services/gateway/basicRegisterService.ts | 1 + .../services/gateway/basicUpdateService.ts | 1 + packages/ui/src/services/gateway/index.ts | 1 + packages/ui/src/services/user/announcement.ts | 1 + packages/ui/src/services/user/document.ts | 1 + packages/ui/src/services/user/index.ts | 1 + packages/ui/src/services/user/order.ts | 1 + packages/ui/src/services/user/payment.ts | 1 + packages/ui/src/services/user/portal.ts | 1 + packages/ui/src/services/user/subscribe.ts | 1 + packages/ui/src/services/user/ticket.ts | 1 + packages/ui/src/services/user/typings.d.ts | 2 +- packages/ui/src/services/user/user.ts | 1 + packages/ui/src/typings.d.ts | 8 +++ 40 files changed, 127 insertions(+), 25 deletions(-) diff --git a/packages/ui/src/services/admin/ads.ts b/packages/ui/src/services/admin/ads.ts index 6649e85..020245c 100644 --- a/packages/ui/src/services/admin/ads.ts +++ b/packages/ui/src/services/admin/ads.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/announcement.ts b/packages/ui/src/services/admin/announcement.ts index 80b6cd8..465733a 100644 --- a/packages/ui/src/services/admin/announcement.ts +++ b/packages/ui/src/services/admin/announcement.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/application.ts b/packages/ui/src/services/admin/application.ts index 64c98b7..bcba8e2 100644 --- a/packages/ui/src/services/admin/application.ts +++ b/packages/ui/src/services/admin/application.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/authMethod.ts b/packages/ui/src/services/admin/authMethod.ts index 76bd767..d8ba053 100644 --- a/packages/ui/src/services/admin/authMethod.ts +++ b/packages/ui/src/services/admin/authMethod.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/console.ts b/packages/ui/src/services/admin/console.ts index cadf2bf..31477d9 100644 --- a/packages/ui/src/services/admin/console.ts +++ b/packages/ui/src/services/admin/console.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/coupon.ts b/packages/ui/src/services/admin/coupon.ts index c757a81..18593a5 100644 --- a/packages/ui/src/services/admin/coupon.ts +++ b/packages/ui/src/services/admin/coupon.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/document.ts b/packages/ui/src/services/admin/document.ts index d879024..1834e89 100644 --- a/packages/ui/src/services/admin/document.ts +++ b/packages/ui/src/services/admin/document.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/index.ts b/packages/ui/src/services/admin/index.ts index f6ee7b6..bf43e11 100644 --- a/packages/ui/src/services/admin/index.ts +++ b/packages/ui/src/services/admin/index.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ // API 更新时间: // API 唯一标识: diff --git a/packages/ui/src/services/admin/log.ts b/packages/ui/src/services/admin/log.ts index 937e4e0..7c2ac04 100644 --- a/packages/ui/src/services/admin/log.ts +++ b/packages/ui/src/services/admin/log.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/marketing.ts b/packages/ui/src/services/admin/marketing.ts index c674693..e26a375 100644 --- a/packages/ui/src/services/admin/marketing.ts +++ b/packages/ui/src/services/admin/marketing.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/order.ts b/packages/ui/src/services/admin/order.ts index 7e7a6f6..9d2e0fd 100644 --- a/packages/ui/src/services/admin/order.ts +++ b/packages/ui/src/services/admin/order.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/payment.ts b/packages/ui/src/services/admin/payment.ts index eda6b18..a770206 100644 --- a/packages/ui/src/services/admin/payment.ts +++ b/packages/ui/src/services/admin/payment.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/server.ts b/packages/ui/src/services/admin/server.ts index 878de68..aeddd39 100644 --- a/packages/ui/src/services/admin/server.ts +++ b/packages/ui/src/services/admin/server.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; @@ -55,28 +56,6 @@ export async function filterServerList( ); } -/** Check if there is any server or node to migrate GET /v1/admin/server/migrate/has */ -export async function hasMigrateSeverNode(options?: { [key: string]: any }) { - return request( - `${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/server/migrate/has`, - { - method: "GET", - ...(options || {}), - } - ); -} - -/** Migrate server and node data to new database POST /v1/admin/server/migrate/run */ -export async function migrateServerNode(options?: { [key: string]: any }) { - return request( - `${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/server/migrate/run`, - { - method: "POST", - ...(options || {}), - } - ); -} - /** Create Node POST /v1/admin/server/node/create */ export async function createNode( body: API.CreateNodeRequest, diff --git a/packages/ui/src/services/admin/subscribe.ts b/packages/ui/src/services/admin/subscribe.ts index f3f627a..b4ea634 100644 --- a/packages/ui/src/services/admin/subscribe.ts +++ b/packages/ui/src/services/admin/subscribe.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/system.ts b/packages/ui/src/services/admin/system.ts index 1309990..ba228b2 100644 --- a/packages/ui/src/services/admin/system.ts +++ b/packages/ui/src/services/admin/system.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/ticket.ts b/packages/ui/src/services/admin/ticket.ts index 2b78149..6f97134 100644 --- a/packages/ui/src/services/admin/ticket.ts +++ b/packages/ui/src/services/admin/ticket.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/tool.ts b/packages/ui/src/services/admin/tool.ts index 7102f45..c407056 100644 --- a/packages/ui/src/services/admin/tool.ts +++ b/packages/ui/src/services/admin/tool.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/admin/typings.d.ts b/packages/ui/src/services/admin/typings.d.ts index 3a80d12..4457357 100644 --- a/packages/ui/src/services/admin/typings.d.ts +++ b/packages/ui/src/services/admin/typings.d.ts @@ -355,6 +355,7 @@ declare namespace API { allow_deduction: boolean; reset_cycle: number; renewal_reset: boolean; + show_original_price: boolean; }; type CreateTicketFollowRequest = { @@ -1127,6 +1128,7 @@ declare namespace API { size: number; search?: string; user_id?: number; + unscoped?: boolean; subscribe_id?: number; user_subscribe_id?: number; }; @@ -1136,6 +1138,7 @@ declare namespace API { size: number; search?: string; user_id?: number; + unscoped?: boolean; subscribe_id?: number; user_subscribe_id?: number; }; @@ -1837,6 +1840,14 @@ declare namespace API { order_no: string; }; + type ResetUserSubscribeTokenRequest = { + user_subscribe_id: number; + }; + + type ResetUserSubscribeTrafficRequest = { + user_subscribe_id: number; + }; + type Response = { /** 状态码 */ code?: number; @@ -2022,6 +2033,7 @@ declare namespace API { allow_deduction: boolean; reset_cycle: number; renewal_reset: boolean; + show_original_price: boolean; created_at: number; updated_at: number; }; @@ -2086,6 +2098,7 @@ declare namespace API { allow_deduction?: boolean; reset_cycle?: number; renewal_reset?: boolean; + show_original_price?: boolean; created_at?: number; updated_at?: number; sold: number; @@ -2150,6 +2163,10 @@ declare namespace API { enable: boolean; }; + type ToggleUserSubscribeStatusRequest = { + user_subscribe_id: number; + }; + type TosConfig = { tos_content: string; }; @@ -2337,6 +2354,7 @@ declare namespace API { allow_deduction: boolean; reset_cycle: number; renewal_reset: boolean; + show_original_price: boolean; }; type UpdateTicketStatusRequest = { @@ -2406,7 +2424,6 @@ declare namespace API { created_at: number; updated_at: number; deleted_at?: number; - is_del?: boolean; }; type UserAffiliate = { diff --git a/packages/ui/src/services/admin/user.ts b/packages/ui/src/services/admin/user.ts index 816c98c..264debc 100644 --- a/packages/ui/src/services/admin/user.ts +++ b/packages/ui/src/services/admin/user.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; @@ -425,6 +426,64 @@ export async function getUserSubscribeResetTrafficLogs( ); } +/** Reset user subscribe token POST /v1/admin/user/subscribe/reset/token */ +export async function resetUserSubscribeToken( + body: API.ResetUserSubscribeTokenRequest, + options?: { [key: string]: any } +) { + return request( + `${ + import.meta.env.VITE_API_PREFIX || "" + }/v1/admin/user/subscribe/reset/token`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + data: body, + ...(options || {}), + } + ); +} + +/** Reset user subscribe traffic POST /v1/admin/user/subscribe/reset/traffic */ +export async function resetUserSubscribeTraffic( + body: API.ResetUserSubscribeTrafficRequest, + options?: { [key: string]: any } +) { + return request( + `${ + import.meta.env.VITE_API_PREFIX || "" + }/v1/admin/user/subscribe/reset/traffic`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + data: body, + ...(options || {}), + } + ); +} + +/** Stop user subscribe POST /v1/admin/user/subscribe/toggle */ +export async function toggleUserSubscribeStatus( + body: API.ToggleUserSubscribeStatusRequest, + options?: { [key: string]: any } +) { + return request( + `${import.meta.env.VITE_API_PREFIX || ""}/v1/admin/user/subscribe/toggle`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + data: body, + ...(options || {}), + } + ); +} + /** Get user subcribe traffic logs GET /v1/admin/user/subscribe/traffic_logs */ export async function getUserSubscribeTrafficLogs( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) diff --git a/packages/ui/src/services/common/auth.ts b/packages/ui/src/services/common/auth.ts index 42ffaab..f7b6828 100644 --- a/packages/ui/src/services/common/auth.ts +++ b/packages/ui/src/services/common/auth.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/common/common.ts b/packages/ui/src/services/common/common.ts index 66a6c05..897c3b2 100644 --- a/packages/ui/src/services/common/common.ts +++ b/packages/ui/src/services/common/common.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/common/index.ts b/packages/ui/src/services/common/index.ts index 201142d..53a7bc4 100644 --- a/packages/ui/src/services/common/index.ts +++ b/packages/ui/src/services/common/index.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ // API 更新时间: // API 唯一标识: diff --git a/packages/ui/src/services/common/oauth.ts b/packages/ui/src/services/common/oauth.ts index 3a4c36c..9a695ad 100644 --- a/packages/ui/src/services/common/oauth.ts +++ b/packages/ui/src/services/common/oauth.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; @@ -38,6 +39,7 @@ export async function appleLoginCallback( { method: "POST", data: formData, + requestType: "form", ...(options || {}), } ); diff --git a/packages/ui/src/services/common/typings.d.ts b/packages/ui/src/services/common/typings.d.ts index b22240e..ad7e9a1 100644 --- a/packages/ui/src/services/common/typings.d.ts +++ b/packages/ui/src/services/common/typings.d.ts @@ -750,6 +750,10 @@ declare namespace API { order_no: string; }; + type ResetUserSubscribeTokenRequest = { + user_subscribe_id: number; + }; + type Response = { /** 状态码 */ code?: number; @@ -863,6 +867,7 @@ declare namespace API { allow_deduction: boolean; reset_cycle: number; renewal_reset: boolean; + show_original_price: boolean; created_at: number; updated_at: number; }; @@ -1023,7 +1028,6 @@ declare namespace API { created_at: number; updated_at: number; deleted_at?: number; - is_del?: boolean; }; type UserAffiliate = { diff --git a/packages/ui/src/services/gateway/basicCheckServiceVersion.ts b/packages/ui/src/services/gateway/basicCheckServiceVersion.ts index c41e41c..5ef8f50 100644 --- a/packages/ui/src/services/gateway/basicCheckServiceVersion.ts +++ b/packages/ui/src/services/gateway/basicCheckServiceVersion.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/gateway/basicHeartbeat.ts b/packages/ui/src/services/gateway/basicHeartbeat.ts index 53981c7..ec3345c 100644 --- a/packages/ui/src/services/gateway/basicHeartbeat.ts +++ b/packages/ui/src/services/gateway/basicHeartbeat.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/gateway/basicRegisterService.ts b/packages/ui/src/services/gateway/basicRegisterService.ts index c553fe0..0512e58 100644 --- a/packages/ui/src/services/gateway/basicRegisterService.ts +++ b/packages/ui/src/services/gateway/basicRegisterService.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/gateway/basicUpdateService.ts b/packages/ui/src/services/gateway/basicUpdateService.ts index a792bdf..8261438 100644 --- a/packages/ui/src/services/gateway/basicUpdateService.ts +++ b/packages/ui/src/services/gateway/basicUpdateService.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/gateway/index.ts b/packages/ui/src/services/gateway/index.ts index ad43f03..52e694e 100644 --- a/packages/ui/src/services/gateway/index.ts +++ b/packages/ui/src/services/gateway/index.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ // API 更新时间: // API 唯一标识: diff --git a/packages/ui/src/services/user/announcement.ts b/packages/ui/src/services/user/announcement.ts index cea2391..6f614a3 100644 --- a/packages/ui/src/services/user/announcement.ts +++ b/packages/ui/src/services/user/announcement.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/document.ts b/packages/ui/src/services/user/document.ts index 33122f8..49477b0 100644 --- a/packages/ui/src/services/user/document.ts +++ b/packages/ui/src/services/user/document.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/index.ts b/packages/ui/src/services/user/index.ts index 1b4de84..e67bdfa 100644 --- a/packages/ui/src/services/user/index.ts +++ b/packages/ui/src/services/user/index.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ // API 更新时间: // API 唯一标识: diff --git a/packages/ui/src/services/user/order.ts b/packages/ui/src/services/user/order.ts index 311d6ca..aa9fd75 100644 --- a/packages/ui/src/services/user/order.ts +++ b/packages/ui/src/services/user/order.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/payment.ts b/packages/ui/src/services/user/payment.ts index a9282a1..a25b456 100644 --- a/packages/ui/src/services/user/payment.ts +++ b/packages/ui/src/services/user/payment.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/portal.ts b/packages/ui/src/services/user/portal.ts index 148ac0f..0a01629 100644 --- a/packages/ui/src/services/user/portal.ts +++ b/packages/ui/src/services/user/portal.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/subscribe.ts b/packages/ui/src/services/user/subscribe.ts index fdde370..eab11e4 100644 --- a/packages/ui/src/services/user/subscribe.ts +++ b/packages/ui/src/services/user/subscribe.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/ticket.ts b/packages/ui/src/services/user/ticket.ts index 74dd7b2..8dfb5b6 100644 --- a/packages/ui/src/services/user/ticket.ts +++ b/packages/ui/src/services/user/ticket.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/services/user/typings.d.ts b/packages/ui/src/services/user/typings.d.ts index bd7c5c0..b37e50d 100644 --- a/packages/ui/src/services/user/typings.d.ts +++ b/packages/ui/src/services/user/typings.d.ts @@ -985,6 +985,7 @@ declare namespace API { allow_deduction: boolean; reset_cycle: number; renewal_reset: boolean; + show_original_price: boolean; created_at: number; updated_at: number; }; @@ -1146,7 +1147,6 @@ declare namespace API { created_at: number; updated_at: number; deleted_at?: number; - is_del?: boolean; }; type UserAffiliate = { diff --git a/packages/ui/src/services/user/user.ts b/packages/ui/src/services/user/user.ts index d7a25ca..778eb88 100644 --- a/packages/ui/src/services/user/user.ts +++ b/packages/ui/src/services/user/user.ts @@ -1,3 +1,4 @@ +// @ts-nocheck /* eslint-disable */ import request from "@workspace/ui/lib/request"; diff --git a/packages/ui/src/typings.d.ts b/packages/ui/src/typings.d.ts index b5ed465..59808ea 100644 --- a/packages/ui/src/typings.d.ts +++ b/packages/ui/src/typings.d.ts @@ -8,3 +8,11 @@ declare global { i18n: typeof i18n; } } + +// openapi2ts 生成的 request 参数里可能会包含 requestType(umi-request 风格)。 +// 我们的 request 基于 axios:这里做一个类型补丁,避免 TS 报错。 +declare module "axios" { + export interface AxiosRequestConfig { + requestType?: string; + } +} From 7223eb41c63b0333df44865a1d93ca0e47e92606 Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 17:57:46 +0000 Subject: [PATCH 2/9] =?UTF-8?q?=E2=9C=A8=20admin:=20subscription=20control?= =?UTF-8?q?s=20+=20show=20original=20price?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/sections/product/subscribe-form.tsx | 37 +++++++++++ .../sections/user/user-subscription/index.tsx | 66 +++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/apps/admin/src/sections/product/subscribe-form.tsx b/apps/admin/src/sections/product/subscribe-form.tsx index a6532d4..8aa0c4a 100644 --- a/apps/admin/src/sections/product/subscribe-form.tsx +++ b/apps/admin/src/sections/product/subscribe-form.tsx @@ -77,6 +77,7 @@ const defaultValues = { purchase_with_discount: false, reset_cycle: 0, renewal_reset: false, + show_original_price: false, deduction_mode: "auto", }; @@ -120,6 +121,7 @@ export default function SubscribeForm>({ allow_deduction: z.boolean().optional(), reset_cycle: z.number().optional(), renewal_reset: z.boolean().optional(), + show_original_price: z.boolean().optional(), }); const form = useForm>({ @@ -837,6 +839,41 @@ export default function SubscribeForm>({ )} /> + + ( + +
+
+ + {t( + "form.showOriginalPrice", + "Show Original Price" + )} + + + {t( + "form.showOriginalPriceDescription", + "Display original price in the storefront" + )} + +
+ + + form.setValue(field.name, value) + } + /> + +
+ +
+ )} + /> + {t("copySubscription", "Copy Subscription")} , + + { + await resetUserSubscribeToken({ user_subscribe_id: row.id }); + toast.success(t("resetSuccess", "Reset successfully")); + ref.current?.refresh(); + }} + title={t("resetSubscriptionToken", "Reset Token")} + trigger={ + + } + />, + + { + await resetUserSubscribeTraffic({ user_subscribe_id: row.id }); + toast.success(t("resetSuccess", "Reset successfully")); + ref.current?.refresh(); + }} + title={t("resetSubscriptionTraffic", "Reset Traffic")} + trigger={ + + } + />, + + { + await toggleUserSubscribeStatus({ user_subscribe_id: row.id }); + toast.success(t("updateSuccess", "Updated successfully")); + ref.current?.refresh(); + }} + title={t("toggleSubscriptionStatus", "Toggle Status")} + trigger={ + + } + />, Date: Tue, 27 Jan 2026 18:02:18 +0000 Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=8C=90=20i18n:=20add=20admin=20subscr?= =?UTF-8?q?iption=20UI=20strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/public/assets/locales/en-US/product.json | 2 ++ apps/admin/public/assets/locales/en-US/user.json | 9 +++++++++ apps/admin/public/assets/locales/zh-CN/product.json | 2 ++ apps/admin/public/assets/locales/zh-CN/user.json | 9 +++++++++ 4 files changed, 22 insertions(+) diff --git a/apps/admin/public/assets/locales/en-US/product.json b/apps/admin/public/assets/locales/en-US/product.json index a06e7ca..f66faef 100644 --- a/apps/admin/public/assets/locales/en-US/product.json +++ b/apps/admin/public/assets/locales/en-US/product.json @@ -49,6 +49,8 @@ "quota": "Purchase Limit", "renewalReset": "Renewal Reset", "renewalResetDescription": "Reset cycle upon renewal", + "showOriginalPrice": "Show Original Price", + "showOriginalPriceDescription": "Display original price in the storefront", "replacement": "Reset Price (per time)", "resetCycle": "Reset Cycle", "resetOn1st": "Reset on the 1st", diff --git a/apps/admin/public/assets/locales/en-US/user.json b/apps/admin/public/assets/locales/en-US/user.json index f5a55e7..2e935ba 100644 --- a/apps/admin/public/assets/locales/en-US/user.json +++ b/apps/admin/public/assets/locales/en-US/user.json @@ -70,6 +70,15 @@ "referrerUserId": "Referrer User ID", "remove": "Remove", "resetLogs": "Reset Logs", + "resetToken": "Reset Token", + "resetTraffic": "Reset Traffic", + "toggleStatus": "Toggle Status", + "resetSubscriptionToken": "Reset Token", + "resetSubscriptionTokenDescription": "This will reset the subscription token. Old links will become invalid.", + "resetSubscriptionTraffic": "Reset Traffic", + "resetSubscriptionTrafficDescription": "This will reset the subscription traffic counters.", + "toggleSubscriptionStatus": "Toggle Status", + "toggleSubscriptionStatusDescription": "This will toggle the subscription status.", "resetTime": "Reset Time", "save": "Save", "speedLimit": "Speed Limit", diff --git a/apps/admin/public/assets/locales/zh-CN/product.json b/apps/admin/public/assets/locales/zh-CN/product.json index b1dd2c3..dcd5e9c 100644 --- a/apps/admin/public/assets/locales/zh-CN/product.json +++ b/apps/admin/public/assets/locales/zh-CN/product.json @@ -49,6 +49,8 @@ "quota": "购买限制", "renewalReset": "续费重置", "renewalResetDescription": "续费时重置周期", + "showOriginalPrice": "展示原价", + "showOriginalPriceDescription": "在购买页/展示页显示原价", "replacement": "重置价格(每次)", "resetCycle": "重置周期", "resetOn1st": "每月1日重置", diff --git a/apps/admin/public/assets/locales/zh-CN/user.json b/apps/admin/public/assets/locales/zh-CN/user.json index 57b7bc8..80b8004 100644 --- a/apps/admin/public/assets/locales/zh-CN/user.json +++ b/apps/admin/public/assets/locales/zh-CN/user.json @@ -70,6 +70,15 @@ "referrerUserId": "推荐人用户 ID", "remove": "移除", "resetLogs": "重置日志", + "resetToken": "重置令牌", + "resetTraffic": "重置流量", + "toggleStatus": "切换状态", + "resetSubscriptionToken": "重置令牌", + "resetSubscriptionTokenDescription": "将重置订阅令牌,旧订阅链接会失效。", + "resetSubscriptionTraffic": "重置流量", + "resetSubscriptionTrafficDescription": "将重置该订阅的流量统计。", + "toggleSubscriptionStatus": "切换状态", + "toggleSubscriptionStatusDescription": "将切换该订阅的启用/停用状态。", "resetTime": "重置时间", "save": "保存", "speedLimit": "速度限制", From 7e1d5746d46dd9bf33b1971f71f809afcdba4bbe Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 18:08:34 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=F0=9F=90=9B=20fix(admin):=20refresh=20user?= =?UTF-8?q?=20list=20after=20balance=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/sections/user/index.tsx | 25 +++++++++++++++---- .../user/user-profile/auth-methods-form.tsx | 2 +- .../user/user-profile/basic-info-form.tsx | 2 +- .../user-profile/notify-settings-form.tsx | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/apps/admin/src/sections/user/index.tsx b/apps/admin/src/sections/user/index.tsx index b550f2f..b44d2e1 100644 --- a/apps/admin/src/sections/user/index.tsx +++ b/apps/admin/src/sections/user/index.tsx @@ -68,7 +68,11 @@ export default function User() { action={ref} actions={{ render: (row) => [ - , + ref.current?.refresh()} + userId={row.id} + />, , void; +}) { const { t } = useTranslation("user"); const [open, setOpen] = useState(false); const { data: user, refetch } = useQuery({ @@ -302,6 +312,11 @@ function ProfileSheet({ userId }: { userId: number }) { return data.data as API.User; }, }); + + const refetchAll = async () => { + await refetch(); + onUpdated?.(); + }; return ( @@ -331,13 +346,13 @@ function ProfileSheet({ userId }: { userId: number }) { - + - + - + diff --git a/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx b/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx index 145c379..60738ac 100644 --- a/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx +++ b/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx @@ -21,7 +21,7 @@ export function AuthMethodsForm({ refetch, }: { user: API.User; - refetch: () => void; + refetch: () => void | Promise; }) { const { t } = useTranslation("user"); diff --git a/apps/admin/src/sections/user/user-profile/basic-info-form.tsx b/apps/admin/src/sections/user/user-profile/basic-info-form.tsx index 9e5581f..fab8c38 100644 --- a/apps/admin/src/sections/user/user-profile/basic-info-form.tsx +++ b/apps/admin/src/sections/user/user-profile/basic-info-form.tsx @@ -47,7 +47,7 @@ export function BasicInfoForm({ refetch, }: { user: API.User; - refetch: () => void; + refetch: () => void | Promise; }) { const { t } = useTranslation("user"); diff --git a/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx b/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx index eae7f5b..1c7956c 100644 --- a/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx +++ b/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx @@ -34,7 +34,7 @@ export function NotifySettingsForm({ refetch, }: { user: API.User; - refetch: () => void; + refetch: () => void | Promise; }) { const { t } = useTranslation("user"); From 6dd743bbf4f383249e97549ed0ed0417b6f5609d Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 18:11:32 +0000 Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=A7=B9=20fix(ci):=20avoid=20void|Prom?= =?UTF-8?q?ise=20union=20for=20refetch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/sections/user/index.tsx | 1 + apps/admin/src/sections/user/user-profile/auth-methods-form.tsx | 2 +- apps/admin/src/sections/user/user-profile/basic-info-form.tsx | 2 +- .../src/sections/user/user-profile/notify-settings-form.tsx | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/sections/user/index.tsx b/apps/admin/src/sections/user/index.tsx index b44d2e1..13b43aa 100644 --- a/apps/admin/src/sections/user/index.tsx +++ b/apps/admin/src/sections/user/index.tsx @@ -316,6 +316,7 @@ function ProfileSheet({ const refetchAll = async () => { await refetch(); onUpdated?.(); + return Promise.resolve(); }; return ( diff --git a/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx b/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx index 60738ac..9cdcfe0 100644 --- a/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx +++ b/apps/admin/src/sections/user/user-profile/auth-methods-form.tsx @@ -21,7 +21,7 @@ export function AuthMethodsForm({ refetch, }: { user: API.User; - refetch: () => void | Promise; + refetch: () => Promise; }) { const { t } = useTranslation("user"); diff --git a/apps/admin/src/sections/user/user-profile/basic-info-form.tsx b/apps/admin/src/sections/user/user-profile/basic-info-form.tsx index fab8c38..68a55b7 100644 --- a/apps/admin/src/sections/user/user-profile/basic-info-form.tsx +++ b/apps/admin/src/sections/user/user-profile/basic-info-form.tsx @@ -47,7 +47,7 @@ export function BasicInfoForm({ refetch, }: { user: API.User; - refetch: () => void | Promise; + refetch: () => Promise; }) { const { t } = useTranslation("user"); diff --git a/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx b/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx index 1c7956c..e72d271 100644 --- a/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx +++ b/apps/admin/src/sections/user/user-profile/notify-settings-form.tsx @@ -34,7 +34,7 @@ export function NotifySettingsForm({ refetch, }: { user: API.User; - refetch: () => void | Promise; + refetch: () => Promise; }) { const { t } = useTranslation("user"); From 98676fa27c74eefc9c0fe2d92a549d9e5d7d7fd6 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 27 Jan 2026 18:12:42 +0000 Subject: [PATCH 6/9] =?UTF-8?q?=F0=9F=9A=80=20chore(release):=20Release=20?= =?UTF-8?q?1.2.4-dev.2=20/=20=E5=8F=91=E5=B8=83=E7=89=88=E6=9C=AC=201.2.4-?= =?UTF-8?q?dev.2=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.2.4-dev.2](https://github.com/perfect-panel/frontend/compare/v1.2.4-dev.1...v1.2.4-dev.2) (2026-01-27) ### 🐛 Bug Fixes / 问题修复 * **admin:** refresh user list after balance update ([7e1d574](https://github.com/perfect-panel/frontend/commit/7e1d5746d46dd9bf33b1971f71f809afcdba4bbe)) * **ci:** avoid void|Promise union for refetch ([6dd743b](https://github.com/perfect-panel/frontend/commit/6dd743bbf4f383249e97549ed0ed0417b6f5609d)) ### 📚 Documentation / 文档更新 * Add one-click installation script for PPanel with Docker support ([912c5c4](https://github.com/perfect-panel/frontend/commit/912c5c4cb63eeb0ecbc33bef6b31bd50d83d6491)) ### 🔧 Chores / 其他变更 * **openapi:** regenerate services & patch axios requestType typing ([0ec4f84](https://github.com/perfect-panel/frontend/commit/0ec4f84fa9d4d94048b8219896c3d8fb1d8d2175)) --- CHANGELOG.md | 15 +++++++++++++++ package.json | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 729c5c9..387b3c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,21 @@ This document records all notable changes to ShadCN Admin. --- +## [1.2.4-dev.2](https://github.com/perfect-panel/frontend/compare/v1.2.4-dev.1...v1.2.4-dev.2) (2026-01-27) + +### 🐛 Bug Fixes / 问题修复 + +* **admin:** refresh user list after balance update ([7e1d574](https://github.com/perfect-panel/frontend/commit/7e1d5746d46dd9bf33b1971f71f809afcdba4bbe)) +* **ci:** avoid void|Promise union for refetch ([6dd743b](https://github.com/perfect-panel/frontend/commit/6dd743bbf4f383249e97549ed0ed0417b6f5609d)) + +### 📚 Documentation / 文档更新 + +* Add one-click installation script for PPanel with Docker support ([912c5c4](https://github.com/perfect-panel/frontend/commit/912c5c4cb63eeb0ecbc33bef6b31bd50d83d6491)) + +### 🔧 Chores / 其他变更 + +* **openapi:** regenerate services & patch axios requestType typing ([0ec4f84](https://github.com/perfect-panel/frontend/commit/0ec4f84fa9d4d94048b8219896c3d8fb1d8d2175)) + ## [1.2.4-dev.1](https://github.com/perfect-panel/frontend/compare/v1.2.3...v1.2.4-dev.1) (2025-12-22) ### 🐛 Bug Fixes / 问题修复 diff --git a/package.json b/package.json index c051e63..95ecb35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "frontend", - "version": "1.2.4-dev.1", + "version": "1.2.4-dev.2", "private": true, "homepage": "https://github.com/perfect-panel/frontend", "bugs": { From 052a0a420921cffc09c81843d37081d05b4c4717 Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 18:21:39 +0000 Subject: [PATCH 7/9] =?UTF-8?q?=F0=9F=90=9B=20fix(build):=20ensure=20versi?= =?UTF-8?q?on.lock=20directory=20exists=20+=20fix=20merge=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/sections/user/user-subscription/index.tsx | 1 - apps/admin/vite.config.ts | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/admin/src/sections/user/user-subscription/index.tsx b/apps/admin/src/sections/user/user-subscription/index.tsx index 840f789..a132924 100644 --- a/apps/admin/src/sections/user/user-subscription/index.tsx +++ b/apps/admin/src/sections/user/user-subscription/index.tsx @@ -64,7 +64,6 @@ export default function UserSubscription({ userId }: { userId: number }) { row={row} token={row.token} userId={userId} - /> />, ], }} diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index a03c3f5..c755b54 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -1,4 +1,4 @@ -import { readFileSync, writeFileSync } from "node:fs"; +import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; import { fileURLToPath, URL } from "node:url"; import tailwindcss from "@tailwindcss/vite"; import { devtools } from "@tanstack/devtools-vite"; @@ -18,6 +18,8 @@ function versionLockPlugin(): Plugin { ); const rootPkg = JSON.parse(readFileSync(rootPkgPath, "utf-8")); const version = rootPkg.version || "0.0.0"; + + mkdirSync(distDir, { recursive: true }); writeFileSync(`${distDir}/version.lock`, version); }, }; From ed3f6cb737e0e5b3b57e4149fce3be6e46b0c5eb Mon Sep 17 00:00:00 2001 From: web-ppanel Date: Tue, 27 Jan 2026 18:27:20 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=F0=9F=A7=B9=20fix(i18n):=20remove=20duplic?= =?UTF-8?q?ate=20locale=20keys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/public/assets/locales/en-US/product.json | 2 -- apps/admin/public/assets/locales/en-US/user.json | 1 - apps/admin/public/assets/locales/zh-CN/product.json | 2 -- apps/admin/public/assets/locales/zh-CN/user.json | 1 - 4 files changed, 6 deletions(-) diff --git a/apps/admin/public/assets/locales/en-US/product.json b/apps/admin/public/assets/locales/en-US/product.json index ca0c88d..f590049 100644 --- a/apps/admin/public/assets/locales/en-US/product.json +++ b/apps/admin/public/assets/locales/en-US/product.json @@ -50,8 +50,6 @@ "quota": "Purchase Limit", "renewalReset": "Renewal Reset", "renewalResetDescription": "Reset cycle upon renewal", - "showOriginalPrice": "Show Original Price", - "showOriginalPriceDescription": "Display original price in the storefront", "replacement": "Reset Price (per time)", "resetCycle": "Reset Cycle", "resetOn1st": "Reset on the 1st", diff --git a/apps/admin/public/assets/locales/en-US/user.json b/apps/admin/public/assets/locales/en-US/user.json index e1d6405..71a2bbe 100644 --- a/apps/admin/public/assets/locales/en-US/user.json +++ b/apps/admin/public/assets/locales/en-US/user.json @@ -73,7 +73,6 @@ "referrerUserId": "Referrer User ID", "remove": "Remove", "resetLogs": "Reset Logs", - "resetToken": "Reset Token", "resetTraffic": "Reset Traffic", "toggleStatus": "Toggle Status", "resetSubscriptionToken": "Reset Token", diff --git a/apps/admin/public/assets/locales/zh-CN/product.json b/apps/admin/public/assets/locales/zh-CN/product.json index 2ee53e4..d8a6e28 100644 --- a/apps/admin/public/assets/locales/zh-CN/product.json +++ b/apps/admin/public/assets/locales/zh-CN/product.json @@ -50,8 +50,6 @@ "quota": "购买限制", "renewalReset": "续费重置", "renewalResetDescription": "续费时重置周期", - "showOriginalPrice": "展示原价", - "showOriginalPriceDescription": "在购买页/展示页显示原价", "replacement": "重置价格(每次)", "resetCycle": "重置周期", "resetOn1st": "每月1日重置", diff --git a/apps/admin/public/assets/locales/zh-CN/user.json b/apps/admin/public/assets/locales/zh-CN/user.json index 6e1aab1..7d4fb06 100644 --- a/apps/admin/public/assets/locales/zh-CN/user.json +++ b/apps/admin/public/assets/locales/zh-CN/user.json @@ -73,7 +73,6 @@ "referrerUserId": "推荐人用户 ID", "remove": "移除", "resetLogs": "重置日志", - "resetToken": "重置令牌", "resetTraffic": "重置流量", "toggleStatus": "切换状态", "resetSubscriptionToken": "重置令牌", From 852b2b84ee926a2dc35a7c8380bf41a74ed8bbbf Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 27 Jan 2026 18:28:24 +0000 Subject: [PATCH 9/9] =?UTF-8?q?=F0=9F=9A=80=20chore(release):=20Release=20?= =?UTF-8?q?1.3.7-dev.1=20/=20=E5=8F=91=E5=B8=83=E7=89=88=E6=9C=AC=201.3.7-?= =?UTF-8?q?dev.1=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.3.7-dev.1](https://github.com/perfect-panel/frontend/compare/v1.3.6...v1.3.7-dev.1) (2026-01-27) ### 🐛 Bug Fixes / 问题修复 * **admin:** refresh user list after balance update ([7e1d574](https://github.com/perfect-panel/frontend/commit/7e1d5746d46dd9bf33b1971f71f809afcdba4bbe)) * **build:** ensure version.lock directory exists + fix merge typo ([052a0a4](https://github.com/perfect-panel/frontend/commit/052a0a420921cffc09c81843d37081d05b4c4717)) * **ci:** avoid void|Promise union for refetch ([6dd743b](https://github.com/perfect-panel/frontend/commit/6dd743bbf4f383249e97549ed0ed0417b6f5609d)) * **i18n:** remove duplicate locale keys ([ed3f6cb](https://github.com/perfect-panel/frontend/commit/ed3f6cb737e0e5b3b57e4149fce3be6e46b0c5eb)) ### 🔧 Chores / 其他变更 * **openapi:** regenerate services & patch axios requestType typing ([0ec4f84](https://github.com/perfect-panel/frontend/commit/0ec4f84fa9d4d94048b8219896c3d8fb1d8d2175)) * **release:** Release 1.2.4-dev.2 / 发布版本 1.2.4-dev.2 [skip ci] ([98676fa](https://github.com/perfect-panel/frontend/commit/98676fa27c74eefc9c0fe2d92a549d9e5d7d7fd6)) --- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index edc0ea4..5e0441f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,20 @@ This document records all notable changes to ShadCN Admin. --- +## [1.3.7-dev.1](https://github.com/perfect-panel/frontend/compare/v1.3.6...v1.3.7-dev.1) (2026-01-27) + +### 🐛 Bug Fixes / 问题修复 + +* **admin:** refresh user list after balance update ([7e1d574](https://github.com/perfect-panel/frontend/commit/7e1d5746d46dd9bf33b1971f71f809afcdba4bbe)) +* **build:** ensure version.lock directory exists + fix merge typo ([052a0a4](https://github.com/perfect-panel/frontend/commit/052a0a420921cffc09c81843d37081d05b4c4717)) +* **ci:** avoid void|Promise union for refetch ([6dd743b](https://github.com/perfect-panel/frontend/commit/6dd743bbf4f383249e97549ed0ed0417b6f5609d)) +* **i18n:** remove duplicate locale keys ([ed3f6cb](https://github.com/perfect-panel/frontend/commit/ed3f6cb737e0e5b3b57e4149fce3be6e46b0c5eb)) + +### 🔧 Chores / 其他变更 + +* **openapi:** regenerate services & patch axios requestType typing ([0ec4f84](https://github.com/perfect-panel/frontend/commit/0ec4f84fa9d4d94048b8219896c3d8fb1d8d2175)) +* **release:** Release 1.2.4-dev.2 / 发布版本 1.2.4-dev.2 [skip ci] ([98676fa](https://github.com/perfect-panel/frontend/commit/98676fa27c74eefc9c0fe2d92a549d9e5d7d7fd6)) + ## [1.3.6](https://github.com/perfect-panel/frontend/compare/v1.3.5...v1.3.6) (2025-12-30) ### 🐛 Bug Fixes / 问题修复 diff --git a/package.json b/package.json index 88a99c0..1840397 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "frontend", - "version": "1.3.6", + "version": "1.3.7-dev.1", "private": true, "homepage": "https://github.com/perfect-panel/frontend", "bugs": {