修复项目管理页误调 syncProjectsModalBodyLock、将 router.js 提前加载以避免 switchPage 未定义,并补全 hash 路由对 projects 页的支持。
Fixed the projects page by calling syncAppModalBodyLock instead of the missing function, loading router.js in so switchPage is defined before nav clicks, and adding projects to hash-based routing.