mirror of
https://github.com/foxhui/WebAI2API.git
synced 2026-06-16 21:03:59 +08:00
113 lines
3.6 KiB
JavaScript
113 lines
3.6 KiB
JavaScript
import { defineStore } from 'pinia';
|
|
import { message } from 'ant-design-vue';
|
|
import { useSettingsStore } from './settings';
|
|
|
|
export const useSystemStore = defineStore('system', {
|
|
state: () => ({
|
|
// 系统状态
|
|
status: '',
|
|
version: '1.0.0',
|
|
systemVersion: '',
|
|
uptime: 0,
|
|
cpuUsage: 0,
|
|
memoryUsage: {
|
|
total: 0,
|
|
used: 0,
|
|
free: 0
|
|
},
|
|
|
|
// 仪表盘统计信息
|
|
stats: {
|
|
totalRequests: 0,
|
|
successRate: 0,
|
|
activeWorkers: 0,
|
|
totalWorkers: 0,
|
|
avgResponseTime: 0
|
|
}
|
|
}),
|
|
|
|
actions: {
|
|
// 获取系统状态
|
|
async fetchStatus() {
|
|
const settingsStore = useSettingsStore();
|
|
try {
|
|
const response = await fetch('/admin/status', {
|
|
headers: settingsStore.getHeaders()
|
|
});
|
|
// 如果返回401,状态更新将失败,由App.vue的身份验证检查处理
|
|
if (response.ok) {
|
|
const data = await response.json();
|
|
this.$patch(data);
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to fetch system status:', error);
|
|
}
|
|
},
|
|
|
|
// 获取仪表盘统计信息
|
|
async fetchStats() {
|
|
const settingsStore = useSettingsStore();
|
|
try {
|
|
const response = await fetch('/admin/stats', {
|
|
headers: settingsStore.getHeaders()
|
|
});
|
|
if (response.ok) {
|
|
const data = await response.json();
|
|
this.stats = data;
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to fetch stats:', error);
|
|
}
|
|
},
|
|
|
|
// 重启服务
|
|
async restartService(options = {}) {
|
|
const settingsStore = useSettingsStore();
|
|
const { loginMode, workerName } = options;
|
|
try {
|
|
const response = await fetch('/admin/restart', {
|
|
method: 'POST',
|
|
headers: {
|
|
...settingsStore.getHeaders(),
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({ loginMode, workerName })
|
|
});
|
|
const data = await response.json();
|
|
if (data.success) {
|
|
message.success(data.message || '服务重启中...');
|
|
return true;
|
|
} else {
|
|
message.error('重启失败');
|
|
return false;
|
|
}
|
|
} catch (error) {
|
|
message.error('重启请求失败');
|
|
return false;
|
|
}
|
|
},
|
|
|
|
// 停止服务
|
|
async stopService() {
|
|
const settingsStore = useSettingsStore();
|
|
try {
|
|
const response = await fetch('/admin/stop', {
|
|
method: 'POST',
|
|
headers: settingsStore.getHeaders()
|
|
});
|
|
const data = await response.json();
|
|
if (data.success) {
|
|
message.success(data.message || '服务停止中...');
|
|
return true;
|
|
} else {
|
|
message.error('停止失败');
|
|
return false;
|
|
}
|
|
} catch (error) {
|
|
message.error('停止请求失败');
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
});
|