feat(client): 实现自定义开屏图片功能
- 在 ClientAccount 实体中新增 splashImage 字段用于存储开屏图片URL - 在 ClientAccountController 中添加上传、获取和删除开屏图片的接口 - 集成七牛云存储实现图片上传功能,支持图片格式和大小校验 - 使用 Redis 缓存开屏图片URL,提升访问性能 - 在客户端登录成功后异步加载并保存开屏图片配置 - 新增 splashApi 模块封装开屏图片相关HTTP请求- 在主进程中实现开屏图片配置的持久化存储和读取 - 在设置页面中增加开屏图片管理界面,支持上传、预览和删除操作 - 修改 splash.html 支持动态加载自定义开屏图片 - 调整 CSP 策略允许加载本地和HTTPS图片资源
This commit is contained in:
@@ -4,6 +4,7 @@ import { ElMessage } from 'element-plus'
|
||||
import { User } from '@element-plus/icons-vue'
|
||||
import { authApi } from '../../api/auth'
|
||||
import { getOrCreateDeviceId } from '../../utils/deviceId'
|
||||
import { splashApi } from '../../api/splash'
|
||||
|
||||
interface Props {
|
||||
modelValue: boolean
|
||||
@@ -41,6 +42,9 @@ async function handleAuth() {
|
||||
clientId: deviceId
|
||||
})
|
||||
|
||||
// 保存开屏图片配置(不阻塞登录)
|
||||
saveSplashConfigInBackground(authForm.value.username)
|
||||
|
||||
emit('loginSuccess', {
|
||||
token: loginRes.data.accessToken || loginRes.data.token,
|
||||
permissions: loginRes.data.permissions,
|
||||
@@ -75,6 +79,17 @@ function resetForm() {
|
||||
function showRegister() {
|
||||
emit('showRegister')
|
||||
}
|
||||
|
||||
// 保存开屏图片配置
|
||||
async function saveSplashConfigInBackground(username: string) {
|
||||
try {
|
||||
const res = await splashApi.getSplashImage(username)
|
||||
const url = res?.data?.data?.url || res?.data?.url || ''
|
||||
await (window as any).electronAPI.saveSplashConfig(username, url)
|
||||
} catch (error) {
|
||||
console.error('[开屏图片] 保存配置失败:', error)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
Reference in New Issue
Block a user