P/
PromptTools
選單
資產庫
指令組合
產生指令包
管理資料
Instruction asset
編輯一般指令
共用內容只保存一份;工具差異放在專用補充,下載時才組合。
基本資料
01
名稱
唯一代稱
小寫英文、數字與連字號;建立後仍可修改但不可重複。
簡短說明
主要分類
未分類
預設排序
標籤
尚無標籤,可先到「分類與標籤」建立。
共用 Markdown 與即時預覽
02
共用指令內容
--- applyTo: '**' --- # 開發覺察:選單來自 PMS,不要寫死 > 這是**開發時的覺察提醒**,不是 SQL 撰寫規範。 > PMS 選單 SQL 的產生方式請呼叫 [`pms-cross`](../skills/pms-cross/SKILL.md) skill;本檔僅提醒開發過程中應有的判斷。 --- ## 1. 共識:選單一律由 PMS 動態載入 本專案系列的所有網站,導覽列均由共用 UC( `UCmain.ascx` 等)透過 `ChghWebService.SelectNavbar` 從 `pms_AP` 動態取得;不存在「靜態選單」。 因此開發時: - **禁止**在 `.master` / `.ascx` / `.aspx` 內寫死選單 `<a href="...">` 連結清單。 - **禁止**在程式碼或設定檔中以陣列、enum、字串常數方式列出選單項目。 - **禁止**在前端 JS 中宣告 navbar 結構陣列(除非該頁完全獨立於 PMS 體系,例如登入頁)。 - 新增功能頁時,必須同步在 PMS(`pms_AP`)建立對應節點並完成角色綁定,否則使用者登入後看不到、也無權限存取。 --- ## 2. 開發時應停下來想一想 當你正要做以下動作時,請改為使用 PMS 流程: | 你想做的事 | 正確的對應動作 | |---|---| | 在 `Front.master` / `Admin.master` 加一個 `<li>` 選單 | 改為呼叫 `pms-cross` skill,產生 `pms_AP` 的 INSERT SQL | | 想把選單依角色顯示/隱藏 | 透過 `pms_RoleAuthority` 控制;UC 已自動依登入者權限過濾 | | 想加個外開頁籤的捷徑 | 在 `pms_AP` 新增節點時把 `APTarget` 設為 `_blank` | | 想停用某個選單但保留資料 | `UPDATE pms_AP SET APState = 'N'`,**不要**刪除節點,以免破壞 `pms_RoleAuthority` 引用 | | 想暫時隱藏但保留權限 | `UPDATE pms_AP SET DisplayFlag = 0`,可被 PMS 取出但不顯示在 navbar | | 想改選單顯示順序 | `UPDATE pms_AP SET APRanking = ...`(同層由小到大) | | 想新增分類選單(無連結,只用於 group 子項) | 該節點 `APUrl = NULL`,子節點 `ParentSID` 指向其 `APSID` | --- ## 3. 前端渲染契約(修改 UC 時必看) `UCmain.ascx` 的 JS 渲染依賴一條核心契約:**`d.ParentSID === 0` 才是根節點**(DAL 已用 `IsNull(ParentSID, 0)` 標準化)。 ```javascript // ✅ 正確 checkFlag.push(d.ParentSID === 0 ? 0 : 1); // ❌ 禁止:APSID 永遠不會等於 ParentSID,此式恆為 false,整個選單會渲染失敗 checkFlag.push(d.APSID === d.ParentSID ? 0 : 1); ``` 複製貼上既有 UC 範本作為新專案的基底時,務必檢查此判斷式。 --- ## 4. 新增功能頁的標準流程 1. 寫好 `.aspx` + `.aspx.cs`(繼承 `BasePage`)。 2. 呼叫 `pms-cross` skill 產生 `pms_AP` 的 INSERT 與 `pms_RoleAuthority` 的綁定 SQL。 3. 在 ASE 執行 SQL 後重新登入,確認新節點出現在導覽列且可點擊。 4. 任何選單異動(新增/改名/改 URL/停用)都應透過 PMS skill 而非直接改前端。 --- ## 5. 例外情境 僅以下少數情境允許在頁面內寫靜態連結,且不算違反本規則: - 登入 / 登出頁(不在 PMS 體系內) - 錯誤頁(`Error.aspx`) - Email 通知中的連結 - 完全公開、不需身分驗證的對外頁面(且該系統 `pms_sys_m.full_access = 'Y'` 或不接 PMS) 除此之外,**任何選單與導覽連結都應來自 PMS**。
格式化預覽
工具與套用範圍
03
適用工具
GitHub Copilot
Codex
Claude Code
Cursor
Antigravity
套用範圍
整個專案
指定路徑
指定路徑模式
每行一筆。當次下載仍可覆寫,不會修改此正式設定。
工具專用補充
04
只填差異,不要複製整份共用內容。
GitHub Copilot
Codex
Claude Code
Cursor
Antigravity
修改說明
選填;會保存在這次建立的新版本中。
保存並建立新版本
取消