From 6f2b938bc061707d6ea61051350b8f3c2e7913dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B5=E5=BA=94?= Date: Fri, 3 Jul 2026 17:56:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=89=8D=E7=AB=AF=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=B8=85=E7=90=86-=E7=A7=BB=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=A0=81=E5=92=8C=E9=81=97=E7=95=99demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 apps/web/app/ 遗留 Next.js demo 目录(9 个文件) 该目录是早期项目推进器 demo,与主 Vite 应用完全隔离,不被 src/ 引用 - 删除 3 个未被 import 的 editing-planner 组件 TemplatePanel.tsx / SettingsPanel.tsx / GenerateModal.tsx - 移除 3 个未使用的 npm 依赖 react-hook-form / recharts / zod(仅 package.json 声明,源码无引用) - TypeScript 零错误,Vite 构建正常通过 --- apps/web/app/components/CreateIssueForm.tsx | 145 -------- apps/web/app/components/CreateTaskForm.tsx | 198 ---------- apps/web/app/components/EditTaskForm.tsx | 167 --------- apps/web/app/globals.css | 26 -- apps/web/app/layout.tsx | 20 - apps/web/app/milestones/page.tsx | 232 ------------ apps/web/app/page.tsx | 62 --- apps/web/app/projects/page.tsx | 259 ------------- apps/web/app/tasks/[id]/page.tsx | 352 ------------------ apps/web/package.json | 3 - .../components/GenerateModal.tsx | 58 --- .../components/SettingsPanel.tsx | 329 ---------------- .../components/TemplatePanel.tsx | 132 ------- 13 files changed, 1983 deletions(-) delete mode 100644 apps/web/app/components/CreateIssueForm.tsx delete mode 100644 apps/web/app/components/CreateTaskForm.tsx delete mode 100644 apps/web/app/components/EditTaskForm.tsx delete mode 100644 apps/web/app/globals.css delete mode 100644 apps/web/app/layout.tsx delete mode 100644 apps/web/app/milestones/page.tsx delete mode 100644 apps/web/app/page.tsx delete mode 100644 apps/web/app/projects/page.tsx delete mode 100644 apps/web/app/tasks/[id]/page.tsx delete mode 100644 apps/web/src/pages/editing-planner/components/GenerateModal.tsx delete mode 100644 apps/web/src/pages/editing-planner/components/SettingsPanel.tsx delete mode 100644 apps/web/src/pages/editing-planner/components/TemplatePanel.tsx diff --git a/apps/web/app/components/CreateIssueForm.tsx b/apps/web/app/components/CreateIssueForm.tsx deleted file mode 100644 index 166ef542f..000000000 --- a/apps/web/app/components/CreateIssueForm.tsx +++ /dev/null @@ -1,145 +0,0 @@ -'use client'; - -import { useState } from 'react'; - -const API_BASE = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000'; - -interface CreateIssueFormProps { - taskId: string; - projectId: string; - onSuccess: () => void; - onCancel: () => void; -} - -export default function CreateIssueForm({ taskId, projectId, onSuccess, onCancel }: CreateIssueFormProps) { - const [loading, setLoading] = useState(false); - const [error, setError] = useState(''); - const [formData, setFormData] = useState({ - title: '', - description: '', - }); - - const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - setLoading(true); - setError(''); - - try { - const res = await fetch(`${API_BASE}/api/v1/project-management/issues`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - task_id: taskId, - project_id: projectId, - ...formData, - }), - }); - - if (!res.ok) { - const data = await res.json(); - throw new Error(data.detail || '创建失败'); - } - - onSuccess(); - } catch (err: unknown) { - setError(err instanceof Error ? err.message : String(err)); - } finally { - setLoading(false); - } - }; - - return ( -
- {error && ( -
- {error} -
- )} - -
- - setFormData({ ...formData, title: e.target.value })} - style={{ - width: '100%', - padding: '8px 12px', - border: '1px solid var(--border)', - borderRadius: '4px', - fontSize: '14px', - }} - placeholder="简要描述问题" - /> -
- -
- -