修改地址使用config.js内地址,方便部署后随时更改地址
This commit is contained in:
parent
64ea22972f
commit
93dee1f83f
@ -8,4 +8,4 @@ VITE_APP_ENV = 'development'
|
|||||||
VITE_APP_BASE_API = '/dev-api'
|
VITE_APP_BASE_API = '/dev-api'
|
||||||
|
|
||||||
# WebSocket配置
|
# WebSocket配置
|
||||||
VITE_APP_WEBSOCKET_URL=ws://10.0.0.122:8080/collision
|
VITE_APP_WEBSOCKET_URL=ws://10.0.0.17:8080/collision
|
||||||
|
|||||||
@ -5,9 +5,10 @@ VITE_APP_TITLE = 青岛机场无人驾驶车辆协同云平台
|
|||||||
VITE_APP_ENV = 'production'
|
VITE_APP_ENV = 'production'
|
||||||
|
|
||||||
# 青岛机场无人驾驶车辆协同云平台/生产环境
|
# 青岛机场无人驾驶车辆协同云平台/生产环境
|
||||||
VITE_APP_BASE_API = 'http://10.0.0.122:8080'
|
# VITE_APP_BASE_API = 'http://10.0.0.122:8080'
|
||||||
|
VITE_APP_BASE_API = 'http://10.64.58.228:8080'
|
||||||
|
|
||||||
VITE_APP_WEBSOCKET_URL='ws://10.0.0.122:8080/collision'
|
VITE_APP_WEBSOCKET_URL='ws://10.64.58.228:8080/collision'
|
||||||
|
|
||||||
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
||||||
VITE_BUILD_COMPRESS = gzip
|
VITE_BUILD_COMPRESS = gzip
|
||||||
44
.lingma/rules/coding.md
Normal file
44
.lingma/rules/coding.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
trigger: always_on
|
||||||
|
---
|
||||||
|
|
||||||
|
模仿人类的开发习惯来开发,例如实现主要功能,额外的辅助功能不做开发,必须不做过度开发。碰见问题先修复,而不是掩饰问题,删除代码或者开发其它功能来配合。你只需要关注最主要的功能来实现即可
|
||||||
|
|
||||||
|
始终用中文回应,并在引入新术语时提供清晰定义和示例。
|
||||||
|
|
||||||
|
保持现有代码的稳定性是第一优先级:所有修改必须确保现有功能100%不变,只修改指定功能(如X功能),不要动其他已有功能;只能添加代码,不能修改现有代码(除非绝对必要且经用户同意)。
|
||||||
|
|
||||||
|
最小化修改原则:实现需求时,始终选择最简单、影响最小的解决方案;优先考虑"添加"而不是"修改"(例如,保持现有接口不变,只添加新接口)。
|
||||||
|
|
||||||
|
先实现最基础的功能,再考虑扩展。
|
||||||
|
|
||||||
|
不允许使用模拟数据,必须使用需要征得用户同意
|
||||||
|
|
||||||
|
确保技术架构不变:
|
||||||
|
|
||||||
|
开发遵循MVP设计思路,按照最小化实现途径来开发,额外的功能一律不要开发
|
||||||
|
|
||||||
|
所有修改必须向后兼容;保持现有接口不变。
|
||||||
|
|
||||||
|
在进行任何架构性修改前,必须征得用户的明确同意。
|
||||||
|
|
||||||
|
项目操作规范:
|
||||||
|
|
||||||
|
对于容器中的项目,只提供操作命令(不描述其他内容)。
|
||||||
|
|
||||||
|
使用代码注释帮助文档。
|
||||||
|
|
||||||
|
问题处理原则:遇到无法解决的问题时,优先寻求开发者的合作和支持,而不改变项目需求或结构。
|
||||||
|
|
||||||
|
不要使用模拟数据,模拟方法,如需使用,必须征得用户同意!
|
||||||
|
|
||||||
|
不要随便创建测试文件!!可以使用mcp进行测试的,必须使用mcp功能
|
||||||
|
|
||||||
|
响应简洁性:保持回应简洁,无冗余内容;如果问题不清晰,立即寻求用户澄清。
|
||||||
|
|
||||||
|
项目开发原则:
|
||||||
|
- 项目不允许假数据,模拟数据,限制数据,比如限制层数,数量等。必须不能过度开发,只按照用户需求开发功能,周边性功能开发要征得用户同意
|
||||||
|
需要调试可以寻求用户帮助,不能自己去猜测
|
||||||
|
|
||||||
|
版本管理:
|
||||||
|
- 所有程序版本的不确定,可以使用mcp context7
|
||||||
@ -8,6 +8,8 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel="icon" href="/favicon.ico">
|
<link rel="icon" href="/favicon.ico">
|
||||||
<title>青岛机场</title>
|
<title>青岛机场</title>
|
||||||
|
<!-- 引入配置文件 -->
|
||||||
|
<script src="/config.js"></script>
|
||||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||||
<style>
|
<style>
|
||||||
html,
|
html,
|
||||||
|
|||||||
4
public/config.js
Normal file
4
public/config.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
window.APP_CONFIG = {
|
||||||
|
VITE_BASE_URL: 'http://10.0.0.123:8080',
|
||||||
|
WS_BASE_URL: 'ws://10.0.0.123:8080/collision'
|
||||||
|
};
|
||||||
@ -69,8 +69,8 @@ const { proxy } = getCurrentInstance();
|
|||||||
const emit = defineEmits();
|
const emit = defineEmits();
|
||||||
const number = ref(0);
|
const number = ref(0);
|
||||||
const uploadList = ref([]);
|
const uploadList = ref([]);
|
||||||
const baseUrl = import.meta.env.VITE_APP_BASE_API;
|
const baseUrl = window.APP_CONFIG.VITE_BASE_URL;
|
||||||
const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传文件服务器地址
|
const uploadFileUrl = ref(window.APP_CONFIG.VITE_BASE_URL + "/common/upload"); // 上传文件服务器地址
|
||||||
const headers = ref({ Authorization: "Bearer " + getToken() });
|
const headers = ref({ Authorization: "Bearer " + getToken() });
|
||||||
const fileList = ref([]);
|
const fileList = ref([]);
|
||||||
const showTip = computed(
|
const showTip = computed(
|
||||||
|
|||||||
@ -40,7 +40,7 @@ const realSrc = computed(() => {
|
|||||||
if (isExternal(real_src)) {
|
if (isExternal(real_src)) {
|
||||||
return real_src;
|
return real_src;
|
||||||
}
|
}
|
||||||
return import.meta.env.VITE_APP_BASE_API + real_src;
|
return window.APP_CONFIG?.VITE_BASE_URL + real_src;
|
||||||
});
|
});
|
||||||
|
|
||||||
const realSrcList = computed(() => {
|
const realSrcList = computed(() => {
|
||||||
@ -53,7 +53,7 @@ const realSrcList = computed(() => {
|
|||||||
if (isExternal(item)) {
|
if (isExternal(item)) {
|
||||||
return srcList.push(item);
|
return srcList.push(item);
|
||||||
}
|
}
|
||||||
return srcList.push(import.meta.env.VITE_APP_BASE_API + item);
|
return srcList.push(window.APP_CONFIG?.VITE_BASE_URL + item);
|
||||||
});
|
});
|
||||||
return srcList;
|
return srcList;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -78,8 +78,8 @@ const number = ref(0);
|
|||||||
const uploadList = ref([]);
|
const uploadList = ref([]);
|
||||||
const dialogImageUrl = ref("");
|
const dialogImageUrl = ref("");
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
const baseUrl = import.meta.env.VITE_APP_BASE_API;
|
const baseUrl = window.APP_CONFIG?.VITE_BASE_URL;
|
||||||
const uploadImgUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传的图片服务器地址
|
const uploadImgUrl = ref(window.APP_CONFIG?.VITE_BASE_URL + "/common/upload"); // 上传的图片服务器地址
|
||||||
const headers = ref({ Authorization: "Bearer " + getToken() });
|
const headers = ref({ Authorization: "Bearer " + getToken() });
|
||||||
const fileList = ref([]);
|
const fileList = ref([]);
|
||||||
const showTip = computed(
|
const showTip = computed(
|
||||||
|
|||||||
@ -254,7 +254,7 @@ function ensureContinuousMovement(animData, vehicle, currentTime, deltaTime) {
|
|||||||
// // 更新方向为预测方向
|
// // 更新方向为预测方向
|
||||||
animData.targetHeading = predictedHeading;
|
animData.targetHeading = predictedHeading;
|
||||||
// 可以选择立即更新或逐渐更新
|
// 可以选择立即更新或逐渐更新
|
||||||
animData.heading = predictedHeading; // 立即更新
|
// animData.heading = predictedHeading; // 立即更新
|
||||||
}
|
}
|
||||||
|
|
||||||
// 缓慢降低速度,但保持最低速度
|
// 缓慢降低速度,但保持最低速度
|
||||||
|
|||||||
@ -550,7 +550,7 @@ function connectWebSocket() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// 使用WebSocketService创建连接
|
// 使用WebSocketService创建连接
|
||||||
const wsUrl = import.meta.env.VITE_APP_WEBSOCKET_URL;
|
const wsUrl = window.APP_CONFIG?.VITE_BASE_URL;
|
||||||
console.log(`正在连接WebSocket: ${wsUrl}`);
|
console.log(`正在连接WebSocket: ${wsUrl}`);
|
||||||
|
|
||||||
wsService = createWebSocket(wsUrl, {
|
wsService = createWebSocket(wsUrl, {
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { getToken } from '@/utils/auth'
|
|||||||
import errorCode from '@/utils/errorCode'
|
import errorCode from '@/utils/errorCode'
|
||||||
import { blobValidate } from '@/utils/ruoyi'
|
import { blobValidate } from '@/utils/ruoyi'
|
||||||
|
|
||||||
const baseURL = import.meta.env.VITE_APP_BASE_API
|
const baseURL = window.APP_CONFIG?.VITE_BASE_URL
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name(name, isDelete = true) {
|
name(name, isDelete = true) {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ const useUserStore = defineStore(
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getInfo().then(res => {
|
getInfo().then(res => {
|
||||||
const user = res.user
|
const user = res.user
|
||||||
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
|
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : window.APP_CONFIG?.VITE_BASE_URL + user.avatar;
|
||||||
|
|
||||||
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
||||||
this.roles = res.roles
|
this.roles = res.roles
|
||||||
|
|||||||
@ -15,11 +15,10 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
|
|||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: import.meta.env.VITE_APP_BASE_API,
|
baseURL: window.APP_CONFIG?.VITE_BASE_URL || import.meta.env.VITE_APP_BASE_API,
|
||||||
// 超时
|
// 超时
|
||||||
timeout: 10000
|
timeout: 10000
|
||||||
})
|
})
|
||||||
|
|
||||||
// request拦截器
|
// request拦截器
|
||||||
service.interceptors.request.use(config => {
|
service.interceptors.request.use(config => {
|
||||||
// 是否需要设置 token
|
// 是否需要设置 token
|
||||||
|
|||||||
@ -104,7 +104,7 @@
|
|||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label>服务器地址:</label>
|
<label>服务器地址:</label>
|
||||||
<select id="collisionServerSelect">
|
<select id="collisionServerSelect">
|
||||||
<option value="ws://10.0.0.122:8080/collision">10.0.0.122:8080/collision</option>
|
<option value="ws://10.0.0.123:8080/collision"> 10.64.58.228:8080/collision</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -331,7 +331,7 @@ const rules = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 上传相关
|
// 上传相关
|
||||||
const uploadUrl = import.meta.env.VITE_APP_BASE_API + "/common/upload";
|
const uploadUrl = window.APP_CONFIG?.VITE_BASE_URL + "/common/upload";
|
||||||
const headers = { Authorization: "Bearer " + getToken() };
|
const headers = { Authorization: "Bearer " + getToken() };
|
||||||
const upload = reactive({
|
const upload = reactive({
|
||||||
isUploading: false,
|
isUploading: false,
|
||||||
@ -339,7 +339,7 @@ const upload = reactive({
|
|||||||
title: "",
|
title: "",
|
||||||
open: false,
|
open: false,
|
||||||
// 新增导入文件的接口URL
|
// 新增导入文件的接口URL
|
||||||
url: import.meta.env.VITE_APP_BASE_API + "/system/vehicle_info/importData",
|
url: window.APP_CONFIG?.VITE_BASE_URL + "/system/vehicle_info/importData",
|
||||||
headers: { Authorization: "Bearer " + getToken() }
|
headers: { Authorization: "Bearer " + getToken() }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -107,6 +107,7 @@ const redirect = ref(undefined);
|
|||||||
function handleLogin() {
|
function handleLogin() {
|
||||||
proxy.$refs.loginRef.validate(valid => {
|
proxy.$refs.loginRef.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
|
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
|
||||||
if (loginForm.value.rememberMe) {
|
if (loginForm.value.rememberMe) {
|
||||||
|
|||||||
@ -248,8 +248,8 @@ const upload = reactive({
|
|||||||
isUploading: false,
|
isUploading: false,
|
||||||
updateSupport: 0,
|
updateSupport: 0,
|
||||||
headers: { Authorization: "Bearer " + getToken() },
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
url: import.meta.env.VITE_APP_BASE_API + "/system/driver_info/importData",
|
url: window.APP_CONFIG?.VITE_BASE_URL + "/system/driver_info/importData",
|
||||||
avatarUrl: import.meta.env.VITE_APP_BASE_API + "/system/driver_info/avatar"
|
avatarUrl: window.APP_CONFIG?.VITE_BASE_URL + "/system/driver_info/avatar"
|
||||||
});
|
});
|
||||||
|
|
||||||
const queryParams = ref({
|
const queryParams = ref({
|
||||||
|
|||||||
@ -269,8 +269,8 @@ const upload = reactive({
|
|||||||
isUploading: false,
|
isUploading: false,
|
||||||
updateSupport: 0,
|
updateSupport: 0,
|
||||||
headers: { Authorization: "Bearer " + getToken() },
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData",
|
url: window.APP_CONFIG?.VITE_BASE_URL + "/system/user/importData",
|
||||||
avatarUrl: import.meta.env.VITE_APP_BASE_API + "/system/user/profile/avatar"
|
avatarUrl: window.APP_CONFIG?.VITE_BASE_URL + "/system/user/profile/avatar"
|
||||||
});
|
});
|
||||||
|
|
||||||
// 列显隐信息
|
// 列显隐信息
|
||||||
|
|||||||
@ -124,7 +124,7 @@ function uploadImg() {
|
|||||||
formData.append("avatarfile", data);
|
formData.append("avatarfile", data);
|
||||||
uploadAvatar(formData).then(response => {
|
uploadAvatar(formData).then(response => {
|
||||||
open.value = false;
|
open.value = false;
|
||||||
options.img = import.meta.env.VITE_APP_BASE_API + response.imgUrl;
|
options.img = window.APP_CONFIG?.VITE_BASE_URL + response.imgUrl;
|
||||||
userStore.avatar = options.img;
|
userStore.avatar = options.img;
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import iFrame from '@/components/iFrame'
|
import iFrame from '@/components/iFrame'
|
||||||
|
|
||||||
const url = ref(import.meta.env.VITE_APP_BASE_API + "/swagger-ui/index.html")
|
const url = ref(window.APP_CONFIG?.VITE_BASE_URL + "/swagger-ui/index.html")
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -32,7 +32,7 @@ export default defineConfig(({ mode, command }) => {
|
|||||||
// https://cn.vitejs.dev/config/#server-proxy
|
// https://cn.vitejs.dev/config/#server-proxy
|
||||||
'/dev-api': {
|
'/dev-api': {
|
||||||
// target: 'http://10.0.0.17:8099',//昊天
|
// target: 'http://10.0.0.17:8099',//昊天
|
||||||
target: 'http://10.0.0.122:8080',//田哥
|
target: 'http:// 10.0.0.123:8080',//田哥
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (p) => p.replace(/^\/dev-api/, '')
|
rewrite: (p) => p.replace(/^\/dev-api/, '')
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user