文物管家-前端

快乐的梦鱼 3d2f40d1e5 按要求修改报名页面 1 週間 前
answer_pages 2a49418347 文物管家 1 年間 前
colorui 2a49418347 文物管家 1 年間 前
common 2a49418347 文物管家 1 年間 前
components 3adfe70628 修改一些志愿者相关的bug 1 年間 前
config ccae445c66 测试报名页面 1 週間 前
index_fenbao 3d2f40d1e5 按要求修改报名页面 1 週間 前
mixins 2a49418347 文物管家 1 年間 前
node_modules 2a49418347 文物管家 1 年間 前
pages ccae445c66 测试报名页面 1 週間 前
service 2a49418347 文物管家 1 年間 前
shouhu_fenbao 0c2546f127 巡查页按要求添加弹出对话框 6 ヶ月 前
static 810e57aef0 文物跑对接 1 年間 前
store baa596953e 修改接口参数;增加测试报名页面 1 週間 前
uni_modules baa596953e 修改接口参数;增加测试报名页面 1 週間 前
user_fenbao f0c0c300d2 增加个人活动信息,优化部分信息展示 1 年間 前
xueYuan_fenbao 2a49418347 文物管家 1 年間 前
.gitignore 2a49418347 文物管家 1 年間 前
1.js baa596953e 修改接口参数;增加测试报名页面 1 週間 前
App.vue 2a49418347 文物管家 1 年間 前
README.md 3d2f40d1e5 按要求修改报名页面 1 週間 前
main.js 2a49418347 文物管家 1 年間 前
manifest.json d58a5fad06 更改客服电话 6 ヶ月 前
pages.json baa596953e 修改接口参数;增加测试报名页面 1 週間 前
uni.scss 2a49418347 文物管家 1 年間 前

README.md

厦门文物管家是一个加强文物管理的科技创新平台,打造文物数字化保护的厦门模式,遵循“保护第一、加强管理、挖掘价值、有效利用、让文物活起来”的新时代文物工作方针。坚持守正创新推动文物保护、传承、挖掘。该平台通过科技手段,为志愿者、爱好者、专家学者、文物保护单位、监管单位提供文物安全、文物保护、文物价值挖掘、文物活化利用等有效管理平台。

警告

该项目虽然功能完整,但存在较多的代码质量问题,影响了项目的可维护性和扩展性。建议进行系统性的重构,优先解决组件结构、样式管理和UI框架统一等核心问题,然后逐步优化其他方面。重构后将大大提高项目的可维护性、扩展性和性能,降低后续开发和维护成本。

项目命名与文件结构的致命缺陷:混乱、不规范与可维护性崩塌

该项目的目录结构和命名规范存在诸多严重问题,从基础的命名统一性到目录划分逻辑,再到文件归类合理性,几乎全方位违背了前端项目开发的核心规范,不仅大幅提升了开发、维护和协作成本,更埋下了后期重构困难、Bug 频发的隐患,堪称前端项目结构混乱的典型反面案例。 首先,命名规范的混乱程度令人震惊,完全缺乏统一性和可读性。文件与目录命名混用多种风格,毫无章法:有的采用全小写字母拼接(如fuWu、jiJin),有的使用驼峰命名(如autoLogin.vue、changePhone.vue),有的又用 Pascal 命名(如FuWenBen、TouGao.vue),甚至出现拼音与英文混杂的情况(XuanJiangYuan目录搭配activity-review-list.vue文件)。这种命名乱象让开发者在查找文件时需反复猜测命名风格,比如想找 “宣讲员” 相关功能,既可能在拼音命名的XuanJiangYuan目录,也可能被误放至英文命名的其他文件夹,极大降低了开发效率。更严重的是,部分命名过于简略或模糊,fa.mixin.js、fuWu.vue等文件仅靠缩写和拼音,完全无法直观判断其功能,新接手项目的开发者需要逐行阅读代码才能知晓用途,沟通和交接成本陡增。 其次,目录划分逻辑混乱,层级嵌套不合理,功能归属模糊不清。核心目录缺乏明确的职责划分,index_fenbao、shouhu_fenbao、user_fenbao等以 “fenbao” 结尾的目录,既未体现 “分包” 的具体规则,也未明确各自承载的核心功能,让人无法快速定位业务模块。同时,目录嵌套存在严重的冗余与不合理问题:components目录下的FuWenBen文件夹内部又嵌套了完整的components、icons、static等子目录,形成重复嵌套,破坏了项目的整体目录结构一致性;而uni_modules目录下堆砌了数十个第三方组件库(如uview-ui、uv-ui-tools、mp-html等),未进行分类管理,导致组件库资源杂乱,既占用冗余空间,也增加了版本冲突的风险。更不合理的是,部分功能模块分散在多个目录中,比如 “用户相关” 功能既在answer_pages/user目录有登录、个人中心相关文件,又在pages/user、user_fenbao目录存在相关代码,功能拆分毫无逻辑,后期修改一处需求需同时改动多个目录下的文件,极易出现遗漏和冲突。 再者,文件归类的随意性极强,违背了 “单一职责” 和 “功能聚合” 原则。根目录下直接堆放了1.js、dir.txt等与核心业务无关的零散文件,dir.txt作为目录结构记录文件,本应放在docs或临时目录,却与main.js、App.vue等核心入口文件并列,破坏了根目录的整洁性和核心文件的优先级。components目录的文件归类更是混乱,既有封装好的通用组件(如fa-switch.vue、load-more.vue),又有业务强相关的组件(如course-item.vue、TouGao.vue),未区分通用组件和业务组件,导致通用组件复用困难,业务组件与通用组件混杂,后期维护时难以快速筛选可复用资源。此外,静态资源管理同样无序,static/img目录下堆放了数十个图片文件,未按功能模块(如 “首页图片”“活动图片”)或图片类型进行分类,查找某个图标时需逐个浏览文件名,效率极低。 最后,项目结构缺乏扩展性和可维护性,完全不适应团队协作和后期迭代。由于命名不规范、目录划分混乱,随着项目迭代,新功能模块的新增将面临 “无处安放” 的困境 —— 要么继续沿用混乱的命名和目录规则,加剧结构恶化;要么强行新增目录,导致目录层级进一步冗余。同时,第三方依赖管理混乱,uni_modules目录下大量未使用或重复功能的组件库未被清理,不仅增加了项目打包体积,也给依赖升级带来极大麻烦。这种结构下,团队协作时极易出现文件覆盖、代码冲突等问题,而后期若想进行结构重构,由于文件归属不明确、命名无规律,几乎等同于重新开发,成本极高。

综上,该项目在命名和文件结构上的问题已严重影响其可用性和可维护性,若不及时重构,随着项目规模扩大,必将陷入 “改一处而动全身” 的恶性循环。规范命名、理清目录逻辑、合理归类文件,是该项目亟待解决的核心问题。

冗余第三方组件滥用:小程序打包超限的致命祸根

该项目在第三方组件引入上的混乱与无度,堪称小程序开发的反面典型。毫无节制地堆砌冗余第三方组件,最终导致打包体积突破微信小程序上传限制,不仅直接阻断项目上线流程,更暴露了开发过程中缺乏规划、漠视性能的严重问题,给项目迭代、用户体验和维护成本埋下多重隐患,其做法的荒谬性与危害性值得严厉抨击。 首先,第三方组件引入毫无筛选,盲目堆砌导致资源严重冗余。从目录结构可见,uni_modules目录下塞满了uview-ui、uv-ui-tools、mp-html、sp-editor等数十个第三方组件库,仅 UI 组件库就同时存在uview-ui和uv-ui-tools两套功能高度重叠的方案。这种 “宁滥勿缺” 的引入逻辑完全违背了 “按需引入” 的核心原则 —— 多数组件库包含按钮、表单、弹窗等基础组件,重复引入意味着大量功能冗余的代码被打包进项目,明明一个组件库就能满足的需求,却强行加载多套资源,直接导致打包体积臃肿不堪。更可笑的是,部分组件库内部还嵌套了重复依赖,如uv-ui-tools和uview-ui都包含luch-request网络请求工具,这种多层级的冗余叠加,让项目体积在无形之中翻倍增长,最终触碰微信小程序的上传红线实属必然。 其次,组件引入缺乏规划,“拿来主义” 盛行却忽视实际需求。项目中许多第三方组件的功能完全可以通过原生开发或轻量封装实现,却偏要引入完整的重型组件库。例如sp-editor富文本组件库,包含了quill.min.js等大型依赖,若项目仅需简单的文本编辑功能,原生组件搭配少量自定义逻辑即可满足,盲目引入完整富文本库只会徒增体积;而mp-html组件与sp-editor在部分功能上存在重叠,却未做任何取舍。更令人费解的是,部分组件库可能仅被使用了 1-2 个组件,却将整个库完整引入,导致 90% 以上的冗余代码被打包,这种 “杀鸡用牛刀” 的做法,本质上是开发人员为了节省少量开发时间,而牺牲项目的核心性能与上线可行性,完全是捡芝麻丢西瓜的短视行为。 再者,组件管理混乱,未做按需加载与优化,进一步加剧体积膨胀。从目录结构来看,所有第三方组件均以完整目录形式存在,未采用微信小程序支持的按需引入机制,也未对组件库进行二次封装或 Tree-Shaking 优化。例如uview-ui包含上百个组件,项目实际使用的可能不足十分之一,但由于未配置按需引入,所有组件的代码、样式和静态资源都被完整打包;同时,组件库自带的静态资源(如iconfont.ttf、image-resize.min.js)与项目自身static目录下的资源可能存在重复,却未做去重处理,导致资源浪费。这种缺乏管理的引入方式,让第三方组件成为打包体积的 “重灾区”,最终突破上传限制,完全是开发过程中对资源优化的漠视与不作为。 最后,这种做法的连锁危害远超 “无法上传” 的表层问题。其一,即便通过临时手段压缩体积勉强上线,冗余组件也会导致小程序启动速度变慢、页面加载卡顿,严重影响用户体验,进而导致用户流失;其二,多组件库共存会引发样式冲突、版本兼容问题,后期迭代时修改一处样式可能触发多处异常,排查成本极高;其三,冗余组件库的持续更新会让项目体积 “滚雪球式” 增长,后续迭代中每一次新增功能都可能因体积限制而被迫暂停,陷入 “优化 - 超限 - 再优化” 的恶性循环,极大拖慢开发进度;其四,大量未使用的组件代码会增加项目维护难度,新接手的开发人员需要在海量冗余代码中梳理逻辑,降低协作效率。

综上,该项目因滥用冗余第三方组件导致打包超限,绝非偶然,而是开发理念偏差、缺乏规划意识的必然结果。小程序的体积限制本质上是对开发效率与性能平衡的要求,而这种盲目堆砌组件的做法,既违背了小程序开发的核心准则,也暴露了开发团队专业素养的缺失。若不彻底清理冗余组件、建立规范的引入机制,项目不仅无法顺利上线,更会在后续迭代中陷入万劫不复的困境。