feat: 删除JSP视图层,完善评价和通知系统,新增拼团模块

- 删除所有 JSP 页面(20个文件),前端完全迁移至 Vue 3 SPA
- 完善评价系统:ReviewDialog 组件、用户评价历史页、评价状态检查API
- 新增通知系统:Notification 实体/仓库/服务/控制器,NotificationCenter 接入真实API
- 新增拼团模块:GroupBuying 全套后端和前端页面
- 修复 review check API 参数双重包装导致请求格式错误
- 修复通知 API 路径缺少 /api 前缀和响应格式处理
- MessageListenerService 集成 NotificationService 创建持久化通知

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 16:40:26 +08:00
parent b684ea38d4
commit c4582655d9
115 changed files with 5968 additions and 12623 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="countdown-timer">
<template v-if="timeLeft > 0">
<el-icon class="text-red-500 mr-1"><Clock /></el-icon>
<el-icon class="countdown-icon mr-1"><Clock /></el-icon>
<span class="time-block">{{ hours.toString().padStart(2, '0') }}</span>
<span class="separator">:</span>
<span class="time-block">{{ minutes.toString().padStart(2, '0') }}</span>
@@ -60,12 +60,20 @@ onUnmounted(() => {
.countdown-timer {
@apply flex items-center justify-center text-lg font-mono;
.countdown-icon {
color: #5e5e58;
}
.time-block {
@apply px-2 py-1 bg-red-50 text-red-600 rounded;
@apply px-2 py-1 rounded;
background: #fff;
color: #171715;
border: 1px solid #171715;
}
.separator {
@apply mx-1 text-red-500 font-bold;
@apply mx-1 font-bold;
color: #5e5e58;
}
}
</style>
</style>