From f50069637a5bd97a884e59ac7cb9c8205766bd99 Mon Sep 17 00:00:00 2001 From: xiaosi <2652281683@qq.com> Date: Thu, 20 Aug 2026 10:12:30 +0800 Subject: [PATCH] feat: polish shell cover map, centralize urls, real Replay trajectory - MainContainer view layer over MapLayer; non-monitor pages cover map - Extract all API paths into config/urls.js and replace call sites - Replay draws trajectory on shared maptalks map via VectorLayer - Add .env.production skeleton for Tianditu/map center --- .env.production | 6 + src/components/DockEditModal.vue | 3 +- src/config/urls.js | 60 +++++++- src/layout/MainContainer.vue | 14 +- src/stores/modules/devicesStore.js | 13 +- src/styles/prototype.css | 26 ++-- src/views/AccountView/AccountView.vue | 17 +-- src/views/AlarmsView/AlarmsView.vue | 5 +- .../DeviceDetailView/DeviceDetailView.vue | 5 +- src/views/DevicesView/DevicesView.vue | 7 +- src/views/FirmwaresView/FirmwaresView.vue | 9 +- src/views/LoginView/LoginView.vue | 11 +- src/views/MediaView/MediaView.vue | 7 +- .../OperationLogsView/OperationLogsView.vue | 3 +- src/views/ReplayView/ReplayView.vue | 135 +++++++++++++----- src/views/SystemView/SystemView.vue | 3 +- src/views/TasksView/TasksView.vue | 11 +- src/views/UsersView/UsersView.vue | 3 +- 18 files changed, 254 insertions(+), 84 deletions(-) create mode 100644 .env.production diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4f04976 --- /dev/null +++ b/.env.production @@ -0,0 +1,6 @@ +# 生产构建环境变量(可按部署环境覆盖) +APP_TIANDITU_TOKEN=1e3adb7649d896631c574461b15cb9d4 +APP_MAP_CENTER_LNG=106.62341584179686 +APP_MAP_CENTER_LAT=26.657826154258505 +APP_MAP_ZOOM=5 +# APP_PRODUCTION=true diff --git a/src/components/DockEditModal.vue b/src/components/DockEditModal.vue index 4c903fd..8df602c 100644 --- a/src/components/DockEditModal.vue +++ b/src/components/DockEditModal.vue @@ -27,6 +27,7 @@ diff --git a/src/views/SystemView/SystemView.vue b/src/views/SystemView/SystemView.vue index 8ca9214..5f7f068 100644 --- a/src/views/SystemView/SystemView.vue +++ b/src/views/SystemView/SystemView.vue @@ -62,6 +62,7 @@ import { computed, onMounted, ref } from 'vue' import { useUiStore } from '@/stores/modules/uiStore' import { useUserStore } from '@/stores/modules/userStore' import request from '@/utils/http' +import * as urls from '@/config/urls' const ui = useUiStore() const userStore = useUserStore() @@ -77,7 +78,7 @@ const adminInitial = computed(() => adminName.value.charAt(0)) async function load() { try { - await request.get('/health') + await request.get(urls.HEALTH) backendUp.value = true } catch (e) { backendUp.value = false diff --git a/src/views/TasksView/TasksView.vue b/src/views/TasksView/TasksView.vue index 2cb67b4..0399435 100644 --- a/src/views/TasksView/TasksView.vue +++ b/src/views/TasksView/TasksView.vue @@ -220,6 +220,7 @@ import { useRoute, useRouter } from 'vue-router' import { useUiStore } from '@/stores/modules/uiStore' import request from '@/utils/http' import { useDeviceStore } from '@/stores/modules/devicesStore' +import * as urls from '@/config/urls' const route = useRoute() const router = useRouter() @@ -298,9 +299,9 @@ async function load() { try { await deviceStore.load() const [taskPage, execPage, routePage] = await Promise.all([ - request.get('/v1/tasks', { params: { pageNum: 1, pageSize: 100 } }), - request.get('/v1/executions', { params: { pageNum: 1, pageSize: 100 } }), - request.get('/v1/routes', { params: { pageNum: 1, pageSize: 100 } }) + request.get(urls.TASKS, { params: { pageNum: 1, pageSize: 100 } }), + request.get(urls.EXECUTIONS, { params: { pageNum: 1, pageSize: 100 } }), + request.get(urls.ROUTES, { params: { pageNum: 1, pageSize: 100 } }) ]) plans.value = (taskPage?.records || []).map((t) => { @@ -509,7 +510,7 @@ async function submitRoute() { } routeSaving.value = true try { - await request.post('/v1/routes', { + await request.post(urls.ROUTES, { name, waypoints: routePoints.value.map((point) => ({ longitude: point.longitude, latitude: point.latitude, altitude: point.altitude, speed: point.speed, yaw: 0, holdSec: point.turnMode === 'stop' ? 1 : 0 })) }) @@ -560,7 +561,7 @@ async function submitCreateTask() { creatingTask.value = true try { - await request.post('/v1/tasks', { + await request.post(urls.TASKS, { name, dockId: taskForm.dockId, routeId: Number(taskForm.routeId) || 0, diff --git a/src/views/UsersView/UsersView.vue b/src/views/UsersView/UsersView.vue index 2370d4b..17b32c0 100644 --- a/src/views/UsersView/UsersView.vue +++ b/src/views/UsersView/UsersView.vue @@ -67,6 +67,7 @@ import { onMounted, ref } from 'vue' import { useUiStore } from '@/stores/modules/uiStore' import request from '@/utils/http' +import * as urls from '@/config/urls' const ui = useUiStore() const users = ref([]) @@ -91,7 +92,7 @@ async function load() { const params = { pageNum: pageNum.value, pageSize: pageSize.value } if (keyword.value) params.keyword = keyword.value if (roleFilter.value) params.role = roleFilter.value - const page = await request.get('/v1/users', { params }) + const page = await request.get(urls.USERS, { params }) total.value = page?.total || 0 pages.value = page?.pages || 1 users.value = (page?.records || []).map((u) => ({