Files
hr-position-system/更新欄位名稱.md
DonaldFang 方士碩 8069f1b628 feat: 實作三個錦囊 AI 功能
- 新增 AI 錦囊 CSS 樣式到 components.css
- 創建 js/ai-bags.js 模組,包含:
  * 5個模組各3個錦囊的預設 prompt 模板
  * executeAIBag() - 執行 AI 生成並填充表單
  * editBagPrompt() - 編輯自定義 prompt
  * LocalStorage 管理自定義 prompt
- 更新 index.html:
  * 替換 5 處 AI 按鈕為三個錦囊(崗位基礎、招聘要求、職務、部門職責、崗位描述)
  * 新增 Prompt 編輯模態框
- 更新 main.js 引入 ai-bags.js 並初始化
- 新增設計文檔:三個錦囊設計.md
- 新增欄位對照文檔:表單欄位清單.md、更新欄位名稱.md、ID重命名對照表.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 01:19:54 +08:00

176 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系統表單欄位規範書 (Standardized Field Specifications)
## 1. 命名規範與前綴定義 (Naming Conventions)
為了確保系統一致性HTML 元素 ID 採用 `[模組前綴]_[標準欄位名]` 的命名方式。
| 模組名稱 | 模組前綴 (Prefix) | 說明 |
| :--- | :--- | :--- |
| **崗位管理 (Position)** | `pos_` | 崗位基礎資料 |
| **招聘條件 (Recruit)** | `rec_` | 崗位內的招聘頁籤 |
| **職務管理 (Job)** | `job_` | 全公司通用的職務定義 |
| **部門職責 (DeptFunc)** | `df_` | 部門功能與職責定義 |
| **崗位描述 (JobDesc)** | `jd_` | 最終的 JD 產出表單 |
---
## 2. 崗位基礎資料模組 (Position Module)
**表單代號**: `positionForm`
**資料表**: `Position`
### 2.1 基礎資料頁籤 (tab-position-basic)
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 預設 | 備註 |
|---|---|---|---|---|---|---|---|
| 1 | 事業體 | `pos_businessUnit` | `businessUnit` | select | 否 | - | SBU, MBU... (聯動L1) |
| 2 | 處級單位 | `pos_division` | `division` | select | 否 | - | (聯動L2) |
| 3 | 部級單位 | `pos_department` | `department` | select | 否 | - | (聯動L3) |
| 4 | 課級單位 | `pos_section` | `section` | text | 否 | - | - |
| 5 | **崗位編號** | `pos_code` | `positionCode` | text | **是** | - | 唯一識別碼 (PK) |
| 6 | 生效日期 | `pos_effectiveDate` | `effectiveDate` | date | 否 | Today | - |
| 7 | **崗位名稱** | `pos_name` | `positionName` | text | **是** | - | - |
| 8 | 崗位級別 | `pos_level` | `positionLevel` | select | 否 | - | L1-L7 |
| 9 | 崗位類別 | `pos_category` | `positionCategory` | select | 否 | - | onchange 觸發 |
| 10 | 崗位類別名稱 | `pos_categoryName` | `positionCategoryName` | text | 否 | - | readonly |
| 11 | 崗位性質 | `pos_type` | `positionType` | select | 否 | - | FT, PT, CT, IN |
| 12 | 崗位性質名稱 | `pos_typeName` | `positionTypeName` | text | 否 | - | readonly |
| 13 | 編制人數 | `pos_headcount` | `headcount` | number | 否 | 0 | min=0 |
| 14 | 崗位描述 | `pos_desc` | `description` | textarea | 否 | - | rows=6 |
| 15 | 崗位備注 | `pos_remark` | `remark` | textarea | 否 | - | rows=6 |
### 2.2 招聘要求資料頁籤 (tab-position-recruit)
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 預設 | 備註 |
|---|---|---|---|---|---|---|---|
| 1 | 最低學歷 | `rec_eduLevel` | `educationLevel` | select | 否 | - | HS, BA, MA, PHD |
| 2 | 要求性別 | `rec_gender` | `requiredGender` | select | 否 | Any | M, F, Any |
| 3 | 薪酬范圍 | `rec_salaryRange` | `salaryRange` | select | 否 | - | A-E, Negotiable |
| 4 | 工作經驗 | `rec_expYears` | `experienceYears` | select | 否 | - | 0, 1, 3, 5, 10+ |
| 5 | 最小年齡 | `rec_minAge` | `minAge` | number | 否 | - | min=18 |
| 6 | 最大年齡 | `rec_maxAge` | `maxAge` | number | 否 | - | max=65 |
| 7 | 工作性質 | `rec_jobType` | `jobType` | select | 否 | - | 招聘用性質分類 |
| 8 | 招聘職位 | `rec_position` | `recruitPosition` | select | 否 | - | ENG, MGR... |
| 9 | 職位名稱(對外) | `rec_jobTitle` | `jobTitle` | text | 否 | - | 對外招聘用Title |
| 10 | 上級崗位編號 | `rec_superiorCode` | `superiorPositionCode` | text | 否 | - | - |
| 11 | 職位描述(JD) | `rec_jobDesc` | `recruitJobDesc` | textarea | 否 | - | 招聘廣告用 |
| 12 | 崗位要求(Req) | `rec_positionReq` | `recruitRequirements` | textarea | 否 | - | 招聘廣告用 |
| 13 | 證照要求 | `rec_certReq` | `certRequirements` | select | 否 | - | - |
| 14 | 專業要求 | `rec_majorReq` | `majorRequirements` | text | 否 | - | Modal選擇 |
| 15 | 技能要求 | `rec_skillReq` | `skillRequirements` | text | 否 | - | Tags input |
| 16 | 語言要求 | `rec_langReq` | `langRequirements` | text | 否 | - | - |
| 17 | 其他要求 | `rec_otherReq` | `otherRequirements` | text | 否 | - | - |
| 18 | 招聘備注 | `rec_remark` | `recruitRemark` | textarea | 否 | - | - |
---
## 3. 職務基礎資料模組 (Job Module)
**表單代號**: `jobForm`
**資料表**: `Job`
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 預設 | 備註 |
|---|---|---|---|---|---|---|---|
| 1 | **職務類別編號** | `job_category` | `jobCategoryCode` | select | **是** | - | onchange 觸發 |
| 2 | 職務類別名稱 | `job_categoryName` | `jobCategoryName` | text | 否 | - | readonly |
| 3 | **職務編號** | `job_code` | `jobCode` | text | **是** | - | 唯一識別碼 |
| 4 | **職務名稱** | `job_name` | `jobName` | text | **是** | - | - |
| 5 | 職務英文 | `job_nameEn` | `jobNameEn` | text | 否 | - | - |
| 6 | 生效日期 | `job_effectiveDate`| `effectiveDate` | date | 否 | - | - |
| 7 | 職務層級 | `job_level` | `jobLevel` | text | 否 | *保密* | **敏感欄位** |
| 8 | 編制人數 | `job_headcount` | `headcount` | number | 否 | - | - |
| 9 | 排列順序 | `job_sortOrder` | `sortOrder` | number | 否 | - | - |
| 10 | 全勤獎金 | `job_hasAttBonus` | `hasAttendanceBonus` | checkbox| 否 | false| Toggle Switch |
| 11 | 住房補貼 | `job_hasHouseAllow`| `hasHousingAllowance` | checkbox| 否 | false| Toggle Switch |
| 12 | 職務備注 | `job_remark` | `remark` | textarea | 否 | - | - |
---
## 4. 部門職責模組 (DeptFunction Module)
**表單代號**: `deptFunctionForm`
**資料表**: `DeptFunction`
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 預設 | 備註 |
|---|---|---|---|---|---|---|---|
| 1 | **職責編號** | `df_code` | `dfCode` | text | **是** | - | DF-001 |
| 2 | **職責名稱** | `df_name` | `dfName` | text | **是** | - | - |
| 3 | **事業體** | `df_businessUnit` | `businessUnit` | select | **是** | - | (已合併重複欄位) |
| 4 | **處級單位** | `df_division` | `division` | select | **是** | - | - |
| 5 | **部級單位** | `df_department` | `department` | select | **是** | - | - |
| 6 | 課級單位 | `df_section` | `section` | text | 否 | - | - |
| 7 | **對應崗位** | `df_posTitle` | `positionTitle` | select | **是** | - | 關聯 Position |
| 8 | 崗位級別 | `df_posLevel` | `positionLevel` | select | 否 | - | 自動帶出或指定 |
| 9 | 部門主管職稱 | `df_managerTitle` | `managerTitle` | text | 否 | - | - |
| 10 | **生效日期** | `df_effectiveDate` | `effectiveDate` | date | **是** | - | - |
| 11 | 人數上限 | `df_headcountLimit`| `headcountLimit` | number | 否 | - | - |
| 12 | 狀態 | `df_status` | `status` | select | 否 | active | - |
| 13 | 部門使命 | `df_mission` | `mission` | textarea | 否 | - | - |
| 14 | 部門願景 | `df_vision` | `vision` | textarea | 否 | - | - |
| 15 | **核心職責** | `df_coreFunc` | `coreFunctions` | textarea | **是** | - | - |
| 16 | KPIs | `df_kpis` | `kpis` | textarea | 否 | - | - |
| 17 | 協作部門 | `df_collab` | `collaboration` | textarea | 否 | - | - |
| 18 | 備注 | `df_remark` | `remark` | textarea | 否 | - | - |
---
## 5. 崗位描述模組 (JobDescription Module)
**表單代號**: `jobDescForm`
**資料表**: `JobDescription` (部分欄位為 View)
### 5.1 基本信息 (Header)
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 備註 |
|---|---|---|---|---|---|---|
| 1 | 工號 | `jd_empNo` | `empNo` | text | 否 | Search Modal |
| 2 | 姓名 | `jd_empName` | `empName` | text | 否 | Readonly |
| 3 | 崗位代碼 | `jd_posCode` | `positionCode` | text | 否 | 關聯鍵 |
| 4 | 版本日期 | `jd_versionDate` | `versionDate` | date | 否 | - |
### 5.2 崗位資訊 (Position Info - Readonly/Derived)
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 備註 |
|---|---|---|---|---|---|---|
| 1 | 崗位名稱 | `jd_posName` | `positionName` | text | 否 | - |
| 2 | 事業體 | `jd_businessUnit` | `businessUnit` | select | 否 | - |
| 3 | 處級單位 | `jd_division` | `division` | select | 否 | - |
| 4 | 部級單位 | `jd_department` | `department` | select | 否 | - |
| 5 | 課級單位 | `jd_section` | `section` | text | 否 | - |
| 6 | 崗位級別 | `jd_posLevel` | `positionLevel` | select | 否 | - |
| 7 | 生效日期 | `jd_posEffDate` | `positionEffectiveDate`| date | 否 | - |
| 8 | **直接主管** | `jd_supervisor` | `directSupervisor` | text | 否 | - |
| 9 | 職等&職務 | `jd_gradeJob` | `positionGradeJob` | text | 否 | Modal |
| 10 | **匯報對象** | `jd_reportTo` | `reportTo` | text | 否 | Modal |
| 11 | 直接下屬 | `jd_directReports` | `directReports` | text | 否 | - |
| 12 | 任職地點 | `jd_location` | `workLocation` | select | 否 | - |
| 13 | 員工屬性 | `jd_empAttr` | `empAttribute` | select | 否 | - |
### 5.3 職責與要求 (Details)
| # | 欄位顯示名稱 | 標準化 HTML ID | 資料庫欄位名稱 | 類型 | 必填 | 備註 |
|---|---|---|---|---|---|---|
| 1 | 部門職責代碼 | `jd_dfCode` | `dfCode` | text | 否 | 關聯 DeptFunction |
| 2 | 崗位設置目的 | `jd_purpose` | `positionPurpose` | text | 否 | - |
| 3 | **主要職責** | `jd_mainResp` | `mainResponsibilities`| textarea | 否 | 編號清單 |
| 4 | 教育程度 | `jd_eduLevel` | `educationLevel` | text | 否 | - |
| 5 | 基本技能 | `jd_basicSkills` | `basicSkills` | textarea | 否 | - |
| 6 | 專業知識 | `jd_proKnowledge` | `professionalKnowledge` | textarea | 否 | - |
| 7 | 工作經驗 | `jd_expReq` | `experienceRequirements`| textarea | 否 | - |
| 8 | 其他要求 | `jd_otherReq` | `otherRequirements` | textarea | 否 | - |
---
## 6. 共用設定與資料字典
### 6.1 模態框 (Modals)
* `MajorModal` (專業要求)
* `EmpSearchModal` (員工搜索)
* `OrgSearchModal` (組織搜索)
* `GradeJobModal` (職等職務)
* `ReportToModal` (匯報對象)
### 6.2 特殊控件
* **Toggle Switch**: 用於所有布林值 (Boolean) 欄位。
* **Numbered Textarea**: 用於 `mainResponsibilities`,自動產生序號。
* **Cascading Selects**: 組織層級 (BU -> Div -> Dept -> Section) 統一使用標準聯動邏輯。