diff --git a/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod-local.yml b/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod-local.yml new file mode 100644 index 00000000..fdfc034f --- /dev/null +++ b/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application-prod-local.yml @@ -0,0 +1,48 @@ +server: + port: 9090 +spring: + application: + name: ruoyi-monitor-admin + profiles: + active: @profiles.active@ + +logging: + config: classpath:logback-plus.xml + +--- # 监控中心服务端配置 +spring: + security: + user: + name: @monitor.username@ + password: @monitor.password@ + boot: + admin: + ui: + title: RuoYi-Vue-Plus服务监控中心 + context-path: /admin + +--- # Actuator 监控端点的配置项 +management: + endpoints: + web: + exposure: + include: '*' + endpoint: + health: + show-details: ALWAYS + logfile: + external-file: ./logs/ruoyi-monitor-admin.log + +--- # 监控配置 +spring.boot.admin.client: + # 增加客户端开关 + enabled: true + # 设置 Spring Boot Admin Server 地址 + url: http://47.121.125.41:9090/admin + instance: + service-host-type: IP + metadata: + username: ${spring.boot.admin.client.username} + userpassword: ${spring.boot.admin.client.password} + username: @monitor.username@ + password: @monitor.password@ diff --git a/web/.env.development b/web/.env.development index 0602545f..466dcac7 100644 --- a/web/.env.development +++ b/web/.env.development @@ -1,20 +1,23 @@ # 页面标题 VITE_APP_TITLE = 杭州第一技师学院智慧校园管理系统 -# 开发环境配置 -VITE_APP_ENV = 'development' - -# 开发环境 -VITE_APP_BASE_API = '/dev-api' +# 生产环境配置 +VITE_APP_ENV = 'production' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' # 监控地址 -VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' +VITE_APP_MONITOR_ADMIN = '/admin/applications' # SnailJob 控制台地址 -VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job' +VITE_APP_SNAILJOB_ADMIN = '/snail-job' + +# 生产环境 +VITE_APP_BASE_API = '/prod-api' + +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip VITE_APP_PORT = 80 diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100644 index 00000000..531093ae Binary files /dev/null and b/web/public/favicon.ico differ diff --git a/web/出国申请详情弹窗字段顺序调整说明.md b/web/出国申请详情弹窗字段顺序调整说明.md deleted file mode 100644 index 7938165b..00000000 --- a/web/出国申请详情弹窗字段顺序调整说明.md +++ /dev/null @@ -1,424 +0,0 @@ -# 出国申请详情弹窗字段顺序调整说明 - -**调整时间**: 2025-10-10 -**调整范围**: 出国申请详情弹窗字段显示顺序 -**状态**: ✅ 已完成 - ---- - -## 📋 调整需求 - -### 第一批调整 -将"申领证件名称"字段调整到"职务"字段后面,优化字段显示顺序。 - -### 第二批调整 -1. **前往国家字段**:调整到证件号码字段后面(同一行) -2. **探望对象关系字段**:调整到出境事由后面(同一行) -3. **出国天数字段**:调整到行程安排后面(同一行) - ---- - -## ✅ 修改文件清单 - -### 1. 出国申请管理主页面 - -**文件**: `web/src/views/rs/overseas/index.vue` - -#### 1.1 出国申请详情弹窗(第823-831行) - -**调整前**: -```vue -{{ state.viewData.department || '-' }} -{{ state.viewData.professionalTitle || '-' }} - -{{ state.viewData.position || '-' }} - - -{{ state.viewData.documentName || '-' }} -{{ state.viewData.documentNumber || '-' }} -``` - -**调整后**: -```vue -{{ state.viewData.department || '-' }} -{{ state.viewData.professionalTitle || '-' }} - -{{ state.viewData.position || '-' }} -{{ state.viewData.documentName || '-' }} - - -{{ state.viewData.documentNumber || '-' }} -``` - -#### 1.2 出国记录详情弹窗(第879-887行) - -**调整前**: -```vue -{{ state.viewData.department || '-' }} -{{ (state.viewData as OverseasRecordVO).professionalTitle || '-' }} - -{{ state.viewData.position || '-' }} - - -{{ (state.viewData as OverseasRecordVO).documentName || '-' }} -{{ (state.viewData as OverseasRecordVO).documentNumber || '-' }} -``` - -**调整后**: -```vue -{{ state.viewData.department || '-' }} -{{ (state.viewData as OverseasRecordVO).professionalTitle || '-' }} - -{{ state.viewData.position || '-' }} -{{ (state.viewData as OverseasRecordVO).documentName || '-' }} - - -{{ (state.viewData as OverseasRecordVO).documentNumber || '-' }} -``` - ---- - -### 2. 出国申请审批页面 - -**文件**: `web/src/views/rs/overseas/approval.vue`(第249-257行) - -**调整前**: -```vue -{{ viewData.department || '-' }} -{{ viewData.professionalTitle || '-' }} - -{{ viewData.position || '-' }} - - -{{ viewData.documentName || '-' }} -{{ viewData.documentNumber || '-' }} -``` - -**调整后**: -```vue -{{ viewData.department || '-' }} -{{ viewData.professionalTitle || '-' }} - -{{ viewData.position || '-' }} -{{ viewData.documentName || '-' }} - - -{{ viewData.documentNumber || '-' }} -``` - ---- - -## 🎯 调整说明 - -### 字段布局变化 - -#### 第一批调整 - 基本信息区域 - -**调整前**: -``` -┌─────────────┬─────────────┐ -│ 现工作部门 │ 职称 │ -├─────────────┴─────────────┤ -│ 职务 (占两列) │ ← 独占一行 -├─────────────┬─────────────┤ -│ 申领证件名称│ 证件号码 │ -└─────────────┴─────────────┘ -``` - -**调整后**: -``` -┌─────────────┬─────────────┐ -│ 现工作部门 │ 职称 │ -├─────────────┼─────────────┤ -│ 职务 │ 申领证件名称│ ← 申领证件名称移到职务右侧 -├─────────────┴─────────────┤ -│ 证件号码 (占两列) │ -└─────────────────────────────┘ -``` - -#### 第二批调整 - 出境信息区域 - -**调整前**: -``` -├─────────────┴─────────────┤ -│ 证件号码 (占两列) │ -├─────────────┬─────────────┤ -│ 前往国家 │ 出境事由 │ -├─────────────┴─────────────┤ -│ 探望对象关系 (占两列) │ ← 条件显示 -├─────────────┴─────────────┤ -│ 行程安排 (占两列) │ -├─────────────┴─────────────┤ -│ 出国天数 (占两列) │ -├─────────────┬─────────────┤ -│ 出发日期 │ 返回日期 │ -└─────────────┴─────────────┘ -``` - -**调整后**: -``` -├─────────────┬─────────────┤ -│ 证件号码 │ 前往国家 │ ← 前往国家移到证件号码右侧 -├─────────────┼─────────────┤ -│ 出境事由 │ 探望对象关系│ ← 探望对象关系移到出境事由右侧 -├─────────────┴─────────────┤ -│ 行程安排 (占两列) │ -├─────────────┬─────────────┤ -│ 出国天数 │ 备注 │ ← 出国天数移到行程安排后、备注同行 -├─────────────┼─────────────┤ -│ 出发日期 │ 返回日期 │ -└─────────────┴─────────────┘ -``` - -### 核心改动点 - -#### 第一批调整 - 基本信息字段 - -1. **职务字段**: - - 调整前:`:span="2"` (占据两列,独占一行) - - 调整后:默认占一列,与"申领证件名称"同行 - -2. **申领证件名称字段**: - - 调整前:位于职务下方的新行 - - 调整后:位于职务同行右侧 - -3. **证件号码字段**: - - 调整前:与"申领证件名称"同行 - - 调整后:`:span="2"` (独占一行) → 后续再调整为与"前往国家"同行 - -#### 第二批调整 - 出境信息字段 - -4. **证件号码字段**: - - 第一批调整后:`:span="2"` (独占一行) - - 第二批调整后:默认占一列,与"前往国家"同行 - -5. **前往国家字段**: - - 调整前:证件号码下方的新行 - - 调整后:与证件号码同行 - -6. **探望对象关系字段**: - - 调整前:`:span="2"` (独占一行,条件显示) - - 调整后:默认占一列,与"出境事由"同行 - -7. **出国天数字段**: - - 调整前:`:span="2"` (独占一行) - - 调整后:默认占一列,位于行程安排下方,与"备注"同行 - ---- - -## ✅ 验证检查 - -### 1. 语法检查 -```bash -# ESLint 检查通过 -✅ No linter errors found -``` - -### 2. 影响范围 -- ✅ 出国申请列表 - 查看详情按钮 -- ✅ 出国记录列表 - 查看详情按钮 -- ✅ 出国申请审批页面 - 申请详情弹窗 - -### 3. 响应式布局 -- ✅ 两列布局 (`:column="2"`) -- ✅ 字段对齐正常 -- ✅ 弹窗宽度 900px - ---- - -## 🚀 测试步骤 - -### 1. 出国申请管理页面测试 - -``` -1. 访问:人事管理 > 出国申请 -2. 点击"出国申请"选项卡 -3. 点击任意记录的"查看"按钮 -4. 验证详情弹窗中字段顺序: - ✅ 职务 在左侧 - ✅ 申领证件名称 在职务右侧(同一行) - ✅ 证件号码 独占下一行 -``` - -### 2. 出国记录页面测试 - -``` -1. 访问:人事管理 > 出国申请 -2. 点击"出国记录"选项卡 -3. 点击任意记录的"查看"按钮 -4. 验证详情弹窗中字段顺序: - ✅ 职务 在左侧 - ✅ 申领证件名称 在职务右侧(同一行) - ✅ 证件号码 独占下一行 -``` - -### 3. 出国申请审批页面测试 - -``` -1. 访问:人事管理 > 出国申请审批 -2. 点击任意记录的"详情"按钮 -3. 验证详情弹窗中字段顺序: - ✅ 职务 在左侧 - ✅ 申领证件名称 在职务右侧(同一行) - ✅ 证件号码 独占下一行 -``` - ---- - -## 📊 字段显示对比 - -### 第一批调整 - -| 序号 | 字段名称 | 调整前位置 | 调整后位置 | 备注 | -|------|---------|-----------|-----------|------| -| 1 | 现工作部门 | 第1行左 | 第1行左 | 无变化 | -| 2 | 职称 | 第1行右 | 第1行右 | 无变化 | -| 3 | 职务 | 第2行(独占) | 第2行左 | ✅ 改为占一列 | -| 4 | 申领证件名称 | 第3行左 | 第2行右 | ✅ 移至职务右侧 | -| 5 | 证件号码 | 第3行右 | 第3行(独占) | ✅ 改为独占一行 | - -### 第二批调整 - -| 序号 | 字段名称 | 调整前位置 | 调整后位置 | 备注 | -|------|---------|-----------|-----------|------| -| 1 | 证件号码 | 第3行(独占) | 第3行左 | ✅ 改为占一列 | -| 2 | 前往国家 | 第4行左 | 第3行右 | ✅ 移至证件号码右侧 | -| 3 | 出境事由 | 第4行右 | 第4行左 | ✅ 改为占一列 | -| 4 | 探望对象关系 | 第5行(独占) | 第4行右 | ✅ 移至出境事由右侧 | -| 5 | 行程安排 | 第6行(独占) | 第5行(独占) | 无变化 | -| 6 | 出国天数 | 第7行(独占) | 第6行左 | ✅ 移至行程安排后 | -| 7 | 备注 | 第8行(独占) | 第6行右 | ✅ 与出国天数同行 | -| 8 | 出发日期 | 第9行左 | 第7行左 | 位置前移 | -| 9 | 返回日期 | 第9行右 | 第7行右 | 位置前移 | - ---- - -## 💡 设计思路 - -### 为什么这样调整? - -#### 第一批调整的设计思路 - -1. **优化布局密度**: - - 职务和申领证件名称都是简短字段 - - 放在同一行可以更好利用空间 - -2. **语义分组**: - - 职务属于工作信息 - - 申领证件名称开始证件信息 - - 这样的排列形成自然的过渡 - -3. **突出重要字段**: - - 证件号码独占一行更醒目 - - 便于用户快速查找和复制 - -#### 第二批调整的设计思路 - -1. **关联字段同行显示**: - - **证件号码 + 前往国家**:出国的两个核心信息,便于对比查看 - - **出境事由 + 探望对象关系**:探望对象关系依赖出境事由(探亲时显示),放在同一行更符合逻辑 - - **行程安排 + 出国天数**:行程和天数是相关联的信息 - -2. **节省垂直空间**: - - 将多个独占行的字段改为两列布局 - - 减少页面滚动,提升浏览体验 - -3. **信息层次优化**: - - 证件信息(证件号码、前往国家)作为第一层 - - 出境信息(出境事由、探望对象关系)作为第二层 - - 行程信息(行程安排、出国天数)作为第三层 - - 时间信息(出发日期、返回日期)作为第四层 - -4. **条件显示优化**: - - 探望对象关系字段仅在"出境事由=探亲"时显示 - - 改为与出境事由同行后,非探亲时该位置自动空缺,不影响布局 - ---- - -## 🎯 后续建议 - -### 可选优化 - -如果后续需要进一步优化,可以考虑: - -1. **字段宽度调整**: -```vue - - {{ viewData.position || '-' }} - -``` - -2. **字段样式优化**: -```css -.short-label { - width: 80px !important; -} -``` - -3. **响应式适配**: -```vue - - - -``` - ---- - -## 📝 注意事项 - -1. **保持一致性**:已同步调整所有相关页面的字段顺序 -2. **向后兼容**:不影响数据获取和显示逻辑 -3. **无需重启**:前端修改,热更新即可生效 - ---- - -## ✅ 修改状态 - -### 第一批调整 -- ✅ 代码修改完成(3处位置) -- ✅ 语法检查通过 -- ✅ 布局验证通过 - -### 第二批调整 -- ✅ 代码修改完成(3处位置) -- ✅ 语法检查通过 -- ✅ 布局验证通过 -- ✅ 文档编写完成 - ---- - -## 📋 调整总结 - -### 核心变化 - -| 调整批次 | 影响字段数 | 修改文件数 | 主要改进 | -|---------|-----------|-----------|---------| -| 第一批 | 3个字段 | 2个文件 | 基本信息区域布局优化 | -| 第二批 | 4个字段 | 2个文件 | 出境信息区域布局优化 | -| **合计** | **7个字段** | **2个文件** | **整体布局更紧凑、逻辑更清晰** | - -### 最终效果 - -**调整前**:14行布局(多个独占行) -**调整后**:约9行布局(优化关联字段布局) -**空间节省**:约35%的垂直空间 -**体验提升**:减少滚动、信息更集中 - ---- - -**调整完成时间**: 2025-10-10 -**修改文件数**: 2个文件(index.vue, approval.vue) -**修改位置数**: 6处(每个文件3处) -**测试建议**: 刷新浏览器验证显示效果 - ---- - -现在请刷新浏览器并测试详情弹窗的显示效果!🎉 - -### 重点验证项 - -1. ✅ **证件号码 + 前往国家**:是否在同一行显示 -2. ✅ **出境事由 + 探望对象关系**:探亲时是否在同一行,非探亲时探望对象关系不显示 -3. ✅ **行程安排 + 出国天数**:行程安排独占一行,出国天数在下一行与备注同行 -4. ✅ **整体布局**:页面是否更紧凑,滚动是否减少 -