# qms_frontend **Repository Path**: bukcn/qms_frontend ## Basic Information - **Project Name**: qms_frontend - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-21 - **Last Updated**: 2026-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: buk-cn ## README # 差旅管理系统(TMS) 项目包含两个版本: - **V2(稳定版)**: 根目录,Vue 2 + Webpack 4 SSR,端口 **8090** - **V3(新版)**: [v3/](./v3) 目录,Vue 3 + Vite 6 SPA + TypeScript,端口 **8091** --- ## V2(稳定版) 基于 Vue 2 + Express 的 SSR(服务端渲染)差旅管理后台系统。 ### 技术栈 - **前端框架**: Vue 2 + Vue Router + Vuex - **服务端**: Express + Vue Server Renderer - **样式**: Bootstrap 5 + jQuery 3 - **构建工具**: Webpack 4 - **HTTP 客户端**: Axios - **图表**: ECharts + V-Charts ### 环境要求 - **Node.js** >= 18(推荐 22.x) - **npm** >= 8 ### 快速开始 #### 1. 安装依赖 ```bash # 设置 npm 镜像(国内加速) npm config set registry https://registry.npmmirror.com # 安装依赖 npm install ``` #### 2. 开发模式运行 ```bash npm run dev ``` 服务启动后访问 **http://localhost:8090**。开发模式使用 webpack-dev-middleware + HMR,修改代码后浏览器自动热更新。 #### 3. 生产构建与运行 ```bash # 构建 npm run build # 启动生产服务 npm run start-server ``` 生产模式下,先执行 Webpack 构建生成 `dist/` 目录,然后启动 Express 服务,访问 **http://localhost:8090**。 ### NPM 脚本说明 | 命令 | 说明 | |------|------| | `npm run dev` | 开发模式运行(热更新) | | `npm run demo` | Demo 模式运行(连接演示环境 API) | | `npm run build` | 生产构建(客户端 + 服务端) | | `npm run build-client` | 仅构建客户端 | | `npm run build-server` | 仅构建服务端 | | `npm run start-server` | 启动生产服务 | | `npm start` | 构建并启动生产服务 | | `npm run lint` | ESLint 代码检查 | | `npm test` | 运行单元测试(Jest) | | `npm run e2e` | 运行端到端测试(Nightwatch) | ### Docker 运行 #### 构建镜像 ```bash docker build -t tms_saas_web:0.0.1 . ``` #### 启动容器 ```bash cd docker/tms_saas_web docker compose up -d ``` 容器暴露 **8090** 端口,映射到宿主机相同端口。 也可一键执行: ```bash bash run.sh ``` --- ## V3(新版) 基于 Vue 3 + Vite 6 + TypeScript 的差旅管理 SPA 系统(从 V2 迁移)。 ### 技术栈 - **前端框架**: Vue 3 + Vue Router 4 + Pinia - **组件库**: [shadcn-vue](https://www.shadcn-vue.com/) + [radix-vue](https://www.radix-vue.com/) + [reka-ui](https://reka-ui.com/) - **样式方案**: [Tailwind CSS v4](https://tailwindcss.com/) + CSS 变量主题系统(亮色/暗色) - **图标**: [Lucide Vue Next](https://lucide.dev/guide/packages/lucide-vue-next) - **表单验证**: [VeeValidate](https://vee-validate.logaretm.com/) + [Zod](https://zod.dev/) - **日期处理**: [dayjs](https://dayjs.io/) + [date-fns](https://date-fns.org/) - **工具函数**: [VueUse](https://vueuse.org/) - **通知**: [Vue Sonner](https://vue-sonner.vercel.app/) - **构建工具**: [Vite 6](https://vitejs.dev/) - **HTTP 客户端**: Axios - **语言**: TypeScript - **测试**: Playwright(e2e)+ Vitest(单元测试) > **注**:Bootstrap 已从 npm 依赖中移除,仅保留 `public/css/app.min.css` 作为全局样式兜底,通过 CSS 别名映射实现类名兼容。 ### SPA 架构说明 V3 使用 **SPA(Single Page Application)** 架构,由 [Express](v3/server.js) 提供静态文件服务和 API 反向代理,不再使用服务端渲染: - **开发模式**: `npx vite` 启动开发服务器(端口 5173),支持 HMR 热更新 - **生产模式**: 构建后的 `dist/` 目录由 Express 静态托管(端口 8091) - **API 代理**: `server.js` 和 `vite.config.ts` 均配置了 `/api/v1` 代理到后端 Java 服务 - **后端**: 基于 Vue 3 Composition API + `