JSPM

book-meeting-room

1.1.5
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 4
    • Score
      100M100P100Q39851F
    • License ISC

    Package Exports

    • book-meeting-room
    • book-meeting-room/dist/index.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (book-meeting-room) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    meeting 会议室预约系统

    项目简介

    本项目是一个基于 Node.js 的命令行会议室预约系统,支持会议室查询、预约、冲突检测等功能,适用于企业内部会议室管理自动化。

    主要功能

    • 查询可用会议室
    • 预约会议室(支持时间冲突检测)
    • 会议室详情查看
    • 预约信息填写与确认

    技术栈

    • Node.js (>=18)
    • JavaScript (ES6+)
    • axios 网络请求
    • inquirer 交互式命令行
    • dayjs 日期处理
    • chalk 控制台美化
    • gulp 构建工具

    目录结构

    meeting/
      ├── CHANGELOG.md         # 版本变更记录
      ├── gulpfile.mjs         # 构建脚本
      ├── index.js             # 主入口,命令行交互逻辑
      ├── meetingRoom.js       # 会议室预约核心逻辑
      ├── package.json         # 项目依赖与脚本
      └── README.md            # 项目说明文档

    安装与依赖

    1. 克隆项目:
      git clone <repo-url>
      cd meeting
    2. 安装依赖:
      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. 启动命令与参数

    可直接运行:

    npm start
    # 或
    node index.js

    也可通过命令行参数直接预约:

    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

    许可证

    ISC