feat: 新版webui

This commit is contained in:
bietiaop
2025-01-24 21:13:44 +08:00
parent afc9c7ed8d
commit 31c0c1f4bc
201 changed files with 18454 additions and 3422 deletions

View File

@@ -0,0 +1,76 @@
import { serverRequest } from '@/utils/request'
import { SelfInfo } from '@/types/user'
export default class QQManager {
public static async getOB11Config() {
const data = await serverRequest.post<ServerResponse<OneBotConfig>>(
'/OB11Config/GetConfig'
)
return data.data.data
}
public static async setOB11Config(config: OneBotConfig) {
await serverRequest.post<ServerResponse<null>>('/OB11Config/SetConfig', {
config: JSON.stringify(config)
})
}
public static async checkQQLoginStatus() {
const data = await serverRequest.post<
ServerResponse<{
isLogin: string
qrcodeurl: string
}>
>('/QQLogin/CheckLoginStatus')
return data.data.data
}
public static async checkQQLoginStatusWithQrcode() {
const data = await serverRequest.post<
ServerResponse<{ qrcodeurl: string; isLogin: string }>
>('/QQLogin/CheckLoginStatus')
return data.data.data
}
public static async getQQLoginQrcode() {
const data = await serverRequest.post<
ServerResponse<{
qrcode: string
}>
>('/QQLogin/GetQQLoginQrcode')
return data.data.data.qrcode
}
public static async getQQQuickLoginList() {
const data = await serverRequest.post<ServerResponse<string[]>>(
'/QQLogin/GetQuickLoginList'
)
return data.data.data
}
public static async getQQQuickLoginListNew() {
const data = await serverRequest.post<ServerResponse<LoginListItem[]>>(
'/QQLogin/GetQuickLoginListNew'
)
return data.data.data
}
public static async setQuickLogin(uin: string) {
await serverRequest.post<ServerResponse<null>>('/QQLogin/SetQuickLogin', {
uin
})
}
public static async getQQLoginInfo() {
const data = await serverRequest.post<ServerResponse<SelfInfo>>(
'/QQLogin/GetQQLoginInfo'
)
return data.data.data
}
}

View File

@@ -0,0 +1,117 @@
import { EventSourcePolyfill } from 'event-source-polyfill'
import { LogLevel } from '@/const/enum'
import { serverRequest } from '@/utils/request'
export interface Log {
level: LogLevel
message: string
}
export default class WebUIManager {
public static async checkWebUiLogined() {
const { data } =
await serverRequest.post<ServerResponse<boolean>>('/auth/check')
return data.data
}
public static async loginWithToken(token: string) {
const { data } = await serverRequest.post<ServerResponse<AuthResponse>>(
'/auth/login',
{ token }
)
return data.data.Credential
}
public static async getPackageInfo() {
const { data } =
await serverRequest.get<ServerResponse<PackageInfo>>('/base/PackageInfo')
return data.data
}
public static async getQQVersion() {
const { data } =
await serverRequest.get<ServerResponse<string>>('/base/QQVersion')
return data.data
}
public static async getLogList() {
const { data } =
await serverRequest.get<ServerResponse<string[]>>('/Log/GetLogList')
return data.data
}
public static async getLogContent(logName: string) {
const { data } = await serverRequest.get<ServerResponse<string>>(
`/Log/GetLog?id=${logName}`
)
return data.data
}
public static getRealTimeLogs(writer: (data: Log[]) => void) {
const token = localStorage.getItem('token')
if (!token) {
throw new Error('未登录')
}
const _token = JSON.parse(token)
const eventSource = new EventSourcePolyfill('/api/Log/GetLogRealTime', {
headers: {
Authorization: `Bearer ${_token}`,
Accept: 'text/event-stream'
},
withCredentials: true
})
eventSource.onmessage = (event) => {
try {
const data = JSON.parse(event.data)
data.message = data.message.replace(/\n/g, '\r\n')
writer([data])
} catch (error) {
console.error(error)
}
}
eventSource.onerror = (error) => {
console.error('SSE连接出错:', error)
eventSource.close()
}
return eventSource
}
public static getSystemStatus(writer: (data: SystemStatus) => void) {
const token = localStorage.getItem('token')
if (!token) {
throw new Error('未登录')
}
const _token = JSON.parse(token)
const eventSource = new EventSourcePolyfill(
'/api/base/GetSysStatusRealTime',
{
headers: {
Authorization: `Bearer ${_token}`,
Accept: 'text/event-stream'
},
withCredentials: true
}
)
eventSource.onmessage = (event) => {
try {
const data = JSON.parse(event.data) as SystemStatus
writer(data)
} catch (error) {
console.error(error)
}
}
eventSource.onerror = (error) => {
console.error('SSE连接出错:', error)
eventSource.close()
}
return eventSource
}
}