From 2af5f043b60c1f7ac38ecccc8f5bf44743134325 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 12 十二月 2025 18:08:00 +0800
Subject: [PATCH] test
---
pages/map/scene.vue | 286 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 164 insertions(+), 122 deletions(-)
diff --git a/pages/map/scene.vue b/pages/map/scene.vue
index 99fd981..c0f2929 100644
--- a/pages/map/scene.vue
+++ b/pages/map/scene.vue
@@ -1,20 +1,22 @@
<template>
<view class="pages-scene">
<view class="map-content" v-if="opSceneType =='' ">
- <image v-if="opType != 'extend'" class="img" src="/images/image 25.png" alt=" 鍥剧墖" mode="aspectFit" />
- <image v-else class="img" :src="extendBase64Img" alt=" 鍥剧墖" mode="aspectFit" />
- <view v-if="opType != 'extend'" class="space">娌℃湁鎵惧埌绗﹀悎鏉′欢鐨勫湴鍥�/view>
+ <image v-if="opType != 'extend'" class="img" src="/images/image_25.png" alt=" picture" mode="aspectFit" />
+ <image v-else class="img" :src="extendBase64Img" alt=" picture" mode="aspectFit" />
+ <view v-if="opType != 'extend'" class="space">{{translate("no_map_found")}}</view>
<!-- <view class="loading-view">{{mapserverIsOk?"鏋勫浘绋嬪簭鍑嗗灏辩华":"绛夊緟鏋勫浘绋嬪簭灏辩华..."}}
<view v-if="!mapserverIsOk" class="auto-circle"></view>:disabled="!mapserverIsOk"
</view> -->
<view class="text-button-group">
<a-button type="primary" class="button" @click="clickStartConstructScene">
- {{opType == 'extend'?"寮�鎵╁睍":'寮�鏋勫缓'}}
+ {{opType == 'extend'?translate("start_extending"):translate("start_building")}}
</a-button>
- <a-button v-if="opType != 'extend'" type="primary" class="button"
- :disabled="loading && localSceneList.length == 0" @click="clickDownloadScene" disabled>
- 涓嬭浇鍦烘櫙
- </a-button>
+ <navigator :url="`/pages/index/backup?ip=${ip}&opType=download`" hover-class="other-navigator-hover">
+ <a-button v-if="opType != 'extend'" type="primary" class="button"
+ :disabled="loading && localSceneList.length == 0">
+ {{translate("download_scenes")}}
+ </a-button>
+ </navigator>
</view>
</view>
@@ -26,38 +28,46 @@
</view>
<view class="bottom">
<view class="bottom-content" v-if="opSceneType =='add_name' ">
- <view class="tip">璇疯緭鍏ュ満鏅悕绉�/view>
+ <view class="tip">{{translate('input_scene_name')}}</view>
<view class="name-input">
- <input ref="refInputName" :focus="true" placeholder="璇疯緭鍏ュ満鏅悕绉� :value="sceneName"
- @input="onInputName"></input>
+ <input ref="refInputName" :focus="true" :placeholder="translate('input_scene_name')"
+ :value="sceneName" @input="onInputName" />
<uni-icons class="clear" color="#ccc" type="clear" size="20" v-if="showClearName"
@click="clickClearName"></uni-icons>
</view>
<view class="text-button-group">
<a-button type="primary" class="button" :disabled="loading || sceneName.trim() == ''"
- @click="clickNameOK">纭</a-button>
+ @click="clickNameOK">{{translate("confirm")}}</a-button>
<a-button type="ghost" class="button" :disabled="loading" @click="clickNameCancel">鍙栨秷</a-button>
</view>
</view>
<view class="bottom-content" v-else-if="opSceneType =='scan'">
- <view class="tip">鍦烘櫙鏋勫缓涓�/view>
+ <view class="tip">{{translate("scene_construction_in_progress")}}</view>
<view>
- 璇锋搷浣滄惉杩愯溅鎵弿鍦板浘瑕嗙洊鐨勫尯鍩�+ <!-- 璇锋搷浣滄惉杩愯溅鎵弿鍦板浘瑕嗙洊鐨勫尯鍩�-->
+ {{mapCreatePhase}}
</view>
<view class="text-button-group">
- <a-button type="primary" class="button" :disabled="loading" @click="clickScanFinish">鎵弿瀹屾垚</a-button>
+ <a-button type="primary" class="button" :disabled="loading"
+ @click="clickScanFinish">{{translate("scan_completed")}}</a-button>
</view>
</view>
<view class="bottom-content" v-else-if="opSceneType =='finish'">
- <view class="tip">鍦烘櫙鏋勫缓瀹屾垚</view>
- <view>宸叉垚鍔熸瀯寤衡�{{sceneName}}鈥�/view>
- <!-- <view class="loading-view">{{saveMapIsOk?"鏋勫浘淇濆瓨瀹屾垚":"绛夊緟鏋勫浘淇濆瓨瀹屾垚..."}}
- <view v-if="!saveMapIsOk" class="auto-circle"></view>
- </view> !saveMapIsOk ||-->
+ <view class="tip">
+ 鈥渰{sceneName}}鈥漿{opType == "extend"?translate("scene_extend_completed"):translate("scene_construction_completed")}}
+ </view>
+ <!-- <view> 宸叉垚鍔熸瀯寤衡�{{sceneName}}鈥�/view> -->
+ <view class="loading-view">
+ {{mapCreatePhase}}
+ <view v-if="mapServerPhase === 4" class="auto-circle"></view>
+ </view>
<view class="text-button-group">
- <a-button type="primary" class="button" :disabled=" loading" @click="clickFinish">鏋勫缓瀹屾垚</a-button>
+ <a-button type="primary" class="button" v-if="mapServerPhase === 6"
+ @click="clickRecreate">{{opType == "extend"?translate('re_extend'):translate("rebuild")}}</a-button>
+ <a-button type="primary" class="button" v-else :disabled=" mapServerPhase !==5 || loading"
+ @click="clickFinish">{{opType == "extend"?translate("extend_completed"):translate("construction_completed")}}</a-button>
</view>
</view>
</view>
@@ -81,13 +91,15 @@
createScene,
addMap,
stopMap,
+ delScene,
//getAgvState,
getMapLaserData,
saveDBData,
- checkMapServerIsStart,
- startOrStopMapServer,
- checkMapServerIsOk,
- checkSaveMapIsOk,
+ // checkMapServerIsStart,
+ // startOrStopMapServer,
+ // checkMapServerIsOk,
+ // checkSaveMapIsOk,
+ getMapServerPhase,
getMapUrl
} from "@/api/vehicle.js"
@@ -110,7 +122,7 @@
localSceneList: [],
positioningAgv: true,
robotPos: {},
- mapserverIsOk: false,
+ mapServerPhase: 1,
extendBase64Img: "",
saveMapIsOk: false,
destroyFlag: false,
@@ -118,12 +130,28 @@
}
},
computed: {
-
+ mapCreatePhase() {
+ if (this.mapServerPhase == 1) {
+ return this.translate("scene_construction_service_not_start")
+ } else if (this.mapServerPhase == 2) {
+ return this.translate("scene_construction_service_starting")
+ } else if (this.mapServerPhase == 3) {
+ return this.translate("scene_construction_in_progress")
+ } else if (this.mapServerPhase == 4) {
+ return this.translate("scene_composition_saving")
+ } else if (this.mapServerPhase == 5) {
+ return this.translate("scene_composition_save_success")
+ } else if (this.mapServerPhase == 6) {
+ return this.translate("scene_composition_save_failed")
+ } else
+ return this.mapServerPhase
+ }
},
watch: {
},
onLoad(option) {
+ console.log("scene load")
const _this = this
this.ip = option.ip || ""
uni.getSystemInfo({
@@ -139,13 +167,18 @@
},
onUnload() {
-
+ console.log("scene unload")
},
onBackPress() {
if (this.opSceneType == "scan") {
- showModal("宸叉瀯寤哄満鏅皢浼氳鍒犻櫎", "鏄惁涓柇鍦烘櫙鏋勫缓锛�).then((res) => {
+ showModal({
+ title: this.translate("ask_interrupt_scene_construction"),
+ content: `${this.translate('built_scene_will_be_deleted')}`,
+ confirmText: this.translate('yes'),
+ cancelText: this.translate("no"),
+ }).then((res) => {
if (res) {
this.opSceneType = ""
if (this.opType != "") {
@@ -209,7 +242,6 @@
async loadData() {
try {
- // this.loadMapServerState()
if (this.opType == "") {
this.localSceneList = await this.loadLocalScene()
} else {
@@ -217,7 +249,9 @@
this.opSceneType = "add_name"
}
if (this.opType == "extend") {
+ this.mapServerPhase = 1
await addMap(this.ip, this.sceneName, "extend")
+ this.checkMapServerPhase()
this.opSceneType = 'scan'
}
// if (this.opType == "extend") {
@@ -233,12 +267,13 @@
// }
}
+
this.refreshMapLaserData()
} catch (ex) {
- showError(ex)
+ showError(ex, this.translate('error'))
}
},
async loadMapInfo(id) {
@@ -250,58 +285,21 @@
return {}
}
},
- async loadMapServerState() {
+ async checkMapServerPhase() {
try {
- this.mapserverIsOk = false
- const res = await checkMapServerIsStart(this.ip)
- if (res) {
- this.mapserverIsOk = true
- } else {
- this.mapserverIsOk = false
- const res = await startOrStopMapServer(this.ip, 1)
- if (res) {
- this.checkMapServerState()
+ const res = await getMapServerPhase(this.ip)
+ this.mapServerPhase = res || 1
+ if (this.opSceneType === "finish") {
+ if (this.mapServerPhase === 5 || this.mapServerPhase === 6) {
+ this.saveMapIsOk = true
+ return
}
}
+ setTimeout(this.checkMapServerPhase, 1000);
} catch (ex) {
-
- showError(ex)
- }
- },
-
- async checkMapServerState() {
- try {
-
- const res = await checkMapServerIsOk(this.ip)
- if (res) {
- this.mapserverIsOk = true
- } else {
- this.mapserverIsOk = false
- setTimeout(this.checkMapServerState, 1000);
- }
-
- } catch (ex) {
- showError(ex).then((res) => {
- setTimeout(this.checkMapServerState, 1000);
- })
- }
- },
- async checkSaveMapState() {
- try {
-
- const res = await checkSaveMapIsOk(this.ip)
- if (res) {
- this.saveMapIsOk = true
- } else {
- this.saveMapIsOk = false
- setTimeout(this.checkSaveMapState, 1000);
- }
-
- } catch (ex) {
- showError(ex).then((res) => {
- setTimeout(this.checkSaveMapState, 1000);
- })
+ showToast(ex)
+ setTimeout(this.checkMapServerPhase, 1000);
}
},
@@ -344,14 +342,14 @@
})
const now = new Date()
const date = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`
- showToast("鍔犺浇搴曞浘澶辫触")
+ showToast(this.translate("loading_base_map_failed"))
const log = {
date,
method: `POST`,
url: "app/log/load_img",
param: param.msg,
statusCode: 100,
- data: "鍔犺浇搴曞浘澶辫触"
+ data: this.translate("loading_base_map_failed")
}
const listLog = session.getValue("request_log") || []
listLog.unshift(log)
@@ -360,7 +358,7 @@
}
} else if (param.method == "cancel_positioning_agv") {
- this.positioningAgv = false
+ //this.positioningAgv = false
} else if (param.method == "show_log") {
const listLog = session.getValue("request_log") || []
listLog.unshift(param.data)
@@ -373,39 +371,46 @@
const list = session.getValue("scene_db") || []
return list
} catch (ex) {
- showError(ex)
+ showError(ex, this.translate('error'))
return []
}
},
async clickStartConstructScene() {
try {
+ this.mapId = ""
if (this.opType == "extend") {
+ this.mapServerPhase = 1
await addMap(this.ip, this.sceneName, "extend")
+ this.checkMapServerPhase()
this.opSceneType = 'scan'
} else {
this.opSceneType = "add_name"
}
} catch (ex) {
- showError(ex)
+ showError(ex, this.translate('error'))
}
},
async clickDownloadScene() {
try {
- this.loading = true
- uni.showLoading({
- title: "涓嬭浇鍦烘櫙涓�
+ uni.navigateTo({
+ url: `/pages/index/backup?ip=${this.ip}&opType=download`,
+
})
- const data = this.localSceneList[0].data
- await saveDBData(this.ip, data)
- showToast("涓嬭浇鍦烘櫙鎴愬姛")
- this.opSceneType = ""
- const eventChannel = this.getOpenerEventChannel();
- eventChannel.emit('create_finish', this.sceneName);
- uni.navigateBack({
- delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
- })
+ // this.loading = true
+ // uni.showLoading({
+ // title: this.translate("downloading_scene")
+ // })
+ // const data = this.localSceneList[0].data
+ // await saveDBData(this.ip, data)
+ // showToast(this.translate("download_scene_success"))
+ // this.opSceneType = ""
+ // const eventChannel = this.getOpenerEventChannel();
+ // eventChannel.emit('create_finish', this.sceneName);
+ // uni.navigateBack({
+ // delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+ // })
} catch (ex) {
- showError(ex)
+ showError(ex, this.translate('error'))
} finally {
this.loading = false
uni.hideLoading()
@@ -423,25 +428,27 @@
try {
this.loading = true
uni.showLoading({
- title: "寮�鏋勫缓鍦烘櫙"
+ title: this.translate("start_building")
})
const name = this.sceneName.trim()
if (!name) {
- showToast("绔欑偣鍚嶇О杩樻湭杈撳叆")
+ showToast(this.translate("input_scene_name"))
return
}
this.sceneName = name
await createScene(this.ip, name, 1)
await addMap(this.ip, name)
+ this.checkMapServerPhase()
uni.showLoading({
- title: "寮�鎵弿鍦板浘"
+ title: this.translate("start_scanning_map")
})
+ this.mapId = ""
this.opSceneType = 'scan'
} catch (ex) {
- showError(ex)
+ showError(ex, this.translate('error'))
this.opSceneType = 'add_name'
} finally {
this.loading = false
@@ -464,7 +471,7 @@
try {
this.loading = true
uni.showLoading({
- title: "鍦板浘鎵弿缁撴潫"
+ title: this.translate("end_scanning_map")
})
this.opSceneType = "finish"
uni.setNavigationBarTitle({
@@ -472,22 +479,27 @@
})
this.saveMapIsOk = false
await stopMap(this.ip, this.sceneName)
- // await startOrStopMapServer(this.ip, 2)
- // this.checkSaveMapState();
- if (this.opType == "extend") {
- this.opSceneType = ""
- const eventChannel = this.getOpenerEventChannel();
- eventChannel.emit('create_finish', this.sceneName);
- uni.navigateBack({
- delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
- })
- }
+ //this.mapServerPhase = 4
+ //this.checkMapServerPhase();
+ // if (this.opType == "extend") {
+ // this.opSceneType = ""
+ // const eventChannel = this.getOpenerEventChannel();
+ // eventChannel.emit('create_finish', this.sceneName);
+ // uni.navigateBack({
+ // delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+ // })
+ // }
} catch (ex) {
console.log(ex)
- showModal("璇锋鏌ヨ溅杈嗚繛鎺ワ紝骞堕噸鏂板紑濮嬫瀯寤哄満鏅�, "鍦烘櫙鏋勫缓澶辫触", false, "纭畾").then((res) => {
+ showModal({
+ title: this.translate("scene_construction_failed"),
+ content: `${this.translate('check_vehicle_connection_and_restart_building_scene')}`,
+ confirmText: this.translate('ok'),
+ showCancel: false
+ }).then((res) => {
this.opSceneType = ''
- // this.loadMapServerState()
+
})
} finally {
this.loading = false
@@ -500,7 +512,7 @@
this.loading = true
uni.showLoading({
- title: "缁撴潫鍦烘櫙鏋勫缓"
+ title: this.translate("scene_construction_completed")
})
this.opSceneType = ""
const eventChannel = this.getOpenerEventChannel();
@@ -514,15 +526,34 @@
this.loading = false
uni.hideLoading()
}
-
-
},
+ async clickRecreate() {
+ try {
+ if (this.opType == "extend") {
+ this.mapServerPhase = 1
+ await addMap(this.ip, this.sceneName, "extend")
+ this.checkMapServerPhase()
+ this.opSceneType = 'scan'
+ } else {
+ this.mapServerPhase = 1
+ await delScene(this.ip, this.sceneName)
+ await createScene(this.ip, this.sceneName, 1)
+ await addMap(this.ip, this.sceneName)
+ this.checkMapServerPhase()
+ this.opSceneType = 'scan'
+ }
+ } catch (ex) {
+ console.log(ex)
+ }
+ },
+
+
async loadMapLaserData() {
try {
const info = await getMapLaserData(this.ip, this.mapId)
return info
} catch (ex) {
- showError(ex)
+ showToast(ex)
return {}
}
},
@@ -531,15 +562,15 @@
if (this.opSceneType === "scan") {
const data = await this.loadMapLaserData()
-
+
const listCtrData = []
let newMap = false
if (data.base_map?.image_base64) {
this.robotPos = {}
newMap = true
- const mapData = data.base_map.image_base64 //this.mapId ?"terdy":
+ const mapData = data.base_map.image_base64 //this.mapId ?"terdy":
this.mapId = data.base_map.map_id
-
+
listCtrData.push({
method: "background",
param: {
@@ -554,7 +585,11 @@
filedata: mapData
}
})
-
+ listCtrData.push({
+ method: "point_trajectory",
+ param: data.base_map.trajectoryPoints ||
+ [] //[ [[2,2],[6,2],[10,2],[14,2],[18,2],[2,6],[2,10],[2,14],[2,18],]
+ })
}
@@ -562,6 +597,8 @@
method: "point_cloud",
param: data.point_cloud
})
+
+
if (data.robot_pose) {
listCtrData.push({
method: "agv_laser",
@@ -588,6 +625,7 @@
})
}
}
+
}
// console.log("ctxDataStr",listCtrData.length)
this.ctxDataStr = JSON.stringify(listCtrData)
@@ -598,6 +636,7 @@
}
}
}
+
setTimeout(this.refreshMapLaserData, 1000);
} catch (ex) {
showToast(ex)
@@ -620,7 +659,10 @@
},
-
+ translate(t) {
+ if (typeof this.$t == "function") return this.$t(`page.${t}`)
+ else return t;
+ },
}
}
</script>
--
Gitblit v1.9.1