Browse Source

去掉 Model 全部换成 R. 前端 success==false 时显示异常原因

master
修宁 6 months ago
parent
commit
fbbab2dfe9
  1. 15
      src/config.ts
  2. 13
      src/core/manager/EnvManager.ts
  3. 44
      src/core/script/RCSScript.ts
  4. 11
      src/types/RCS.d.ts

15
src/config.ts

@ -24,7 +24,20 @@ function globalConfig() {
// 全局拦截配置 // 全局拦截配置
axiosInstance.interceptors.response.clear(); axiosInstance.interceptors.response.clear();
axiosInstance.interceptors.response.use( axiosInstance.interceptors.response.use(
response => response, (response) => {
const data = response.data;
if (data && data.success === false) {
// 显示错误对话框
system.showErrorDialog(data.failMessage || '系统异常');
// 返回一个被拒绝的 Promise,这样后续 .then() 不会执行,进入 .catch()
return Promise.reject(response);
}
// 正常情况,继续传递数据
return response;
},
(error: any) => { (error: any) => {
const { response } = error; const { response } = error;
const err: AxiosInterceptorError = { const err: AxiosInterceptorError = {

13
src/core/manager/EnvManager.ts

@ -4,8 +4,8 @@ import mqtt, { type IConnackPacket, type IPublishPacket } from 'mqtt'
import type { ErrorWithReasonCode } from 'mqtt/src/lib/shared.ts' import type { ErrorWithReasonCode } from 'mqtt/src/lib/shared.ts'
import type Cl23dObject from '@/modules/cl2/Cl23dObject.ts' import type Cl23dObject from '@/modules/cl2/Cl23dObject.ts'
import { Request } from '@ease-forge/shared' import { Request } from '@ease-forge/shared'
import AmrMessageManager from "@/core/manager/amr/AmrMessageManager"; import AmrMessageManager from '@/core/manager/amr/AmrMessageManager'
import {AmrMsg} from "@/core/manager/amr/AmrMessageDefine"; import { AmrMsg } from '@/core/manager/amr/AmrMessageDefine'
export default class EnvManager { export default class EnvManager {
private viewport: Viewport private viewport: Viewport
@ -99,7 +99,7 @@ export default class EnvManager {
onMqttMessage = (topic: string, payload: Buffer, packet: IPublishPacket) => { onMqttMessage = (topic: string, payload: Buffer, packet: IPublishPacket) => {
console.log(`[${topic}]-> ${payload.toString()}`) console.log(`[${topic}]-> ${payload.toString()}`)
if (topic.startsWith("/wcs_server/")) { if (topic.startsWith('/wcs_server/')) {
const message: AmrMsg<any> = JSON.parse(payload.toString()) const message: AmrMsg<any> = JSON.parse(payload.toString())
this.amrMessageManager.handleMessage(topic, message) this.amrMessageManager.handleMessage(topic, message)
} else { } else {
@ -143,12 +143,13 @@ export default class EnvManager {
return return
} }
this.stop() await this.stop()
system.showLoading() system.showLoading()
worldModel.state.runState.isLoading = true worldModel.state.runState.isLoading = true
worldModel.state.runState.currentEnv = Object.freeze(env) worldModel.state.runState.currentEnv = Object.freeze(env)
try { try {
await RCS.projectStart()
await this.loadExecutors() await this.loadExecutors()
await this.loadInv() await this.loadInv()
@ -177,10 +178,8 @@ export default class EnvManager {
async stop() { async stop() {
system.showLoading() system.showLoading()
try { try {
if (worldModel.state.runState.isRunning) { await RCS.projectStop()
worldModel.state.runState.isRunning = false worldModel.state.runState.isRunning = false
}
worldModel.state.runState.currentEnv = null
if (this.client) { if (this.client) {
this.client.removeAllListeners() this.client.removeAllListeners()
this.client.end() this.client.end()

44
src/core/script/RCSScript.ts

@ -9,15 +9,33 @@ export default class RCSScript implements RCS {
this.viewport = viewport this.viewport = viewport
} }
projectStart(): Promise<ServerResponse<boolean>> {
if (!worldModel.state.project_uuid || !worldModel.state.runState.currentEnvId) {
return Promise.reject(new Error('Project UUID or Environment ID is not set.'))
}
return Request.request.post('/api/workbench/RcsController@projectStart', {
projectUUID: worldModel.state.project_uuid,
envId: worldModel.state.runState.currentEnvId
})
}
projectStop(): Promise<ServerResponse<boolean>> {
if (!worldModel.state.project_uuid || !worldModel.state.runState.currentEnvId) {
return Promise.reject(new Error('Project UUID or Environment ID is not set.'))
}
return Request.request.post('/api/workbench/RcsController@projectStop', {
projectUUID: worldModel.state.project_uuid,
envId: worldModel.state.runState.currentEnvId
})
}
agvMove(agvId: string, targetWayPointId: string, targetDirection: '' | LLCDirection = '', option: AgvOptions = {}): Promise<ServerResponse<boolean>> { agvMove(agvId: string, targetWayPointId: string, targetDirection: '' | LLCDirection = '', option: AgvOptions = {}): Promise<ServerResponse<boolean>> {
return Request.request.post('/api/workbench/RcsController@agvMove', { return Request.request.post('/api/workbench/RcsController@agvMove', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, envId: worldModel.state.runState.currentEnvId
envId: 1,
agvId,
targetWayPointId,
targetDirection,
option
}) })
} }
@ -25,7 +43,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@waitTaskFinish', { return Request.request.post('/api/workbench/RcsController@waitTaskFinish', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId, agvId,
option option
}) })
@ -35,7 +53,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvCarry', { return Request.request.post('/api/workbench/RcsController@agvCarry', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId, agvId,
fromStoreLoc, fromStoreLoc,
targetStoreLoc, targetStoreLoc,
@ -47,7 +65,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvLoad', { return Request.request.post('/api/workbench/RcsController@agvLoad', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId, agvId,
targetStoreLoc, targetStoreLoc,
option option
@ -58,7 +76,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvUnload', { return Request.request.post('/api/workbench/RcsController@agvUnload', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId, agvId,
targetStoreLoc, targetStoreLoc,
option option
@ -69,7 +87,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvInfo', { return Request.request.post('/api/workbench/RcsController@agvInfo', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId: agvId, agvId: agvId,
option option
}) })
@ -79,7 +97,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@cancelTasks', { return Request.request.post('/api/workbench/RcsController@cancelTasks', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId: agvId, agvId: agvId,
option option
}) })
@ -89,7 +107,7 @@ export default class RCSScript implements RCS {
return Request.request.post('/api/workbench/RcsController@agvToCharger', { return Request.request.post('/api/workbench/RcsController@agvToCharger', {
projectUUID: worldModel.state.project_uuid, projectUUID: worldModel.state.project_uuid,
catalogCode: worldModel.state.catalogCode, catalogCode: worldModel.state.catalogCode,
envId: 1, envId: worldModel.state.runState.currentEnvId,
agvId: agvId, agvId: agvId,
chargerId, chargerId,
option option

11
src/types/RCS.d.ts

@ -2,6 +2,17 @@
* RCS API * RCS API
*/ */
declare interface RCS { declare interface RCS {
/**
*
*/
projectStart(): Promise<ServerResponse<boolean>>
/**
*
*/
projectStop(): Promise<ServerResponse<boolean>>
/** /**
* *
* @param agvId * @param agvId

Loading…
Cancel
Save