diff --git a/src/constants/enums.ts b/src/constants/enums.ts index 4771c9a..8c3b7a9 100644 --- a/src/constants/enums.ts +++ b/src/constants/enums.ts @@ -6,12 +6,6 @@ export const DEVICE_MODEL = { export type DeviceModel = (typeof DEVICE_MODEL)[keyof typeof DEVICE_MODEL] -// 设备型号 → 图标映射 -export const DEVICE_ICON_MAP: Record = { - ED713: 'home', - ED719: 'bell' -} - // 体征枚举映射(与 web 端 zh-CN 一致) export const MOVE_STATE_MAP: Record = { 0: '无人', diff --git a/src/pages/device/index.module.scss b/src/pages/device/index.module.scss index 39d98d0..e4ab595 100644 --- a/src/pages/device/index.module.scss +++ b/src/pages/device/index.module.scss @@ -32,49 +32,41 @@ align-items: center; } -.grid { - display: flex; - flex-wrap: wrap; - justify-content: space-between; +.list { padding: 24px; } .card { - width: 48.5%; + display: flex; + align-items: center; margin-bottom: 24px; - padding: 36px 20px 28px; - box-sizing: border-box; + padding: 24px 28px; background: $color-bg-white; border-radius: $radius-lg; box-shadow: $shadow-card; - display: flex; - flex-direction: column; - align-items: center; } +// 纯色圆图标:不再放文字符号(DEVICE_ICON_MAP 已删) .icon { - width: 108px; - height: 108px; + flex-shrink: 0; + width: 88px; + height: 88px; border-radius: $radius-circle; background: $color-primary-grad; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 20px; } -.iconOffline { background: $color-bg-disabled; } - -.iconText { - font-size: 36px; - color: #ffffff; +.iconOffline { + background: $color-bg-disabled; } -.iconOffline .iconText { color: $color-text-tertiary; } +.cardBody { + flex: 1; + min-width: 0; + margin-left: 24px; +} .name { - max-width: 100%; - font-size: 28px; + font-size: 30px; font-weight: 600; color: $color-text; overflow: hidden; @@ -83,7 +75,7 @@ } .statusRow { - margin-top: 12px; + margin-top: 10px; display: flex; align-items: center; } @@ -101,6 +93,18 @@ .statusText { font-size: 24px; color: $color-primary-deep; } .statusTextOff { color: $color-text-secondary; } +.statusModel { + font-size: 24px; + color: $color-text-secondary; +} + +.cardArrow { + flex-shrink: 0; + margin-left: 16px; + font-size: 36px; + color: $color-text-placeholder; +} + .fab { position: fixed; right: 40px; diff --git a/src/pages/device/index.tsx b/src/pages/device/index.tsx index 807b051..a231ff9 100644 --- a/src/pages/device/index.tsx +++ b/src/pages/device/index.tsx @@ -7,13 +7,10 @@ import { Navbar } from '@/components/navbar' import { Loading } from '@/components/loading' import { StateView } from '@/components/state-view' import { getDeviceList } from '@/api/device' -import { DEVICE_ICON_MAP, type DeviceModel } from '@/constants/enums' import { ROUTES } from '@/constants/routes' import { navigateTo } from '@/utils/navigation' import styles from './index.module.scss' -const FALLBACK_ICON = '⌂' - export default function DeviceList() { const dispatch = useAppDispatch() const scene = useAppSelector((s) => s.scene.current) @@ -48,8 +45,6 @@ export default function DeviceList() { const goAdd = () => navigateTo(ROUTES.DEVICE_ADD) const goSceneSelect = () => navigateTo(ROUTES.SCENE_SELECT) - const iconOf = (model: DeviceModel) => DEVICE_ICON_MAP[model] ?? FALLBACK_ICON - return ( @@ -66,19 +61,21 @@ export default function DeviceList() { ) : deviceList.length === 0 ? ( ) : ( - + {deviceList.map((device) => ( goDetail(device)}> - - {iconOf(device.model)} - - {device.name} - - - - {device.online ? '在线' : '离线'} - + + + {device.name} + + + + {device.online ? '在线' : '离线'} + + {!!device.model && · {device.model}} + + › ))}