◆ wport | pm_51

複製公開網址(職缺/公司)Mockup PRD

複製公開網址(職缺/公司)

來源 doc/feature/pm_51/copy-public-url-mockup.md

複製公開網址(職缺/公司)Mockup PRD

產出策略:既有頁面增量(existing_increment);不跑完整 gen-prd Q&A(兩處 UX 補丁,範圍明確)。
關聯:pm_38(公司完成度/預覽)。公開 URL 以現況為準,不沿用 pm_33 SEO 規劃路徑、不沿用 pm_50 /company/


1. 文件資訊

1.1 修訂紀錄

版本日期摘要
1.0.12026/08/12公開 URL 對齊現況:職缺 https://wport.me/job/{enc_id};公司 https://wport.me/companies/{enc_id}/company/ 會 302 回首頁)
1.0.02026/08/07初版:職缺三點選單複製公開 URL;公司資訊 3/3 預覽左側複製公司 URL

2. 開發進度與設計來源

開發進度

  • 前端 PR #(W101-Web recruitment):TBD
  • 後端 PR #:TBD(複製現況公開頁即可,通常前端組裝)

設計來源

  • Figma:N/A(內部業務補丁,沿用既有 dropdown/文字按鈕)
  • 既有 FE(incremental)
    • 管理職缺:apps/recruitment/src/views/jobs/index.vue(三點 NDropdown
    • 公司資訊:views/company-info + CompanyPageEditor 預覽按鈕列
  • URL 格式對照:以現況可開的公開頁為準(非 pm_33 規劃中的 SEO 路徑、非 pm_50 寫的 /company/

3. 模擬頁面摘要

3.1 功能概述

  • 功能名稱:複製公開網址(職缺/公司)
  • 主要使用者角色:Employer(Owner/Admin/Manager);業務協助分享給求職者
  • 核心目標
    • 業務/HR 在後台一鍵複製「求職者可開的公開 URL」,不必手動拼網址或切到前台
    • 關閉中的職缺、未完成公司頁不可誤傳無效連結

3.2 範圍界定

v1(必含)

  1. 管理職缺:列操作三點選單新增「複製職缺網址」
    • 僅職缺狀態=打開(status === 1)時顯示
    • 點擊 → 複製職缺公開 URL → 既有 wb-toast「已複製職缺網址」
    • 選單文字靠左對齊
  2. 公司資訊編輯頁:當完成度 3/3(Logo/基本資料/公司介紹皆完成)時,在「預覽」按鈕左側顯示「複製公司網址」
    • 點擊 → 複製公司公開 URL → 既有 wb-toast「已複製公司網址」
    • 外觀與「預覽」同款實心 primary 按鈕(同高/同字級)
    • 未滿 3/3 不顯示該按鈕(與 checklist「補件 nudge」同語意:未完成不可對外分享)
  3. 管理職缺|AI 匯入職缺:按鈕加品牌色柔和發光(pulse),提升入口可發現性(使用者回報)

Out of scope

  • ❌ 改 SEO/canonical 產生規則(複製現況公開頁即可;不實作 pm_33 /{lang}/job/{id}/{slug}
  • ❌ 短網址、UTM、QR code
  • ❌ 關閉職缺時仍顯示但 disabled(v1 採「不顯示」)
  • ❌ 求職者端 UI

3.3 成功條件

  • 打開中的職缺:三點選單可見「複製公開網址」,複製內容可於瀏覽器開啟對應公開職缺
  • 關閉/草稿職缺:選單沒有該項
  • 公司 3/3:預覽左側出現「複製公司網址」;未滿 3/3 無此按鈕
  • 既有「複製」(複製職缺草稿)與「預覽」行為不變

4. 商業規則對齊

規則 ID規則摘要是否關鍵備註
BR-014公司搜尋/公開可見需資料完整✅ 是公司複製按鈕僅 3/3 顯示
(職缺刊登狀態)僅打開中職缺對外可見✅ 是職缺複製選項僅 status=1

4.2 URL 契約(mock/正式對齊)

類型格式備註
職缺公開https://wport.me/job/{enc_id}現況。PRD 舊寫 /{lang}/job/{id}/{slug}(pm_33 規劃)尚未上線,不可複製
公司公開https://wport.me/companies/{enc_id}現況/company/{enc_id} 會 302 回首頁,不可複製

5. Storybook 實作備註

  • page_typeexisting_increment(兩頁皆已有 baseline)
  • 職缺:Storybook-only vite transform patch 注入 views/jobs/index.vue(不可改 production)
  • 公司CompanyCopyPublicUrlInject Teleport/DOM 注入於預覽按鈕左側(與 CompanyEditCompletenessChecklist 同模式)
  • 驗證 story
    • ManageJobsPublishGate → Verified(有打開中職缺列)
    • CompanyEditRegisterV2 → 公司頁 + Controls completenessPreset=complete

6. 驗收清單

  • 打開職缺三點選單有「複製職缺網址」;關閉/失敗列沒有;文字靠左
  • 複製後 clipboard 為 https://wport.me/job/{enc_id};回饋用既有 wb-toast
  • 公司 complete:預覽左側有「複製公司網址」→ https://wport.me/companies/{enc_id};回饋用既有 wb-toast
  • 公司 missing-*:無該按鈕
  • 既有複製職缺/預覽求職者視角仍可用