feat(push): Token 复制按钮 + romVersion 显示
- PushManagementView: 系统版本列新增 romVersion 子行显示(灰色小字) - Token 预览列新增"复制"按钮,点击后调管理端接口获取完整 token 并复制到剪贴板 - DeviceInfo 接口添加 romVersion 字段 - pushAdminApi 新增 getDeviceToken 方法 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
b94883d6e0
当前提交
6f89da4362
@ -9,6 +9,7 @@ export interface DeviceInfo {
|
|||||||
brand: string | null
|
brand: string | null
|
||||||
model: string | null
|
model: string | null
|
||||||
osVersion: string | null
|
osVersion: string | null
|
||||||
|
romVersion: string | null
|
||||||
appVersion: string | null
|
appVersion: string | null
|
||||||
receivePush: boolean
|
receivePush: boolean
|
||||||
lastLoginAt: string | null
|
lastLoginAt: string | null
|
||||||
@ -95,4 +96,10 @@ export const pushAdminApi = {
|
|||||||
'/push/admin/operation-logs', { params: { appKey, page, size } },
|
'/push/admin/operation-logs', { params: { appKey, page, size } },
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getDeviceToken(appKey: string, deviceId: string) {
|
||||||
|
return client.get<{ data: { token: string } }>(`/push/admin/devices/${deviceId}/token`, {
|
||||||
|
params: { appKey },
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,9 +74,23 @@
|
|||||||
<el-table-column label="平台" prop="platform" width="90" />
|
<el-table-column label="平台" prop="platform" width="90" />
|
||||||
<el-table-column label="品牌" prop="brand" width="80" />
|
<el-table-column label="品牌" prop="brand" width="80" />
|
||||||
<el-table-column label="型号" prop="model" min-width="110" />
|
<el-table-column label="型号" prop="model" min-width="110" />
|
||||||
<el-table-column label="系统版本" prop="osVersion" width="100" />
|
<el-table-column label="系统版本" min-width="120">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div>{{ row.osVersion || '-' }}</div>
|
||||||
|
<div v-if="row.romVersion" style="font-size:11px;color:#909399">{{ row.romVersion }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="App 版本" prop="appVersion" width="90" />
|
<el-table-column label="App 版本" prop="appVersion" width="90" />
|
||||||
<el-table-column label="Token 预览" prop="tokenPreview" min-width="140" />
|
<el-table-column label="Token 预览" min-width="140">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-space>
|
||||||
|
<span>{{ row.tokenPreview }}</span>
|
||||||
|
<el-tooltip content="复制完整 Token" placement="top">
|
||||||
|
<el-button link size="small" @click="copyToken(row)">复制</el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
</el-space>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="接收推送" width="90" align="center">
|
<el-table-column label="接收推送" width="90" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag :type="row.receivePush ? 'success' : 'danger'" size="small">
|
<el-tag :type="row.receivePush ? 'success' : 'danger'" size="small">
|
||||||
@ -290,6 +304,17 @@ async function sendTestPush() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function copyToken(row: { id: string; tokenPreview: string }) {
|
||||||
|
try {
|
||||||
|
const res = await pushAdminApi.getDeviceToken(appKey.value, row.id)
|
||||||
|
await navigator.clipboard.writeText(res.data.data.token)
|
||||||
|
ElMessage.success('Token 已复制')
|
||||||
|
} catch {
|
||||||
|
await navigator.clipboard.writeText(row.tokenPreview)
|
||||||
|
ElMessage.info('已复制 Token 预览')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function loadLogs() {
|
async function loadLogs() {
|
||||||
const uid = logsUserId.value.trim()
|
const uid = logsUserId.value.trim()
|
||||||
if (!uid) return
|
if (!uid) return
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户