PageSourceSearch

https://task.com.tw/assets/SeoBrandMonitor-B0E_bQbq.js

js task.com.tw collected 2026-10-08 16:05:57 UTC 23,294 bytes, 6 lines download raw bytes

1import{r as C,j as e,t as v}from"./vendor-react-Cek5_fI5.js";import{b as $,t as h,y as z,z as K,A as W,E as H}from"./index-DnYEcI1T.js";import{u as U,S as V}from"./SeoAdminLayout-Bgrt4li3.js";import"./vendor-charts-CdtAEet6.js";import"./vendor-export-Do0PDzts.js";import"./seoEnums-Cxf0PcGh.js";const A={chatgpt:{name:"ChatGPT",icon:"",color:"bg-green-500",desc:"OpenAI ChatGPT"},claude:{name:"Claude",icon:"",color:"bg-blue-500",desc:"Anthropic Claude"},gemini:{name:"Gemini",icon:"",color:"bg-purple-500",desc:"Google Gemini"},perplexity:{name:"Perplexity",icon:"",color:"bg-orange-500",desc:"Perplexity AI"},copilot:{name:"Copilot",icon:"",color:"bg-cyan-500",desc:"Microsoft Copilot"},meta_ai:{name:"Meta AI",icon:"",color:"bg-indigo-500",desc:"Meta AI"}},F={positive:{label:"正面推薦",color:"text-green-600 bg-green-50",icon:"+"},neutral:{label:"中性提及",color:"text-blue-600 bg-blue-50",icon:"~"},negative:{label:"負面提及",color:"text-red-600 bg-red-50",icon:"-"},not_mentioned:{label:"未提及",color:"text-gray-400 bg-gray-50",icon:"/"}},O={1:"每日",7:"每週",14:"每兩週",30:"每月"};function J(r){return r?O[String(r)]??`每 ${r} 天`:"—"}function G({open:r,onOpenChange:o,orgId:m,profileId:p,monitor:u,canEdit:b}){const S=h.useUtils(),f=u?.keywords.filter(s=>s.keywordType==="brand").map(s=>s.keyword)??[],B=u?.keywords.filter(s=>s.keywordType==="alias").map(s=>s.keyword)??[],[t,c]=C.useState({brand_name:"",brand_domain:"",brand_aliases:B.join(", "),monitor_keywords:f.join(`
2`),scan_frequency:String(u?.scanFrequencyDays??7),is_active:!0}),l=h.seo.brandMonitor.upsert.useMutation({onSuccess:()=>{v.success("設定已儲存"),S.seo.brandMonitor.get.invalidate({orgId:m,profileId:p}),o(!1)},onError:s=>v.error(s.message)});function i(){const s=t.monitor_keywords.split(`
3`).map(y=>y.trim()).filter(Boolean),d=t.brand_aliases.split(",").map(y=>y.trim()).filter(Boolean);if(s.length===0){v.error("請至少填入一個監測關鍵字");return}l.mutate({orgId:m,profileId:p,monitorKeywords:s,aliases:d.length>0?d:void 0,scanFrequencyDays:parseInt(t.scan_frequency,10)||7})}return e.jsx(z,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:120",open:r,onOpenChange:o,children:e.jsxs(K,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:121",className:"sm:max-w-lg max-h-[90vh] overflow-y-auto",children:[e.jsx(W,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:122",className:"sticky top-0 bg-background z-10 pb-2",children:e.jsx(H,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:123",children:"AI 品牌監測設定"})}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:125",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:127",className:"grid grid-cols-2 gap-3",children:[e.jsx(P,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:128",label:"品牌名稱 *",value:t.brand_name,onChange:s=>c({...t,brand_name:s}),placeholder:"公司品牌名稱"}),e.jsx(P,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:134",label:"品牌網域 *",value:t.brand_domain,onChange:s=>c({...t,brand_domain:s}),placeholder:"example.com.tw"})]}),e.jsx(P,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:141",label:"品牌別名(逗號分隔)",value:t.brand_aliases,onChange:s=>c({...t,brand_aliases:s}),placeholder:"簡稱, 英文名, 其他稱呼"}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:147",children:[e.jsx("label",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:148",className:"block text-sm font-medium text-gray-700 mb-1",children:"監測關鍵字(每行一個)"}),e.jsx("textarea",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:151",value:t.monitor_keywords,onChange:s=>c({...t,monitor_keywords:s.target.value}),className:"w-full border rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-200 outline-none",rows:5,placeholder:`台北律師事務所
4企業法律顧問
5商標註冊推薦`}),e.jsxs("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:158",className:"text-xs text-gray-400 mt-1",children:["建議填入客戶的目標關鍵字,系統會用這些關鍵字向各 AI 平台提問。目前"," ",t.monitor_keywords.split(`
6`).filter(s=>s.trim()).length," 個(上限 50 個)"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:163",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:164",children:[e.jsx("label",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:165",className:"block text-sm font-medium text-gray-700 mb-1",children:"掃描頻率"}),e.jsx("select",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:166",value:t.scan_frequency,onChange:s=>c({...t,scan_frequency:s.target.value}),className:"w-full border rounded-lg px-3 py-2 text-sm",children:Object.entries(O).map(([s,d])=>e.jsx("option",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:172",value:s,children:d},s))})]}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:176",className:"flex items-end pb-1",children:e.jsxs("label",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:177",className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:178",type:"checkbox",checked:t.is_active,onChange:s=>c({...t,is_active:s.target.checked}),className:"w-4 h-4"}),e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:184",className:"text-sm",children:"啟用自動掃描"})]})})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:189",className:"bg-blue-50 border border-blue-200 rounded-lg p-3 text-xs text-blue-700",children:[e.jsx("strong",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:190",children:"數據來源說明:"}),e.jsxs("ul",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:191",className:"mt-1 space-y-0.5 list-disc list-inside",children:[e.jsx("li",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:192",children:"Claude / Meta AI:透過 Claude API 查詢並分析回覆"}),e.jsx("li",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:193",children:"ChatGPT / Copilot:透過 OpenAI API 查詢並分析回覆"}),e.jsx("li",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:194",children:"Gemini:透過 Google Gemini API 查詢並分析回覆"}),e.jsx("li",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:195",children:"Perplexity:透過 Perplexity API 查詢並分析回覆"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:199",className:"flex flex-col sm:flex-row gap-3 justify-end pt-2 sticky bottom-0 bg-background",children:[e.jsx("button",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:200",onClick:()=>o(!1),className:"px-4 py-2 border rounded-lg text-sm",children:"取消"}),b&&e.jsx("button",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:207",onClick:i,disabled:l.isPending,className:"px-4 py-2 bg-blue-600 text-white rounded-lg text-sm hover:bg-blue-700 disabled:opacity-50",children:l.isPending?"儲存中...":"儲存設定"})]})]})]})})}function P({label:r,value:o,onChange:m,placeholder:p="",type:u="text"}){return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:236",children:[e.jsx("label",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:237",className:"block text-sm font-medium text-gray-700 mb-1",children:r}),e.jsx("input",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:238",type:u,value:o,onChange:b=>m(b.target.value),className:"w-full border rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-200 outline-none",placeholder:p})]})}function X({orgId:r,profileId:o,clientDomain:m,canEdit:p,canView:u}){const[b,S]=C.useState(!1),[f,B]=C.useState(!1),{data:t,isLoading:c}=h.seo.brandMonitor.get.useQuery({orgId:r,profileId:o},{enabled:!0}),l=t?.id,{data:i}=h.seo.brandMonitor.getMentionRate.useQuery({orgId:r,profileId:o,monitorId:l},{enabled:!!l}),{data:s}=h.seo.brandMonitor.getLatestScan.useQuery({orgId:r,profileId:o,monitorId:l},{enabled:!!l}),{data:d}=h.seo.brandMonitor.getScanHistory.useQuery({orgId:r,profileId:o,monitorId:l,limit:10},{enabled:!!l}),y=h.useUtils(),_=h.seo.brandMonitor.requestScan.useMutation({onSuccess:()=>{v.success("掃描任務已送出,請稍後查看結果"),y.seo.brandMonitor.getLatestScan.invalidate({orgId:r,profileId:o,monitorId:l}),y.seo.brandMonitor.getScanHistory.invalidate({orgId:r,profileId:o,monitorId:l}
6),y.seo.brandMonitor.getMentionRate.invalidate({orgId:r,profileId:o,monitorId:l}),B(!1)},onError:a=>{v.error("掃描失敗: "+a.message),B(!1)}});function E(){l&&(B(!0),_.mutate({orgId:r,profileId:o,monitorId:l}))}if(c)return e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:308",className:"text-center text-gray-400 py-12",children:"載入中..."});if(!t)return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:315",className:"bg-white rounded-xl border border-gray-200 p-12 text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:316",className:"text-4xl mb-4"}),e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:317",className:"text-xl font-bold mb-2",children:"尚未設定 AI 品牌監測"}),e.jsx("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:318",className:"text-gray-400 mb-6",children:"設定後系統將自動查詢各 AI 平台是否推薦此客戶的品牌"}),e.jsx("button",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:321",onClick:()=>S(!0),className:"px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700",children:"開始設定"})]}),e.jsx(G,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:328",open:b,onOpenChange:S,orgId:r,profileId:o,monitor:null,canEdit:p})]});const T=t.keywords.filter(a=>a.keywordType==="brand").map(a=>a.keyword),D=t.keywords.filter(a=>a.keywordType==="alias").map(a=>a.keyword),w=i?.overall.rate??0,Q=i?.overall.total??0;let k=null;if(d&&d.length>=2){const a=d[0].mentionCount??0,n=d[1].mentionCount??0;k=a>n?"up":a<n?"down":"stable"}return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:355",className:"space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:357",className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:358",className:"flex flex-wrap items-center gap-4",children:[e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:359",className:"text-sm text-gray-500",children:["網域:",e.jsx("strong",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:360",children:m??"—"})]}),e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:362",className:"text-sm text-gray-400",children:"|"}),e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:363",className:"text-sm text-gray-500",children:["頻率:",J(t.scanFrequencyDays)]}),D.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:368",className:"text-sm text-gray-400",children:"|"}),e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:369",className:"text-sm text-gray-500",children:["別名:",D.join("、")]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:375",className:"flex gap-2",children:[e.jsx("button",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:376",onClick:()=>S(!0),className:"px-3 py-1.5 border rounded-lg text-xs hover:bg-gray-50",children:"設定"}),u&&e.jsx("button",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:383",onClick:E,disabled:f||_.isPending,className:"px-4 py-1.5 bg-blue-600 text-white rounded-lg text-xs hover:bg-blue-700 disabled:opacity-50",children:f||_.isPending?"掃描中...":"立即掃描"})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:395",className:"bg-white rounded-xl border border-gray-200 p-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:396",className:"flex justify-between items-center mb-6",children:[e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:397",className:"text-lg font-semibold",children:"整體 AI 推薦表現"}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:398",className:"flex items-center gap-2",children:[k==="up"&&e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:400",className:"text-green-600 text-sm font-medium",children:"↑ 上升"}),k==="down"&&e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:403",className:"text-red-600 text-sm font-medium",children:"↓ 下降"}),k==="stable"&&e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:406",className:"text-gray-500 text-sm font-medium",children:"→ 穩定"}),t.lastScannedAt&&e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:409",className:"text-xs text-gray-400",children:["上次掃描:",new Date(t.lastScannedAt).toLocaleStr
6ing("zh-TW")]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:417",className:"flex items-center gap-6 mb-8",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:418",className:"relative w-28 h-28",children:[e.jsxs("svg",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:419",viewBox:"0 0 100 100",className:"w-full h-full -rotate-90",children:[e.jsx("circle",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:420",cx:"50",cy:"50",r:"40",fill:"none",stroke:"#e5e7eb",strokeWidth:"8"}),e.jsx("circle",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:421",cx:"50",cy:"50",r:"40",fill:"none",stroke:w>=60?"#16a34a":w>=30?"#f59e0b":"#ef4444",strokeWidth:"8",strokeDasharray:`${w*2.51} 251`,strokeLinecap:"round"})]}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:438",className:"absolute inset-0 flex items-center justify-center",children:e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:439",className:"text-2xl font-bold",children:[w,"%"]})})]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:442",children:[e.jsx("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:443",className:"text-lg font-semibold",children:"AI 推薦提及率"}),e.jsxs("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:444",className:"text-sm text-gray-400",children:["共查詢 ",Q," 次,跨 6 個 AI 平台"]})]})]}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:451",className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4",children:Object.entries(A).map(([a,n])=>{const M=i?.byPlatform.find(g=>g.platform===a),j=M?.rate??0;return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:456",className:"border rounded-xl p-4 text-center hover:shadow-sm transition-shadow",children:[e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:460",className:"text-2xl mb-1",children:n.icon}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:461",className:"text-sm font-semibold mb-1",children:n.name}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:462",className:`text-2xl font-bold ${j>=60?"text-green-600":j>=30?"text-yellow-600":j>0?"text-red-500":"text-gray-300"}`,children:[j,"%"]}),e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:475",className:"text-xs text-gray-400 mt-1",children:[M?.mentioned??0,"/",M?.total??0," 提及"]})]},a)})})]}),d&&d.length>1&&e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:486",className:"bg-white rounded-xl border border-gray-200 p-6",children:[e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:487",className:"text-lg font-semibold mb-4",children:"趨勢變化"}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:488",className:"flex items-end gap-2 h-32 overflow-x-auto",children:d.map((a,n)=>{const M=a.totalQueries??1,j=a.mentionCount??0,g=M>0?Math.round(j/M*100):0;return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:494",className:"flex-1 flex flex-col items-center min-w-[40px]",children:[e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:495",className:"w-full flex justify-center",children:e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:496",className:`w-8 rounded-t ${g>=60?"bg-green-400":g>=30?"bg-yellow-400":"bg-red-400"}`,style:{height:`${Math.max(4,g*1.2)}px`}})}),e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:507",className:"text-xs text-gray-400 mt-1",children:a.startedAt?new Date(a.startedAt).toLocaleDateString("zh-TW",{month:"short",day:"numeric"}):"—"}),e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:515",className:"text-xs font-medium",children:[g,"%"]})]},n)})})]}),s&&s.results.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:525",className:"bg-white rounded-xl border border-gray-200 p-6",children:[e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:526",className:"text-lg font-semibold mb-4",children:"最近掃描結果"}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:527",className:"space-y-4",children:Array.from(s.results.reduce((a,n)=>(a.has(n.queryText)||a.set(n.queryText,[]),a.get(n.queryText).push(n),a),new Map)).map(([a,n],M)=>{const j=n.filter(x=>x.isMentioned).length,g=n.length>0?Math.round(j/n.length*100):0;return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:541",className:"border rounded-lg p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:542",className:"flex flex-col sm:flex-row justify-between items-start sm:items-center mb-3 gap-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:543",className:"flex items-center gap-2",children:[e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:544",className:"font-medium text-sm",children:["關鍵字:",a]}),s.startedAt&&e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:546",className:"text-xs text-gray-400",children:new Date(s.startedAt).toLocaleDateString("zh-TW")})]}),e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:551",className:`px-2 py-0.5 rounded-full text-xs font-medium ${g>=60?"bg-green-100 text-green-700":g>=30?"bg-yellow-100 text-yellow-700":"bg-red-100 text-red-700"}`,children:["提及率 ",g,"%"]})]}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:563",className:"grid grid-cols-3 sm:grid-cols-6 gap-2",children:Object.keys(A).map(x=>{const N=n.find(R=>R.platform===x),I=A[x],L=F[N?.sentiment??"not_mentioned"]??F.not_mentioned,q=N?.isMentioned??!1;return e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:570",className:`rounded-lg p-2 text-center text-xs ${q?L.color:"bg-gray-50 text-gray-400"}`,title:N?.mentionContext??"",children:[e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:577",className:"text-base",children:I.icon}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:578",className:"font-medium mt
6-0.5",children:I.name}),q?e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:580",className:"mt-1",children:e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:581",className:"font-bold",children:L.label})}):e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:584",className:"mt-1",children:N?"未提及":"—"})]},x)})}),n.filter(x=>x.mentionContext).length>0&&e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:592",className:"mt-3 pt-3 border-t",children:n.filter(x=>x.mentionContext).map((x,N)=>e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:596",className:"text-xs text-gray-500 mb-1",children:[e.jsxs("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:597",className:"font-medium text-gray-700",children:[A[x.platform]?.name,":"]}),'"...',x.mentionContext,'..."']},N))})]},M)})})]}),T.length>0&&e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:614",className:"bg-white rounded-xl border border-gray-200 p-6",children:[e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:615",className:"text-lg font-semibold mb-3",children:"監測關鍵字"}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:616",className:"flex flex-wrap gap-2",children:T.map((a,n)=>e.jsx("span",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:618",className:"px-3 py-1 bg-blue-50 text-blue-700 rounded-full text-sm",children:a},n))})]}),e.jsx(G,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:629",open:b,onOpenChange:S,orgId:r,profileId:o,monitor:t,canEdit:p})]})}function oe(){const{currentOrg:r}=$(),o=r?.orgId,{can:m}=U(),p=m("brand-monitor","edit"),u=m("brand-monitor","view"),[b,S]=C.useState(null),{data:f,isLoading:B}=h.seo.client.list.useQuery({orgId:o,status:"active",pageSize:100},{enabled:!!o}),t=f?.items??[],c=b??(t.length>0?t[0].id:null),l=t.find(i=>i.id===c);return e.jsx(V,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:667",title:"AI 品牌監測",subtitle:"追蹤品牌在各 AI 平台的推薦表現",children:e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:668",className:"p-3 sm:p-6 max-w-7xl mx-auto space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:670",className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:671",children:[e.jsx("h1",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:672",className:"text-2xl font-bold",children:"AI 品牌監測"}),e.jsx("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:673",className:"text-sm text-gray-400 mt-1",children:"追蹤品牌在各 AI 平台的推薦表現"})]}),e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:675",className:"flex gap-3",children:e.jsx("select",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:676",value:c??"",onChange:i=>S(Number(i.target.value)),className:"border rounded-lg px-3 py-2 text-sm min-w-[200px]",children:t.map(i=>e.jsx("option",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:682",value:i.id,children:i.domain??`客戶 #${i.id}`},i.id))})})]}),B?e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:692",className:"text-center text-gray-400 py-12",children:"載入中..."}):t.length===0?e.jsxs("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:694",className:"bg-white rounded-xl border border-gray-200 p-12 text-center",children:[e.jsx("div",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:695",className:"text-4xl mb-4"}),e.jsx("h2",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:696",className:"text-xl font-bold mb-2",children:"尚未設定 AI 品牌監測"}),e.jsx("p",{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:697",className:"text-gray-400 mb-6",children:"設定後系統將自動查詢各 AI 平台是否推薦此客戶的品牌"})]}):c!=null&&o!=null?e.jsx(X,{"data-loc":"client/src/pages/seo/SeoBrandMonitor.tsx:702",orgId:o,profileId:c,clientDomain:l?.domain,canEdit:p,canView:u},c):null]})})}export{oe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.