fix(@vben/web-antd): 修复工单详情工牌状态字段对齐及依赖清理
- work-order/detail: 工牌状态 lastHeartbeatTime→onlineTime,移除 rssi 展示 - trajectory/api: lint 修正(移除冗余空行) - badge-status-card: linter 格式修正 - pnpm-lock: 更新依赖锁定文件 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -141,10 +141,7 @@ export function getTrajectorySummary(params: {
|
||||
}
|
||||
|
||||
/** 获取时段出入趋势(按小时聚合) */
|
||||
export function getHourlyTrend(params: {
|
||||
date: string;
|
||||
deviceId?: number;
|
||||
}) {
|
||||
export function getHourlyTrend(params: { date: string; deviceId?: number }) {
|
||||
return requestClient.get<OpsTrajectoryApi.HourlyTrend[]>(
|
||||
'/ops/trajectory/hourly-trend',
|
||||
{ params },
|
||||
@@ -152,10 +149,7 @@ export function getHourlyTrend(params: {
|
||||
}
|
||||
|
||||
/** 获取区域停留分布 */
|
||||
export function getAreaStayStats(params: {
|
||||
date: string;
|
||||
deviceId?: number;
|
||||
}) {
|
||||
export function getAreaStayStats(params: { date: string; deviceId?: number }) {
|
||||
return requestClient.get<OpsTrajectoryApi.AreaStayStats[]>(
|
||||
'/ops/trajectory/area-stay-stats',
|
||||
{ params },
|
||||
|
||||
@@ -140,7 +140,9 @@ const recentTimeline = computed(() => {
|
||||
</div>
|
||||
<div class="timeline-meta">
|
||||
<span>{{ dayjs(item.enterTime).format('HH:mm') }}</span>
|
||||
<template v-if="item.leaveTime"><span>→ {{ dayjs(item.leaveTime).format('HH:mm') }}</span></template>
|
||||
<template v-if="item.leaveTime">
|
||||
<span>→ {{ dayjs(item.leaveTime).format('HH:mm') }}</span>
|
||||
</template>
|
||||
<span v-else class="staying-tag">停留中</span>
|
||||
<span v-if="item.durationSeconds" class="timeline-duration">
|
||||
{{ formatDuration(item.durationSeconds) }}
|
||||
|
||||
@@ -275,8 +275,7 @@ const MOCK_BADGE_STATUS: OpsCleaningApi.BadgeRealtimeStatus = {
|
||||
deviceKey: 'badge_zhangsan_001',
|
||||
status: 'BUSY' as OpsCleaningApi.BadgeStatus,
|
||||
batteryLevel: 72,
|
||||
lastHeartbeatTime: new Date(Date.now() - 30 * 1000).toISOString(),
|
||||
rssi: -42,
|
||||
onlineTime: new Date(Date.now() - 30 * 1000).toISOString(),
|
||||
isInArea: true,
|
||||
areaId: 101,
|
||||
areaName: 'A区洗手间',
|
||||
@@ -1183,37 +1182,15 @@ onUnmounted(stopPolling);
|
||||
</div>
|
||||
</div>
|
||||
<!-- 信号 -->
|
||||
<div class="badge-row">
|
||||
<IconifyIcon
|
||||
icon="solar:wifi-router-bold-duotone"
|
||||
class="text-blue-500"
|
||||
/>
|
||||
<span class="badge-row-label">信号</span>
|
||||
<div
|
||||
v-if="badgeStatus.rssi != null"
|
||||
class="badge-row-value signal-strength"
|
||||
>
|
||||
<div
|
||||
v-for="i in 4"
|
||||
:key="i"
|
||||
class="signal-bar"
|
||||
:class="{
|
||||
active: badgeStatus.rssi > -70 + (i - 1) * 15,
|
||||
}"
|
||||
></div>
|
||||
<span class="signal-value"> {{ badgeStatus.rssi }} dBm </span>
|
||||
</div>
|
||||
<span v-else class="text-xs text-gray-400">未知</span>
|
||||
</div>
|
||||
<!-- 心跳 -->
|
||||
<!-- 上线时间 -->
|
||||
<div class="badge-row">
|
||||
<IconifyIcon
|
||||
icon="solar:pulse-2-bold-duotone"
|
||||
class="text-green-500"
|
||||
/>
|
||||
<span class="badge-row-label">心跳</span>
|
||||
<span class="badge-row-label">上线</span>
|
||||
<span class="badge-row-value text-sm">
|
||||
{{ formatRelativeTime(badgeStatus.lastHeartbeatTime) }}
|
||||
{{ formatRelativeTime(badgeStatus.onlineTime) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user