diff --git a/package-lock.json b/package-lock.json index e991d0b..5702834 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^7.3.1", "axios": "^1.19.0", + "marked": "^18.0.9", "pinia": "^4.0.2", "vue": "^3.5.40", "vue-router": "^5.2.0" @@ -1871,6 +1872,18 @@ "url": "https://github.com/sponsors/sxzz" } }, + "node_modules/marked": { + "version": "18.0.9", + "resolved": "https://registry.npmmirror.com/marked/-/marked-18.0.9.tgz", + "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", diff --git a/package.json b/package.json index c250698..e24ea4e 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^7.3.1", "axios": "^1.19.0", + "marked": "^18.0.9", "pinia": "^4.0.2", "vue": "^3.5.40", "vue-router": "^5.2.0" diff --git a/src/router/index.ts b/src/router/index.ts index cbe1817..0664333 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -112,6 +112,13 @@ export const routes: RouteRecordRaw[] = [ component: () => import('@/views/DocumentView.vue'), meta: { title: '文档中心' }, }, + // === doc 子域动态阅读器(doc.gvsds.com/) === + { + path: ':uuid([0-9a-fA-F-]{32,36})', + name: 'DocReader', + component: () => import('@/views/DocReaderView.vue'), + meta: { title: '文档阅读' }, + }, // === ProJect 子目录(续) === { path: 'ProJect/Unauthorized', @@ -195,14 +202,20 @@ const router = createRouter({ }, }) -// 子域感知:invite.gvsds.com 根路径 → 招聘首页 -// 其余子域(www 等)根路径保持默认首页 +// 子域感知: +// invite.gvsds.com 根路径 → 招聘首页 +// doc.gvsds.com 根路径 → 文档中心(DocumentView) +// 其余子域(www 等)根路径保持默认首页 router.beforeEach((to) => { const host = window.location.hostname || '' const isInvite = host === 'invite.gvsds.com' || host.startsWith('invite.') + const isDoc = host === 'doc.gvsds.com' || host.startsWith('doc.') if (isInvite && to.path === '/') { return { path: '/Invite', replace: true } } + if (isDoc && to.path === '/') { + return { path: '/Document', replace: true } + } return true }) diff --git a/src/views/DocReaderView.vue b/src/views/DocReaderView.vue new file mode 100644 index 0000000..70ccc0b --- /dev/null +++ b/src/views/DocReaderView.vue @@ -0,0 +1,260 @@ + + + + +