fix(push): 修复推送平台配置选择器及在线时间显示

- PushConfigView: 新增平台选择器(Android/iOS/HarmonyOS),加载时固定默认 ANDROID,
  避免因激活服务平台顺序不同而静默保存到错误平台
- PushManagementView: 最后在线为空时降级显示设备最后登录时间,并加注释区分 IM 在线 vs 设备登录

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-26 14:12:03 +08:00
父节点 ceef2750c4
当前提交 efa77abce9
共有 2 个文件被更改,包括 22 次插入6 次删除

查看文件

@ -21,6 +21,18 @@
style="margin-bottom:16px"
/>
<el-card style="margin-bottom:16px">
<template #header>目标平台</template>
<el-radio-group v-model="selectedPlatform" @change="applySelectedPlatformConfig">
<el-radio-button value="ANDROID">Android</el-radio-button>
<el-radio-button value="IOS">iOS</el-radio-button>
<el-radio-button value="HARMONY">HarmonyOS</el-radio-button>
</el-radio-group>
<el-text type="info" style="margin-left:16px;font-size:12px">
当前编辑{{ selectedPlatform }} 平台的推送配置保存时仅更新该平台
</el-text>
</el-card>
<el-card style="margin-bottom:16px">
<template #header>厂商凭据</template>
<div class="vendor-grid">
@ -496,11 +508,8 @@ async function loadData() {
])
app.value = appRes.data.data
services.value = svcRes.data.data
const activePushService = services.value.find(s => s.serviceType === 'PUSH' && s.enabled)
?? services.value.find(s => s.serviceType === 'PUSH')
if (activePushService) {
selectedPlatform.value = activePushService.platform as 'ANDROID' | 'IOS' | 'HARMONY'
}
// Always default to ANDROID on load; user can switch via the platform selector
selectedPlatform.value = 'ANDROID'
applySelectedPlatformConfig()
} finally {
loading.value = false

查看文件

@ -52,7 +52,14 @@
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="最后在线">
{{ userStatus.lastSeenAt ? formatTime(userStatus.lastSeenAt) : '-' }}
<span v-if="userStatus.lastSeenAt">{{ formatTime(userStatus.lastSeenAt) }}</span>
<span v-else-if="userStatus.devices[0]?.lastLoginAt" style="color:#909399">
{{ formatTime(userStatus.devices[0].lastLoginAt) }}
<el-tooltip content="该用户未连接 IM,显示的是设备最后登录时间" placement="top">
<span style="font-size:11px;cursor:help">设备登录</span>
</el-tooltip>
</span>
<span v-else>-</span>
</el-descriptions-item>
<el-descriptions-item label="可推送设备数">
{{ userStatus.deliverableDevices.length }}