2026-06-11 16:18:57 +08:00
2026-06-11 16:18:57 +08:00
2026-06-11 16:18:57 +08:00
2026-06-11 16:18:57 +08:00
2026-06-11 16:18:57 +08:00
2026-06-11 16:18:57 +08:00

Museum Guide v4.0

深圳自然博物馆智能导览应用

项目结构

museum-guide-v4.0/
├── src/
│   ├── App.vue                 # 应用根组件(设计系统 CSS 变量)
│   ├── main.ts                 # 入口文件
│   ├── pages.json              # 页面路由配置
│   ├── manifest.json           # 应用配置
│   ├── components/             # 组件库
│   │   ├── navigation/         # 导航组件
│   │   │   └── BottomTabBar.vue
│   │   ├── search/             # 搜索组件
│   │   │   └── SearchBar.vue
│   │   ├── floor/              # 楼层组件
│   │   │   └── FloorSelector.vue
│   │   ├── poi/                # POI 标记组件
│   │   │   └── POIMarker.vue
│   │   └── content/            # 内容卡片组件
│   │       ├── HallCard.vue
│   │       ├── ExhibitCard.vue
│   │       └── FacilityCard.vue
│   ├── pages/                  # 页面
│   │   ├── index/              # 首页(地图导览)
│   │   ├── search/             # 搜索页面
│   │   ├── exhibit/            # 展品详情
│   │   ├── hall/               # 展厅详情
│   │   ├── facility/           # 设施详情
│   │   └── route/              # 路线详情
│   ├── assets/                 # 静态资源
│   │   └── data/               # Mock 数据
│   │       ├── exhibits.json
│   │       ├── halls.json
│   │       ├── facilities.json
│   │       ├── floors.json
│   │       └── routes.json
│   ├── utils/                  # 工具函数
│   │   ├── dataLoader.ts       # 数据加载
│   │   ├── format.ts           # 格式化工具
│   │   └── search.ts           # 搜索工具
│   ├── types/                  # 类型定义
│   │   └── index.ts
│   └── styles/                 # 样式文件
│       ├── variables.scss      # CSS 变量
│       └── common.scss         # 通用样式
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md

技术栈

  • 框架: uni-app
  • 语言: Vue 3 + TypeScript
  • 语法: <script setup lang="ts">
  • 构建工具: Vite
  • 样式: SCSS + CSS Variables

设计系统

颜色规范

  • 主色调: #E0E100 (黄色强调色)
  • 背景色: #F3F3F3 (浅灰), #FFFFFF (白色), #6D6D6D (地图背景)
  • 文字色: #262421 (主文字), #424754 (次要文字), #333333 (三级文字)
  • 边框色: #E5E5E5, #DEDEDE, #C2C6D6
  • 辅助色: #5ED0E4 (POI 标记青色)

圆角规范

  • 手机外框: 32px
  • 卡片: 12px
  • 按钮: 8px
  • 小圆角: 6px

间距规范

  • xs: 4px
  • sm: 8px
  • md: 16px
  • lg: 24px
  • xl: 32px

安装依赖

pnpm install

开发运行

# H5 开发
pnpm dev:h5

# 微信小程序开发
pnpm dev:mp-weixin

# 类型检查
pnpm type-check

构建

# H5 构建
pnpm build:h5

# 微信小程序构建
pnpm build:mp-weixin

部署

H5 线上部署、Nginx 配置、模型资源校验和回滚步骤见 docs/H5_DEPLOYMENT_GUIDE.md

功能特性

  • 地图导览楼层切换、POI 标记)
  • 智能搜索(展品、展厅、设施)
  • 展品详情(音频讲解、收藏、分享)
  • 展厅浏览(展品列表、导航)
  • 设施查询(洗手间、咖啡厅、商店等)
  • 推荐路线(经典艺术之旅、印象派精选等)
  • 响应式设计(适配多种屏幕尺寸)
  • 毛玻璃效果backdrop-filter
  • 流畅动画transition

组件说明

导航组件

  • BottomTabBar: 底部导航栏

搜索组件

  • SearchBar: 搜索输入框

楼层组件

  • FloorSelector: 楼层选择器3F/2F/1F/B1

POI 组件

  • POIMarker: 地图标记点

内容组件

  • HallCard: 展厅卡片
  • ExhibitCard: 展品卡片
  • FacilityCard: 设施卡片

数据结构

详见 src/types/index.tssrc/assets/data/ 目录下的 JSON 文件。

开发规范

  1. 使用 <script setup lang="ts"> 语法
  2. 组件使用 TypeScript 类型定义
  3. 样式使用 SCSS 和 CSS Variables
  4. 遵循 uni-app 开发规范
  5. 保持代码简洁和可维护性

注意事项

  • 图片资源需放置在 static/ 目录下
  • 音频资源需放置在 static/audio/ 目录下
  • 地图图片需要实际的场馆平面图
  • 音频讲解需要录制实际的讲解内容

License

MIT

Description
No description provided
Readme 123 MiB
Languages
TypeScript 50%
Vue 44.1%
JavaScript 3.6%
Python 2%
SCSS 0.3%