diff --git a/src/core/script/LCCScript.ts b/src/core/script/LCCScript.ts index 6d3453f..bc53c17 100644 --- a/src/core/script/LCCScript.ts +++ b/src/core/script/LCCScript.ts @@ -92,17 +92,34 @@ export default class LCCScript implements LCC { }) } - saveAndSyncScripts(scriptList: { name: string; content: string }[]): Promise> { + /** + * 保存当前项目所有脚本 + * @param scriptList + */ + saveScripts(scriptList: { name: string, content: string }[]): Promise>{ if (!worldModel.state.project_uuid) { - return Promise.reject(new Error('Project UUID or Environment ID is not set.')) + return Promise.reject(new Error('Project UUID is not set.')) } - return Request.request.post('/api/workbench/LccController@saveAndSyncScripts', { + return Request.request.post('/api/workbench/LccController@saveScripts', { projectUUID: worldModel.state.project_uuid, scriptList: scriptList }) } + /** + * 同步当前项目所有脚本 + */ + syncScripts(): Promise>{ + if (!worldModel.state.project_uuid) { + return Promise.reject(new Error('Project UUID is not set.')) + } + + return Request.request.post('/api/workbench/LccController@syncScripts', { + projectUUID: worldModel.state.project_uuid, + }) + } + queryDeviceInfoList(): Promise> { return Request.request.post('/api/workbench/LccController@queryDeviceInfoList', { projectUUID: worldModel.state.project_uuid, @@ -110,53 +127,6 @@ export default class LCCScript implements LCC { }) } - // // 从后台读取所有车 - // async loadExecutor(): Promise { - // const res = await Request.request.post('/api/workbench/LccController@loadExecutor', { - // projectUuid: worldModel.state.project_uuid, - // envId: worldModel.state.runState.currentEnvId - // }) - // - // for (const row of res.data) { - // const executor_id = row.executor_id - // const payload = JSON.parse(row.virtual_executor_payload) - // // 车所在的标记位置,及方向 11_4:RIGHT - // const [wayPointId, direction] = _.split(row.virtual_location_at, ':') - // - // if (window['Model']) { - // const point = Model.find(wayPointId) - // if (!point) { - // console.error(`Waypoint with ID ${wayPointId} not found for executor ${executor_id}.`) - // continue - // } - // - // const item = _.cloneDeep(payload) - // item.id = executor_id - // item.tf[0] = _.cloneDeep(point.tf[0]) - // switch (_.toLower(direction)) { - // // right=0/left=180/up=90/down=-90 - // case 'right': - // item.tf[1][1] = 0 // 右侧 - // break - // case 'left': - // item.tf[1][1] = 180 // 左侧 - // break - // case 'down': - // item.tf[1][1] = -90 // 下方 - // break - // case 'up': - // item.tf[1][1] = 90 // 上方 - // break - // } - // if (row.virtual_floor_code === worldModel.state.catalogCode) { - // Model.createExecutor(item) - // } - // } - // } - // - // return res.data - // } - /** * 脚本打印日志 * @param from 系统(Worker)来源 diff --git a/src/editor/widgets/script/ScriptView.vue b/src/editor/widgets/script/ScriptView.vue index 70492f7..79e2c4e 100644 --- a/src/editor/widgets/script/ScriptView.vue +++ b/src/editor/widgets/script/ScriptView.vue @@ -5,13 +5,17 @@ 脚本编辑 - 保存并同步 + + 保存 + + 拉取 + 添加 - 删除 @@ -141,12 +145,22 @@ export default { this.loadFromLocal() }, methods: { - async saveAndSyncScripts() { + async saveScripts() { + system.showLoading() + try { + await LCC.saveScripts(this.scriptList) + system.msg('脚本已保存') + + } finally { + system.clearLoading() + } + }, + async syncScripts() { // 保存当前脚本索引 const originName = this.scriptList[this.scriptIndex]?.name system.showLoading() try { - const serverResponse = await LCC.saveAndSyncScripts(this.scriptList) + const serverResponse = await LCC.syncScripts() if (serverResponse.success) { this.scriptList = serverResponse.data || [] @@ -162,7 +176,7 @@ export default { this.scriptIndex = 0 } - system.msg('脚本已保存并同步到服务器') + system.msg('脚本已同步') } finally { system.clearLoading() @@ -180,15 +194,16 @@ export default { }) // this.viewport.modelManager.runScript(script) }, - localRun(script) { - this.viewport.modelManager.executestring(script.content) - }, + /** * 停止脚本 * @type {(script: CustomScript) => void} */ stopScript(script) { - this.viewport.modelManager.stopScript(script) + scriptRunner.stopScript(script) + }, + localRun(script) { + this.viewport.modelManager.executestring(script.content) }, setCodeDropper() { CodeDropper.start(this.viewport, (item) => { diff --git a/src/types/LCC.d.ts b/src/types/LCC.d.ts index af23173..1340875 100644 --- a/src/types/LCC.d.ts +++ b/src/types/LCC.d.ts @@ -39,16 +39,15 @@ declare interface LCC { deleteInv(lpn: string): Promise> /** - * 获取所有车,并放到 Model 上 + * 保存当前项目所有脚本 + * @param scriptList */ - - // loadExecutor(): Promise + saveScripts(scriptList: { name: string, content: string }[]): Promise> /** - * 保存并同步当前项目所有脚本 - * @param scriptList + * 同步当前项目所有脚本 */ - saveAndSyncScripts(scriptList: { name: string, content: string }[]): Promise> + syncScripts(): Promise> /** * 获取所有设备状态