diff --git a/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.scss b/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.scss
index 1aa67ee..a2a439e 100644
--- a/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.scss
+++ b/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.scss
@@ -1,28 +1,11 @@
@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;
-}
-
-.header-card {
- .header-row {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 8px;
- }
+.header-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 8px;
}
.detail-title {
diff --git a/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.tsx b/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.tsx
index b2632e9..e3ce70c 100644
--- a/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.tsx
+++ b/apps/miniprogram/src/pages/pkg-profile/dialysis-prescriptions/detail/index.tsx
@@ -5,6 +5,8 @@ import { usePageData } from '@/hooks/usePageData';
import { getDialysisPrescription } from '@/services/dialysis';
import type { DialysisPrescription } from '@/services/dialysis';
import Loading from '@/components/Loading';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
import { useElderClass } from '../../../../hooks/useElderClass';
import './index.scss';
@@ -36,8 +38,8 @@ export default function DialysisPrescriptionDetail() {
usePageData(fetchDetail, { throttleMs: 60000 });
- if (loading) return ;
- if (!rx) return 处方不存在;
+ if (loading) return ;
+ if (!rx) return 处方不存在;
const si = STATUS_MAP[rx.status] || { label: rx.status, cls: '' };
@@ -52,9 +54,9 @@ export default function DialysisPrescriptionDetail() {
};
return (
-
+
{/* 状态头部 */}
-
+
{rx.dialyzer_model || '透析处方'}
{si.label}
@@ -62,10 +64,10 @@ export default function DialysisPrescriptionDetail() {
{(rx.effective_from || rx.effective_to) && (
{rx.effective_from || '...'} ~ {rx.effective_to || '...'}
)}
-
+
{/* 基本参数 */}
-
+
基本参数
@@ -73,48 +75,48 @@ export default function DialysisPrescriptionDetail() {
-
+
{/* 透析液配比 */}
-
+
透析液配比
-
+
{/* 抗凝方案 */}
-
+
抗凝方案
-
+
{/* 血管通路 */}
{(rx.vascular_access_type || rx.vascular_access_location) && (
-
+
血管通路
-
+
)}
{/* 超滤与干体重 */}
{(rx.target_ultrafiltration_ml != null || rx.target_dry_weight != null) && (
-
+
超滤目标
-
+
)}
{/* 备注 */}
{rx.notes && (
-
+
备注
{rx.notes}
-
+
)}
-
+
);
}
diff --git a/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.scss b/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.scss
index 0b6167d..999cd03 100644
--- a/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.scss
+++ b/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.scss
@@ -1,28 +1,11 @@
@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;
-}
-
-.header-card {
- .header-row {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 8px;
- }
+.header-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 8px;
}
.detail-title {
diff --git a/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.tsx b/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.tsx
index 0d41024..6def8ea 100644
--- a/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.tsx
+++ b/apps/miniprogram/src/pages/pkg-profile/dialysis-records/detail/index.tsx
@@ -5,6 +5,8 @@ import { usePageData } from '@/hooks/usePageData';
import { getDialysisRecord } from '@/services/dialysis';
import type { DialysisRecord } from '@/services/dialysis';
import Loading from '@/components/Loading';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
import { useElderClass } from '../../../../hooks/useElderClass';
import './index.scss';
@@ -42,25 +44,25 @@ export default function DialysisRecordDetail() {
usePageData(fetchDetail, { throttleMs: 60000 });
- if (loading) return ;
- if (!record) return 记录不存在;
+ if (loading) return ;
+ if (!record) return 记录不存在;
const si = STATUS_MAP[record.status] || { label: record.status, cls: '' };
return (
-
+
{/* 状态头部 */}
-
+
{record.dialysis_date}
{si.label}
{TYPE_MAP[record.dialysis_type] || record.dialysis_type}
{record.reviewed_at && 审核时间 {record.reviewed_at}}
-
+
{/* 基本信息 */}
-
+
基本信息
{record.start_time && (
开始时间{record.start_time}
@@ -77,10 +79,10 @@ export default function DialysisRecordDetail() {
{record.ultrafiltration_volume != null && (
超滤量{record.ultrafiltration_volume} ml
)}
-
+
{/* 体重与血压 */}
-
+
体重与血压
{record.dry_weight != null && (
干体重{record.dry_weight} kg
@@ -103,11 +105,11 @@ export default function DialysisRecordDetail() {
{record.post_heart_rate != null && (
透后心率{record.post_heart_rate} bpm
)}
-
+
{/* 症状与并发症 */}
{(record.symptoms || record.complication_notes) && (
-
+
症状与并发症
{record.symptoms && Object.keys(record.symptoms).length > 0 && (
症状{JSON.stringify(record.symptoms)}
@@ -115,8 +117,8 @@ export default function DialysisRecordDetail() {
{record.complication_notes && (
并发症备注{record.complication_notes}
)}
-
+
)}
-
+
);
}
diff --git a/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.scss b/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.scss
index b7c521d..cb31462 100644
--- a/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.scss
+++ b/apps/miniprogram/src/pages/pkg-profile/followups/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-title {
@include section-title;
font-size: var(--tk-font-num-lg);
@@ -79,13 +64,6 @@
line-height: 1.6;
}
-.submit-card {
- background: $card;
- border-radius: $r;
- padding: 28px;
- box-shadow: $shadow-sm;
-}
-
.section-title {
@include section-title;
margin-bottom: 16px;
diff --git a/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.tsx b/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.tsx
index c046bf3..33e454c 100644
--- a/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.tsx
+++ b/apps/miniprogram/src/pages/pkg-profile/followups/detail/index.tsx
@@ -8,6 +8,8 @@ import { TEMPLATE_IDS } from '@/services/wechat-templates';
import { trackEvent } from '@/services/analytics';
import Loading from '@/components/Loading';
import ErrorState from '@/components/ErrorState';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
import { useElderClass } from '@/hooks/useElderClass';
import './index.scss';
@@ -89,25 +91,25 @@ export default function FollowUpDetail() {
if (loading) {
return (
-
+
-
+
);
}
if (error || !task) {
return (
-
+
-
+
);
}
const isCompleted = task.status === 'completed';
return (
-
-
+
+
{task.follow_up_type}
状态
@@ -132,10 +134,10 @@ export default function FollowUpDetail() {
{task.content_template}
)}
-
+
{!isCompleted && (
-
+
填写随访记录
-
+
)}
-
+
);
}
diff --git a/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.scss b/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.scss
index 3fd5bfd..a3c2de3 100644
--- a/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.scss
+++ b/apps/miniprogram/src/pages/pkg-profile/reports/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-title {
font-family: 'Georgia', 'Times New Roman', serif;
font-size: var(--tk-font-num-lg);
@@ -51,13 +36,6 @@
margin-left: 24px;
}
-.indicators-card {
- background: $card;
- border-radius: $r;
- padding: 28px;
- box-shadow: $shadow-sm;
-}
-
.section-title {
font-family: 'Georgia', 'Times New Roman', serif;
font-size: var(--tk-font-num);
diff --git a/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.tsx b/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.tsx
index 607c3b0..61e2275 100644
--- a/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.tsx
+++ b/apps/miniprogram/src/pages/pkg-profile/reports/detail/index.tsx
@@ -4,6 +4,8 @@ import Taro, { useRouter } from '@tarojs/taro';
import { usePageData } from '@/hooks/usePageData';
import { getReportDetail, LabReport } from '@/services/report';
import Loading from '@/components/Loading';
+import PageShell from '@/components/ui/PageShell';
+import ContentCard from '@/components/ui/ContentCard';
import { useElderClass } from '@/hooks/useElderClass';
import { useAuthStore } from '@/stores/auth';
import './index.scss';
@@ -62,26 +64,26 @@ export default function ReportDetail() {
if (loading) {
return (
-
+
-
+
);
}
if (!report) {
return (
-
+
报告不存在
-
+
);
}
return (
-
+
{/* 基本信息 */}
-
+
{report.report_type}
报告日期
@@ -93,10 +95,10 @@ export default function ReportDetail() {
{report.doctor_interpretation}
)}
-
+
{/* 指标列表 */}
-
+
检查指标
{indicators.map((item) => {
const statusInfo = getStatusInfo(item.status);
@@ -122,7 +124,7 @@ export default function ReportDetail() {
);
})}
-
-
+
+
);
}