UNPKG

book-meeting-room

Version:

## 项目简介

109 lines (92 loc) 3.31 kB
# meeting 会议室预约系统 ## 项目简介 本项目是一个基于 Node.js 的命令行会议室预约系统,支持会议室查询、预约、冲突检测等功能,适用于企业内部会议室管理自动化。 ## 主要功能 - 查询可用会议室 - 预约会议室(支持时间冲突检测) - 会议室详情查看 - 预约信息填写与确认 ## 技术栈 - Node.js (>=18) - JavaScript (ES6+) - [axios](https://github.com/axios/axios) 网络请求 - [inquirer](https://github.com/SBoudrias/Inquirer.js/) 交互式命令行 - [dayjs](https://github.com/iamkun/dayjs) 日期处理 - [chalk](https://github.com/chalk/chalk) 控制台美化 - [gulp](https://gulpjs.com/) 构建工具 ## 目录结构 ``` meeting/ ├── CHANGELOG.md # 版本变更记录 ├── gulpfile.mjs # 构建脚本 ├── index.js # 主入口,命令行交互逻辑 ├── meetingRoom.js # 会议室预约核心逻辑 ├── package.json # 项目依赖与脚本 └── README.md # 项目说明文档 ``` ## 安装与依赖 1. 克隆项目: ```bash git clone <repo-url> cd meeting ``` 2. 安装依赖: ```bash npm install ``` ## 使用方法 ### 1. 配置环境变量 请在项目根目录下创建 `.env` 文件,配置以下环境变量: ``` BASE_URL=接口基础地址 COOKIES=认证 Cookie CSRF_TOKEN=CSRF Token REFERER=Referer 地址 CITY_ID=城市ID BOOKING_USER=预约人工号 BOOKING_USER_NAME=预约人姓名 BOOKING_USER_MAIL=预约人邮箱 BOOKING_USER_DEPT=预约人部门 BOOKING_USER_MOBILE=预约人手机号 ``` > 注:部分变量如 BOOKING_DATE、BOOKING_START_TIME、BOOKING_END_TIME 可选,若不设置则命令行交互选择。 ### 2. 启动命令与参数 可直接运行: ```bash npm start # 或 node index.js ``` 也可通过命令行参数直接预约: ```bash node index.js -p 2025-06-26 -s 10:00 -e 11:00 ``` 参数说明: - `-p` 预约日期(格式:YYYY-MM-DD) - `-s` 开始时间(格式:HH:mm) - `-e` 结束时间(格式:HH:mm) > 注意:如果通过参数预约时该时间段无可用会议室,系统会自动进入交互模式让你重新选择。 ### 3. 交互与预约流程 无论参数还是交互,流程如下: 1. 输入会议主题 2. 选择会议日期(仅显示未来8天内的工作日,自动过滤周末) 3. 选择开始/结束时间(10:00-20:00整点) 4. 系统自动过滤可用会议室 5. 选择会议室后自动发起预约 6. 控制台输出预约结果或错误信息 所有错误信息会在命令行统一输出,无需担心重复提示。 ## 命令说明 - `npm start`:启动预约流程 - `npm run build`:构建项目(使用 gulp) - `npm run release`:版本发布(standard-version) ## 注意事项 - 需提前获取接口认证信息(Cookie、CSRF Token 等) - 预约冲突检测基于接口返回的会议室预定信息 - 仅支持预约未来8天内的工作日(周一至周五),周末不可预约 - 如无可用会议室,参数预约会自动切换为交互模式,无需重启 - 所有错误信息均在命令行统一输出 - 仅支持命令行交互,不支持 Web 界面 ## 版本与变更 详见 [CHANGELOG.md](./CHANGELOG.md) ## 许可证 ISC