打包路由修复

This commit is contained in:
renna 2025-07-16 17:37:18 +08:00
parent b77e33f001
commit 135520a0ee
10 changed files with 40 additions and 39 deletions

View File

@ -5,7 +5,7 @@ VITE_APP_TITLE = 青岛机场无人驾驶车辆协同云平台
VITE_APP_ENV = 'production' VITE_APP_ENV = 'production'
# 青岛机场无人驾驶车辆协同云平台/生产环境 # 青岛机场无人驾驶车辆协同云平台/生产环境
VITE_APP_BASE_API = '/prod-api' VITE_APP_BASE_API = 'http://10.0.0.126:8080'
VITE_APP_WEBSOCKET_URL='ws://10.0.0.124:8080/collision' VITE_APP_WEBSOCKET_URL='ws://10.0.0.124:8080/collision'

1
public/.htaccess Normal file
View File

@ -0,0 +1 @@

View File

@ -27,11 +27,16 @@ import { ref, onMounted, onUnmounted, watch } from "vue";
import LayerSwitcher from "./LayerSwitcher.vue"; import LayerSwitcher from "./LayerSwitcher.vue";
// //
import znzBgImg from "../../../assets/images/znzBg.png"; import leftArrowActiveImg from "../../../assets/images/left_arrow_active.png";
import needleImg from "../../../assets/images/znz.png"; import rightArrowActiveImg from "../../../assets/images/right_arrow_active.png";
import leftArrowImg from "../../../assets/images/left_arrow.png"; import zoomInActiveImg from "../../../assets/images/zoomInActive.png";
import rightArrowImg from "../../../assets/images/right_arrow.png"; import zoomOutActiveImg from "../../../assets/images/zoomOutActive.png";
import layerActiveImg from "../../../assets/images/layerActive.png";
[leftArrowActiveImg, rightArrowActiveImg, zoomInActiveImg, zoomOutActiveImg, layerActiveImg].forEach(src => {
const img = new window.Image();
img.src = src;
});
// props // props
const props = defineProps({ const props = defineProps({
map: Object, // map: Object, //
@ -111,18 +116,6 @@ function rotateRight() {
} }
} }
// /
function onCompass() {
emit("compass");
if (props.resetView) {
props.resetView();
} else if (props.map) {
// 使
const initialCenter = props.map.options.center;
const initialZoom = props.map.options.zoom || 7;
props.map.setView(initialCenter, initialZoom, { animate: true });
}
}
// //
function onZoomIn() { function onZoomIn() {

View File

@ -48,7 +48,7 @@
<div class="alarm-icon" :class="item.level"> <div class="alarm-icon" :class="item.level">
<img v-if="item.type === 'car'" src="@/assets/images/clarm_conflict.png" class="alarm-img" alt="车辆冲突" /> <img v-if="item.type === 'car'" src="@/assets/images/clarm_conflict.png" class="alarm-img" alt="车辆冲突" />
<img v-else-if="item.type === 'report'" src="@/assets/images/clarm_over.png" class="alarm-img" alt="超界告警" /> <img v-else-if="item.type === 'report'" src="@/assets/images/clarm_over.png" class="alarm-img" alt="超界告警" />
<img v-else-if="item.type === 'speed'" src="@/assets/images/clarm_speed.png" class="alarm-img" alt="超速告警" /> <img v-else-if="item.type === 'speed'" src="@/assets/images/clarm_over.png" class="alarm-img" alt="超速告警" />
<i v-else class="alarm-dot"></i> <i v-else class="alarm-dot"></i>
</div> </div>
<div class="alarm-content"> <div class="alarm-content">

View File

@ -163,7 +163,7 @@ function getBatteryTempClass(temp) {
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.car-detail-container { .car-detail-container {
width: 391px; width: 391px;
height: 85vh; height: 85vh;
@ -268,11 +268,12 @@ function getBatteryTempClass(temp) {
border-left: 4px solid #303236; border-left: 4px solid #303236;
padding:5px 10px; padding:5px 10px;
p{
margin:0 !important;
}
} }
.info-row1 p{
margin:0 !important;
}
.battery-left{ .battery-left{
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -260,12 +260,13 @@ onMounted(() => {
background-size:100% 100%; background-size:100% 100%;
padding:5px 10px; padding:5px 10px;
color: #fff; color: #fff;
img{
}
.header-title img{
width: 31px; width: 31px;
height: 15px; height: 15px;
margin-right: 5px; margin-right: 5px;
} }
}
.header-actions { .header-actions {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

@ -1,4 +1,4 @@
import { createWebHistory, createRouter } from 'vue-router' import { createWebHashHistory, createRouter } from 'vue-router'
/* Layout */ /* Layout */
import Layout from '@/layout' import Layout from '@/layout'
@ -246,17 +246,21 @@ export const dynamicRoutes = [
] ]
} }
] ]
const router = createRouter({ const router = createRouter({
history: createWebHistory(), history: createWebHashHistory('/airport'),
routes: constantRoutes, scrollBehavior: () => ({ top: 0 }), // 滚动行为,将 y 改为 top
scrollBehavior(to, from, savedPosition) { routes: constantRoutes // 使用 constantRoutes
if (savedPosition) {
return savedPosition
} else {
return { top: 0 }
}
},
}); });
// const router = createRouter({
// history: createWebHistory(),
// routes: constantRoutes,
// scrollBehavior(to, from, savedPosition) {
// if (savedPosition) {
// return savedPosition
// } else {
// return { top: 0 }
// }
// },
// });
export default router; export default router;

View File

@ -81,7 +81,7 @@ service.interceptors.response.use(res => {
ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
isRelogin.show = false; isRelogin.show = false;
useUserStore().logOut().then(() => { useUserStore().logOut().then(() => {
location.href = '/index'; location.href = '/airport/index';
}) })
}).catch(() => { }).catch(() => {
isRelogin.show = false; isRelogin.show = false;

View File

@ -621,14 +621,15 @@ onMounted(() => {
height: 50px; height: 50px;
border-radius: 6px; border-radius: 6px;
img{
}
.avatar-box img{
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
border-radius: 6px; border-radius: 6px;
} }
}
:deep(.el-table__inner-wrapper::before) { :deep(.el-table__inner-wrapper::before) {
display: none; /* 隐藏表格顶部的边框线 */ display: none; /* 隐藏表格顶部的边框线 */
} }

View File

@ -10,7 +10,7 @@ export default defineConfig(({ mode, command }) => {
// 部署生产环境和开发环境下的URL。 // 部署生产环境和开发环境下的URL。
// 默认情况下vite 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下vite 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
base: VITE_APP_ENV === 'production' ? '/' : '/', base: VITE_APP_ENV === 'production' ? '/airport/' : '/',
plugins: createVitePlugins(env, command === 'build'), plugins: createVitePlugins(env, command === 'build'),
resolve: { resolve: {
// https://cn.vitejs.dev/config/#resolve-alias // https://cn.vitejs.dev/config/#resolve-alias