refactor: 建立核心 JavaScript 模組

- 建立 js 目錄
- 分離核心模組:
  * config.js - API 端點、常數、資料對應表
  * utils.js - XSS 防護、表單工具、Toast、錯誤處理
  * api.js - LLM API、Position API、CSV API

 使用 ES6 Modules 架構

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-05 14:17:41 +08:00
parent 8902f25f6e
commit 880c23b844
3 changed files with 558 additions and 0 deletions

82
js/config.js Normal file
View File

@@ -0,0 +1,82 @@
/**
* Configuration - 設定檔
* 包含 API 端點、常數定義、資料對應表
*/
// ==================== API Configuration ====================
export const API_BASE_URL = '/api';
// ==================== 下拉選單資料 (從 Excel 提取) ====================
// 事業體
export const businessUnits = [
'半導體事業群', '汽車事業體', '法務室', '岡山製造事業體', '產品事業體',
'晶圓三廠', '集團人資行政事業體', '集團財務事業體', '集團會計事業體',
'集團資訊事業體', '新創事業體', '稽核室', '總經理室', '總品質事業體', '營業事業體'
];
// 處級單位
export const deptLevel1Units = [
'半導體事業群', '汽車事業體', '法務室', '生產處', '岡山製造事業體', '封裝工程處',
'副總辦公室', '測試工程與研發處', '資材處', '廠務與環安衛管理處', '產品事業體',
'先進產品事業處', '成熟產品事業處', '晶圓三廠', '製程工程處', '集團人資行政事業體',
'集團財務事業體', '岡山強茂財務處', '集團會計事業體', '岡山會計處', '集團會計處',
'集團資訊事業體', '資安行動小組', '資訊一處', '資訊二處', '新創事業體',
'中低壓產品研發處', '研發中心', '高壓產品研發處', '稽核室', '總經理室',
'ESG專案辦公室', '專案管理室', '總品質事業體', '營業事業體', '商業開發暨市場應用處',
'海外銷售事業處', '全球技術服務處', '全球行銷暨業務支援處', '大中華區銷售事業處'
];
// 部級單位
export const deptLevel2Units = [
'生產部', '生產企劃部', '岡山品質管制部', '製程工程一部', '製程工程二部', '設備一部',
'設備二部', '工業工程部', '測試工程部', '新產品導入部', '研發部', '採購部',
'外部資源部', '生管部', '原物料控制部', '廠務部', '產品管理部(APD)', '產品管理部(MPD)',
'品質部', '製造部', '廠務部(Fab3)', '工程一部', '工程二部', '工程三部',
'製程整合部(Fab3)', '行政總務管理部', '招募任用部', '訓練發展部', '薪酬管理部',
'岡山強茂財務部', '會計部', '管理會計部', '集團合併報表部', '應用系統部',
'電腦整合製造部', '系統網路服務部', '資源管理部', '客戶品質管理部', '產品品質管理部',
'品質系統及客戶工程整合部', '封測外包品質管理部', '品質保證部', '日本區暨代工業務部',
'歐亞區業務部', '韓國區業務部-韓國區', '美洲區業務部', '應用工程部(GTS)', '系統工程部',
'特性測試部', '業務生管部', '市場行銷企劃部', 'MOSFET晶圓採購部', '台灣區業務部',
'業務一部', '業務二部'
];
// 崗位名稱
export const positionNames = [
'營運長', '營運長助理', '副總經理', '專案經理', '經副理', '法務專員', '專利工程師',
'處長', '專員', '課長', '組長', '班長', '副班長', '作業員', '工程師', '副總經理助理',
'副理', '專案經副理', '顧問', '人資長', '助理', '財務長', '專案副理', '會計長',
'資訊長', '主任', '總裁', '總經理', '專員/工程師', '經理', '技術經副理', '處長/資深經理'
];
// ==================== 資料對應表 ====================
// 崗位類別代碼對應中文名稱
export const categoryMap = {
'01': '技術職',
'02': '管理職',
'03': '業務職',
'04': '行政職'
};
// 崗位性質代碼對應中文名稱
export const natureMap = {
'FT': '全職',
'PT': '兼職',
'CT': '約聘',
'IN': '實習'
};
// 職務類別代碼對應中文名稱
export const jobCategoryMap = {
'MGR': '管理職',
'TECH': '技術職',
'SALE': '業務職',
'ADMIN': '行政職',
'RD': '研發職',
'PROD': '生產職'
};
// ==================== Toast 持續時間 ====================
export const TOAST_DURATION = 3000;