diff --git a/public/entry/image1.png b/public/entry/image1.png
new file mode 100644
index 0000000..241cf4e
Binary files /dev/null and b/public/entry/image1.png differ
diff --git a/src/components/admin/admin-subnav.tsx b/src/components/admin/admin-subnav.tsx
index bdf12ec..495c5ba 100644
--- a/src/components/admin/admin-subnav.tsx
+++ b/src/components/admin/admin-subnav.tsx
@@ -97,7 +97,7 @@ export function AdminSubnavButton({
className={cn(adminSubnavItemClassName(active, disabled), className)}
>
{children}
- {count !== undefined && count > 0 ? (
+ {count !== undefined ? (
;
}
+ const inputClass =
+ "h-9 rounded-xl border-gray-200 bg-white pl-10 shadow-none transition-shadow focus-visible:ring-2 focus-visible:ring-red-600/20 xl:h-10";
+ const fieldIconClass =
+ "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-gray-400";
+
return (
-
+
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
-
-
+
+
+
{t("loginTitle", { defaultValue: authModuleMeta.title })}
-
-
+
+
{t("loginSubtitle")}
-
-
-
);
diff --git a/src/modules/agents/agent-line-detail-panel.tsx b/src/modules/agents/agent-line-detail-panel.tsx
index 4c4add0..84ebd4a 100644
--- a/src/modules/agents/agent-line-detail-panel.tsx
+++ b/src/modules/agents/agent-line-detail-panel.tsx
@@ -34,6 +34,8 @@ export type AgentLineDetailPanelProps = {
profileError?: string | null;
childAgents: AgentNodeRow[];
childCountById: Map;
+ directPlayerCount?: number;
+ onDirectPlayerCountChange?: (count: number) => void;
siteCode: string;
parentName: string | null;
detailTab: AgentDetailTab;
@@ -64,6 +66,8 @@ export function AgentLineDetailPanel({
profileError = null,
childAgents,
childCountById,
+ directPlayerCount,
+ onDirectPlayerCountChange,
siteCode,
parentName,
detailTab,
@@ -116,6 +120,7 @@ export function AgentLineDetailPanel({
{
key: "players",
label: t("lineUi.tabPlayers", { defaultValue: "直属玩家" }),
+ count: directPlayerCount,
visible: canViewPlayersTab,
},
];
@@ -224,6 +229,7 @@ export function AgentLineDetailPanel({
agentNodeId={node.id}
allowCreatePlayer={canCreatePlayerAction}
embedded
+ onTotalChange={onDirectPlayerCountChange}
/>
) : null}
diff --git a/src/modules/agents/agents-console.tsx b/src/modules/agents/agents-console.tsx
index de58e97..422931b 100644
--- a/src/modules/agents/agents-console.tsx
+++ b/src/modules/agents/agents-console.tsx
@@ -524,6 +524,7 @@ export function AgentsConsole(): React.ReactElement {
const [directPlayerCountById, setDirectPlayerCountById] = useState