From db63086c3829ffab5733fe42170dfdf4c4efe386 Mon Sep 17 00:00:00 2001 From: fengxiangdebaozi <10845145+fengxiangdebaozi@user.noreply.gitee.com> Date: Thu, 14 May 2026 09:35:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 服务启停说明.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 服务启停说明.md diff --git a/服务启停说明.md b/服务启停说明.md new file mode 100644 index 00000000..348fa7e6 --- /dev/null +++ b/服务启停说明.md @@ -0,0 +1,113 @@ +# 后端服务启停说明(Windows) + +你当前是 **Windows + PowerShell** 环境,下面这份是可直接用的后端启停命令。 + +> 说明:仓库里的 `scripts/*.sh` 是 Bash 脚本,Windows 原生 PowerShell 不能直接执行,所以会出现“启动不了”。 + +## 一、后端目录 + +后端目录: + +```text +offline-backend-20260512/backend/ +``` + +下面命令默认都在这个目录执行。 + +--- + +## 二、Windows 下推荐启动方式 + +### 1) 开发模式启动(热重载) + +```powershell +uv run uvicorn app.gateway.app:app --host 0.0.0.0 --port 8001 --reload +``` + +### 2) 普通模式启动(无热重载) + +```powershell +uv run uvicorn app.gateway.app:app --host 0.0.0.0 --port 8001 +``` + +> 如果你习惯 `make dev / make gateway`,Windows 上通常还需要额外安装 make,建议直接用上面两条 `uv run uvicorn` 更稳。 + +--- + +## 三、停止后端 + +如果后端在当前窗口前台运行: + +- 直接按 `Ctrl + C` + +如果窗口已经关了,或你想强制结束 8001 端口进程: + +```powershell +netstat -ano | findstr :8001 +``` + +记下最后一列 PID 后执行: + +```powershell +taskkill /PID /F +``` + +--- + +## 四、首次安装依赖(只需一次) + +在 `offline-backend-20260512/backend` 目录执行: + +```powershell +uv sync +``` + +如果 `uv` 命令不存在,先安装(任选其一): + +```powershell +pip install uv +``` + +或(已安装 winget 时): + +```powershell +winget install --id Astral-sh.uv -e +``` + +--- + +## 五、快速自检 + +启动后浏览器访问: + +- [http://localhost:8001/health](http://localhost:8001/health) + +返回健康状态即表示后端正常。 + +--- + +## 六、常见问题 + +### 1) 报错:端口 8001 被占用 + +先执行: + +```powershell +netstat -ano | findstr :8001 +``` + +然后 `taskkill` 对应 PID,再重启后端。 + +### 2) 报错:`uv` 不是内部或外部命令 + +先安装 `uv`(见上面的“首次安装依赖”),安装后重开一个 PowerShell 窗口再试。 + +### 3) 报错:模块/依赖缺失 + +重新执行: + +```powershell +uv sync +``` + +再启动。 From 65e89a424867686f8fdd06ca74b30ee9526a62b7 Mon Sep 17 00:00:00 2001 From: fengxiangdebaozi <10845145+fengxiangdebaozi@user.noreply.gitee.com> Date: Thu, 14 May 2026 09:36:45 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend-web/src/pages/PageRoutes.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/frontend-web/src/pages/PageRoutes.tsx b/frontend-web/src/pages/PageRoutes.tsx index 93eb74f2..102aec7f 100644 --- a/frontend-web/src/pages/PageRoutes.tsx +++ b/frontend-web/src/pages/PageRoutes.tsx @@ -5,18 +5,23 @@ import { PageSidebar } from "@/components/page-sidebar"; import WorkspaceRoutes from "./WorkspaceRoutes"; +// 设为 true 时隐藏侧边栏(开发中,暂未完成) +const SIDEBAR_ENABLED = false; + function PageLayout() { const [collapsed, setCollapsed] = useState(false); return (
- setCollapsed((prev) => !prev)} - /> + {SIDEBAR_ENABLED && ( + setCollapsed((prev) => !prev)} + /> + )}
From e286e59431cc791698ff0d90da085d23c46176cf Mon Sep 17 00:00:00 2001 From: fengxiangdebaozi <10845145+fengxiangdebaozi@user.noreply.gitee.com> Date: Thu, 14 May 2026 09:42:12 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend-web/src/pages/PageRoutes.tsx | 9 +++++-- frontend-web/src/pages/WorkspaceRoutes.tsx | 28 +++++++++++++++------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/frontend-web/src/pages/PageRoutes.tsx b/frontend-web/src/pages/PageRoutes.tsx index 102aec7f..b227d3ad 100644 --- a/frontend-web/src/pages/PageRoutes.tsx +++ b/frontend-web/src/pages/PageRoutes.tsx @@ -21,14 +21,19 @@ function PageLayout() { )}
} /> } + element={ + + } />
diff --git a/frontend-web/src/pages/WorkspaceRoutes.tsx b/frontend-web/src/pages/WorkspaceRoutes.tsx index 15b7eb1e..bf1527a6 100644 --- a/frontend-web/src/pages/WorkspaceRoutes.tsx +++ b/frontend-web/src/pages/WorkspaceRoutes.tsx @@ -20,16 +20,24 @@ import ScheduledTasksPage from "./ScheduledTasksPage"; function WorkspaceLayout({ children, pageSidebarCollapsed, + pageSidebarHidden = false, }: { children: ReactNode; pageSidebarCollapsed: boolean; + pageSidebarHidden?: boolean; }) { + const pageSidebarWidth = pageSidebarHidden + ? "0rem" + : pageSidebarCollapsed + ? "4rem" + : "16rem"; + return ( } /> + } @@ -74,7 +86,7 @@ export default function WorkspaceRoutes({ + @@ -84,7 +96,7 @@ export default function WorkspaceRoutes({ + } @@ -92,7 +104,7 @@ export default function WorkspaceRoutes({ + } @@ -104,7 +116,7 @@ export default function WorkspaceRoutes({ + @@ -118,7 +130,7 @@ export default function WorkspaceRoutes({ + } @@ -126,7 +138,7 @@ export default function WorkspaceRoutes({ + }