feat: 会议ID应用赋值 + 会议表单/详情优化 + admin工作台统计与用户管理
- meetingId 由 DB 自增改为应用赋值 10 位数字 (yyMMdd + 4 位序列, Redis 按日期计数) - 会议开始时间不能晚于结束时间校验; 参会人表单身份证附件/角色单独一行 - 会议详情左右列比例 7:3 -> 8:2 (材料审核列收窄) - admin/workbench 用户总数/角色类型数/各角色分布统计修复 (改用 listByRole 按 role_type 过滤) - 新增 admin 用户管理接口 + 门户页脚 + H5 签到/上传优化
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
<el-container>
|
||||
<el-header v-if="!route.meta?.hideMenu" class="topbar">
|
||||
<div class="topbar-left">
|
||||
<span class="page-title">{{ route.meta?.title || '工作台' }}</span>
|
||||
<span class="page-title">{{ headerTitle }}</span>
|
||||
</div>
|
||||
<div class="topbar-right">
|
||||
<el-button text @click="$router.push('/')">门户首页</el-button>
|
||||
@@ -70,6 +70,7 @@ import { useUserStore } from '@/store/user'
|
||||
import { logout as logoutApi } from '@/api/auth'
|
||||
import { sseStart, sseStop, onGlobal } from '@/utils/sseClient'
|
||||
import { listMyMessages } from '@/api/public'
|
||||
import { usePageTitle } from '@/utils/pageTitle'
|
||||
import { getMyExpertProfile } from '@/api/business/expert'
|
||||
import { ElNotification } from 'element-plus'
|
||||
import { House, Document, Calendar, User, List, OfficeBuilding, Setting, Bell, EditPen, DataAnalysis, Tickets, CaretBottom, Folder, Medal, UserFilled, Connection, Box, Star, Grid, Files, Compass, Collection } from '@element-plus/icons-vue'
|
||||
@@ -79,6 +80,10 @@ const router = useRouter()
|
||||
const store = useUserStore()
|
||||
const role = computed(() => route.meta?.role || store.role)
|
||||
|
||||
// 顶栏标题: 页面动态标题 (如会议 新建/修改/复制) 优先, 否则回退 route.meta.title
|
||||
const dynamicTitle = usePageTitle()
|
||||
const headerTitle = computed(() => dynamicTitle.value || route.meta?.title || '工作台')
|
||||
|
||||
// ===== 全局未读数 (navbar bell 角标) =====
|
||||
// AdminLayout 是唯一永驻组件, 由它统一维护 unreadCount,
|
||||
// 任何路由切换都不会丢订阅, 永远正确
|
||||
|
||||
Reference in New Issue
Block a user