# 文物管家项目文档 ## 项目概述 厦门文物管家是一个加强文物管理的科技创新平台,打造文物数字化保护的厦门模式,遵循"保护第一、加强管理、挖掘价值、有效利用、让文物活起来"的新时代文物工作方针。 ## 技术栈 - **前端框架**: UniApp (Vue 2) - **UI组件库**: uView UI、ColorUI - **状态管理**: Vuex - **地图服务**: 腾讯地图 (key: FHEBZ-HYVNS-KGHOD-65O3N-O32P3-5FBI6) - **微信小程序**: AppID: - **构建工具**: Node-sass - **编译器**: UniApp 3.0 ## 项目结构 ``` WenWuGuanJia/ ├── App.vue # 应用入口文件 ├── main.js # 主入口配置 ├── manifest.json # 应用配置清单 ├── pages.json # 页面路由配置 ├── uni.scss # 全局样式变量 ├── ├── answer_pages/ # 答题系统分包 │ ├── examine/ # 考试相关页面 │ │ ├── answer.vue # 答题页面 │ │ ├── history.vue # 历史记录 │ │ ├── matchanswer.vue # 匹配答案 │ │ ├── review.vue # 复习页面 │ │ ├── summary.vue # 总结页面 │ │ └── top.vue # 排行榜 │ ├── gift/ # 礼品兑换系统 │ │ ├── detail.vue # 礼品详情 │ │ ├── exchange.vue # 兑换页面 │ │ ├── express_feed.vue # 物流信息 │ │ ├── index.vue # 礼品首页 │ │ ├── order.vue # 订单列表 │ │ └── order_detail.vue # 订单详情 │ └── user/ # 用户相关 │ ├── autoLogin.vue # 自动登录 │ ├── changeCode.vue # 修改密码 │ ├── changePhone.vue # 修改手机 │ ├── login.vue # 登录页面 │ ├── mine.vue # 个人中心 │ └── tips.vue # 提示页面 │ ├── colorui/ # ColorUI 样式库 │ ├── main.css # 主样式文件 │ ├── icon.css # 图标样式 │ └── animation.css # 动画样式 │ ├── common/ # 公共工具库 │ ├── app.css # 应用样式 │ ├── cache.js # 缓存管理 │ ├── common.css # 通用样式 │ ├── common.scss # SCSS样式 │ ├── fa.mixin.js # 通用混入 │ ├── fa.style.mixin.js # 样式混入 │ ├── fa.weixin.mixin.js # 微信混入 │ ├── share.js # 分享功能 │ ├── util.js # 工具函数 │ └── WXBizDataCrypt.js # 微信数据解密 │ ├── components/ # 自定义组件 │ ├── FuWenBen/ # 富文本编辑器 │ ├── SCimage/ # 图片组件 │ ├── Segmented/ # 分段控制器 │ ├── TouGao/ # 投稿组件 │ ├── fa-array/ # 数组组件 │ ├── fa-array-download/ # 数组下载组件 │ ├── fa-captchaparts/ # 验证码组件 │ ├── fa-check-radio/ # 单选框组件 │ ├── fa-editor/ # 编辑器组件 │ ├── fa-selectpages/ # 页面选择器 │ ├── fa-selects/ # 下拉选择器 │ ├── fa-switch/ # 开关组件 │ ├── fa-upload-file/ # 文件上传 │ ├── fa-upload-image/ # 图片上传 │ ├── mapComponent/ # 地图组件 │ └── quick-cart/ # 快速购物车 │ ├── config/ # 配置文件 │ ├── api.js # API接口定义 │ ├── common.js # 公共配置 │ ├── config.js # 基础配置 │ └── db.js # 数据库配置 │ ├── index_fenbao/ # 首页功能分包 │ ├── GuanLi/ # 管理模块 │ │ ├── GuanLi.vue # 管理首页 │ │ ├── XiangQing.vue # 详情页面 │ │ ├── GouJian.vue # 构建页面 │ │ ├── gengDuoFC.vue # 更多风采 │ │ ├── online-patrol.vue # 在线巡查 │ │ ├── cr-video.vue # 视频播放 │ │ └── zhiYuanGeRen.vue # 志愿者个人 │ ├── HuoHuaLiYong/ # 活化利用 │ │ ├── YanXue/ # 研学模块 │ │ ├── YouJin/ # 尤锦模块 │ │ ├── chanPin/ # 产品模块 │ │ └── waJue/ # 挖掘模块 │ ├── XinWen/ # 新闻资讯 │ ├── XuanJiangYuan/ # 宣讲员管理 │ │ ├── index.vue # 宣讲员首页 │ │ ├── XuanJiangYuan.vue # 宣讲员列表 │ │ ├── bm_page.vue # 报名页面 │ │ ├── ck_page.vue # 查看页面 │ │ ├── xq_page.vue # 详情页面 │ │ ├── xjy_XiangQing.vue # 宣讲员详情 │ │ ├── activity-review-list.vue # 活动审核列表 │ │ └── activity-review-details.vue # 活动审核详情 │ └── fuWu/ # 服务模块 │ ├── FaLv/ # 法律服务 │ ├── zuZhi/ # 组织服务 │ ├── baoMing/ # 报名服务 │ ├── jiJin/ # 基金服务 │ ├── fengCai/ # 风采展示 │ ├── diTu/ # 地图服务 │ └── paiMing/ # 排名服务 │ ├── mixins/ # Vue混入文件 │ ├── auth.js # 认证混入 │ ├── common.js # 通用混入 │ └── goods.js # 商品混入 │ ├── pages/ # 主包页面 │ ├── index/ # 首页 │ │ └── index.vue # 首页主文件 │ ├── shouhu/ # 守护页面 │ │ └── shouhu.vue # 守护主页 │ ├── wenWuPage/ # 文物页面 │ │ └── wenWuPage.vue # 文物展示 │ ├── dongtai/ # 动态页面 │ │ └── dongtai.vue # 动态展示 │ ├── user/ # 用户中心 │ │ ├── index.vue # 用户首页 │ │ ├── login.vue # 登录页面 │ │ └── learn.vue # 学习页面 │ ├── course/ # 课程相关 │ │ ├── index.vue # 课程列表 │ │ ├── detail.vue # 课程详情 │ │ └── rich.vue # 富文本课程 │ ├── schedule/ # 日程安排 │ │ ├── index.vue # 日程列表 │ │ └── detail.vue # 日程详情 │ ├── order/ # 订单相关 │ │ └── preview.vue # 订单预览 │ └── teacher/ # 教师相关 │ └── detail.vue # 教师详情 │ ├── service/ # 服务层 │ ├── api/ # API接口定义 │ │ ├── common.js # 通用接口 │ │ ├── course.js # 课程接口 │ │ ├── examine.js # 考试接口 │ │ ├── gift.js # 礼品接口 │ │ ├── mock.js # 模拟数据 │ │ ├── page.js # 页面接口 │ │ └── user.js # 用户接口 │ ├── config.js # 服务配置 │ └── request/ # 请求封装 │ ├── main.js # 主请求文件 │ └── request.js # 请求类 │ ├── shouhu_fenbao/ # 守护功能分包 │ ├── shouHu/ # 守护模块 │ │ ├── woDe.vue # 我的守护 │ │ ├── touGao.vue # 投稿页面 │ │ ├── tuanDui.vue # 团队管理 │ │ ├── yaoQing.vue # 邀请页面 │ │ └── webview.vue # 网页视图 │ ├── yuJing/ # 预警模块 │ │ └── yuJing.vue # 预警页面 │ ├── xunCha/ # 巡查模块 │ │ ├── xunCha.vue # 巡查页面 │ │ └── jiLu.vue # 记录页面 │ └── chuangGuan/ # 闯关模块 │ ├── daTi.vue # 答题页面 │ └── chuTi.vue # 出题页面 │ ├── static/ # 静态资源 │ ├── img/ # 图片资源 │ └── js/ # JS脚本 │ └── md5.js # MD5加密 │ ├── store/ # 状态管理 │ ├── index.js # Vuex主文件 │ └── module/ # 模块化状态 │ ├── examine.js # 考试状态 │ └── user.js # 用户状态 │ ├── uni_modules/ # UniApp插件模块 │ ├── mp-html/ # HTML解析器 │ ├── sp-editor/ # 富文本编辑器 │ ├── uni-data-picker/ # 数据选择器 │ ├── uni-easyinput/ # 输入框组件 │ ├── uni-forms/ # 表单组件 │ ├── uni-icons/ # 图标组件 │ ├── uni-load-more/ # 加载更多 │ ├── uni-nav-bar/ # 导航栏 │ ├── uv-calendars/ # 日历组件 │ ├── uv-popup/ # 弹窗组件 │ ├── uv-ui-tools/ # UI工具库 │ └── uview-ui/ # uView UI库 │ ├── user_fenbao/ # 用户功能分包 │ ├── myTouGao/ # 我的投稿 │ ├── huoDong/ # 活动管理 │ ├── rongYu/ # 荣誉系统 │ ├── info/ # 信息管理 │ └── houTai/ # 后台管理 │ └── xueYuan_fenbao/ # 学院功能分包 ├── keCheng/ # 课程模块 ├── wenWu/ # 文物模块 ├── zhengCe/ # 政策模块 └── zhuangJia/ # 专家模块 ``` ## 核心功能模块详解 ### 1. 用户认证与权限系统 **核心文件**: `pages/user/login.vue`, `config/api.js` **功能特性**: - 支持多种登录方式:姓名+密码、编号+密码、手机验证码、微信快捷登录 - 自动打卡功能:每日首次进入应用自动打卡 - Token认证机制:基于JWT的身份验证 - 权限分级:普通用户、志愿者、管理员不同权限 **关键接口**: ```javascript // 用户认证相关接口 login() // 用户登录 register() // 用户注册 profile() // 用户信息 refreshUser() // 刷新用户信息 checkIn() // 每日打卡 bindphone() // 绑定手机号 ``` ### 2. 文物管理系统 **核心文件**: `index_fenbao/GuanLi/`, `pages/wenWuPage/` **功能特性**: - 文物信息展示:支持图片、视频、文字介绍 - 文物分类管理:按地区、类型、年代等分类 - 文物详情查看:包含历史背景、保护状况等 - 文物风采展示:用户可浏览文物相关内容 **数据流程**: ```javascript getContentList() // 获取文物列表 getContentDetail() // 获取文物详情 getCulturalRelic() // 获取文物场景列表 getCulturalDetails() // 获取文物详情页数据 ``` ### 3. 志愿者守护系统 **核心文件**: `pages/shouhu/`, `shouhu_fenbao/` **功能特性**: - 志愿者注册申请:在线申请成为志愿者 - 任务管理:接收、执行、提交巡查任务 - 团队协作:加入志愿者团队,协作完成任务 - 巡查记录:记录文物巡查情况,上传照片和描述 - 排行榜系统:根据活跃度、积分、任务完成率排名 **核心业务流程**: ```javascript // 志愿者管理流程 applyVolunteer() // 申请成为志愿者 examineVolunteer() // 审核志愿者申请 getPatrolTask() // 获取巡查任务 submitTask() // 提交任务结果 getPatrolLog() // 获取巡查记录 rankingList() // 获取排行榜数据 ``` ### 4. 活化利用模块 **核心文件**: `index_fenbao/HuoHuaLiYong/` **功能特性**: - 研学活动:文物相关的教育活动组织 - 文创产品:展示文物衍生的创意产品 - 成果展示:展示文物保护和利用成果 - 挖掘利用:文物价值的深度挖掘和展示 **子模块详解**: - **YanXue** (研学): 教育活动管理,报名参与 - **chanPin** (产品): 文创产品展示和销售 - **YouJin** (尤锦): 特色项目展示 - **waJue** (挖掘): 文物价值挖掘展示 ### 5. 宣讲员管理系统 **核心文件**: `index_fenbao/XuanJiangYuan/` **功能特性**: - 宣讲员信息管理:注册、认证、信息维护 - 活动组织:创建和管理宣讲活动 - 活动审核:对宣讲活动进行审核管理 - 报名系统:用户可报名参加宣讲活动 **关键页面**: - `index.vue`: 宣讲员主页 - `bm_page.vue`: 报名页面 - `activity-review-list.vue`: 活动审核列表 - `activity-review-details.vue`: 活动审核详情 ### 6. 答题系统 **核心文件**: `answer_pages/examine/` **功能特性**: - 在线答题:文物知识竞答 - 历史记录:查看答题历史 - 排行榜:答题成绩排名 - 礼品兑换:积分兑换奖品 **答题流程**: ```javascript // 答题系统流程 startExamine() // 开始答题 submitAnswer() // 提交答案 getExamineResult() // 获取答题结果 getExamineHistory() // 获取答题历史 ``` ## 技术架构详解 ### 1. 前端架构 **框架选择**: UniApp + Vue 2 - 支持多端发布:H5、微信小程序、支付宝小程序等 - 组件化开发,提高代码复用率 - 统一的开发体验和API **状态管理**: Vuex - 集中式状态管理 - 用户信息、考试数据等全局状态管理 - 支持模块化管理 **UI组件库**: - **uView UI**: 主要UI组件库,提供丰富的基础组件 - **ColorUI**: 样式库,提供色彩和动画支持 ### 2. 网络请求架构 **请求封装**: `service/request/request.js` - Promise-based 请求封装 - 统一错误处理 - 请求拦截器支持 - 自动重试机制 **API管理**: `config/api.js` - 统一API接口定义 - Token认证处理 - 请求参数预处理 **认证机制**: ```javascript // Token认证流程 methodsToken[] // 需要认证的接口列表 header: { 'token': userToken, '__token__': userToken } ``` ### 3. 分包策略 **主包页面**: - 首页 (`pages/index/`) - 守护页面 (`pages/shouhu/`) - 用户中心 (`pages/user/`) - 文物页面 (`pages/wenWuPage/`) **分包设计**: - `index_fenbao`: 首页功能分包 - `shouhu_fenbao`: 守护功能分包 - `user_fenbao`: 用户功能分包 - `answer_pages`: 答题系统分包 - `xueYuan_fenbao`: 学院功能分包 **预加载策略**: `pages.json`中配置分包预加载,提升用户体验 ### 4. 数据流管理 **本地存储**: `common/cache.js` - 用户信息缓存 - Token缓存 - 配置信息缓存 **状态同步**: ```javascript // 状态管理模块 store/ ├── index.js // 主store配置 └── module/ ├── user.js // 用户状态管理 └── examine.js // 考试状态管理 ``` ## API接口文档 ### 用户相关接口 ```javascript // 用户认证 login(data, callback) // 用户登录 register(data, callback) // 用户注册 third(data, callback) // 第三方登录 wxLogin(data, callback) // 微信登录 logout(data, callback) // 退出登录 // 用户信息 profile(data, callback) // 用户资料 refreshUser(data, callback) // 刷新用户信息 getMainBodyUser(data, callback) // 获取主体用户信息 editMainBodyUser(data, callback) // 编辑用户信息 // 手机相关 bindphone(data, callback) // 绑定手机号 changeMobile(data, callback) // 修改手机号 sendSmsVerify(data, callback) // 发送短信验证码 ``` ### 文物管理接口 ```javascript // 文物信息 getContentList(data, callback) // 获取文物列表 getContentDetail(data, callback) // 获取文物详情 getCulturalRelic(data, callback) // 获取文物场景列表 getCulturalDetails(data, callback) // 获取文物详情 // 文物分类 getCulturalRelicCategory(data, callback) // 获取文物分类 getCategoryCascadeList(data, callback) // 获取级联分类 getCategoryList(data, callback) // 获取培训分类列表 ``` ### 志愿者管理接口 ```javascript // 志愿者申请 applyVolunteer(data, callback) // 申请志愿者 examineVolunteer(data, callback) // 审核志愿者 editApplyVolunteer(data, callback) // 修改志愿者申请 logOffVolunteer(data, callback) // 注销志愿者 // 任务管理 getPatrolTask(data, callback) // 获取巡查任务 submitTask(data, callback) // 提交任务 examineTask(data, callback) // 审核任务 getPatrolTaskDetails(data, callback) // 获取任务详情 getPatrolLog(data, callback) // 获取巡查记录 // 团队管理 joinTeam(data, callback) // 加入团队 getTeamMember(data, callback) // 获取团队成员 removeMemberm(data, callback) // 移除成员 getTeamDetails(data, callback) // 获取团队详情 ``` ### 活动相关接口 ```javascript // 活动管理 activityLists(data, callback) // 获取活动列表 activityDetails(data, callback) // 获取活动详情 activitySignup(data, callback) // 活动报名 activityScheduleList(data, callback) // 活动日程列表 activitySignupParams(data, callback) // 活动报名参数 // 用户活动 getUserSignupActivity(data, callback) // 获取用户报名活动 getUserSignupActivityDetails(data, callback) // 获取用户报名活动详情 submitActivitySignupInfo(data, callback) // 提交活动报名信息 ``` ### 系统配置接口 ```javascript // 配置信息 getConfig() // 获取系统配置 getIndexBanner(data, callback) // 获取轮播图 getBannerList(data, callback) // 获取横幅列表 // 通知公告 getNotice(data, callback) // 获取最新公告 getNewsNotice(data, callback) // 获取新闻公告 // 统计数据 regionData(data, callback) // 区域数据统计 cityData(data, callback) // 市级数据统计 rankingList(data, callback) // 排行榜数据 ``` ## 关键配置信息 ### 环境配置 ```javascript // config/config.js export const baseUrl = 'https://wwgj.wenlvti.net/' export const baseApiUrl = 'https://wwgj.wenlvti.net/api/' export const baseLogo = 'https://huli-app.wenlvti.net/app_static/WenWuGuanJia/image/logo.png' export const title = '文物管家' ``` ### 应用配置 ```json // manifest.json 核心配置 { "name": "文物管家", "appid": "__UNI__45DC458", "versionName": "1.0.0", "mp-weixin": { "appid": "" }, "h5": { "domain": "http://demo.usiyi.com/discover_h5/" } } ``` ### 分包配置 ```json // pages.json 分包配置示例 { "subPackages": [ { "root": "index_fenbao/XuanJiangYuan", "pages": [ {"path": "index"}, {"path": "bm_page"}, {"path": "XuanJiangYuan"} ] } ], "preloadRule": { "pages/index/index": { "network": "all", "packages": ["index_fenbao/fuWu/FaLv"] } } } ``` ## 开发指南 ### 1. 环境要求 - **Node.js**: >= 12.0.0 - **HBuilderX**: 最新版本 - **微信开发者工具**: (如需开发微信小程序) ### 2. 项目启动 ```bash # 安装依赖(如果有package.json) npm install # 在HBuilderX中打开项目 # 选择运行到对应平台 ``` ### 3. 开发规范 **命名规范**: - 页面文件:使用驼峰命名,如 `xiangQing.vue` - 组件:使用帕斯卡命名,如 `MapComponent.vue` - API方法:使用驼峰命名,如 `getUserInfo()` **目录结构规范**: - 主包页面放在 `pages/` 目录 - 分包页面按功能模块组织 - 公共组件放在 `components/` 目录 - 工具函数放在 `common/` 目录 **代码规范**: - 使用 ES6+ 语法 - 统一使用 Promise 处理异步操作 - 组件需要包含 `name` 属性 - 合理使用 Vue 生命周期 ### 4. 调试指南 **H5调试**: - 在浏览器中直接调试 - 使用浏览器开发者工具 **微信小程序调试**: - 使用微信开发者工具 - 注意小程序特有的限制和API **真机调试**: - 使用HBuilderX的真机调试功能 - 注意权限申请和平台差异 ## 部署指南 ### 1. H5部署 ```bash # 构建H5版本 # 在HBuilderX中选择 发行 -> H5 # 将dist目录内容部署到服务器 ``` ### 2. 微信小程序发布 ```bash # 在HBuilderX中选择 发行 -> 微信小程序 # 使用微信开发者工具打开生成的项目 # 提交审核并发布 ``` ### 3. App打包 ```bash # 云端打包 # 在HBuilderX中选择 发行 -> App云打包 # 配置相应的证书和密钥 # 等待打包完成并下载安装包 ``` ## 维护指南 ### 1. 代码维护 - 定期检查和更新依赖库 - 遵循代码审查流程 - 保持代码风格一致性 - 及时修复已知问题 ### 2. 数据维护 - 定期备份重要数据 - 监控API接口性能 - 优化数据库查询 - 处理异常数据 ### 3. 用户反馈 - 建立用户反馈收集机制 - 及时响应用户问题 - 定期分析用户行为数据 - 持续优化用户体验 ## 常见问题 ### 1. 登录问题 **问题**: 用户登录失败 **解决方案**: - 检查网络连接 - 验证用户名密码 - 检查Token是否过期 - 查看服务器日志 ### 2. 分包加载问题 **问题**: 分包页面无法访问 **解决方案**: - 检查pages.json配置 - 确认分包路径正确 - 检查预加载配置 - 重新编译项目 ### 3. 权限问题 **问题**: 某些功能无法使用 **解决方案**: - 检查用户权限等级 - 确认接口权限配置 - 验证Token有效性 - 联系管理员分配权限 ### 4. 性能问题 **问题**: 应用加载缓慢 **解决方案**: - 优化图片资源大小 - 使用分包预加载 - 减少不必要的API请求 - 使用本地缓存 ## 项目特色 1. **多端适配**: 一套代码,多平台运行,包括H5、微信小程序、支付宝小程序等 2. **分包优化**: 合理的分包策略,提升应用加载速度和用户体验 3. **权限管理**: 完善的权限体系,支持不同角色的差异化功能 4. **数据安全**: 完整的数据加密和权限验证机制 5. **用户体验**: 优秀的UI设计和交互体验 6. **功能完整**: 涵盖文物管理的各个方面,功能全面 ## 扩展建议 1. **移动端优化**: 针对移动设备进一步优化交互体验 2. **离线功能**: 添加离线数据缓存和同步功能 3. **推送通知**: 集成消息推送功能 4. **多语言支持**: 添加国际化支持 5. **数据分析**: 集成用户行为分析工具 6. **性能监控**: 添加应用性能监控和错误上报 --- 这是一个功能完整、架构清晰的文物管理平台项目,具有良好的扩展性和维护性。通过本文档,开发者可以快速了解项目结构,掌握核心功能,并能够有效地进行开发和维护工作。