# SPARK OA **Repository Path**: obslight/spark-oa ## Basic Information - **Project Name**: SPARK OA - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-03 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spark OA - 智能办公自动化系统 基于 Taro + React + NutUI 的多端办公自动化系统,支持 H5 和微信小程序。 ## 📋 项目简介 Spark OA 是一个功能完善的办公自动化系统,涵盖日常办公所需的各类应用模块,包括公告通知、审批流程、会议室预约、用车申请、办公耗材管理等。 ## ✨ 主要功能 - 🔐 **用户认证**:用户登录、密码修改 - 📢 **公告通知**:发布、查看、管理公告 - ✅ **审批流程**:待审批、已申请事项管理 - 🏢 **会议室预约**:会议室申请与管理 - 🚗 **用车申请**:车辆使用申请与打卡 - 📚 **图书借阅**:图书类型管理与借阅 - 🍽️ **餐饮服务**:食堂菜谱、超市管理 - 💼 **办公耗材**:办公用品申请与管理 - 🔧 **报修管理**:设备报修申请 - 🎯 **活动室预约**:活动室申请管理 - 📊 **数据统计**:各类业务数据统计 ## 🛠️ 技术栈 - **框架**: Taro 3.6.25 - **UI 库**: React 18.0.0 - **组件库**: NutUI React Taro 2.3.10 - **构建工具**: Webpack 5.91.0 - **语言**: TypeScript 4.1.0 - **样式**: Sass ## 📦 安装 ```bash # 安装依赖 npm install --legacy-peer-deps # 或使用 yarn yarn install ``` ## 🚀 启动 ### H5 环境 ```bash # 开发模式 npm run dev:h5 # 构建生产版本 npm run build:h5 ``` 访问地址: ### 微信小程序 ```bash # 开发模式 npm run dev:weapp # 构建生产版本 npm run build:weapp ``` 然后使用微信开发者工具打开 `dist` 目录。 ## 🧪 测试账号 Mock 模式下可使用以下测试账号: | 用户名 | 密码 | 说明 | |--------|------|------| | admin | 123456 | 管理员账号 | | user | 123456 | 普通用户 | | test | 123456 | 测试账号 | ## ⚙️ Mock 数据 项目内置 Mock 数据系统,方便离线开发测试。 ### 启用 Mock 修改 `src/mock/index.ts` 中的配置: ```typescript export const ENABLE_MOCK = true; // 设置为 true 启用 Mock ``` ### Mock 功能 - ✅ 用户登录 - ✅ 用户信息获取 - ✅ 密码修改 - ✅ 首页统计数据 详见:[Mock 使用文档](./src/mock/README.md) ## 📁 项目结构 ```text ├── config/ # 构建配置 │ ├── dev.ts # 开发环境配置 │ ├── prod.ts # 生产环境配置 │ └── index.ts # 基础配置 ├── src/ │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── hooks/ # 自定义 Hooks │ ├── mock/ # Mock 数据 │ ├── pages/ # 页面文件 │ │ ├── login/ # 登录页 │ │ ├── index/ # 首页 │ │ ├── mine/ # 个人中心 │ │ └── modules/ # 业务模块 │ ├── services/ # API 服务 │ ├── utils/ # 工具函数 │ │ ├── request.ts # 请求封装 │ │ ├── platform.ts # 平台兼容 │ │ └── config.ts # 配置文件 │ └── widgets/ # 业务组件 ├── types/ # 类型定义 └── package.json ``` ## 🔧 平台兼容 项目使用平台兼容层 (`src/utils/platform.ts`) 处理不同平台 API 差异: - `getMenuButtonBoundingClientRect()`: 自动适配 H5 和小程序环境 - 更多兼容 API 可根据需要扩展 ## 🌐 API 配置 修改 `src/utils/config.ts` 配置后端接口地址: ```typescript export const baseUrl = 'https://your-api-domain.com'; ``` ## 📝 开发指南 ### 添加新页面 1. 在 `src/pages/` 创建页面目录 2. 创建 `index.tsx`、`index.config.ts`、`index.scss` 3. 在 `src/app.config.ts` 注册页面路由 ### 添加新 API 1. 在 `src/services/` 创建服务文件 2. 使用 `request` 工具发起请求 3. 支持 Mock 数据集成 ### Mock 数据扩展 在 `src/mock/index.ts` 中添加新的 Mock 函数: ```typescript export const mockYourFunction = async () => { return { code: 200, data: { /* your data */ }, msg: 'success' }; }; ``` ## 🔨 构建部署 ### H5 部署 ```bash npm run build:h5 ``` 构建产物在 `dist/` 目录,可直接部署到静态服务器。 ### 小程序发布 ```bash npm run build:weapp ``` 使用微信开发者工具上传 `dist/` 目录代码。 ## 🐛 常见问题 ### 1. 安装依赖失败 使用 `--legacy-peer-deps` 参数: ```bash npm install --legacy-peer-deps ``` ### 2. H5 环境跨域问题 开发环境已配置代理,生产环境需配置 Nginx 或后端 CORS。 ### 3. 平台兼容性问题 使用 `process.env.TARO_ENV` 判断当前环境: - `'h5'`: H5 环境 - `'weapp'`: 微信小程序 - 其他平台参考 [Taro 文档](https://taro-docs.jd.com/) ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📮 联系方式 如有问题或建议,请提交 Issue。