From 20c71acb3b6d4e0a8e9f0e0725737fcbeb31cdd5 Mon Sep 17 00:00:00 2001 From: IanShaw027 <131567472+IanShaw027@users.noreply.github.com> Date: Thu, 15 Jan 2026 10:08:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(mobile):=20=E4=BC=98=E5=8C=96=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E8=A1=A8=E6=A0=BC=E3=80=81=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=A0=8F=E5=92=8C=E5=BC=B9=E7=AA=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **问题描述**: - 表格在移动端显示列过多,需要横向滚动,内容被截断 - 顶部操作栏按钮拥挤,占用过多空间 - 弹窗表单在小屏幕上布局不合理 - "更多"操作菜单定位错误,位置过高或超出屏幕 - 滚动页面时菜单不会自动关闭,与卡片分离 **解决方案**: 1. **DataTable 组件 - 移动端卡片视图** - 在 < 768px 时自动切换到卡片布局 - 每个表格行渲染为独立卡片,所有字段清晰可见 - 操作按钮在卡片底部,触摸目标足够大 - 支持深色模式,包含加载和空状态 - 自动应用于所有使用 DataTable 的管理页面 2. **UsersView 顶部操作栏优化** - 移动端:搜索框全宽 + 次要按钮显示为图标 + 创建按钮突出 - 桌面端:保持原有布局(图标 + 文字) - 使用响应式 Tailwind classes 3. **UserCreateModal 弹窗优化** - 余额/并发数字段:移动端单列,桌面端双列 - 弹窗边距:移动端 8px,桌面端 16px 4. **操作菜单定位修复** - UsersView: 移动端菜单居中对齐按钮,智能定位 - AccountsView: 移动端菜单优先显示在按钮下方 - 所有情况下确保菜单不超出屏幕边界 - 添加滚动监听,滚动时自动关闭菜单 **影响范围**: - 所有使用 DataTable 的管理页面(8 个页面)自动获得移动端卡片视图 - 用户管理和账号管理页面的操作菜单定位优化 - 创建用户弹窗的响应式布局优化 **技术要点**: - 使用 Tailwind 响应式断点(md:, sm:) - 触摸目标 ≥ 44px - 完整支持深色模式 - 向后兼容,桌面端保持原有布局 --- .../components/admin/user/UserCreateModal.vue | 2 +- frontend/src/components/common/DataTable.vue | 68 ++++- frontend/src/style.css | 2 +- frontend/src/views/admin/AccountsView.vue | 64 ++++- frontend/src/views/admin/UsersView.vue | 234 ++++++++++-------- 5 files changed, 262 insertions(+), 108 deletions(-) diff --git a/frontend/src/components/admin/user/UserCreateModal.vue b/frontend/src/components/admin/user/UserCreateModal.vue index f2ab1e02..0e44d81e 100644 --- a/frontend/src/components/admin/user/UserCreateModal.vue +++ b/frontend/src/components/admin/user/UserCreateModal.vue @@ -25,7 +25,7 @@ -
+
diff --git a/frontend/src/components/common/DataTable.vue b/frontend/src/components/common/DataTable.vue index dc492d36..3248269b 100644 --- a/frontend/src/components/common/DataTable.vue +++ b/frontend/src/components/common/DataTable.vue @@ -1,7 +1,68 @@