You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Juro Hsu c567443ef1 更新上傳使用者身分 14 hours ago
backend first commit 14 hours ago
public initial commit 2 days ago
src first commit 14 hours ago
.editorconfig initial commit 2 days ago
.gitignore first commit 14 hours ago
00_run_all.bat first commit 14 hours ago
01_install_package.bat first commit 14 hours ago
02_start.bat first commit 14 hours ago
README.md 更新上傳使用者身分 14 hours ago
angular.json first commit 14 hours ago
package-lock.json first commit 14 hours ago
package.json first commit 14 hours ago
proxy.conf.json first commit 14 hours ago
tsconfig.app.json initial commit 2 days ago
tsconfig.json initial commit 2 days ago
tsconfig.spec.json initial commit 2 days ago

README.md

會議室行事曆管理系統

這是一個基於 Angular 開發的會議室預約和管理系統,提供直觀的行事曆介面來管理會議室預約。

功能特點

  • 📅 多視圖行事曆顯示(月、週、日視圖)
  • 🏢 多會議室管理
  • 🔄 重複會議支援
  • 🎨 Outlook 風格的事件顯示
  • 🌏 繁體中文本地化支援
  • 👥 會議詳細資訊查看
  • 🔒 權限控制
  • 即時狀態更新

技術需求

  • Angular 17+
  • Node.js 18+

安裝說明

  1. 克隆專案:
git clone http://www.origtek.com:2999/juro.hsu/CalendarManager.git
  1. 執行檔案:00_run_all.bat

  2. 開啟瀏覽器訪問:http://localhost:4200/calendar/{UserId}

API 端點

系統使用以下 API 端點:

  • GET /api/calendar/getAuth - 驗證使用者權限
  • GET /api/calendar/getMeetingRoom - 獲取所有會議室
  • GET /api/calendar/getMeetingApply - 獲取會議申請列表
  • GET /api/calendar/getMeetingApplyById - 獲取特定會議詳情
  • PUT /api/calendar/closeMeeting - 關閉單一會議
  • PUT /api/calendar/closeAllRepeatMeeting - 關閉所有重複會議

API 詳細說明

1. 驗證使用者權限

  • 方法:GET
  • 路徑/api/calendar/getAuth
  • 查詢參數
    • id:使用者ID(string)
  • 回傳格式
{ "success": true } // 有權限
{ "success": false } // 無權限
  • 用途:判斷指定使用者是否為櫃檯人員。

2. 取得所有會議室

  • 方法:GET
  • 路徑/api/calendar/getMeetingRoom
  • 查詢參數:無
  • 回傳格式
[
  { "id": 1, "name": "會議室A" },
  { "id": 2, "name": "會議室B" }
]
  • 用途:取得所有會議室清單。

3. 取得會議申請列表(依月份)

  • 方法:GET
  • 路徑/api/calendar/getMeetingApply
  • 查詢參數
    • Date:查詢月份(格式:YYYYMM,必填)
    • roomId:會議室ID(可選,預設查全部)
    • old:是否查詢已結束/刪除(可選,'true'查全部,預設僅查未結束且未刪除)
  • 回傳格式
[
  {
    "id": 1,
    "roomId": 2,
    "subject": "會議主題",
    "remark": "備註",
    "beginTime": "2024-06-01 09:00:00",
    "endTime": "2024-06-01 10:00:00",
    "status": "已批准",
    "parentId": null,
    "falseDelete": 0,
    "isRepeat": false,
    "createdBy": "王小明",
    "createdAt": "2024-05-20 08:00:00",
    "updatedAt": "2024-05-20 08:00:00"
  }
]
  • 用途:依月份查詢所有(或指定會議室)會議申請。

4. 取得特定會議詳情

  • 方法:GET
  • 路徑/api/calendar/getMeetingApplyById
  • 查詢參數
    • meetingId:會議申請ID(必填)
  • 回傳格式
{
  "id": 1,
  "roomId": 2,
  "subject": "會議主題",
  "applyUser": "user01",
  "applyUserName": "王小明",
  "otherJoinMember": "user02,user03",
  "type": "一般會議",
  "beginTime": "2024-06-01 09:00:00",
  "endTime": "2024-06-01 10:00:00",
  "remark": "備註",
  "status": "已批准",
  "approvalOpinion": "同意",
  "beginRemark": "準時開始",
  "endRemark": "準時結束",
  "conflict": 0,
  "falseDelete": 0,
  "applyTime": "2024-05-20 08:00:00",
  "deletedAt": null,
  "createdAt": "2024-05-20 08:00:00",
  "updatedAt": "2024-05-20 08:00:00",
  "reminderTiming": null,
  "signType": null,
  "signWifi": null,
  "externalUser": null,
  "reminderTime": null,
  "signUser": null,
  "externalReminderType": null,
  "sign": null,
  "response": null,
  "approvalUser": null,
  "createTime": null,
  "attenceType": null,
  "interfaceId": null,
  "videoInfo": null,
  "isRepeat": false,
  "repeatInterval": null,
  "repeatType": null,
  "repeatEndType": null,
  "repeatEndNumber": null,
  "repeatRemove": null,
  "parentId": null,
  "repeatEndDate": null,
  "cycleBeginTime": null,
  "cycleEndTime": null,
  "createFrom": null
}
  • 用途:查詢單一會議申請的完整詳細資訊。

5. 關閉單一會議

  • 方法:PUT
  • 路徑/api/calendar/closeMeeting
  • Body
{ "meetingId": 1 }
  • 回傳格式
{ "affectedRows": 1, ... }
  • 用途:將指定會議申請狀態設為結束並標記為刪除。

6. 關閉所有重複會議

  • 方法:PUT
  • 路徑/api/calendar/closeAllRepeatMeeting
  • Body
{ "parentId": 1 }
  • 回傳格式
{ "affectedRows": 3, ... }
  • 用途:將同一重複會議(parentId相同)全部設為結束並標記為刪除。

主要元件

CalendarComponent

主要的行事曆顯示元件,功能包括:

  • 多視圖切換
  • 會議室篩選
  • 事件顯示和管理
  • 日期導航

DetailComponent

會議詳情顯示元件,用於:

  • 顯示會議詳細資訊
  • 處理會議狀態更新

CalendarService

提供所有與後端 API 的通訊服務,包括:

  • 會議室資料獲取
  • 會議申請管理
  • 權限驗證

使用說明

  1. 選擇會議室:使用下拉選單選擇特定會議室
  2. 切換視圖:點擊工具列上的按鈕切換月/週/日視圖
  3. 查看會議:點擊行事曆上的事件查看詳情
  4. 關閉會議:具有權限的使用者可以關閉會議

注意事項

  • 所有時間都基於本地時區
  • 會議關閉操作需要適當的權限
  • 重複會議可以選擇關閉單次或全部