From 8aacd3bea2ae60fc10261c182113c638ca252d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=88=AA=E5=AE=87?= <3364451258@qq.com> Date: Wed, 17 Jun 2026 00:21:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BB=E5=B8=83=E5=B1=80=20+=20?= =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E6=A8=A1=E5=BC=8F=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gui/src-frontend/src/App.tsx | 56 +++++++++++++++++-- .../src/components/ExportPanel.tsx | 8 +++ .../src/components/HistoryList.tsx | 8 +++ gui/src-frontend/src/components/ModePanel.tsx | 27 +++++++++ gui/src-frontend/src/components/QrPreview.tsx | 9 +++ 5 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 gui/src-frontend/src/components/ExportPanel.tsx create mode 100644 gui/src-frontend/src/components/HistoryList.tsx create mode 100644 gui/src-frontend/src/components/ModePanel.tsx create mode 100644 gui/src-frontend/src/components/QrPreview.tsx diff --git a/gui/src-frontend/src/App.tsx b/gui/src-frontend/src/App.tsx index d94ed79..08c9835 100644 --- a/gui/src-frontend/src/App.tsx +++ b/gui/src-frontend/src/App.tsx @@ -1,9 +1,55 @@ -export default function App() { +import { QrProvider, useQrState } from './store/qrContext'; +import ModePanel from './components/ModePanel'; +import QrPreview from './components/QrPreview'; +import ExportPanel from './components/ExportPanel'; +import HistoryList from './components/HistoryList'; + +function AppLayout() { return ( -
-

- 🀫 QRGen GUI — 开发中 -

+
+ {/* 顶部标题栏 */} +
+ + 🀫 QRGen + +
+ + {/* 三栏主体 */} +
+ +
+ +
+
+ +
+ +
+
+
+ + {/* 底部输入区 */} +
+ +
); } + +function BottomInput() { + const { state } = useQrState(); + + return ( +
+ 输入区 — 开发中(当前模式: {state.mode}) +
+ ); +} + +export default function App() { + return ( + + + + ); +} diff --git a/gui/src-frontend/src/components/ExportPanel.tsx b/gui/src-frontend/src/components/ExportPanel.tsx new file mode 100644 index 0000000..3d718ee --- /dev/null +++ b/gui/src-frontend/src/components/ExportPanel.tsx @@ -0,0 +1,8 @@ +export default function ExportPanel() { + return ( +
+
导出选项
+
开发中...
+
+ ); +} diff --git a/gui/src-frontend/src/components/HistoryList.tsx b/gui/src-frontend/src/components/HistoryList.tsx new file mode 100644 index 0000000..c5a7309 --- /dev/null +++ b/gui/src-frontend/src/components/HistoryList.tsx @@ -0,0 +1,8 @@ +export default function HistoryList() { + return ( +
+
📋 历史记录
+

暂无记录

+
+ ); +} diff --git a/gui/src-frontend/src/components/ModePanel.tsx b/gui/src-frontend/src/components/ModePanel.tsx new file mode 100644 index 0000000..8f92ef6 --- /dev/null +++ b/gui/src-frontend/src/components/ModePanel.tsx @@ -0,0 +1,27 @@ +import { useQrState } from '../store/qrContext'; +import { MODES, MODE_LABELS } from '../types'; + +export default function ModePanel() { + const { state, dispatch } = useQrState(); + + return ( +
+
+ 编码模式 +
+ {MODES.map(mode => ( + + ))} +
+ ); +} diff --git a/gui/src-frontend/src/components/QrPreview.tsx b/gui/src-frontend/src/components/QrPreview.tsx new file mode 100644 index 0000000..ca8f919 --- /dev/null +++ b/gui/src-frontend/src/components/QrPreview.tsx @@ -0,0 +1,9 @@ +export default function QrPreview() { + return ( +
+
+ 输入内容生成 QR 码 +
+
+ ); +}