From 188b73a551c1c33dfaeb57f00a497d328afcd4fd Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 29 Apr 2026 10:05:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .data/content/contents.sqlite | Bin 589824 -> 589824 bytes .gitignore | 1 + .idea/UniappTool.xml | 10 + .idea/inspectionProfiles/Project_Default.xml | 125 ++ app/components/PortalFooter.vue | 76 + app/components/PortalHeader.vue | 355 +++++ app/components/SiteHeader.vue | 165 +- app/pages/article/[id].vue | 824 +++++----- app/pages/index.vue | 1433 ++++++++++-------- app/pages/news/index.vue | 4 + public/images/banner.png | Bin 0 -> 2760173 bytes public/images/zjsq.png | Bin 0 -> 6303 bytes public/images/zjzx.png | Bin 0 -> 58243 bytes public/images/zjzxBg.png | Bin 0 -> 34275 bytes public/images/图层 50.png | Bin 0 -> 12558 bytes public/images/截屏2026-04-28 21.38.43.png | Bin 0 -> 608366 bytes 16 files changed, 1938 insertions(+), 1055 deletions(-) create mode 100644 .idea/UniappTool.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 app/components/PortalFooter.vue create mode 100644 app/components/PortalHeader.vue create mode 100644 public/images/banner.png create mode 100644 public/images/zjsq.png create mode 100644 public/images/zjzx.png create mode 100644 public/images/zjzxBg.png create mode 100644 public/images/图层 50.png create mode 100644 public/images/截屏2026-04-28 21.38.43.png diff --git a/.data/content/contents.sqlite b/.data/content/contents.sqlite index 931110efd30d30efe0fc09d721f77757fa86bc15..04b9bb3f3c734bbb838370a6954ed7721072dcaf 100644 GIT binary patch delta 5857 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 TNO1V8halKVp)c0_S2X_(y`&x* delta 5679 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 + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9ae2fa3 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,125 @@ + + + + \ No newline at end of file diff --git a/app/components/PortalFooter.vue b/app/components/PortalFooter.vue new file mode 100644 index 0000000..12381f4 --- /dev/null +++ b/app/components/PortalFooter.vue @@ -0,0 +1,76 @@ + + + diff --git a/app/components/PortalHeader.vue b/app/components/PortalHeader.vue new file mode 100644 index 0000000..98bf2cb --- /dev/null +++ b/app/components/PortalHeader.vue @@ -0,0 +1,355 @@ + + + + + diff --git a/app/components/SiteHeader.vue b/app/components/SiteHeader.vue index 9f36d33..341b63d 100644 --- a/app/components/SiteHeader.vue +++ b/app/components/SiteHeader.vue @@ -29,7 +29,7 @@ {{ sub.label }} - + {{ item.label }} {{ item.badge }} @@ -94,7 +94,7 @@ {{ sub.label }} - + {{ item.label }} {{ item.badge }} @@ -120,7 +120,6 @@ import type { User } from '@/api/system/user/model' import { getToken, removeToken } from '@/utils/token-util' import { clearAuthz, setAuthzFromUser } from '@/utils/permission' import { UserOutlined, ProfileOutlined, MessageOutlined } from '@ant-design/icons-vue' -import { message } from 'ant-design-vue' const nav = computed(() => mainNav) @@ -128,18 +127,18 @@ const route = useRoute() const open = ref(false) const selectedKeys = computed(() => { - const hit = nav.value.find((n) => n.to === route.path) - if (hit) return [hit.to] - if (route.path.startsWith('/news')) return ['/news'] - if (route.path.startsWith('/consultation')) return ['/consultation'] - if (route.path.startsWith('/reference')) return ['/reference'] - if (route.path.startsWith('/expert')) return ['/expert'] - if (route.path.startsWith('/think-tank')) return ['/think-tank'] - if (route.path.startsWith('/suggestions')) return ['/suggestions'] - if (route.path.startsWith('/membership')) return ['/membership'] - if (route.path.startsWith('/hanmo')) return ['/hanmo'] - if (route.path.startsWith('/about')) return ['/about'] - return ['/'] + const currentPath = route.path + + const exactHit = nav.value.find((item) => item.to === currentPath) + if (exactHit) return [exactHit.key] + + const prefixHit = nav.value.find((item) => item.to !== '/' && currentPath.startsWith(`${item.to}/`)) + if (prefixHit) return [prefixHit.key] + + const sectionHit = nav.value.find((item) => item.to !== '/' && currentPath.startsWith(item.to)) + if (sectionHit) return [sectionHit.key] + + return ['home'] }) // 获取 badge 样式类 @@ -154,8 +153,6 @@ function getBadgeClass(badge: string) { return `${baseClass} bg-gray-500 text-white` } -const siteName = ref('广西决策咨询网') - const token = ref('') const user = ref(null) const isAuthed = computed(() => !!token.value) @@ -195,12 +192,6 @@ async function refreshAuth() { } } -function goConsoleCenter() { - if (!isAuthed.value) return navigateTo('/login') - open.value = false - navigateTo('/profile') -} - function logout() { removeToken() try { @@ -238,8 +229,9 @@ onUnmounted(() => { diff --git a/app/pages/article/[id].vue b/app/pages/article/[id].vue index 878cf44..02e7afc 100644 --- a/app/pages/article/[id].vue +++ b/app/pages/article/[id].vue @@ -1,23 +1,25 @@