feat: remove nginx, add projects/milestones/notifications pages

- Dockerfile: replace nginx with serve for static files
- Fix auth endpoint: /auth/login → /auth/token
- Add ProjectsPage, ProjectDetailPage
- Add MilestonesPage, MilestoneDetailPage with progress bar
- Add NotificationsPage with unread count
- Sidebar: add milestones/notifications nav, live unread badge
- API: configurable VITE_API_BASE for host nginx proxy
- Types: add Milestone, MilestoneProgress, Notification, ProjectMember
This commit is contained in:
zhi
2026-03-06 13:05:19 +00:00
parent 853594f447
commit 54d4c4379a
13 changed files with 529 additions and 25 deletions

View File

@@ -1,7 +1,7 @@
import axios from 'axios'
const api = axios.create({
baseURL: '/api',
baseURL: import.meta.env.VITE_API_BASE || '/api',
})
api.interceptors.request.use((config) => {
@@ -17,7 +17,9 @@ api.interceptors.response.use(
(err) => {
if (err.response?.status === 401) {
localStorage.removeItem('token')
window.location.href = '/login'
if (window.location.pathname !== '/login') {
window.location.href = '/login'
}
}
return Promise.reject(err)
}