import { serverRequest } from '@/utils/request'; import { PluginStoreList, PluginStoreItem } from '@/types/plugin-store'; export interface PluginItem { name: string; version: string; description: string; author: string; status: 'active' | 'disabled' | 'stopped'; filename?: string; } export interface PluginListResponse { plugins: PluginItem[]; pluginManagerNotFound: boolean; } export interface ServerResponse { code: number; message: string; data: T; } export default class PluginManager { public static async getPluginList () { const { data } = await serverRequest.get>('/Plugin/List'); return data.data; } public static async reloadPlugin (name: string) { await serverRequest.post>('/Plugin/Reload', { name }); } public static async setPluginStatus (name: string, enable: boolean, filename?: string) { await serverRequest.post>('/Plugin/SetStatus', { name, enable, filename }); } public static async uninstallPlugin (name: string, filename?: string) { await serverRequest.post>('/Plugin/Uninstall', { name, filename }); } // 插件商店相关方法 public static async getPluginStoreList () { const { data } = await serverRequest.get>('/Plugin/Store/List'); return data.data; } public static async getPluginStoreDetail (id: string) { const { data } = await serverRequest.get>(`/Plugin/Store/Detail/${id}`); return data.data; } public static async installPluginFromStore (id: string) { await serverRequest.post>('/Plugin/Store/Install', { id }); } }