1
wanshenmean
2026-03-16 689dd676fc0efb31236d989334122590b7198d61
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import axios from 'axios'
import type {
  InstanceListItem,
  InstanceState,
  InstanceConfig
} from '../types'
 
const api = axios.create({
  baseURL: import.meta.env.VITE_API_BASE_URL || '/api',
  headers: {
    'Content-Type': 'application/json'
  }
})
 
// 获取所有实例
export async function getAllInstances(): Promise<InstanceListItem[]> {
  const response = await api.get<InstanceListItem[]>('/SimulatorInstances/GetAll')
  return response.data
}
 
// 获取指定实例状态
export async function getInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.get<InstanceState>('/SimulatorInstances/GetInstance', {
      params: { id }
    })
    return response.data
  } catch (error) {
    if (axios.isAxiosError(error) && error.response?.status === 404) {
      return null
    }
    throw error
  }
}
 
// 获取实例配置
export async function getInstanceConfig(id: string): Promise<InstanceConfig | null> {
  try {
    const response = await api.get<InstanceConfig>('/SimulatorInstances/GetInstanceConfig', {
      params: { id }
    })
    return response.data
  } catch (error) {
    if (axios.isAxiosError(error) && error.response?.status === 404) {
      return null
    }
    throw error
  }
}
 
// 创建实例
export async function createInstance(config: InstanceConfig): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>('/SimulatorInstances/Create',  config )
    return response.data
  } catch (error) {
    console.error('创建实例失败:', error)
    return null
  }
}
 
// 更新实例
export async function updateInstance(id: string, config: InstanceConfig): Promise<InstanceState | null> {
  try {
    const response = await api.put<InstanceState>('/SimulatorInstances/Update', config, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('更新实例失败:', error)
    return null
  }
}
 
// 删除实例
export async function deleteInstance(id: string, deleteConfig: boolean = true): Promise<boolean> {
  try {
    await api.delete('/SimulatorInstances/Delete', {
      params: { id, deleteConfig }
    })
    return true
  } catch (error) {
    console.error('删除实例失败:', error)
    return false
  }
}
 
// 启动实例
export async function startInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>('/SimulatorInstances/start', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('启动实例失败:', error)
    return null
  }
}
 
// 停止实例
export async function stopInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>('/SimulatorInstances/stop', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('停止实例失败:', error)
    return null
  }
}
 
// 重启实例
export async function restartInstance(id: string): Promise<InstanceState | null> {
  try {
    const response = await api.post<InstanceState>('/SimulatorInstances/restart', null, {
      params: { id }
    })
    return response.data
  } catch (error) {
    console.error('重启实例失败:', error)
    return null
  }
}
 
export default api