统一入口客户端前端项目

ligao ed5359d414 卡片交互修复与费用显示统一 há 1 mês atrás
.idea e3a51a116e src/state/terminalStore.ts下 sendMessage() 加 if (this.sending) return 防重入 há 1 mês atrás
src ed5359d414 卡片交互修复与费用显示统一 há 1 mês atrás
tests 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
.env.development e3a51a116e src/state/terminalStore.ts下 sendMessage() 加 if (this.sending) return 防重入 há 1 mês atrás
.gitignore 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
README.md cf78e6e510 docs: 添加项目 README 说明文档 há 1 mês atrás
TEST_REPORT.md 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
index.html 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
package.json 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
playwright.config.ts 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
pnpm-lock.yaml 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
tsconfig.json 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
tsconfig.node.json 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás
vite.config.ts 598fb66a0b feat: 医梦统一入口客户端 Web Demo 初始化 há 1 mês atrás

README.md

医梦门诊助手 — 统一入口客户端 Web Demo

基于 Vue 3 + TypeScript + Vite 构建的自助终端前端演示应用。

环境要求

  • Node.js >= 20
  • pnpm >= 9

快速启动

# 安装依赖
pnpm install

# 启动开发服务器(默认 http://127.0.0.1:5173)
pnpm dev

# 生产构建
pnpm build

# 预览生产构建
pnpm preview

测试

# 单元测试(Vitest)
pnpm test:unit

# E2E 测试(Playwright,需先安装浏览器)
npx playwright install chromium
pnpm test:e2e

# 全部测试
pnpm test

Demo 模式

默认开启 Demo 模式(VITE_DEMO_MODE !== 'false'),无需后端即可体验完整挂号流程:

  1. 在中间对话区输入任意文字并发送
  2. 右侧依次选择:科室 → 医生 → 时间 → 确认挂号 → Mock 支付
  3. 挂号进度条随卡片切换同步推进

关闭 Demo 模式需配置环境变量 VITE_DEMO_MODE=false 并指定后端地址 VITE_API_BASE_URL

技术栈

类别 方案
框架 Vue 3 (Composition API)
语言 TypeScript
构建 Vite 6
状态管理 Pinia
单元测试 Vitest + @vue/test-utils
E2E 测试 Playwright
类型检查 vue-tsc

目录结构

src/
├── api/          # SSE 解析器、API 客户端、类型定义、Demo 数据
├── cards/        # 6 种挂号卡片 + CardRenderer 路由
├── chat/         # 对话面板、输入框、消息气泡
├── demo/         # Demo 模式开关
├── layouts/      # AppShell 三栏布局、ContextPanel 状态机、医生形象
├── state/        # Pinia 全局状态 store
├── theme/        # 设计令牌 CSS 变量
├── assets/       # 静态资源
├── App.vue       # 根组件
└── main.ts       # 应用入口