diff --git a/apps/miniprogram/src/pages/ai-report/detail/index.scss b/apps/miniprogram/src/pages/ai-report/detail/index.scss
index 31d812b..52cfd91 100644
--- a/apps/miniprogram/src/pages/ai-report/detail/index.scss
+++ b/apps/miniprogram/src/pages/ai-report/detail/index.scss
@@ -1,21 +1,6 @@
@import '../../../styles/variables.scss';
@import '../../../styles/mixins.scss';
-.detail-page {
- min-height: 100vh;
- background: $bg;
- padding: 24px;
- padding-bottom: 40px;
-}
-
-.detail-card {
- background: $card;
- border-radius: $r;
- padding: 28px;
- margin-bottom: 20px;
- box-shadow: $shadow-sm;
-}
-
.detail-type {
@include section-title;
margin-bottom: 12px;
@@ -31,12 +16,7 @@
color: $tx3;
}
-.content-card {
- background: $card;
- border-radius: $r;
- padding: 28px;
- box-shadow: $shadow-sm;
-
+.content-card-wrap {
// RichText 内部样式
h1, h2, h3 {
font-weight: bold;
diff --git a/apps/miniprogram/src/pages/ai-report/detail/index.tsx b/apps/miniprogram/src/pages/ai-report/detail/index.tsx
index 3feb5b8..19c2a26 100644
--- a/apps/miniprogram/src/pages/ai-report/detail/index.tsx
+++ b/apps/miniprogram/src/pages/ai-report/detail/index.tsx
@@ -4,6 +4,8 @@ import Taro, { useRouter } from '@tarojs/taro';
import { usePageData } from '@/hooks/usePageData';
import { getAiAnalysisDetail, type AiAnalysisItem } from '@/services/ai-analysis';
import Loading from '@/components/Loading';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
import { sanitizeHtml } from '@/utils/sanitize-html';
import { useElderClass } from '../../../hooks/useElderClass';
import './index.scss';
@@ -54,9 +56,9 @@ export default function AiReportDetail() {
if (!analysis) {
return (
-
+
报告不存在
-
+
);
}
@@ -68,8 +70,8 @@ export default function AiReportDetail() {
const isAutoAnalysis = (analysis.result_metadata as Record)?.auto_analysis === true;
return (
-
-
+
+
{TYPE_LABELS[analysis.analysis_type] || analysis.analysis_type}
模型: {analysis.model_used}
@@ -80,7 +82,7 @@ export default function AiReportDetail() {
系统自动分析
)}
-
+
{isTrendAnalysis && (
@@ -90,9 +92,9 @@ export default function AiReportDetail() {
)}
-
+
-
-
+
+
);
}
diff --git a/apps/miniprogram/src/pages/appointment/detail/index.scss b/apps/miniprogram/src/pages/appointment/detail/index.scss
index e4dd1f6..d8cc7f2 100644
--- a/apps/miniprogram/src/pages/appointment/detail/index.scss
+++ b/apps/miniprogram/src/pages/appointment/detail/index.scss
@@ -1,55 +1,13 @@
@import '../../../styles/variables.scss';
@import '../../../styles/mixins.scss';
-.detail-page {
- min-height: 100vh;
- background: $bg;
- padding-bottom: 160px;
-}
-
-/* 顶部导航 */
-.detail-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 32px;
- padding-top: 48px;
- background: $card;
- box-shadow: $shadow-sm;
-}
-
-.back-btn {
- padding: 8px 0;
-}
-
-.back-text {
- font-size: var(--tk-font-body-lg);
- color: $pri;
- font-weight: 500;
-}
-
-.header-title {
- font-family: 'Georgia', 'Times New Roman', serif;
- font-size: var(--tk-font-num-lg);
- font-weight: bold;
- color: $tx;
-}
-
-.header-placeholder {
- width: 60px;
-}
-
/* 状态卡片 */
-.status-card {
- background: $card;
- border-radius: $r-lg;
- padding: 40px 32px;
- margin: 20px 24px 24px;
- box-shadow: $shadow-md;
+.status-card-wrap {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
+ margin: 20px 24px 24px;
}
.status-tag {
@@ -97,12 +55,8 @@
}
/* 详情信息 */
-.info-section {
+.info-section-wrap {
margin: 0 24px 24px;
- background: $card;
- border-radius: $r;
- padding: 28px;
- box-shadow: $shadow-sm;
}
.section-title {
@@ -171,11 +125,9 @@
}
/* 温馨提示 */
-.tips-card {
+.tips-card-wrap {
margin: 0 24px 24px;
background: $wrn-l;
- border-radius: $r;
- padding: 24px 28px;
}
.tips-title {
diff --git a/apps/miniprogram/src/pages/appointment/detail/index.tsx b/apps/miniprogram/src/pages/appointment/detail/index.tsx
index 8bd774b..769ff05 100644
--- a/apps/miniprogram/src/pages/appointment/detail/index.tsx
+++ b/apps/miniprogram/src/pages/appointment/detail/index.tsx
@@ -5,6 +5,9 @@ import { getAppointment, cancelAppointment } from '../../../services/appointment
import type { Appointment } from '../../../services/appointment';
import Loading from '../../../components/Loading';
import ErrorState from '../../../components/ErrorState';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
+import PageHeader from '@/components/patterns/PageHeader';
import { useElderClass } from '../../../hooks/useElderClass';
import { useSafeTimeout } from '@/hooks/useSafeTimeout';
import './index.scss';
@@ -65,53 +68,39 @@ export default function AppointmentDetail() {
}
};
- const goBack = () => Taro.navigateBack();
-
if (loading) {
return (
-
-
- 返回
- 预约详情
-
-
+
+
-
+
);
}
if (error || !appointment) {
return (
-
-
- 返回
- 预约详情
-
-
+
+
-
+
);
}
return (
-
-
- 返回
- 预约详情
-
-
+
+
{/* 状态卡片 */}
-
+
{status.label}
{appointment.doctor_name}
{appointment.department || ''}
-
+
{/* 预约信息 */}
-
+
预约信息
@@ -145,14 +134,14 @@ export default function AppointmentDetail() {
{appointment.id}
-
+
{/* 温馨提示 */}
{(appointment.status === 'pending' || appointment.status === 'confirmed') && (
-
+
温馨提示
请按预约时间提前15分钟到达,携带有效身份证件和医保卡。
-
+
)}
{/* 取消按钮 */}
@@ -166,6 +155,6 @@ export default function AppointmentDetail() {
)}
-
+
);
}