feat: Wave 3 - Dashboard redesign + RBAC + AI assistant updates

- Redesign index.html from system-monitor to user-centric workspace
  (welcome banner, summary cards, 今日待办, AI 智能建议, collapsible admin section)
- Add fetchTodos/fetchSuggestions/getPriorityClass/isOverdue methods
- Update uni-nav current-page from 'dashboard' to 'workspace'
- Add require_role to 10 admin router imports (RBAC foundation)
- Update ai-assistant.js: add factory/insights pages, org_id in chat requests
This commit is contained in:
Yuzhiran Dev
2026-06-17 18:24:57 +08:00
parent 5caf7bc52e
commit f6e5e90736
13 changed files with 466 additions and 114 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ from ..database import get_db
from ..models import User, Topic, SystemConfig
from ..schemas import UserCreate, UserUpdate, UserResponse
from ..core.audit_logger import audit_log
from .auth import get_current_admin, org_filter
from .auth import get_current_admin, require_role, org_filter
import json
router = APIRouter(prefix="/api/admin", tags=["admin"])
+1 -1
View File
@@ -7,7 +7,7 @@ from typing import Optional
from ..database import get_db
from ..models import CollectorCategory, CollectorSource
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/collector", tags=["collector_mgmt"], dependencies=[Depends(get_current_admin)])
+1 -1
View File
@@ -7,7 +7,7 @@ import json
from ..database import get_db
from ..models import KeywordDomainMap, SensitiveWord, ContentCleanRule, TrendFieldMapping, CollectorCategory
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/config", tags=["admin"])
+1 -1
View File
@@ -5,7 +5,7 @@ from typing import List
from ..database import get_db
from ..models import LLMConfig
from ..schemas import LLMConfigBase, LLMConfigResponse
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/llmconfigs", tags=["admin"])
+1 -1
View File
@@ -5,7 +5,7 @@ from typing import List
from ..database import get_db
from ..models import Menu, User
from ..schemas import MenuCreate, MenuUpdate, MenuResponse
from .auth import get_current_admin, get_current_user
from .auth import get_current_admin, require_role, get_current_user
router = APIRouter(prefix="/api/admin/menus", tags=["admin"])
public_router = APIRouter(prefix="/api/menus", tags=["menus"])
+1 -1
View File
@@ -6,7 +6,7 @@ from datetime import datetime
from ..database import get_db
from ..models import PromptConfig
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/prompt-configs", tags=["admin"])
+1 -1
View File
@@ -5,7 +5,7 @@ from typing import List
from ..database import get_db
from ..models import Role, User
from ..schemas import RoleCreate, RoleUpdate, RoleResponse
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/roles", tags=["admin"])
+1 -1
View File
@@ -9,7 +9,7 @@ from datetime import datetime, timezone
from ..database import get_db
from ..models import SearchProvider
from .auth import get_current_admin
from .auth import get_current_admin, require_role
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/search-providers", tags=["search_providers"])
+1 -1
View File
@@ -5,7 +5,7 @@ from typing import List, Dict, Any
from ..database import get_db
from ..models import SystemConfig
from ..schemas import SystemConfigBase, SystemConfigResponse
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/systemconfigs", tags=["admin"])
+1 -1
View File
@@ -6,7 +6,7 @@ from typing import List, Optional
from ..database import get_db
from ..models import TaskConfig, TaskLog
from ..schemas import TaskConfigBase, TaskConfigUpdate, TaskConfigResponse, TaskLogResponse
from .auth import get_current_admin
from .auth import get_current_admin, require_role
router = APIRouter(prefix="/api/admin/task-configs", tags=["admin"])