feat(l2): 添加多环境配置及国际化支持
- 新增klp和g30环境配置文件 - 添加vue-i18n实现中英文切换 - 更新package.json添加环境组相关脚本 - 修改vue.config.js支持多环境配置加载
This commit is contained in:
26
apps/l2/config/g30/.env.development
Normal file
26
apps/l2/config/g30/.env.development
Normal file
@@ -0,0 +1,26 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 'Galvanizing Line & Production Process Management System'
|
||||
|
||||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
|
||||
# 若依管理系统/开发环境
|
||||
VUE_APP_BASE_API = '/dev-api'
|
||||
|
||||
# 应用访问路径 例如使用前缀 /admin/
|
||||
VUE_APP_CONTEXT_PATH = '/'
|
||||
|
||||
# 监控地址
|
||||
VUE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/login'
|
||||
|
||||
# xxl-job 控制台地址
|
||||
VUE_APP_XXL_JOB_ADMIN = 'http://localhost:9100/xxl-job-admin'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
# L2业务后端地址
|
||||
VUE_APP_SERVICE_BASE_API = 'http://localhost:8089'
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'en-US'
|
||||
25
apps/l2/config/g30/.env.production
Normal file
25
apps/l2/config/g30/.env.production
Normal file
@@ -0,0 +1,25 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 'Galvanizing Line & Production Process Management System'
|
||||
|
||||
# 生产环境配置
|
||||
ENV = 'production'
|
||||
|
||||
# 若依管理系统/生产环境
|
||||
VUE_APP_BASE_API = '/prod-api'
|
||||
|
||||
# 应用访问路径 例如使用前缀 /admin/
|
||||
VUE_APP_CONTEXT_PATH = '/'
|
||||
|
||||
# 监控地址
|
||||
VUE_APP_MONITRO_ADMIN = '/admin/login'
|
||||
|
||||
# xxl-job 控制台地址
|
||||
VUE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
|
||||
|
||||
# L2业务后端地址
|
||||
VUE_APP_SERVICE_BASE_API = 'http://192.168.5.209:8080'
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'en-US'
|
||||
|
||||
|
||||
17
apps/l2/config/g30/.env.staging
Normal file
17
apps/l2/config/g30/.env.staging
Normal file
@@ -0,0 +1,17 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 'Galvanizing Line & Production Process Management System'
|
||||
|
||||
BABEL_ENV = development
|
||||
|
||||
NODE_ENV = development
|
||||
|
||||
# 测试环境配置
|
||||
ENV = 'staging'
|
||||
|
||||
# 若依管理系统/测试环境
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
||||
VUE_APP_SERVICE_BASE_API = 'http://49.232.87.108:12081'
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'en-US'
|
||||
26
apps/l2/config/klp/.env.development
Normal file
26
apps/l2/config/klp/.env.development
Normal file
@@ -0,0 +1,26 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 镀锌机组及生产工艺管理系统
|
||||
|
||||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
|
||||
# 接口基础路径,该路径会被代理到 VUE_APP_SERVICE_BASE_API
|
||||
VUE_APP_BASE_API = '/dev-api'
|
||||
|
||||
# 应用访问路径 例如使用前缀 /admin/
|
||||
VUE_APP_CONTEXT_PATH = '/'
|
||||
|
||||
# 监控地址
|
||||
VUE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/login'
|
||||
|
||||
# xxl-job 控制台地址
|
||||
VUE_APP_XXL_JOB_ADMIN = 'http://localhost:9100/xxl-job-admin'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
# 代理后的真实后端地址
|
||||
VUE_APP_SERVICE_BASE_API = 'http://localhost:8089'
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'zh-CN'
|
||||
23
apps/l2/config/klp/.env.production
Normal file
23
apps/l2/config/klp/.env.production
Normal file
@@ -0,0 +1,23 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 镀锌机组及生产工艺管理系统
|
||||
|
||||
# 生产环境配置
|
||||
ENV = 'production'
|
||||
|
||||
# 若依管理系统/生产环境
|
||||
VUE_APP_BASE_API = '/prod-api'
|
||||
|
||||
# 应用访问路径 例如使用前缀 /admin/
|
||||
VUE_APP_CONTEXT_PATH = '/'
|
||||
|
||||
# 监控地址
|
||||
VUE_APP_MONITRO_ADMIN = '/admin/login'
|
||||
|
||||
# xxl-job 控制台地址
|
||||
VUE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
|
||||
|
||||
# L2业务后端地址
|
||||
VUE_APP_SERVICE_BASE_API = 'http://localhost:8089'
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'zh-CN'
|
||||
17
apps/l2/config/klp/.env.staging
Normal file
17
apps/l2/config/klp/.env.staging
Normal file
@@ -0,0 +1,17 @@
|
||||
# 页面标题
|
||||
VUE_APP_TITLE = 镀锌机组及生产工艺管理系统
|
||||
|
||||
BABEL_ENV = development
|
||||
|
||||
NODE_ENV = development
|
||||
|
||||
# 测试环境配置
|
||||
ENV = staging
|
||||
|
||||
# 若依管理系统/测试环境
|
||||
VUE_APP_BASE_API = /stage-api
|
||||
|
||||
VUE_APP_SERVICE_BASE_API = http://140.143.206.120:10082/prod-api
|
||||
|
||||
# 语言配置
|
||||
VUE_APP_I18N_LOCALE = 'zh-CN'
|
||||
@@ -9,7 +9,13 @@
|
||||
"stage": "vue-cli-service serve --mode staging",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview"
|
||||
"preview": "node build/index.js --preview",
|
||||
"klp:dev": "cross-env ENV_GROUP=klp ENV_MODE=development vue-cli-service serve",
|
||||
"klp:stage": "cross-env ENV_GROUP=klp ENV_MODE=staging vue-cli-service serve",
|
||||
"klp:build": "cross-env ENV_GROUP=klp ENV_MODE=production vue-cli-service build",
|
||||
"g30:dev": "cross-env ENV_GROUP=g30 ENV_MODE=development vue-cli-service serve",
|
||||
"g30:stage": "cross-env ENV_GROUP=g30 ENV_MODE=staging vue-cli-service serve",
|
||||
"g30:build": "cross-env ENV_GROUP=g30 ENV_MODE=production vue-cli-service build"
|
||||
},
|
||||
"keywords": [
|
||||
"vue",
|
||||
@@ -25,10 +31,12 @@
|
||||
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@klp/ruoyi": "workspace:^1.0.0",
|
||||
"@riophae/vue-treeselect": "0.4.0",
|
||||
"axios": "0.28.1",
|
||||
"clipboard": "2.0.8",
|
||||
"core-js": "3.37.1",
|
||||
"cross-env": "^10.1.0",
|
||||
"dayjs": "^1.11.18",
|
||||
"echarts": "5.4.0",
|
||||
"element-ui": "2.15.14",
|
||||
@@ -48,12 +56,12 @@
|
||||
"vue": "2.6.12",
|
||||
"vue-count-to": "1.0.13",
|
||||
"vue-cropper": "0.5.5",
|
||||
"vue-i18n": "8.x",
|
||||
"vue-konva": "^2.1.7",
|
||||
"vue-router": "3.4.9",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.0",
|
||||
"xlsx": "^0.18.5",
|
||||
"@klp/ruoyi": "workspace:^1.0.0"
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "4.4.6",
|
||||
@@ -62,6 +70,7 @@
|
||||
"chalk": "4.1.0",
|
||||
"compression-webpack-plugin": "6.1.2",
|
||||
"connect": "3.6.6",
|
||||
"dotenv": "^17.2.3",
|
||||
"sass": "1.32.13",
|
||||
"sass-loader": "10.1.1",
|
||||
"script-ext-html-webpack-plugin": "2.1.5",
|
||||
|
||||
50
apps/l2/src/i18n/en-US.js
Normal file
50
apps/l2/src/i18n/en-US.js
Normal file
@@ -0,0 +1,50 @@
|
||||
export default {
|
||||
common: {
|
||||
title: 'Galvanizing Line & Production Process Management System',
|
||||
home: 'Home',
|
||||
dashboard: 'Dashboard',
|
||||
system: 'System Management',
|
||||
monitor: 'System Monitoring',
|
||||
tool: 'Tools',
|
||||
logout: 'Logout',
|
||||
login: 'Login',
|
||||
register: 'Register',
|
||||
username: 'Username',
|
||||
password: 'Password',
|
||||
remember: 'Remember me',
|
||||
forgetPassword: 'Forgot password',
|
||||
submit: 'Submit',
|
||||
reset: 'Reset',
|
||||
add: 'Add',
|
||||
edit: 'Edit',
|
||||
delete: 'Delete',
|
||||
view: 'View',
|
||||
search: 'Search',
|
||||
refresh: 'Refresh',
|
||||
save: 'Save',
|
||||
cancel: 'Cancel',
|
||||
confirm: 'Confirm',
|
||||
back: 'Back',
|
||||
success: 'Success',
|
||||
error: 'Error',
|
||||
warning: 'Warning',
|
||||
info: 'Info',
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
operation: 'Operation',
|
||||
status: 'Status',
|
||||
createTime: 'Create Time',
|
||||
updateTime: 'Update Time',
|
||||
remark: 'Remark',
|
||||
pleaseSelect: 'Please select',
|
||||
pleaseInput: 'Please input',
|
||||
pleaseEnter: 'Please enter'
|
||||
},
|
||||
dashboard: {
|
||||
welcome: 'Welcome to Galvanizing Line & Production Process Management System',
|
||||
todayData: 'Today\'s Data',
|
||||
totalData: 'Total Data',
|
||||
onlineUsers: 'Online Users',
|
||||
systemInfo: 'System Information'
|
||||
}
|
||||
}
|
||||
34
apps/l2/src/i18n/index.js
Normal file
34
apps/l2/src/i18n/index.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import Vue from 'vue'
|
||||
import VueI18n from 'vue-i18n'
|
||||
import ElementLocale from 'element-ui/lib/locale'
|
||||
import enLocale from 'element-ui/lib/locale/lang/en'
|
||||
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
|
||||
|
||||
Vue.use(VueI18n)
|
||||
|
||||
// 从环境变量读取语言设置,优先使用VUE_APP_I18N_LOCALE
|
||||
const locale = process.env.VUE_APP_I18N_LOCALE || 'zh-CN'
|
||||
|
||||
// 合并系统语言包和Element UI语言包
|
||||
const messages = {
|
||||
'zh-CN': {
|
||||
...require('./zh-CN'),
|
||||
...zhLocale
|
||||
},
|
||||
'en-US': {
|
||||
...require('./en-US'),
|
||||
...enLocale
|
||||
}
|
||||
}
|
||||
|
||||
// 创建i18n实例
|
||||
const i18n = new VueI18n({
|
||||
locale,
|
||||
fallbackLocale: 'zh-CN',
|
||||
messages
|
||||
})
|
||||
|
||||
// 设置Element UI的i18n
|
||||
ElementLocale.i18n((key, value) => i18n.t(key, value))
|
||||
|
||||
export default i18n
|
||||
50
apps/l2/src/i18n/zh-CN.js
Normal file
50
apps/l2/src/i18n/zh-CN.js
Normal file
@@ -0,0 +1,50 @@
|
||||
export default {
|
||||
common: {
|
||||
title: '镀锌机组及生产工艺管理系统',
|
||||
home: '首页',
|
||||
dashboard: '仪表盘',
|
||||
system: '系统管理',
|
||||
monitor: '系统监控',
|
||||
tool: '工具',
|
||||
logout: '退出登录',
|
||||
login: '登录',
|
||||
register: '注册',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
remember: '记住我',
|
||||
forgetPassword: '忘记密码',
|
||||
submit: '提交',
|
||||
reset: '重置',
|
||||
add: '新增',
|
||||
edit: '编辑',
|
||||
delete: '删除',
|
||||
view: '查看',
|
||||
search: '搜索',
|
||||
refresh: '刷新',
|
||||
save: '保存',
|
||||
cancel: '取消',
|
||||
confirm: '确认',
|
||||
back: '返回',
|
||||
success: '成功',
|
||||
error: '错误',
|
||||
warning: '警告',
|
||||
info: '提示',
|
||||
yes: '是',
|
||||
no: '否',
|
||||
operation: '操作',
|
||||
status: '状态',
|
||||
createTime: '创建时间',
|
||||
updateTime: '更新时间',
|
||||
remark: '备注',
|
||||
pleaseSelect: '请选择',
|
||||
pleaseInput: '请输入',
|
||||
pleaseEnter: '请输入'
|
||||
},
|
||||
dashboard: {
|
||||
welcome: '欢迎使用镀锌机组及生产工艺管理系统',
|
||||
todayData: '今日数据',
|
||||
totalData: '累计数据',
|
||||
onlineUsers: '在线用户',
|
||||
systemInfo: '系统信息'
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import VueKonva from 'vue-konva';
|
||||
|
||||
import Element from 'element-ui'
|
||||
import './assets/styles/element-variables.scss'
|
||||
import i18n from './i18n' // 引入i18n配置
|
||||
|
||||
import '@/assets/styles/index.scss' // global css
|
||||
// import '@/assets/styles/ruoyi.scss' // ruoyi css
|
||||
@@ -72,7 +73,8 @@ DictData.install()
|
||||
*/
|
||||
|
||||
Vue.use(Element, {
|
||||
size: Cookies.get('size') || 'small' // set element-ui default size
|
||||
size: Cookies.get('size') || 'small', // set element-ui default size
|
||||
i18n: (key, value) => i18n.t(key, value) // i18n support
|
||||
})
|
||||
|
||||
Vue.config.productionTip = false
|
||||
@@ -81,5 +83,6 @@ new Vue({
|
||||
el: '#app',
|
||||
router,
|
||||
store,
|
||||
i18n,
|
||||
render: h => h(App)
|
||||
})
|
||||
|
||||
@@ -1,10 +1,36 @@
|
||||
'use strict'
|
||||
const path = require('path')
|
||||
const dotenv = require('dotenv')
|
||||
const fs = require('fs')
|
||||
|
||||
function resolve(dir) {
|
||||
return path.join(__dirname, dir)
|
||||
}
|
||||
|
||||
const envGroup = process.env.ENV_GROUP || 'klp' // 默认使用 klp 组
|
||||
const envMode = process.env.ENV_MODE || 'development' // 默认使用 development 模式
|
||||
|
||||
// 2. 拼接环境文件的绝对路径(核心:解决子目录文件找不到问题)
|
||||
const envFilePath = path.resolve(
|
||||
process.cwd(), // 项目根目录(避免相对路径歧义)
|
||||
`config/${envGroup}/.env.${envMode}` // 拼接:config/环境组/.env.环境模式
|
||||
)
|
||||
|
||||
// 3. 读取并解析环境文件,注入到 process.env 中
|
||||
if (fs.existsSync(envFilePath)) {
|
||||
// 解析 .env 文件
|
||||
const envConfig = dotenv.config({
|
||||
path: envFilePath,
|
||||
override: true
|
||||
})
|
||||
if (envConfig.error) {
|
||||
throw new Error(`加载 ${envGroup} 环境组 ${envMode} 模式配置失败:${envConfig.error.message}`)
|
||||
}
|
||||
console.log(`✅ 成功加载环境配置:${envFilePath}`)
|
||||
} else {
|
||||
console.warn(`⚠️ 未找到环境配置文件:${envFilePath},请检查 ENV_GROUP 和 ENV_MODE 配置`)
|
||||
}
|
||||
|
||||
const CompressionPlugin = require('compression-webpack-plugin')
|
||||
|
||||
const name = process.env.VUE_APP_TITLE || '镀锌机组及生产工艺管理系统' // 网页标题
|
||||
|
||||
Reference in New Issue
Block a user