From 56aea4ad868056526b3dc1989f0d7e880bcf5c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sun, 26 Apr 2026 01:44:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(about):=20=E9=87=8D=E6=9E=84=E2=80=9C?= =?UTF-8?q?=E5=85=B3=E4=BA=8E=E6=88=91=E4=BB=AC=E2=80=9D=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=B9=B6=E4=B8=B0=E5=AF=8C=E5=86=85=E5=AE=B9=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 采用左右分栏布局,左侧新增图标导航 - 全新设计顶部 Banner,提升视觉效果 - 添加学会简介数据亮点和主要职能展示 - 新增组织机构图、主要领导及专家委员会成员展示 - 引入学会章程章节分明条目展示 - 丰富咨询服务内容,新增服务项目卡片和联系方式 - “加入我们”板块支持企业与个人会员申请详情说明 - 支持资料下载并优化排版与交互体验 - 增强响应式支持,保证移动端体验一致 - 页面样式大幅调整,提升整体美观与可读性 --- .data/content/contents.sqlite | Bin 589824 -> 589824 bytes .workbuddy/expert-history.json | 13 +- .workbuddy/memory/MEMORY.md | 60 ++ app/components/ArticleListPage.vue | 368 ++++++++ app/config/admin-nav.ts | 118 +-- app/error.vue | 236 +++++ app/layouts/admin.vue | 41 +- app/pages/about/charter.vue | 8 + app/pages/about/consultation.vue | 7 + app/pages/about/index.vue | 897 ++++++++++++++++--- app/pages/about/organization.vue | 8 + app/pages/admin/applications/expert.vue | 220 +++++ app/pages/admin/applications/member.vue | 186 ++++ app/pages/admin/categories.vue | 334 +++++++ app/pages/admin/downloads.vue | 244 ++++++ app/pages/admin/experts/review.vue | 337 ++++++++ app/pages/admin/members/review.vue | 324 +++++++ app/pages/admin/settings.vue | 1057 +++++++++++------------ app/pages/article/[id].vue | 602 +++++++++++++ app/pages/consultation/index.vue | 195 +---- app/pages/expert/[id].vue | 477 ++++++++++ app/pages/hanmo/index.vue | 198 +---- app/pages/news/index.vue | 237 +---- app/pages/profile/index.vue | 612 +++++++++++++ app/pages/reference/index.vue | 217 +---- app/pages/think-tank/index.vue | 213 +---- 26 files changed, 5468 insertions(+), 1741 deletions(-) create mode 100644 app/components/ArticleListPage.vue create mode 100644 app/error.vue create mode 100644 app/pages/about/charter.vue create mode 100644 app/pages/about/consultation.vue create mode 100644 app/pages/about/organization.vue create mode 100644 app/pages/admin/applications/expert.vue create mode 100644 app/pages/admin/applications/member.vue create mode 100644 app/pages/admin/categories.vue create mode 100644 app/pages/admin/downloads.vue create mode 100644 app/pages/admin/experts/review.vue create mode 100644 app/pages/admin/members/review.vue create mode 100644 app/pages/article/[id].vue create mode 100644 app/pages/expert/[id].vue create mode 100644 app/pages/profile/index.vue diff --git a/.data/content/contents.sqlite b/.data/content/contents.sqlite index 99e6cd885d375d268677687c64b5d91052289ebf..5ec37a8a2c39db413b3df88b79893061a9556eab 100644 GIT binary patch delta 1507 zcmYk+eQZ-z6aes^ci+43ZR>iUfa7C>%qkCa@Yml4;0lG{gjgMG=?+7WoU5=y}s6HvQe4d*A8n zIq$vuLZQi_(Bw$&V>u3oBSMBhS#K3R1vx#wA{Ugmb+`_8xPT~x$qtv=9PWy$W@|R3 zgErPdUoVBjswlQkc7z-z9pn(%NnRn_iJfETA0YdPy=EU9&IwZd5?S`YwH*}OdD}=c zY28Xg6KNs#4+5l-G>|Q1Gg(X4{bxAdMDu#Gk!&D!#7}%=4H?c`Pw@(}oKzFL7`v!i zvee-ybS$A@F&XaWRf^k4JK0YTl5(=JCwz~|v7PG8Os7V3L;OIaV}W$W)B%y_b<*Te z77f8n8g>{o1aunK+sRAi!#-6jg@bXQ@wb4(T^_^ia&uFqV~Y`Xv)R}e=7uacd0fQ3 zl%v^oEW=18e_GB=YhMef#<0OWc)poWMNhjDke5^1Q~^sm7xGEHQ}`7DE2Qp$2STrJ zw7Yv5!vjVkCcoeXN3Z2s>BJOVy-0Ck!zK2dyz7M#LJ#_?~cru1{-6ie#nDHhaCsF7+&r(RZDP0Jgt+m$0^dqi&) zu*N!lyZ~qS>rOc%s$Uea8Jj+WVvGqT2Yvflw)DjyDlB)s)9!w)G^3Cf7--a;@q`{@ z;Fmq0>xCSA@=CuxiEH+qtL^Ppss)-aFh81ib&i$aKqd|Z^yyHC(8N~A8n50Z_=YL| zKw~Xd)#zpNj$0WiFrA@{z=lfw7(y?fDEmv5X9QlDtCpZ=ke667so{k(eJ<4FK$(({ zsh?qj9P}uo1$s{#MOf-pcG+calHJ~+3i82?*738T*&V;&3;z5N;9OSg;}(xr6~XT%0+YLS3FD0&3NsyGD?mK^4|n(!)dqm z8J6#XAuFQFSz$#goN+H_revn}NW@DyJyZ5Z+lf7cFa|@Pu!)u@njzHsQWFx-7%K7`t&!9k_do;X7e@dWM$voXbw% z7gqH9q1j$^_cCfcsZrytnCMhiqIrvr!_=QjmV76rY!t`NYAU7&w2=^!iC+~^_2{e{Z=aI}4*1NiM6<5NsVxf_o!Q4LJZQfJD%D($-K6!T~%ye8GO z@t3f3U&r6yHiG!xMPsELNEy=wyn#I&mSXWLW1f6JY19gMQ>qEtq>{yqN8(sY)p|AU zq0sENUlsN|(2J2a*uVRxA;K(yH_D9ha0FqNDvzEWs$sem_tbkX`yV56LXiC=ta5)Q Uru+1vw?c=U5TZ4_QDThy2Nyi33IG5A delta 1494 zcmXxkdu$X%7y$75c6MjC<$AMH|zwKUqrbdb=(_?0z+51!-DINiC@& ztH^4yhSZUI5+n^|Em=p_lMN(9Hj+(bGucA6l5J!=X(T&H6N!+W#17_ZaA7L%b~uVN z5$~moePlm5Kn{{ta)=xz_L9y>MD8;==!|+NyDh4kPL1je@e`$v>CzcjyG8yUCtb|y zLrHZuB>{tyRXQb&cIVylpH5ZtX!c;+5yq?X=y^AuoTHAB;<9nym5dvY1ZVFv zW?Rp(W7`dhh^gFV-o3(E|~?WVWzRHrc- zeUFsc@|~2jQXIRbtC+r_=fYxicd$H}-=*IcuoNQ(^Ww!^eI$BYl%Txo(?$wdg3-tP zMLEu^eJfxYzTwvj9IWMeexznEE3cPt$=_d!8`X2&TN;9mag|lQ^V@bhl6*DJI zD}N=K;uTp?C4Ig8V-BIV9-et2s}a8D12O(3|4QCXL9W2gYmgan4K6*WP+)ORfz{!# z<3_ox>Vne(J?E56k9utQ07@|~l>X@7#d4%S4l!Z5Ycs7uX~rNeFgSrblTl7{Z;em{EzT*P#zyKg^$lwb(sTDZtdvFjV$>l>q{MpX(*)@hMvvg@>?@x#c$= z4`tW2C zP8h|Va%@`rUO=-P8e+GEH9e4x>3fEmbn`faO)^o)i#cqQ*GBO|4m*=^jhWhx+BMYy z>(uEY?0H-1Z^dsor7xyk5YU97{zjoJ_QMsSkFK%LlrTn48pY`OL@PRaGv7*gjlimz ziVN$muvg_@KIkj-V8A{XB2xFlL!sB!+ec4}92%zi;IEI3!S;UGg^A-@Dbfx9Kd&yz zENbmGhIBCPUy=0KQ65O9RmyzHu)VeR${Z6Oh@;d-Sq#AH{l)?}6aV0WU`!D3A z9|$Y +
+ +
+
+

{{ config.title }}

+ +
+
+ +
+ + + +
+
{{ config.title }}
+
+ {{ cat.label }} +
+
+
+ + + + +
+ {{ currentCategoryLabel }} + 共 {{ total }} 篇文章 +
+ +
+ +
+ +
+
+
+
+ +
+
+

{{ article.title }}

+

{{ article.overview }}

+ +
+
+
+ +
+ +
+ +
+ +
+
+
+
+
+
+ + + + + diff --git a/app/config/admin-nav.ts b/app/config/admin-nav.ts index e4e256b..f9a83ca 100644 --- a/app/config/admin-nav.ts +++ b/app/config/admin-nav.ts @@ -1,15 +1,19 @@ import type { Component } from 'vue' import { - AppstoreOutlined, - AuditOutlined, DashboardOutlined, + FileTextOutlined, TeamOutlined, SettingOutlined, - FileTextOutlined, - CustomerServiceOutlined, - ShopOutlined, - GitlabOutlined, - GlobalOutlined, + AuditOutlined, + MessageOutlined, + UserOutlined, + SolutionOutlined, + BankOutlined, + NotificationOutlined, + FolderOutlined, + BookOutlined, + StarOutlined, + FormOutlined, } from '@ant-design/icons-vue' export type AdminNavItem = { @@ -42,63 +46,73 @@ export const adminNav: AdminNavEntry[] = [ icon: DashboardOutlined, to: '/admin', }, - { - key: 'admin-app-review', - label: '应用审核', - icon: AuditOutlined, - badge: 'NEW', - to: '/admin/app-review', - }, - { - key: 'admin-git-review', - label: 'Git 审核', - icon: GitlabOutlined, - to: '/admin/git-review', - }, - { - key: 'admin-apps', - label: '应用管理', - icon: AppstoreOutlined, - children: [ - { key: 'admin-all-apps', label: '全局应用', icon: GlobalOutlined, to: '/admin/all-apps' }, - { key: 'admin-apps-list', label: '我的应用', icon: AppstoreOutlined, to: '/admin/apps' }, - { key: 'admin-market', label: '应用市场', icon: ShopOutlined, to: '/admin/market' }, - ], - }, - { - key: 'admin-users', - label: '用户管理', - icon: TeamOutlined, - children: [ - { key: 'admin-users-list', label: '所有用户', icon: TeamOutlined, to: '/admin/users' }, - { key: 'admin-developers', label: '开发者', icon: TeamOutlined, to: '/admin/developers' }, - ], - }, - { - key: 'admin-tickets', - label: '工单处理', - icon: CustomerServiceOutlined, - to: '/admin/tickets', - }, + // ── 内容管理 ── { key: 'admin-content', label: '内容管理', icon: FileTextOutlined, children: [ { key: 'admin-articles', label: '文章管理', icon: FileTextOutlined, to: '/admin/articles' }, - { key: 'admin-article-categories', label: '文章分类', icon: FileTextOutlined, to: '/admin/article-categories' }, - { key: 'admin-announcements', label: '公告管理', icon: FileTextOutlined, to: '/admin/announcements' }, + { key: 'admin-categories', label: '栏目管理', icon: FolderOutlined, to: '/admin/categories' }, + { key: 'admin-announcements', label: '公告管理', icon: NotificationOutlined, to: '/admin/announcements' }, ], }, + // ── 专家管理 ── { - key: 'admin-tenant', - label: '租户管理', - icon: ShopOutlined, - to: '/admin/tenants', + key: 'admin-experts', + label: '专家管理', + icon: StarOutlined, + children: [ + { key: 'admin-experts-list', label: '专家列表', icon: SolutionOutlined, to: '/admin/experts' }, + { key: 'admin-experts-review', label: '专家审核', icon: AuditOutlined, to: '/admin/experts/review', }, + ], }, + // ── 会员管理 ── + { + key: 'admin-members', + label: '会员管理', + icon: BankOutlined, + children: [ + { key: 'admin-members-list', label: '会员列表', icon: TeamOutlined, to: '/admin/members' }, + { key: 'admin-members-review', label: '会员审核', icon: AuditOutlined, to: '/admin/members/review' }, + ], + }, + // ── 建言献策 ── + { + key: 'admin-suggestions', + label: '建言献策', + icon: MessageOutlined, + to: '/admin/suggestions', + badge: 'NEW', + }, + // ── 用户管理 ── + { + key: 'admin-users', + label: '用户管理', + icon: UserOutlined, + to: '/admin/users', + }, + // ── 资料下载 ── + { + key: 'admin-downloads', + label: '资料下载管理', + icon: BookOutlined, + to: '/admin/downloads', + }, + // ── 申请管理 ── + { + key: 'admin-applications', + label: '申请管理', + icon: FormOutlined, + children: [ + { key: 'admin-expert-applications', label: '专家申请', icon: SolutionOutlined, to: '/admin/applications/expert' }, + { key: 'admin-member-applications', label: '会员申请', icon: TeamOutlined, to: '/admin/applications/member' }, + ], + }, + // ── 系统设置 ── { key: 'admin-settings', - label: '平台设置', + label: '系统设置', icon: SettingOutlined, to: '/admin/settings', }, diff --git a/app/error.vue b/app/error.vue new file mode 100644 index 0000000..8500289 --- /dev/null +++ b/app/error.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/app/layouts/admin.vue b/app/layouts/admin.vue index 09052c1..31ace5d 100644 --- a/app/layouts/admin.vue +++ b/app/layouts/admin.vue @@ -15,7 +15,7 @@ @@ -79,15 +79,15 @@
- 管理员 + 决策咨询网 {{ currentPageTitle }}
- - + + - 控制台 + 网站首页 @@ -106,18 +106,14 @@ 账户信息 - - - 我的订单 - - + - 实名认证 + 个人信息 - - - 开发者中心 + + + 查看网站 @@ -145,14 +141,12 @@ diff --git a/app/pages/about/consultation.vue b/app/pages/about/consultation.vue new file mode 100644 index 0000000..3c24af1 --- /dev/null +++ b/app/pages/about/consultation.vue @@ -0,0 +1,7 @@ + + + diff --git a/app/pages/about/index.vue b/app/pages/about/index.vue index a1372ea..e4923a9 100644 --- a/app/pages/about/index.vue +++ b/app/pages/about/index.vue @@ -1,105 +1,256 @@ @@ -108,86 +259,590 @@ useHead({ title: '关于我们 - 决策咨询网' }) const route = useRoute() -const currentSection = ref((route.query.section as string) || 'intro') -watch(() => route.query.section, (newSection) => { - currentSection.value = (newSection as string) || 'intro' +const navItems = [ + { key: 'intro', label: '学会简介', icon: '🏛️' }, + { key: 'organization', label: '组织机构', icon: '🔧' }, + { key: 'charter', label: '学会章程', icon: '📋' }, + { key: 'consultation', label: '咨询服务', icon: '💼' }, + { key: 'join', label: '加入我们', icon: '🤝' }, +] + +// 根据路由path判断当前section +const sectionMap: Record = { + '/about': 'intro', + '/about/organization': 'organization', + '/about/charter': 'charter', + '/about/consultation': 'consultation', + '/about/join': 'join', +} + +const currentSection = ref( + route.query.section as string || + sectionMap[route.path] || + 'intro' +) + +function switchSection(key: string) { + currentSection.value = key +} + +watch(() => route.path, (newPath) => { + currentSection.value = sectionMap[newPath] || 'intro' }) + +watch(() => route.query.section, (sec) => { + if (sec) currentSection.value = sec as string +}) + +const mainFunctions = [ + { icon: '🔬', title: '决策咨询研究', desc: '围绕广西经济社会发展重大问题,开展战略性、综合性、前瞻性研究' }, + { icon: '📝', title: '政策建议提供', desc: '为各级政府提供有参考价值的政策建议和咨询报告' }, + { icon: '👥', title: '专家交流合作', desc: '搭建区内外专家学者交流合作平台,推动学术思想碰撞' }, + { icon: '📡', title: '成果宣传推广', desc: '多渠道发布和推广决策咨询研究成果,服务社会各界' }, +] + +const leaders = [ + { name: '陈某某', position: '会长' }, + { name: '李某某', position: '副会长' }, + { name: '王某某', position: '副会长' }, + { name: '张某某', position: '秘书长' }, +] + +const committeeMembers = ['张教授', '李研究员', '王专家', '刘学者', '赵教授', '黄学者', '林研究员', '吴教授'] + +const charter = [ + { + title: '第一章 总则', + items: [ + '广西决策咨询学会是由全区从事决策咨询研究的专家学者和实际工作者自愿组成的学术性、非营利性社会组织。', + '学会的宗旨是:以服务党政决策为核心使命,汇聚全区高端智慧,围绕经济社会发展重大问题开展研究,为科学决策提供智力支撑。', + ] + }, + { + title: '第二章 业务范围', + items: [ + '开展决策咨询理论与应用研究,撰写决策咨询报告。', + '组织学术交流、研讨会议等活动,促进学科发展。', + '为政府机构、企事业单位提供专业决策咨询服务。', + '培养决策咨询专业人才,开展业务培训。', + ] + }, + { + title: '第三章 会员', + items: [ + '凡符合本章程规定,经申请并经理事会审议通过,即为本学会会员。', + '会员分为单位会员(企业会员)和个人会员两类。', + '会员有权出席会员大会,参与学会活动,享受学会提供的服务和资源。', + ] + }, +] + +const consultationServices = [ + { icon: '🎯', title: '政策研究', desc: '深入研究党中央国务院及自治区重要政策,提供权威解读和实施建议', tags: ['政策解读', '战略规划'] }, + { icon: '🗺️', title: '规划咨询', desc: '为地方政府、园区和企业提供区域规划、产业规划、专项规划编制咨询', tags: ['区域规划', '产业规划'] }, + { icon: '📊', title: '项目评估', desc: '对重大投资项目开展可行性研究、风险评估和后评价服务', tags: ['可行性研究', '风险评估'] }, + { icon: '🔍', title: '专题调研', desc: '根据委托需求开展实地调研,形成翔实的调研报告和对策建议', tags: ['实地调研', '对策建议'] }, +] diff --git a/app/pages/about/organization.vue b/app/pages/about/organization.vue new file mode 100644 index 0000000..ef400c6 --- /dev/null +++ b/app/pages/about/organization.vue @@ -0,0 +1,8 @@ + + + diff --git a/app/pages/admin/applications/expert.vue b/app/pages/admin/applications/expert.vue new file mode 100644 index 0000000..9f8c62c --- /dev/null +++ b/app/pages/admin/applications/expert.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/app/pages/admin/applications/member.vue b/app/pages/admin/applications/member.vue new file mode 100644 index 0000000..de709f4 --- /dev/null +++ b/app/pages/admin/applications/member.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/app/pages/admin/categories.vue b/app/pages/admin/categories.vue new file mode 100644 index 0000000..f834a4d --- /dev/null +++ b/app/pages/admin/categories.vue @@ -0,0 +1,334 @@ + + + + + diff --git a/app/pages/admin/downloads.vue b/app/pages/admin/downloads.vue new file mode 100644 index 0000000..eed1ca7 --- /dev/null +++ b/app/pages/admin/downloads.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/app/pages/admin/experts/review.vue b/app/pages/admin/experts/review.vue new file mode 100644 index 0000000..a83a73c --- /dev/null +++ b/app/pages/admin/experts/review.vue @@ -0,0 +1,337 @@ + + + + + diff --git a/app/pages/admin/members/review.vue b/app/pages/admin/members/review.vue new file mode 100644 index 0000000..3ddfea9 --- /dev/null +++ b/app/pages/admin/members/review.vue @@ -0,0 +1,324 @@ + + + + + diff --git a/app/pages/admin/settings.vue b/app/pages/admin/settings.vue index 75f5177..f77938d 100644 --- a/app/pages/admin/settings.vue +++ b/app/pages/admin/settings.vue @@ -2,14 +2,14 @@
- +
- +
- + + - + + + + + + + - - - - - - - + - -