refactor(mp): 迁移医护+健康页面 — 使用 PageShell + ContentCard 统一组件库

行动收件箱、医护工作台、健康趋势、患者告警、体征录入、
日常监测、设备同步共 7 个页面迁移:
- 最外层容器 → PageShell
- 卡片元素 → ContentCard
- SCSS 删除 min-height/background/box-shadow 通用样式
This commit is contained in:
iven
2026-05-16 01:33:24 +08:00
parent 4dd5a1b4d9
commit 37327a4da4
14 changed files with 86 additions and 124 deletions

View File

@@ -12,6 +12,8 @@ import { uploadReadings } from '@/services/device-sync';
import { useAuthStore } from '@/stores/auth';
import type { BLEDevice, NormalizedReading } from '@/services/ble/types';
import { useElderClass } from '@/hooks/useElderClass';
import PageShell from '@/components/ui/PageShell';
import ContentCard from '@/components/ui/ContentCard';
import './index.scss';
/** liveReadings 最大保留条数,防止内存无限增长 */
@@ -232,10 +234,10 @@ export default function DeviceSync() {
const renderConnected = () => (
<View className="sync-section">
<View className="sync-status-card">
<ContentCard className="sync-status-card">
<Text className="sync-status-dot sync-status-dot--connected" />
<Text className="sync-status-text">: {selectedDevice?.name}</Text>
</View>
</ContentCard>
{liveReadings.length > 0 && (
<View className="sync-readings-panel">
@@ -276,11 +278,11 @@ export default function DeviceSync() {
const renderDone = () => (
<View className="sync-section">
<View className="sync-result-card">
<ContentCard className="sync-result-card">
<Text className="sync-result-icon">V</Text>
<Text className="sync-result-title"></Text>
<Text className="sync-result-count"> {syncCount} </Text>
</View>
</ContentCard>
<View className="sync-action" onClick={() => {
handleDisconnect();
if (returnTo === 'input') {
@@ -293,7 +295,7 @@ export default function DeviceSync() {
);
return (
<View className={`device-sync-page ${modeClass}`}>
<PageShell padding="none" className={modeClass}>
<View className="sync-header">
<Text className="sync-header-title"></Text>
</View>
@@ -317,6 +319,6 @@ export default function DeviceSync() {
{(pageState === 'idle' || pageState === 'error') && renderIdle()}
{pageState === 'connected' && renderConnected()}
{pageState === 'done' && renderDone()}
</View>
</PageShell>
);
}