From 466b6567d1a6e2a1a0b8411d44bd01c6792d8010 Mon Sep 17 00:00:00 2001 From: iven Date: Sat, 16 May 2026 01:33:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor(mp):=20=E8=BF=81=E7=A7=BB=E5=95=86?= =?UTF-8?q?=E5=9F=8E+AI=E6=8A=A5=E5=91=8A+=E9=A2=84=E7=BA=A6=E5=88=97?= =?UTF-8?q?=E8=A1=A8+=E6=96=87=E7=AB=A0=E8=AF=A6=E6=83=85=E9=A1=B5=20?= =?UTF-8?q?=E2=80=94=20=E7=BB=9F=E4=B8=80=E7=BB=84=E4=BB=B6=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 商城订单/积分兑换/积分明细、AI 报告列表、预约列表、 文章详情共 6 个页面迁移: - 最外层容器 → PageShell - SCSS 删除 min-height/background 通用样式 --- .../miniprogram/src/pages/ai-report/list/index.scss | 7 +------ apps/miniprogram/src/pages/ai-report/list/index.tsx | 9 +++++---- apps/miniprogram/src/pages/appointment/index.scss | 3 +-- apps/miniprogram/src/pages/appointment/index.tsx | 5 +++-- .../miniprogram/src/pages/article/detail/index.scss | 6 +----- apps/miniprogram/src/pages/article/detail/index.tsx | 13 +++++++------ .../src/pages/pkg-mall/detail/index.scss | 6 +----- .../miniprogram/src/pages/pkg-mall/detail/index.tsx | 5 +++-- .../src/pages/pkg-mall/exchange/index.scss | 3 +-- .../src/pages/pkg-mall/exchange/index.tsx | 9 +++++---- .../src/pages/pkg-mall/orders/index.scss | 10 ++-------- .../miniprogram/src/pages/pkg-mall/orders/index.tsx | 10 ++++++---- 12 files changed, 36 insertions(+), 50 deletions(-) diff --git a/apps/miniprogram/src/pages/ai-report/list/index.scss b/apps/miniprogram/src/pages/ai-report/list/index.scss index fb3864f..cb815b5 100644 --- a/apps/miniprogram/src/pages/ai-report/list/index.scss +++ b/apps/miniprogram/src/pages/ai-report/list/index.scss @@ -1,12 +1,7 @@ @import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; -.ai-report-page { - min-height: 100vh; - background: $bg; - padding: 24px; - padding-bottom: 40px; -} +// PageShell 已接管:min-height, background, padding .page-title { @include section-title; diff --git a/apps/miniprogram/src/pages/ai-report/list/index.tsx b/apps/miniprogram/src/pages/ai-report/list/index.tsx index 9c493f5..fb8e748 100644 --- a/apps/miniprogram/src/pages/ai-report/list/index.tsx +++ b/apps/miniprogram/src/pages/ai-report/list/index.tsx @@ -6,6 +6,7 @@ import { listAiAnalysis, type AiAnalysisItem } from '@/services/ai-analysis'; import Loading from '@/components/Loading'; import EmptyState from '@/components/EmptyState'; import { useElderClass } from '../../../hooks/useElderClass'; +import PageShell from '@/components/ui/PageShell'; import './index.scss'; const TYPE_LABELS: Record = { @@ -61,14 +62,14 @@ export default function AiReportList() { if (list.length === 0) { return ( - + - + ); } return ( - + AI 分析报告 {list.map((item) => { @@ -93,6 +94,6 @@ export default function AiReportList() { {loading && } {!hasMore && list.length > 0 && 没有更多了} - + ); } diff --git a/apps/miniprogram/src/pages/appointment/index.scss b/apps/miniprogram/src/pages/appointment/index.scss index 171ba22..ba89678 100644 --- a/apps/miniprogram/src/pages/appointment/index.scss +++ b/apps/miniprogram/src/pages/appointment/index.scss @@ -1,9 +1,8 @@ @import '../../styles/variables.scss'; @import '../../styles/mixins.scss'; +// PageShell 已接管:min-height, background, padding .appointment-page { - min-height: 100vh; - background: $bg; padding-bottom: 160px; } diff --git a/apps/miniprogram/src/pages/appointment/index.tsx b/apps/miniprogram/src/pages/appointment/index.tsx index 6bd2c3c..9b0123f 100644 --- a/apps/miniprogram/src/pages/appointment/index.tsx +++ b/apps/miniprogram/src/pages/appointment/index.tsx @@ -7,6 +7,7 @@ import type { Appointment } from '../../services/appointment'; import EmptyState from '../../components/EmptyState'; import Loading from '../../components/Loading'; import { useElderClass } from '../../hooks/useElderClass'; +import PageShell from '@/components/ui/PageShell'; import './index.scss'; const STATUS_MAP: Record = { @@ -80,7 +81,7 @@ export default function AppointmentList() { }; return ( - + {/* 页面标题 */} 预约挂号 @@ -146,6 +147,6 @@ export default function AppointmentList() { 新建预约 - + ); } diff --git a/apps/miniprogram/src/pages/article/detail/index.scss b/apps/miniprogram/src/pages/article/detail/index.scss index d2bb40b..88f7ac2 100644 --- a/apps/miniprogram/src/pages/article/detail/index.scss +++ b/apps/miniprogram/src/pages/article/detail/index.scss @@ -1,11 +1,7 @@ @import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; -.article-detail-page { - min-height: 100vh; - background: $bg; - padding-bottom: 40px; -} +// PageShell 已接管:min-height, background, padding .article-header { background: $card; diff --git a/apps/miniprogram/src/pages/article/detail/index.tsx b/apps/miniprogram/src/pages/article/detail/index.tsx index e7d80a2..2810475 100644 --- a/apps/miniprogram/src/pages/article/detail/index.tsx +++ b/apps/miniprogram/src/pages/article/detail/index.tsx @@ -7,6 +7,7 @@ import { trackEvent } from '@/services/analytics'; import { sanitizeHtml } from '@/utils/sanitize-html'; import { useElderClass } from '../../../hooks/useElderClass'; import { useAuthStore } from '../../../stores/auth'; +import PageShell from '@/components/ui/PageShell'; import './index.scss'; export default function ArticleDetail() { @@ -44,26 +45,26 @@ export default function ArticleDetail() { if (loading) { return ( - + 加载中... - + ); } if (!article) { return ( - + 文章不存在 - + ); } return ( - + {/* 文章头部 */} {article.title} @@ -93,6 +94,6 @@ export default function ArticleDetail() { nodes={sanitizeHtml(article.content || '')} /> - + ); } diff --git a/apps/miniprogram/src/pages/pkg-mall/detail/index.scss b/apps/miniprogram/src/pages/pkg-mall/detail/index.scss index 43df809..73446e9 100644 --- a/apps/miniprogram/src/pages/pkg-mall/detail/index.scss +++ b/apps/miniprogram/src/pages/pkg-mall/detail/index.scss @@ -1,11 +1,7 @@ @import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; -.detail-page { - min-height: 100vh; - background: $bg; - padding-bottom: 40px; -} +// PageShell 已接管:min-height, background, padding /* ===== 余额卡片 ===== */ .balance-card { diff --git a/apps/miniprogram/src/pages/pkg-mall/detail/index.tsx b/apps/miniprogram/src/pages/pkg-mall/detail/index.tsx index b2d7061..f241ce5 100644 --- a/apps/miniprogram/src/pages/pkg-mall/detail/index.tsx +++ b/apps/miniprogram/src/pages/pkg-mall/detail/index.tsx @@ -8,6 +8,7 @@ import { usePointsStore } from '../../../stores/points'; import EmptyState from '../../../components/EmptyState'; import Loading from '../../../components/Loading'; import { useElderClass } from '../../../hooks/useElderClass'; +import PageShell from '@/components/ui/PageShell'; import './index.scss'; const TYPE_TABS = [ @@ -109,7 +110,7 @@ export default function PointsDetail() { const balance = account?.balance ?? 0; return ( - + {/* 余额卡片 */} 当前积分 @@ -177,6 +178,6 @@ export default function PointsDetail() { )} )} - + ); } diff --git a/apps/miniprogram/src/pages/pkg-mall/exchange/index.scss b/apps/miniprogram/src/pages/pkg-mall/exchange/index.scss index d3c81dc..285e0e3 100644 --- a/apps/miniprogram/src/pages/pkg-mall/exchange/index.scss +++ b/apps/miniprogram/src/pages/pkg-mall/exchange/index.scss @@ -1,9 +1,8 @@ @import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; +// PageShell 已接管:min-height, background, padding .exchange-page { - min-height: 100vh; - background: $bg; padding-bottom: 140px; } diff --git a/apps/miniprogram/src/pages/pkg-mall/exchange/index.tsx b/apps/miniprogram/src/pages/pkg-mall/exchange/index.tsx index 441df9a..209bab4 100644 --- a/apps/miniprogram/src/pages/pkg-mall/exchange/index.tsx +++ b/apps/miniprogram/src/pages/pkg-mall/exchange/index.tsx @@ -11,6 +11,7 @@ import { usePointsStore } from '../../../stores/points'; import Loading from '../../../components/Loading'; import { useElderClass } from '../../../hooks/useElderClass'; import { useSafeTimeout } from '@/hooks/useSafeTimeout'; +import PageShell from '@/components/ui/PageShell'; import './index.scss'; const TYPE_INITIAL: Record = { @@ -128,9 +129,9 @@ export default function ExchangeConfirm() { if (loading) { return ( - + - + ); } @@ -140,7 +141,7 @@ export default function ExchangeConfirm() { const iconCls = TYPE_CLASS[productType] || 'product-icon-wrap--service'; return ( - + {/* 商品预览卡片 */} @@ -216,6 +217,6 @@ export default function ExchangeConfirm() { - + ); } diff --git a/apps/miniprogram/src/pages/pkg-mall/orders/index.scss b/apps/miniprogram/src/pages/pkg-mall/orders/index.scss index 07a588b..6010e8a 100644 --- a/apps/miniprogram/src/pages/pkg-mall/orders/index.scss +++ b/apps/miniprogram/src/pages/pkg-mall/orders/index.scss @@ -1,11 +1,8 @@ @import '../../../styles/variables.scss'; @import '../../../styles/mixins.scss'; -.orders-page { - min-height: 100vh; - background: $bg; - padding-bottom: 40px; -} +// PageShell 已接管:min-height, background, safe-bottom +// ContentCard 已接管:order-card 背景/圆角/阴影 /* ===== 订单列表 ===== */ .order-list { @@ -13,11 +10,8 @@ } .order-card { - background: $card; - border-radius: $r; margin-bottom: 16px; overflow: hidden; - box-shadow: $shadow-sm; } .order-header { diff --git a/apps/miniprogram/src/pages/pkg-mall/orders/index.tsx b/apps/miniprogram/src/pages/pkg-mall/orders/index.tsx index cbe0dc6..710eb53 100644 --- a/apps/miniprogram/src/pages/pkg-mall/orders/index.tsx +++ b/apps/miniprogram/src/pages/pkg-mall/orders/index.tsx @@ -8,6 +8,8 @@ import EmptyState from '../../../components/EmptyState'; import ErrorState from '../../../components/ErrorState'; import Loading from '../../../components/Loading'; import SegmentTabs from '../../../components/SegmentTabs'; +import PageShell from '@/components/ui/PageShell'; +import ContentCard from '@/components/ui/ContentCard'; import { useElderClass } from '../../../hooks/useElderClass'; import './index.scss'; @@ -111,7 +113,7 @@ export default function MallOrders() { }; return ( - + {/* 状态筛选标签 */} @@ -131,7 +133,7 @@ export default function MallOrders() { {orders.map((order) => { const statusCfg = getStatusConfig(order.status); return ( - + 商品 {order.product_id.slice(0, 8)} )} - + ); })} {loading && } @@ -171,6 +173,6 @@ export default function MallOrders() { )} )} - + ); }