AgentApi.ts 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. import r from '@/utils/request'
  2. import { getRequestId } from '@/utils/misc'
  3. export interface StandardResponse {
  4. code: number
  5. message: string
  6. meta: any
  7. records: any
  8. }
  9. const URL_GET_JOB = '/api/agent/job'
  10. const URL_GET_QUEUE = '/api/agent/queue'
  11. const URL_GET_FILE = '/api/file/browse'
  12. const URL_GET_USER = '/api/user/session'
  13. const URL_PUT_USER = '/api/user/signin'
  14. const SUCCESS = 200
  15. const FAILED = 500
  16. const PROCESSING = 202
  17. interface RequestActionParams { // 定义Job接口
  18. name: string
  19. value: any
  20. }
  21. export interface RequestBody { // 定义Job接口
  22. id: string
  23. action: string
  24. params: Array<RequestActionParams>
  25. }
  26. export interface JobData {
  27. id: number
  28. job_category: string
  29. job_name: string
  30. job_details: string
  31. job_creator: string
  32. job_status: string
  33. status: number
  34. executor: string
  35. created: Date
  36. updated: Date
  37. }
  38. export const JobSatus = [
  39. //primary success info warning danger
  40. { "label": "无效", "value": -1, "tag": "danger", "could_be_set": false },
  41. { "label": "准备中", "value": 0, "tag": "primary", "could_be_set": true },
  42. { "label": "运行中", "value": 1, "tag": "success", "could_be_set": false },
  43. { "label": "完成", "value": 2, "tag": "success", "could_be_set": false },
  44. { "label": "失败", "value": 3, "tag": "warning", "could_be_set": false },
  45. { "label": "取消", "value": 4, "tag": "info", "could_be_set": true },
  46. { "label": "等待", "value": 5, "tag": "info", "could_be_set": false },
  47. { "label": "暂停", "value": 6, "tag": "info", "could_be_set": true },
  48. { "label": "恢复", "value": 7, "tag": "info", "could_be_set": false },
  49. { "label": "重启", "value": 8, "tag": "info", "could_be_set": false },
  50. { "label": "跳过", "value": 9, "tag": "info", "could_be_set": true },
  51. { "label": "重试", "value": 10, "tag": "warning", "could_be_set": true },
  52. ]
  53. export function getJobStatus(status: number): string {
  54. var result = JobSatus.find(item => item.value == status)
  55. if (result) {
  56. return result.label
  57. } else {
  58. return '未知'
  59. }
  60. }
  61. export function getJobStatusTag(status: number): string {
  62. var result = JobSatus.find(item => item.value == status)
  63. if (result) {
  64. return result.tag
  65. } else {
  66. return 'primary'
  67. }
  68. }
  69. export function serverRequest(url: string, body: RequestBody): Promise<StandardResponse> {
  70. return new Promise((resolve, reject) => {
  71. r.request<StandardResponse>({ url: url, method: 'POST', data: body }).then(result => {
  72. var response_data: StandardResponse = result as StandardResponse
  73. if (response_data.code == SUCCESS) {
  74. resolve(response_data)
  75. } else {
  76. reject(response_data)
  77. }
  78. })
  79. })
  80. }
  81. export function serverGetRequest(url: string,): Promise<StandardResponse> {
  82. return new Promise((resolve, reject) => {
  83. r.request<StandardResponse>({ url: url, method: 'GET' }).then(result => {
  84. var response_data: StandardResponse = result as StandardResponse
  85. if (response_data.code == SUCCESS) {
  86. resolve(response_data)
  87. } else {
  88. reject(response_data)
  89. }
  90. })
  91. })
  92. }
  93. export function getJob(job_id: number): Promise<StandardResponse> {
  94. var data: RequestBody = {
  95. id: getRequestId(),
  96. action: 'get_job',
  97. params: [
  98. { name: 'job_id', value: job_id },
  99. ]
  100. }
  101. return serverRequest(URL_GET_JOB, data)
  102. }
  103. export function getJobs(categroy: string, name: string, page: number = 1, page_size: number = 10): Promise<StandardResponse> {
  104. var data: RequestBody = {
  105. id: getRequestId(),
  106. action: 'get_jobs',
  107. params: [
  108. { name: 'queue_category', value: categroy },
  109. { name: 'queue_name', value: name },
  110. { name: 'page', value: page },
  111. { name: 'page_size', value: page_size },
  112. ]
  113. }
  114. return serverRequest(URL_GET_QUEUE, data)
  115. }
  116. export function getQueue(categroy: string, name: string): Promise<StandardResponse> {
  117. var data: RequestBody = {
  118. id: getRequestId(),
  119. action: 'get_queue',
  120. params: [
  121. { name: 'queue_category', value: categroy },
  122. { name: 'queue_name', value: name },
  123. ]
  124. }
  125. return serverRequest(URL_GET_QUEUE, data)
  126. }
  127. export function createJob(params: any): Promise<StandardResponse> {
  128. // console.log(params)
  129. var data: RequestBody = {
  130. id: getRequestId(),
  131. action: 'create_job',
  132. params: [
  133. { name: 'job_category', value: params['job_category'] },
  134. { name: 'job_name', value: params['job_name'] },
  135. { name: 'job_details', value: params['job_details'] },
  136. { name: 'job_creator', value: params['job_creator'] },
  137. { name: 'queue_category', value: params['queue_category'] },
  138. { name: 'queue_name', value: params['queue_name'] },
  139. ]
  140. }
  141. return serverRequest(URL_GET_JOB, data)
  142. }
  143. export function deleteJob(params: any): Promise<StandardResponse> {
  144. // console.log(params)
  145. var data: RequestBody = {
  146. id: getRequestId(),
  147. action: 'delete_job',
  148. params: [
  149. { name: 'job_id', value: params['job_id'] },
  150. ]
  151. }
  152. return serverRequest(URL_GET_JOB, data)
  153. }
  154. export function updateJobStatus(job: JobData): Promise<StandardResponse> {
  155. var data: RequestBody = {
  156. id: getRequestId(),
  157. action: 'update_job_status',
  158. params: [
  159. { name: 'job_id', value: job.id },
  160. { name: 'status', value: job.status },
  161. ]
  162. }
  163. return serverRequest(URL_GET_JOB, data)
  164. }
  165. export function updateJob(job: JobData): Promise<StandardResponse> {
  166. var data: RequestBody = {
  167. id: getRequestId(),
  168. action: 'update_job',
  169. params: [
  170. { name: 'job_id', value: job.id },
  171. { name: 'job_category', value: job.job_category },
  172. { name: 'job_name', value: job.job_name },
  173. { name: 'job_details', value: job.job_details },
  174. { name: 'job_creator', value: job.job_creator },
  175. { name: 'status', value: job.status },
  176. ]
  177. }
  178. return serverRequest(URL_GET_JOB, data)
  179. }
  180. export function putQueueJob(params: any): Promise<StandardResponse> {
  181. // console.log(params)
  182. var data: RequestBody = {
  183. id: getRequestId(),
  184. action: 'put_job',
  185. params: [
  186. { name: 'queue_category', value: params['queue_category'] },
  187. { name: 'queue_name', value: params['queue_name'] },
  188. { name: 'job_id', value: params['job_id'] },
  189. ]
  190. }
  191. return serverRequest(URL_GET_QUEUE, data)
  192. }
  193. export function browseJobFile(params: any): Promise<StandardResponse> {
  194. // console.log(params)
  195. var data: RequestBody = {
  196. id: getRequestId(),
  197. action: 'browse_job_file',
  198. params: [
  199. { name: 'job_id', value: params['job_id'] },
  200. { name: 'path', value: params['path'] },
  201. ]
  202. }
  203. return serverRequest(URL_GET_FILE, data)
  204. }
  205. export function userSignin(params: any): Promise<StandardResponse> {
  206. // console.log(params)
  207. var data: RequestBody = {
  208. id: getRequestId(),
  209. action: 'signin',
  210. params: [
  211. { name: 'username', value: params['username'] },
  212. { name: 'password', value: params['password'] },
  213. { name: 'email', value: params['email'] },
  214. { name: 'full_name', value: params['full_name'] },
  215. ]
  216. }
  217. return serverRequest(URL_PUT_USER, data)
  218. }
  219. export function userLogin(params: any): Promise<StandardResponse> {
  220. // console.log(params)
  221. var data: RequestBody = {
  222. id: getRequestId(),
  223. action: 'login',
  224. params: [
  225. { name: 'username', value: params['username'] },
  226. { name: 'password', value: params['password'] },
  227. ]
  228. }
  229. return serverRequest(URL_GET_USER, data)
  230. }
  231. export function userLogout(params: any): Promise<StandardResponse> {
  232. // console.log('logout')
  233. var data: RequestBody = {
  234. id: getRequestId(),
  235. action: 'logout',
  236. params: [{ name: 'session_id', value: params['username'] }]
  237. }
  238. return serverRequest(URL_GET_USER, data)
  239. }
  240. export function getQueueSummary(params: any): Promise<StandardResponse> {
  241. // console.log(params)
  242. var data: RequestBody = {
  243. id: getRequestId(),
  244. action: 'get_queue_summary',
  245. params: [
  246. ]
  247. }
  248. return serverRequest(URL_GET_QUEUE, data)
  249. }
  250. export function getFileContent(url: string): Promise<StandardResponse> {
  251. return serverGetRequest(url)
  252. }
  253. export function getKnowledgeBase(params: any = { name: "", pageNo: 1, pageSize: 10 }): Promise<StandardResponse> {
  254. return serverGetRequest(`/open-platform/knowledge-base/?name=${params.name}&pageNo=${params.pageNo}&pageSize=${params.pageSize}`)
  255. }
  256. export function getKnowledgeBaseFilesList(params: any): Promise<StandardResponse> {
  257. return serverGetRequest(`/open-platform/knowledge-base/${params.kbId}/files/?file_name=${params.file_name}&pageNo=${params.pageNo}&pageSize=${params.pageSize}`)
  258. }