hunter-mate 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/assets/extension/build-info.json +1 -1
  2. package/dist/assets/extension/manifest.json +3 -3
  3. package/dist/assets/server/main.mjs +68 -18
  4. package/dist/index.js +65 -21
  5. package/dist/web/dist/404.html +1 -1
  6. package/dist/web/dist/_next/static/chunks/253-a05d05b94bfbd7a4.js +1 -0
  7. package/dist/web/dist/_next/static/chunks/{852-248884963a986600.js → 852-ad19b97821a4cf9e.js} +1 -1
  8. package/dist/web/dist/_next/static/chunks/app/companies/{page-ec27ce9ab3610221.js → page-e8d02fe997579315.js} +1 -1
  9. package/dist/web/dist/_next/static/chunks/app/jobs/page-4827a9ef286b6483.js +1 -0
  10. package/dist/web/dist/_next/static/chunks/app/talents/{page-c0a0c250eb5f5459.js → page-0edef6d07b3cf69d.js} +1 -1
  11. package/dist/web/dist/_next/static/css/10ba1fa1d6ce23a7.css +3 -0
  12. package/dist/web/dist/admin/data.html +1 -1
  13. package/dist/web/dist/admin/data.txt +1 -1
  14. package/dist/web/dist/auth/verify.html +1 -1
  15. package/dist/web/dist/auth/verify.txt +1 -1
  16. package/dist/web/dist/companies.html +1 -1
  17. package/dist/web/dist/companies.txt +2 -2
  18. package/dist/web/dist/company/admin.html +1 -1
  19. package/dist/web/dist/company/admin.txt +1 -1
  20. package/dist/web/dist/entity.html +1 -1
  21. package/dist/web/dist/entity.txt +1 -1
  22. package/dist/web/dist/index.html +1 -1
  23. package/dist/web/dist/index.txt +1 -1
  24. package/dist/web/dist/jobs.html +1 -1
  25. package/dist/web/dist/jobs.txt +2 -2
  26. package/dist/web/dist/logs.html +1 -1
  27. package/dist/web/dist/logs.txt +1 -1
  28. package/dist/web/dist/matching/jobs/placeholder/talents.html +1 -1
  29. package/dist/web/dist/matching/jobs/placeholder/talents.txt +1 -1
  30. package/dist/web/dist/matching/portraits/placeholder/jobs.html +1 -1
  31. package/dist/web/dist/matching/portraits/placeholder/jobs.txt +1 -1
  32. package/dist/web/dist/parselog.html +1 -1
  33. package/dist/web/dist/parselog.txt +1 -1
  34. package/dist/web/dist/recordings.html +1 -1
  35. package/dist/web/dist/recordings.txt +1 -1
  36. package/dist/web/dist/resource-usage.html +1 -1
  37. package/dist/web/dist/resource-usage.txt +1 -1
  38. package/dist/web/dist/shared/placeholder.html +1 -1
  39. package/dist/web/dist/shared/placeholder.txt +1 -1
  40. package/dist/web/dist/snapshots/placeholder/agent-prompt.html +1 -1
  41. package/dist/web/dist/snapshots/placeholder/agent-prompt.txt +1 -1
  42. package/dist/web/dist/talents.html +1 -1
  43. package/dist/web/dist/talents.txt +2 -2
  44. package/dist/web/dist/team/insights.html +1 -1
  45. package/dist/web/dist/team/insights.txt +1 -1
  46. package/package.json +3 -3
  47. package/dist/web/dist/_next/static/chunks/954-fb0212fe71f60a52.js +0 -1
  48. package/dist/web/dist/_next/static/chunks/app/jobs/page-4175a90f1b42f87d.js +0 -1
  49. package/dist/web/dist/_next/static/css/bd072fee69ae8474.css +0 -3
  50. /package/dist/assets/extension/background/{service-worker.20261016150040.js → service-worker.20261017012007.js} +0 -0
  51. /package/dist/web/dist/_next/static/{GLFVRtthA5lVwS4QGRhZQ → hBLezfvVOMiGqm4V9F15i}/_buildManifest.js +0 -0
  52. /package/dist/web/dist/_next/static/{GLFVRtthA5lVwS4QGRhZQ → hBLezfvVOMiGqm4V9F15i}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="456827c9-2df7-41cb-9891-aa3791e96e92",e._sentryDebugIdIdentifier="sentry-dbid-456827c9-2df7-41cb-9891-aa3791e96e92")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[964],{41937:function(e,t,s){Promise.resolve().then(s.bind(s,30854))},27473:function(e,t,s){"use strict";var a=s(38321);s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}}),s.o(a,"useServerInsertedHTML")&&s.d(t,{useServerInsertedHTML:function(){return a.useServerInsertedHTML}})},30854:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return P}});var a=s(72835),l=s(60635),r=s(27473),n=s(74431),c=s(8448),i=s(94518),o=s(63718);function d(e){var t;let{customer:s}=e,i=(0,r.useRouter)(),[o,d]=(0,l.useState)(null),[x,u]=(0,l.useState)(!1),[m,p]=(0,l.useState)(new Set),[b,h]=(0,l.useState)(s.id),[g,y]=(0,l.useState)(!1),[f,j]=(0,l.useState)("");(0,l.useEffect)(()=>{let e=!0;return d(null),j(""),(async()=>{try{let t=await (0,n.aA)("/customers/".concat(s.id,"/duplicates"));e&&d(t.candidates)}catch(t){e&&d([])}})(),()=>{e=!1}},[s.id]);let v=async()=>{let e=(null!=o?o:[]).filter(e=>!m.has(e.id)).map(e=>e.id);if(b!==s.id&&e.push(s.id),0===e.length){j("未勾选任何候选参与合并");return}y(!0);let t=!0;for(let s of e)try{await (0,n.aA)("/customers/merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keepId:b,removeId:s})})}catch(e){t=!1;break}if(y(!1),!t){j("合并失败,请重试");return}i.replace("/companies?id=".concat(b)),i.refresh(),window.location.reload()};if(null===o||0===o.length)return null;let N=b===s.id?{canonicalName:s.canonicalName,aliases:s.aliases}:o.find(e=>e.id===b),k=o.filter(e=>!m.has(e.id)),w=N?((e,t)=>{var s,a;let l=new Set(null!==(s=e.aliases)&&void 0!==s?s:[]);for(let s of t)if(b!==s.id)for(let t of[s.canonicalName,...null!==(a=s.aliases)&&void 0!==a?a:[]])t&&t!==e.canonicalName&&l.add(t);return Array.from(l)})(N,k):[];return(0,a.jsxs)("div",{className:"mb-4 rounded-lg border border-amber-300 bg-amber-50 p-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsxs)("span",{className:"text-sm font-medium text-amber-800",children:["发现 ",o.length," 条可能重复的公司记录"]}),(0,a.jsx)("button",{onClick:()=>u(!0),disabled:g,className:"rounded bg-amber-600 px-3 py-1 text-sm text-white hover:bg-amber-700 disabled:opacity-50",children:"查看并处理"}),f?(0,a.jsx)("span",{className:"text-sm text-red-600",children:f}):null]}),x?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-2 sm:p-4",onClick:()=>u(!1),children:(0,a.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-3xl flex-col overflow-hidden rounded-lg bg-white shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 border-b border-gray-200 px-4 py-3",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"重复公司合并工作区"}),(0,a.jsxs)("span",{className:"text-sm text-gray-500",children:["当前 #",s.id," \xb7 ",s.canonicalName]}),(0,a.jsx)("button",{onClick:()=>u(!1),className:"ml-auto text-sm text-gray-500 hover:text-gray-700",children:"关闭"})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[(0,a.jsx)("div",{className:"mb-2 text-xs font-medium text-gray-500",children:"候选(勾选=重复,参与合并;合并后其交付职位与备注重指保留行)"}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 rounded-lg border p-2 ".concat(b===s.id?"border-blue-400 bg-blue-50":"border-gray-200"),children:[(0,a.jsx)("input",{type:"radio",name:"company-keep",checked:b===s.id,onChange:()=>h(s.id),title:"保留这一行"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-gray-900",children:s.canonicalName}),(0,a.jsx)("span",{className:"ml-2 rounded bg-gray-100 px-1.5 py-0.5 text-xs text-gray-600",children:"当前行"}),(null===(t=s.aliases)||void 0===t?void 0:t.length)?(0,a.jsxs)("span",{className:"block truncate text-xs text-gray-500",children:["别名:",s.aliases.join("、")]}):null]})]}),o.map(e=>{var t;return(0,a.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border p-2 ".concat(b===e.id?"border-blue-400 bg-blue-50":"border-gray-200"),children:[(0,a.jsx)("input",{type:"checkbox",checked:!m.has(e.id),disabled:g,onChange:t=>{p(s=>{let a=new Set(s);return t.target.checked?a.delete(e.id):a.add(e.id),a})},title:"勾选=重复公司,参与合并"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("span",{className:"text-sm font-medium text-gray-900",children:["#",e.id," ",e.canonicalName]}),(0,a.jsx)("span",{className:"ml-2 rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700",children:e.reason}),1===e.isCustomer?(0,a.jsx)("span",{className:"ml-1 rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700",children:"客户"}):null,(0,a.jsxs)("span",{className:"block truncate text-xs text-gray-500",children:[e.jobCaseCount," 个职位案件 \xb7 更新于 ",(0,c.d3)(e.updatedAt),(null===(t=e.aliases)||void 0===t?void 0:t.length)?" \xb7 别名:".concat(e.aliases.join("、")):""]})]}),(0,a.jsx)("input",{type:"radio",name:"company-keep",checked:b===e.id,onChange:()=>h(e.id),title:"保留这一行"})]},e.id)})]}),w.length?(0,a.jsxs)("div",{className:"mt-3 rounded-lg border border-gray-200 bg-gray-50 p-3",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-gray-500",children:"合并后别名(预览)"}),(0,a.jsx)("div",{className:"mt-1 text-sm text-gray-800",children:w.join("、")})]}):null]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-gray-200 px-4 py-3",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>void v(),disabled:g,className:"rounded bg-blue-600 px-4 py-1.5 text-sm text-white hover:bg-blue-700 disabled:opacity-50",children:["确认合并(保留 #",b,")"]}),(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"保留行吸收其余行的别名/档案/联系人;被合并行走墓碑外传删除(云端同步删)"}),f?(0,a.jsx)("span",{className:"text-sm text-red-600",children:f}):null]})]})}):null]})}function x(e){var t;let s=(null===(t=e.aliases)||void 0===t?void 0:t.length)?"(别名:".concat(e.aliases.join("、"),")"):"";return"调研公司「".concat(e.canonicalName,"」").concat(s,"(hunter-mate 公司注册表 ID=").concat(e.id,")。")}function u(e,t){return["调研结果写回(每步一个键,键名用下方约定,值为中文正文、关键名词保留英文):","curl -X PATCH ".concat(e.origin,"/customers/").concat(e.id," \\")," -H 'Content-Type: application/json' \\",' -d \'{"profile":{"'.concat(t,'":{"<步骤键>":"<内容>"}}}\''),"只写你实际完成且确有依据的步骤,不确定的标注「待核实」;不要编造。写回后告知用户更新了哪些步骤。"].join("\n")}let m={bd:{title:"BD 档案(竞对分析)",button:"让 agent 调研(BD)",builder:function(e){return[x(e),"按「公司竞争对手分析与BD分步操作SOP V0.1」(bd-competitor-sop)执行调研,覆盖以下步骤:",...["第一步\xb7公司主体:集团/母公司/子公司/品牌/海外法人关系","第二步\xb7业务与竞争关系:主要产品与服务、目标客户、竞争格局","第三步\xb7近12个月海外发展与投资:新市场、建厂、并购、融资动态","第四步\xb7海外招聘信号:在招岗位、地区、规模与趋势","第五步\xb7岗位映射:海外动作对应的组织能力与关键岗位","第六步\xb7内部人才与案例资产:我司已有人才/案例与之的关联","第七步\xb7BD优先级与打法建议:是否值得跟、从哪切入"].map(e=>"- ".concat(e)),"",u(e,"bd")].join("\n")}},op:{title:"OP 档案(职位操作)",button:"让 agent 调研(OP)",builder:function(e){return[x(e),"按「寻访操作SOP V3.1」(rs-sourcing-sop)的公司调研口径执行,产出服务职位推荐与人才寻访:",...["核心业务:产品/服务是什么、卖给谁、应用场景","规模与业绩:营收/人员规模,当地业务规模","海外布局:开展业务的国家、海外团队规模与管理方式","当前招聘需求与背景:在招什么岗、为什么招","未来战略与规划:用于候选人沟通的 marketing 话术素材","对标公司名单:喜欢挖猎的对标公司,不少于 20 家,按梯队分组(给名单即可,梯队用一/二/三)","公司介绍 Hook:一段话介绍该公司(用于 Connect 模板,可编辑)","当地可挖猎公司名单:该岗位 base 地存在该岗位的公司名单,不低于 20 家"].map(e=>"- ".concat(e)),"",u(e,"op")].join("\n")}}};function p(e){return null==e||""===e?"":"string"==typeof e?e:JSON.stringify(e,null,2)}function b(e){let{customer:t,onSaved:s}=e,[r,c]=(0,l.useState)(!1),[i,o]=(0,l.useState)(!1),[d,x]=(0,l.useState)(""),[u,b]=(0,l.useState)(null),[h,g]=(0,l.useState)(""),[y,f]=(0,l.useState)(""),[j,v]=(0,l.useState)(""),[N,k]=(0,l.useState)({bd:[],op:[]}),w=async e=>{x("");let s={id:t.id,canonicalName:t.canonicalName,aliases:t.aliases,origin:window.location.origin};try{await navigator.clipboard.writeText(m[e].builder(s)),b(e),setTimeout(()=>b(null),4e3)}catch(e){var a;x("复制失败:".concat(null!==(a=null==e?void 0:e.message)&&void 0!==a?a:e))}},C=(e,t)=>k(s=>({...s,[e]:t})),S=async()=>{o(!0),x("");let e=e=>{let t={};for(let s of e){let e=s.key.trim();e&&(t[e]=function(e){let t=e.trim();if(!t)return"";try{return JSON.parse(t)}catch(t){return e}}(s.text))}return t};try{await (0,n.aA)("/customers/".concat(t.id),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()||void 0,aliases:y.split(/[、,,]/).map(e=>e.trim()).filter(Boolean),notes:j,profile:{bd:e(N.bd),op:e(N.op)}})})}catch(e){o(!1),x("保存失败,请重试");return}o(!1),c(!1),s()};return(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"公司信息"}),r?null:(0,a.jsx)("button",{type:"button",onClick:()=>{var e,s,a,l;g(t.canonicalName),f((null!==(a=t.aliases)&&void 0!==a?a:[]).join("、")),v(null!==(l=t.notes)&&void 0!==l?l:"");let r=e=>Object.entries(null!=e?e:{}).map(e=>{let[t,s]=e;return{key:t,text:p(s)}});k({bd:r(null===(e=t.profile)||void 0===e?void 0:e.bd),op:r(null===(s=t.profile)||void 0===s?void 0:s.op)}),c(!0),x("")},className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600 hover:bg-gray-50",children:"编辑"}),d?(0,a.jsx)("span",{className:"text-xs text-red-600",children:d}):null]}),r?(0,a.jsxs)("div",{className:"mb-3 space-y-2 rounded-lg border border-blue-200 bg-blue-50/50 p-3",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"公司名称(改名后旧名自动入别名)"}),(0,a.jsx)("input",{value:h,onChange:e=>g(e.target.value),className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"别名(顿号/逗号分隔)"}),(0,a.jsx)("input",{value:y,onChange:e=>f(e.target.value),className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"备注"}),(0,a.jsx)("textarea",{value:j,onChange:e=>v(e.target.value),rows:2,className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]})]}):null,(0,a.jsx)("div",{className:"space-y-3",children:["bd","op"].map(e=>{var s,l;let n=m[e],c=r?N[e]:Object.entries(null!==(l=null===(s=t.profile)||void 0===s?void 0:s[e])&&void 0!==l?l:{}).map(e=>{let[t,s]=e;return{key:t,text:p(s)}});return(0,a.jsxs)("section",{className:"rounded-lg border border-gray-200",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-100 px-3 py-2",children:[(0,a.jsx)("h4",{className:"text-sm font-semibold text-gray-900",children:n.title}),r?null:(0,a.jsx)("button",{type:"button",onClick:()=>void w(e),className:"rounded bg-blue-50 px-2 py-0.5 text-xs text-blue-700 hover:bg-blue-100",children:u===e?"已复制 ✓ 请发给 agent":n.button})]}),0===c.length?(0,a.jsx)("p",{className:"px-3 py-2 text-xs text-gray-400",children:r?"暂无条目,可在下方添加":"尚未调研,点上方「".concat(n.button,"」让 agent 调研")}):(0,a.jsxs)("div",{className:r?"space-y-2 p-3":"divide-y divide-gray-50",children:[c.map((t,s)=>r?(0,a.jsxs)("div",{className:"grid grid-cols-[1fr,2fr,auto] items-start gap-2",children:[(0,a.jsx)("input",{value:t.key,placeholder:"条目名(如:核心业务)",onChange:t=>{let a=[...c];a[s]={...a[s],key:t.target.value},C(e,a)},className:"rounded border border-gray-300 px-2 py-1 text-xs"}),(0,a.jsx)("textarea",{value:t.text,placeholder:"内容(纯文本,或合法 JSON)",rows:3,onChange:t=>{let a=[...c];a[s]={...a[s],text:t.target.value},C(e,a)},className:"w-full rounded border border-gray-300 px-2 py-1 text-xs"}),(0,a.jsx)("button",{type:"button",onClick:()=>C(e,c.filter((e,t)=>t!==s)),className:"rounded border border-red-200 px-2 py-0.5 text-xs text-red-600 hover:bg-red-50",children:"删"})]},s):(0,a.jsxs)("div",{className:"px-3 py-1.5",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-gray-500",children:t.key}),(0,a.jsx)("div",{className:"whitespace-pre-wrap text-sm text-gray-800",children:t.text||"—"})]},t.key)),r?(0,a.jsx)("button",{type:"button",onClick:()=>C(e,[...c,{key:"",text:""}]),className:"rounded border border-dashed border-gray-300 px-2 py-1 text-xs text-gray-500 hover:border-blue-400 hover:text-blue-600",children:"+ 添加条目"}):null]})]},e)})}),r?(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>void S(),disabled:i,className:"rounded bg-blue-600 px-3 py-1 text-sm text-white hover:bg-blue-700 disabled:opacity-50",children:i?"保存中…":"保存"}),(0,a.jsx)("button",{type:"button",onClick:()=>c(!1),disabled:i,className:"rounded border border-gray-300 px-3 py-1 text-sm text-gray-600 hover:bg-gray-50 disabled:opacity-50",children:"取消"})]}):null]})}var h=s(65912),g=s(26119),y=s(65777),f=s(93464);function j(e){let{sources:t}=e,s=[{on:t.customer,cls:"bg-amber-100 text-amber-700",label:"客户"},{on:t.parsed,cls:"bg-blue-100 text-blue-700",label:"解析"},{on:t.resume,cls:"bg-green-100 text-green-700",label:"简历"},{on:t.hmhLocal,cls:"bg-purple-100 text-purple-700",label:"本地"}];return(0,a.jsx)("span",{className:"inline-flex flex-wrap gap-1",children:s.filter(e=>e.on).map(e=>(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat(e.cls),children:e.label},e.label))})}let v=[{key:"customer",label:"客户",cls:"bg-amber-100 text-amber-700"},{key:"parsed",label:"解析",cls:"bg-blue-100 text-blue-700"},{key:"resume",label:"简历",cls:"bg-green-100 text-green-700"},{key:"hmhLocal",label:"本地",cls:"bg-purple-100 text-purple-700"}];function N(){var e,t,s,x,u,m;let p=(0,r.useRouter)(),N=(0,r.useSearchParams)(),k=N.get("id")||"",w=N.get("q")||"",C=(null!==(t=N.get("oc"))&&void 0!==t?t:"1")!=="0",[S,P]=(0,l.useState)(null),[T,A]=(0,l.useState)(!1),[L,O]=(0,l.useState)(!1),[I,D]=(0,l.useState)(0),[U,E]=(0,l.useState)(!1),[_,B]=(0,l.useState)(!1),[J,M]=(0,l.useState)(""),[H,R]=(0,l.useState)(!1),[q,V]=(0,l.useState)("profile"),z=N.get("src")||"",F=(0,l.useMemo)(()=>z.split(",").map(e=>e.trim()).filter(Boolean),[z]),[X,Y]=(0,l.useState)({customer:0,parsed:0,resume:0,hmhLocal:0}),[G,K]=(0,l.useState)(0),{session:Q,sync:W}=(0,y.nu)(),Z=null!==(s=null==W?void 0:W.activeTenantId)&&void 0!==s?s:null,$=(0,g.B)({deleteUrl:"/customers",label:"公司",onDeleted:()=>ee.refresh(),currentUserId:null!==(x=null==Q?void 0:Q.hmUserId)&&void 0!==x?x:null}),ee=(0,f.k)({fetchPage:(0,l.useCallback)(async(e,t)=>{var s,a;let l=new URLSearchParams;w&&l.set("query",w),C&&l.set("onlyCustomers","1"),F.length&&l.set("sources",F.join(",")),l.set("limit",String(t)),l.set("offset",String(e));let r=await (0,n.aA)("/customers/unified?".concat(l.toString()));return Y(null!==(s=r.sourceCounts)&&void 0!==s?s:{customer:0,parsed:0,resume:0,hmhLocal:0}),K(null!==(a=r.customerCount)&&void 0!==a?a:0),{items:r.items,total:r.total}},[w,C,F,Z]),pageSize:50,deps:[w,C,F,Z]}),et=ee.items,es=ee.total,ea=ee.loading;(0,l.useEffect)(()=>{$.prune(et.map(e=>String(e.id)))},[et,$]);let el=(0,l.useCallback)(e=>{var t,s,a;let l=new URLSearchParams(N.toString());void 0!==e.id&&(e.id?l.set("id",e.id):l.delete("id"));let r=null!==(t=e.q)&&void 0!==t?t:w;r?l.set("q",r):l.delete("q"),(null!==(s=e.oc)&&void 0!==s?s:C)?l.delete("oc"):l.set("oc","0");let n=null!==(a=e.src)&&void 0!==a?a:F;n.length?l.set("src",n.join(",")):l.delete("src"),p.replace("/companies?".concat(l.toString()))},[p,N,w,C,F]);(0,l.useEffect)(()=>{V("profile")},[k]);let er=(0,l.useCallback)(async()=>{if(k)try{let e=await (0,n.aA)("/customers/".concat(k,"/related"));P(e),O(!1)}catch(e){P(null),O(!0)}},[k]);(0,l.useEffect)(()=>{if(!k){P(null),O(!1);return}A(!0),er().then(()=>A(!1))},[k,er,I]);let en=(0,l.useCallback)(async()=>{let e=null==S?void 0:S.companyProfile;if(null==e?void 0:e.sourceUrl){M("重新适配中…(浏览器编排重跑,稍候)");try{await (0,n.aA)("/extract/adapter",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e.sourceUrl})}),M("已重新适配并入库 ✓"),await er()}catch(e){M("重新适配失败(需扩展在线且页面可访问),请重试")}setTimeout(()=>M(""),6e3)}},[null==S?void 0:S.companyProfile,er]),ec=(0,l.useCallback)(async()=>{let e=null==S?void 0:S.companyProfile;if(e){M("");try{let t=await fetch("".concat((0,n.Ox)(),"/entities/company/").concat(e.id,"/repair-prompt"));if(!t.ok)throw Error("HTTP ".concat(t.status));let s=await t.json();await navigator.clipboard.writeText(s.prompt),R(!0),setTimeout(()=>R(!1),4e3)}catch(e){var t;M("复制失败:".concat(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:e))}}},[null==S?void 0:S.companyProfile]),ei=(0,l.useCallback)(async(e,t)=>{E(!0),B(!1);try{await (0,n.aA)("/customers/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({isCustomer:t?1:0})})}catch(e){E(!1),B(!0);return}ee.refresh(),await er(),E(!1)},[ee,er]),eo=(0,l.useMemo)(()=>et.map(e=>({id:String(e.id),content:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[$.checkbox(String(e.id)),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-gray-900",children:e.canonicalName}),e.activeJobCount>0?(0,a.jsxs)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-xs text-emerald-700",children:["交付中 ",e.activeJobCount]}):null]}),(0,a.jsx)("div",{className:"mt-0.5",children:(0,a.jsx)(j,{sources:e.sources})}),(0,a.jsxs)("div",{className:"mt-0.5 text-xs text-gray-400",children:[e.jobCaseCount>0?"".concat(e.jobCaseCount," 个职位案件 \xb7 "):"","更新于 ",(0,c.d3)(e.updatedAt)]})]})]})})),[et,$]),ed=k?T?(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):L?(0,a.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-red-500",children:["加载失败",(0,a.jsx)("button",{type:"button",onClick:()=>D(e=>e+1),className:"text-blue-500 hover:underline",children:"重试"})]}):S?(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsxs)("div",{className:"mb-1 flex items-center gap-3",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-gray-900",children:S.customer.canonicalName}),(0,a.jsx)(j,{sources:null!==(u=S.customer.sources)&&void 0!==u?u:{customer:1===S.customer.isCustomer,parsed:!1,resume:!1,hmhLocal:!1}}),(0,a.jsx)("button",{type:"button",disabled:U,onClick:()=>void ei(S.customer.id,1!==S.customer.isCustomer),className:"rounded px-2 py-1 text-xs ".concat(1===S.customer.isCustomer?"bg-amber-100 text-amber-700 hover:bg-amber-200":"bg-gray-100 text-gray-600 hover:bg-gray-200"," disabled:opacity-50"),children:1===S.customer.isCustomer?"✓ 我服务的客户(点击取消)":"标注为我服务的客户"})]}),_?(0,a.jsx)("div",{className:"mb-2 text-xs text-red-500",children:"标注失败,请重试"}):null,(null===(e=S.customer.aliases)||void 0===e?void 0:e.length)?(0,a.jsxs)("div",{className:"mb-2 text-xs text-gray-500",children:["别名:",S.customer.aliases.join("、")]}):null,(0,a.jsxs)("div",{className:"mb-4 text-xs text-gray-400",children:["更新于 ",(0,c.d3)(S.customer.updatedAt)]}),S.customer.notes?(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"mb-1 text-sm font-medium text-gray-800",children:"备注"}),(0,a.jsx)("p",{className:"whitespace-pre-wrap text-sm text-gray-700",children:S.customer.notes})]}):null,(0,a.jsx)(d,{customer:{id:S.customer.id,canonicalName:S.customer.canonicalName,aliases:S.customer.aliases}}),S.companyProfile?(0,a.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[(0,a.jsxs)("span",{className:"text-xs text-gray-500",children:["解析档案:(",S.companyProfile.source,") ",null!==(m=S.companyProfile.name)&&void 0!==m?m:""," \xb7 更新于"," ",(0,c.d3)(S.companyProfile.updatedAt)]}),(0,a.jsx)("button",{type:"button",onClick:()=>void en(),className:"rounded border border-gray-300 bg-white px-2 py-0.5 text-xs text-gray-700 hover:bg-gray-100",children:"重新适配"}),(0,a.jsx)("button",{type:"button",onClick:()=>void ec(),className:"rounded border border-gray-300 bg-white px-2 py-0.5 text-xs text-gray-700 hover:bg-gray-100",children:H?"已复制 ✓ 请发给 agent":"解析有误让agent修复"}),J?(0,a.jsx)("span",{className:"text-xs text-gray-600",children:J}):null]}):null,(0,a.jsx)("div",{className:"mb-2 flex flex-wrap gap-1 border-b border-gray-200",children:[{key:"profile",label:"公司信息"},{key:"jobCases",label:"关联交付职位(".concat(S.jobCases.length,")")},{key:"jobPostings",label:"招聘网站解析职位(".concat(S.jobPostings.length,")")},{key:"talents",label:"相关简历(".concat(S.talents.length,")")},{key:"parseLogs",label:"录制解析(".concat(S.parseLogs.length,")")}].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>V(e.key),className:"rounded-t px-3 py-1.5 text-sm ".concat(q===e.key?"border-b-2 border-blue-500 font-medium text-blue-600":"text-gray-500 hover:text-gray-700"),children:e.label},e.key))}),"profile"===q?(0,a.jsx)(b,{customer:S.customer,onSaved:()=>void er()}):null,"jobCases"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.jobCases.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无交付职位"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.jobCases.map(e=>{var t;return(0,a.jsx)("li",{children:(0,a.jsx)("a",{href:"/jobs?id=".concat(e.id),className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm hover:border-blue-300",children:(0,a.jsx)(h.dy,{title:function(e){var t,s;let a;let l=(null!==(t=e.folderPath)&&void 0!==t?t:"").split("/").filter(Boolean).filter(e=>!["job","jd","raw"].includes(e));return(a=e.title)&&!["job","jd","raw"].includes(a)?e.title:null!==(s=l.at(-1))&&void 0!==s?s:"案件 #".concat(e.id)}(e),status:e.status,hmhLocal:(null!==(t=e.folderPath)&&void 0!==t?t:"").includes("/local/clients/"),time:e.updatedAt})})},e.id)})})}):null,"jobPostings"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.jobPostings.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无解析职位"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.jobPostings.map(e=>{var t;return(0,a.jsx)("li",{className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm",children:(0,a.jsx)(h.rY,{title:null!==(t=e.title)&&void 0!==t?t:"(无标题)",source:e.source,company:e.company,sourceUrl:e.sourceUrl,updatedAt:e.updatedAt})},e.id)})})}):null,"talents"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.talents.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无相关简历"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.talents.map(e=>{var t;return(0,a.jsx)("li",{children:(0,a.jsx)("a",{href:"/talents?id=".concat(e.id),className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm hover:border-blue-300",children:(0,a.jsx)(h.oj,{name:null!==(t=e.name)&&void 0!==t?t:"(简历 #".concat(e.id,")"),headline:e.headline,updatedAt:e.updatedAt})})},e.id)})})}):null,"parseLogs"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.parseLogs.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无解析记录(该公司尚未从网页解析入库)"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.parseLogs.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm",children:[(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat("ok"===e.status?"bg-emerald-100 text-emerald-700":"bg-gray-100 text-gray-500"),children:e.status}),e.hasSnapshot?(0,a.jsx)("span",{className:"rounded bg-green-50 px-1.5 py-0.5 text-xs text-green-700",children:"有快照"}):null,e.adapterVersion?(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:["adapter ",e.adapterVersion]}):null,(0,a.jsxs)("span",{className:"truncate text-xs text-gray-500",title:e.sourceUrl,children:[e.domain," \xb7 session ",e.sessionId]}),(0,a.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"ml-auto shrink-0 text-xs text-blue-500 hover:underline",children:"来源"}),(0,a.jsx)("span",{className:"shrink-0 text-xs text-gray-400",children:(0,c.d3)(e.createdAt)})]},e.id))})}):null]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-red-500",children:"未找到该公司"}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"请在左侧选择一家公司查看详情(客户、职位与备注)"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.m,{filterBar:(0,a.jsxs)("div",{className:"space-y-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)("input",{type:"text",value:w,onChange:e=>el({q:e.target.value}),placeholder:"搜索公司名/别名…",className:"w-full rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,a.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-gray-600 hover:text-gray-800",children:[(0,a.jsx)("input",{type:"checkbox",checked:C,onChange:e=>el({oc:e.target.checked}),className:"accent-amber-600"}),"只看我服务的客户",(0,a.jsx)("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-amber-700",children:G})]}),(0,a.jsx)("span",{className:"text-gray-300",children:"|"}),(0,a.jsx)("span",{className:"text-gray-400",children:"来源:"}),v.map(e=>{let t=F.includes(e.key);return(0,a.jsxs)("button",{type:"button",title:t?"点击取消该来源筛选":"点击按该来源过滤(可多选,同时命中)",onClick:()=>el({src:t?F.filter(t=>t!==e.key):[...F,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:[e.label," ",X[e.key]]},e.key)}),F.length?(0,a.jsx)("button",{type:"button",onClick:()=>el({src:[]}),className:"text-xs text-gray-400 hover:text-gray-600",children:"清除来源筛选"}):null,(0,a.jsxs)("span",{className:"ml-auto text-gray-400",children:["共 ",es," 家"]})]}),$.bar(eo)]}),listPanel:ee.error?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:"加载失败"}),(0,a.jsx)("button",{type:"button",onClick:()=>ee.refresh(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:eo,selectedId:k,onSelect:e=>el({id:e}),loading:ea,emptyText:C?"暂无符合筛选条件的客户(取消勾选或清除来源筛选可浏览全部)":"暂无公司数据",onLoadMore:ee.loadMore,loadingMore:ee.loadingMore,exhausted:ee.exhausted}),detailPanel:ed}),$.modal()]})}function k(){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)("div",{className:"p-6 text-gray-500",children:"加载中…"}),children:(0,a.jsx)(N,{})})}var w=s(49616);function C(){var e,t;let[s,r]=(0,l.useState)(""),[c,d]=(0,l.useState)(""),[x,u]=(0,l.useState)(""),[m,p]=(0,l.useState)([]),[b,h]=(0,l.useState)(0),[g,f]=(0,l.useState)(!1),[j,v]=(0,l.useState)(null),[N,k]=(0,l.useState)(null),[C,S]=(0,l.useState)(null),{sync:P}=(0,y.nu)(),T=null!==(e=null==P?void 0:P.activeTenantId)&&void 0!==e?e:null,A=(0,l.useCallback)(async()=>{f(!0);let e=new URLSearchParams;c&&e.set("q",c),x&&e.set("touched",x),e.set("limit","200");try{let t=await (0,n.aA)("/market/companies?".concat(e.toString()));v(null),p(t.items),h(t.total)}catch(e){v("加载失败")}finally{f(!1)}},[c,x,T]);(0,l.useEffect)(()=>{let e=setTimeout(()=>d(s.trim()),300);return()=>clearTimeout(e)},[s]),(0,l.useEffect)(()=>{A()},[A]),(0,l.useEffect)(()=>{S(null),null!=N&&(0,n.aA)("/market/companies/".concat(N)).then(S).catch(()=>{})},[N,T]);let L=(0,l.useMemo)(()=>m.map(e=>({id:String(e.id),content:(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"truncate font-medium text-gray-900",children:e.name}),e.touched?(0,a.jsx)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-[10px] text-emerald-700",children:"已操作"}):null]}),(0,a.jsxs)("div",{className:"mt-0.5 flex items-center gap-0.5",children:[e.platforms.length?e.platforms.map(e=>(0,a.jsx)(w.v,{platform:e},e)):(0,a.jsx)("span",{className:"text-[10px] text-gray-300",children:"无职位发布数据"}),(0,a.jsxs)("span",{className:"ml-1 text-[10px] text-gray-400",children:["在招 ",e.postingsCount," \xb7 ",e.source]})]})]})})),[m]);return(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-amber-200 bg-[color:var(--brand-soft)] px-3 py-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-[color:var(--brand-strong)]",children:"\uD83E\uDDED 市场公司(BD 视角:目标/对手公司在各平台的发布与操作痕迹)"}),(0,a.jsx)("span",{className:"ml-auto text-[10px] text-gray-400",children:"下方统一列表 = 客户/解析来源维度"})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1",children:(0,a.jsx)(i.m,{filterBar:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)("input",{type:"text",value:s,onChange:e=>r(e.target.value),placeholder:"搜索公司名…",className:"w-56 rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),["","1","0"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>u(e),className:"rounded px-2 py-1 text-xs ".concat(x===e?"bg-[color:var(--brand-soft)] font-medium text-[color:var(--brand-strong)]":"text-gray-500 hover:bg-gray-100"),children:""===e?"全部":"1"===e?"已操作过":"未操作"},e)),(0,a.jsxs)("span",{className:"ml-auto text-xs text-gray-400",children:["共 ",b," 家"]})]}),listPanel:j?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:j}),(0,a.jsx)("button",{type:"button",onClick:()=>void A(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:L,selectedId:null!=N?String(N):void 0,onSelect:e=>k(Number(e)),loading:g,emptyText:"暂无市场公司数据"}),detailPanel:N?C?(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:null!==(t=C.profile.name)&&void 0!==t?t:"(未命名)"}),(0,a.jsx)("a",{href:C.profile.sourceUrl,target:"_blank",rel:"noreferrer",className:"mb-4 block truncate text-xs text-blue-600 hover:underline",children:C.profile.sourceUrl}),(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsxs)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:["在招职位(",C.postings.length,")"]}),0===C.postings.length?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"名下暂无职位发布(解析库 company 字段归一后自动出现)"}):(0,a.jsx)("div",{className:"space-y-1",children:C.postings.map(e=>{var t;return(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-sm",children:[(0,a.jsx)(w.v,{platform:e.source}),(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate",children:null!==(t=e.title)&&void 0!==t?t:"(无标题)"}),(0,a.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"text-xs text-blue-600 hover:underline",children:"打开"})]},e.id)})})]}),(0,a.jsxs)("section",{children:[(0,a.jsxs)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:["对手公司(同类型在招,",C.peers.length,")"]}),0===C.peers.length?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"暂无(需要职位标题数据支撑;解析质量修复后自动点亮)"}):(0,a.jsx)("div",{className:"space-y-1",children:C.peers.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>k(e.id),className:"flex w-full items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-left text-sm hover:bg-amber-50",children:[(0,a.jsx)("span",{className:"flex-1 truncate",children:e.name}),(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:["在招 ",e.postingsCount]})]},e.id))})]})]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"选择左侧公司查看发布与对手"})})})]})}var S=s(88801);function P(){return"bd"===(0,S.mJ)()?(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsx)("div",{className:"min-h-0 flex-[2] border-b border-gray-200",children:(0,a.jsx)(C,{})}),(0,a.jsx)("div",{className:"min-h-0 flex-[3] overflow-auto",children:(0,a.jsx)(k,{})})]}):(0,a.jsx)(k,{})}}},function(e){e.O(0,[954,686,400,935,744],function(){return e(e.s=41937)}),_N_E=e.O()}]);
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0f346d55-1475-4359-b54c-5173944dcde6",e._sentryDebugIdIdentifier="sentry-dbid-0f346d55-1475-4359-b54c-5173944dcde6")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[964],{41937:function(e,t,s){Promise.resolve().then(s.bind(s,30854))},27473:function(e,t,s){"use strict";var a=s(38321);s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}}),s.o(a,"useServerInsertedHTML")&&s.d(t,{useServerInsertedHTML:function(){return a.useServerInsertedHTML}})},30854:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return P}});var a=s(72835),l=s(60635),r=s(27473),n=s(74431),c=s(8448),i=s(94518),o=s(63718);function d(e){var t;let{customer:s}=e,i=(0,r.useRouter)(),[o,d]=(0,l.useState)(null),[x,u]=(0,l.useState)(!1),[m,p]=(0,l.useState)(new Set),[b,h]=(0,l.useState)(s.id),[g,y]=(0,l.useState)(!1),[f,j]=(0,l.useState)("");(0,l.useEffect)(()=>{let e=!0;return d(null),j(""),(async()=>{try{let t=await (0,n.aA)("/customers/".concat(s.id,"/duplicates"));e&&d(t.candidates)}catch(t){e&&d([])}})(),()=>{e=!1}},[s.id]);let v=async()=>{let e=(null!=o?o:[]).filter(e=>!m.has(e.id)).map(e=>e.id);if(b!==s.id&&e.push(s.id),0===e.length){j("未勾选任何候选参与合并");return}y(!0);let t=!0;for(let s of e)try{await (0,n.aA)("/customers/merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keepId:b,removeId:s})})}catch(e){t=!1;break}if(y(!1),!t){j("合并失败,请重试");return}i.replace("/companies?id=".concat(b)),i.refresh(),window.location.reload()};if(null===o||0===o.length)return null;let N=b===s.id?{canonicalName:s.canonicalName,aliases:s.aliases}:o.find(e=>e.id===b),k=o.filter(e=>!m.has(e.id)),w=N?((e,t)=>{var s,a;let l=new Set(null!==(s=e.aliases)&&void 0!==s?s:[]);for(let s of t)if(b!==s.id)for(let t of[s.canonicalName,...null!==(a=s.aliases)&&void 0!==a?a:[]])t&&t!==e.canonicalName&&l.add(t);return Array.from(l)})(N,k):[];return(0,a.jsxs)("div",{className:"mb-4 rounded-lg border border-amber-300 bg-amber-50 p-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsxs)("span",{className:"text-sm font-medium text-amber-800",children:["发现 ",o.length," 条可能重复的公司记录"]}),(0,a.jsx)("button",{onClick:()=>u(!0),disabled:g,className:"rounded bg-amber-600 px-3 py-1 text-sm text-white hover:bg-amber-700 disabled:opacity-50",children:"查看并处理"}),f?(0,a.jsx)("span",{className:"text-sm text-red-600",children:f}):null]}),x?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-2 sm:p-4",onClick:()=>u(!1),children:(0,a.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-3xl flex-col overflow-hidden rounded-lg bg-white shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 border-b border-gray-200 px-4 py-3",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"重复公司合并工作区"}),(0,a.jsxs)("span",{className:"text-sm text-gray-500",children:["当前 #",s.id," \xb7 ",s.canonicalName]}),(0,a.jsx)("button",{onClick:()=>u(!1),className:"ml-auto text-sm text-gray-500 hover:text-gray-700",children:"关闭"})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[(0,a.jsx)("div",{className:"mb-2 text-xs font-medium text-gray-500",children:"候选(勾选=重复,参与合并;合并后其交付职位与备注重指保留行)"}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 rounded-lg border p-2 ".concat(b===s.id?"border-blue-400 bg-blue-50":"border-gray-200"),children:[(0,a.jsx)("input",{type:"radio",name:"company-keep",checked:b===s.id,onChange:()=>h(s.id),title:"保留这一行"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-gray-900",children:s.canonicalName}),(0,a.jsx)("span",{className:"ml-2 rounded bg-gray-100 px-1.5 py-0.5 text-xs text-gray-600",children:"当前行"}),(null===(t=s.aliases)||void 0===t?void 0:t.length)?(0,a.jsxs)("span",{className:"block truncate text-xs text-gray-500",children:["别名:",s.aliases.join("、")]}):null]})]}),o.map(e=>{var t;return(0,a.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border p-2 ".concat(b===e.id?"border-blue-400 bg-blue-50":"border-gray-200"),children:[(0,a.jsx)("input",{type:"checkbox",checked:!m.has(e.id),disabled:g,onChange:t=>{p(s=>{let a=new Set(s);return t.target.checked?a.delete(e.id):a.add(e.id),a})},title:"勾选=重复公司,参与合并"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("span",{className:"text-sm font-medium text-gray-900",children:["#",e.id," ",e.canonicalName]}),(0,a.jsx)("span",{className:"ml-2 rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700",children:e.reason}),1===e.isCustomer?(0,a.jsx)("span",{className:"ml-1 rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700",children:"客户"}):null,(0,a.jsxs)("span",{className:"block truncate text-xs text-gray-500",children:[e.jobCaseCount," 个职位案件 \xb7 更新于 ",(0,c.d3)(e.updatedAt),(null===(t=e.aliases)||void 0===t?void 0:t.length)?" \xb7 别名:".concat(e.aliases.join("、")):""]})]}),(0,a.jsx)("input",{type:"radio",name:"company-keep",checked:b===e.id,onChange:()=>h(e.id),title:"保留这一行"})]},e.id)})]}),w.length?(0,a.jsxs)("div",{className:"mt-3 rounded-lg border border-gray-200 bg-gray-50 p-3",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-gray-500",children:"合并后别名(预览)"}),(0,a.jsx)("div",{className:"mt-1 text-sm text-gray-800",children:w.join("、")})]}):null]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-gray-200 px-4 py-3",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>void v(),disabled:g,className:"rounded bg-blue-600 px-4 py-1.5 text-sm text-white hover:bg-blue-700 disabled:opacity-50",children:["确认合并(保留 #",b,")"]}),(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"保留行吸收其余行的别名/档案/联系人;被合并行走墓碑外传删除(云端同步删)"}),f?(0,a.jsx)("span",{className:"text-sm text-red-600",children:f}):null]})]})}):null]})}function x(e){var t;let s=(null===(t=e.aliases)||void 0===t?void 0:t.length)?"(别名:".concat(e.aliases.join("、"),")"):"";return"调研公司「".concat(e.canonicalName,"」").concat(s,"(hunter-mate 公司注册表 ID=").concat(e.id,")。")}function u(e,t){return["调研结果写回(每步一个键,键名用下方约定,值为中文正文、关键名词保留英文):","curl -X PATCH ".concat(e.origin,"/customers/").concat(e.id," \\")," -H 'Content-Type: application/json' \\",' -d \'{"profile":{"'.concat(t,'":{"<步骤键>":"<内容>"}}}\''),"只写你实际完成且确有依据的步骤,不确定的标注「待核实」;不要编造。写回后告知用户更新了哪些步骤。"].join("\n")}let m={bd:{title:"BD 档案(竞对分析)",button:"让 agent 调研(BD)",builder:function(e){return[x(e),"按「公司竞争对手分析与BD分步操作SOP V0.1」(bd-competitor-sop)执行调研,覆盖以下步骤:",...["第一步\xb7公司主体:集团/母公司/子公司/品牌/海外法人关系","第二步\xb7业务与竞争关系:主要产品与服务、目标客户、竞争格局","第三步\xb7近12个月海外发展与投资:新市场、建厂、并购、融资动态","第四步\xb7海外招聘信号:在招岗位、地区、规模与趋势","第五步\xb7岗位映射:海外动作对应的组织能力与关键岗位","第六步\xb7内部人才与案例资产:我司已有人才/案例与之的关联","第七步\xb7BD优先级与打法建议:是否值得跟、从哪切入"].map(e=>"- ".concat(e)),"",u(e,"bd")].join("\n")}},op:{title:"OP 档案(职位操作)",button:"让 agent 调研(OP)",builder:function(e){return[x(e),"按「寻访操作SOP V3.1」(rs-sourcing-sop)的公司调研口径执行,产出服务职位推荐与人才寻访:",...["核心业务:产品/服务是什么、卖给谁、应用场景","规模与业绩:营收/人员规模,当地业务规模","海外布局:开展业务的国家、海外团队规模与管理方式","当前招聘需求与背景:在招什么岗、为什么招","未来战略与规划:用于候选人沟通的 marketing 话术素材","对标公司名单:喜欢挖猎的对标公司,不少于 20 家,按梯队分组(给名单即可,梯队用一/二/三)","公司介绍 Hook:一段话介绍该公司(用于 Connect 模板,可编辑)","当地可挖猎公司名单:该岗位 base 地存在该岗位的公司名单,不低于 20 家"].map(e=>"- ".concat(e)),"",u(e,"op")].join("\n")}}};function p(e){return null==e||""===e?"":"string"==typeof e?e:JSON.stringify(e,null,2)}function b(e){let{customer:t,onSaved:s}=e,[r,c]=(0,l.useState)(!1),[i,o]=(0,l.useState)(!1),[d,x]=(0,l.useState)(""),[u,b]=(0,l.useState)(null),[h,g]=(0,l.useState)(""),[y,f]=(0,l.useState)(""),[j,v]=(0,l.useState)(""),[N,k]=(0,l.useState)({bd:[],op:[]}),w=async e=>{x("");let s={id:t.id,canonicalName:t.canonicalName,aliases:t.aliases,origin:window.location.origin};try{await navigator.clipboard.writeText(m[e].builder(s)),b(e),setTimeout(()=>b(null),4e3)}catch(e){var a;x("复制失败:".concat(null!==(a=null==e?void 0:e.message)&&void 0!==a?a:e))}},C=(e,t)=>k(s=>({...s,[e]:t})),S=async()=>{o(!0),x("");let e=e=>{let t={};for(let s of e){let e=s.key.trim();e&&(t[e]=function(e){let t=e.trim();if(!t)return"";try{return JSON.parse(t)}catch(t){return e}}(s.text))}return t};try{await (0,n.aA)("/customers/".concat(t.id),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()||void 0,aliases:y.split(/[、,,]/).map(e=>e.trim()).filter(Boolean),notes:j,profile:{bd:e(N.bd),op:e(N.op)}})})}catch(e){o(!1),x("保存失败,请重试");return}o(!1),c(!1),s()};return(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"公司信息"}),r?null:(0,a.jsx)("button",{type:"button",onClick:()=>{var e,s,a,l;g(t.canonicalName),f((null!==(a=t.aliases)&&void 0!==a?a:[]).join("、")),v(null!==(l=t.notes)&&void 0!==l?l:"");let r=e=>Object.entries(null!=e?e:{}).map(e=>{let[t,s]=e;return{key:t,text:p(s)}});k({bd:r(null===(e=t.profile)||void 0===e?void 0:e.bd),op:r(null===(s=t.profile)||void 0===s?void 0:s.op)}),c(!0),x("")},className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600 hover:bg-gray-50",children:"编辑"}),d?(0,a.jsx)("span",{className:"text-xs text-red-600",children:d}):null]}),r?(0,a.jsxs)("div",{className:"mb-3 space-y-2 rounded-lg border border-blue-200 bg-blue-50/50 p-3",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"公司名称(改名后旧名自动入别名)"}),(0,a.jsx)("input",{value:h,onChange:e=>g(e.target.value),className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"别名(顿号/逗号分隔)"}),(0,a.jsx)("input",{value:y,onChange:e=>f(e.target.value),className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"备注"}),(0,a.jsx)("textarea",{value:j,onChange:e=>v(e.target.value),rows:2,className:"mt-0.5 w-full rounded border border-gray-300 px-2 py-1 text-sm"})]})]}):null,(0,a.jsx)("div",{className:"space-y-3",children:["bd","op"].map(e=>{var s,l;let n=m[e],c=r?N[e]:Object.entries(null!==(l=null===(s=t.profile)||void 0===s?void 0:s[e])&&void 0!==l?l:{}).map(e=>{let[t,s]=e;return{key:t,text:p(s)}});return(0,a.jsxs)("section",{className:"rounded-lg border border-gray-200",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-100 px-3 py-2",children:[(0,a.jsx)("h4",{className:"text-sm font-semibold text-gray-900",children:n.title}),r?null:(0,a.jsx)("button",{type:"button",onClick:()=>void w(e),className:"rounded bg-blue-50 px-2 py-0.5 text-xs text-blue-700 hover:bg-blue-100",children:u===e?"已复制 ✓ 请发给 agent":n.button})]}),0===c.length?(0,a.jsx)("p",{className:"px-3 py-2 text-xs text-gray-400",children:r?"暂无条目,可在下方添加":"尚未调研,点上方「".concat(n.button,"」让 agent 调研")}):(0,a.jsxs)("div",{className:r?"space-y-2 p-3":"divide-y divide-gray-50",children:[c.map((t,s)=>r?(0,a.jsxs)("div",{className:"grid grid-cols-[1fr,2fr,auto] items-start gap-2",children:[(0,a.jsx)("input",{value:t.key,placeholder:"条目名(如:核心业务)",onChange:t=>{let a=[...c];a[s]={...a[s],key:t.target.value},C(e,a)},className:"rounded border border-gray-300 px-2 py-1 text-xs"}),(0,a.jsx)("textarea",{value:t.text,placeholder:"内容(纯文本,或合法 JSON)",rows:3,onChange:t=>{let a=[...c];a[s]={...a[s],text:t.target.value},C(e,a)},className:"w-full rounded border border-gray-300 px-2 py-1 text-xs"}),(0,a.jsx)("button",{type:"button",onClick:()=>C(e,c.filter((e,t)=>t!==s)),className:"rounded border border-red-200 px-2 py-0.5 text-xs text-red-600 hover:bg-red-50",children:"删"})]},s):(0,a.jsxs)("div",{className:"px-3 py-1.5",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-gray-500",children:t.key}),(0,a.jsx)("div",{className:"whitespace-pre-wrap text-sm text-gray-800",children:t.text||"—"})]},t.key)),r?(0,a.jsx)("button",{type:"button",onClick:()=>C(e,[...c,{key:"",text:""}]),className:"rounded border border-dashed border-gray-300 px-2 py-1 text-xs text-gray-500 hover:border-blue-400 hover:text-blue-600",children:"+ 添加条目"}):null]})]},e)})}),r?(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>void S(),disabled:i,className:"rounded bg-blue-600 px-3 py-1 text-sm text-white hover:bg-blue-700 disabled:opacity-50",children:i?"保存中…":"保存"}),(0,a.jsx)("button",{type:"button",onClick:()=>c(!1),disabled:i,className:"rounded border border-gray-300 px-3 py-1 text-sm text-gray-600 hover:bg-gray-50 disabled:opacity-50",children:"取消"})]}):null]})}var h=s(27828),g=s(26119),y=s(65777),f=s(93464);function j(e){let{sources:t}=e,s=[{on:t.customer,cls:"bg-amber-100 text-amber-700",label:"客户"},{on:t.parsed,cls:"bg-blue-100 text-blue-700",label:"解析"},{on:t.resume,cls:"bg-green-100 text-green-700",label:"简历"},{on:t.hmhLocal,cls:"bg-purple-100 text-purple-700",label:"本地"}];return(0,a.jsx)("span",{className:"inline-flex flex-wrap gap-1",children:s.filter(e=>e.on).map(e=>(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat(e.cls),children:e.label},e.label))})}let v=[{key:"customer",label:"客户",cls:"bg-amber-100 text-amber-700"},{key:"parsed",label:"解析",cls:"bg-blue-100 text-blue-700"},{key:"resume",label:"简历",cls:"bg-green-100 text-green-700"},{key:"hmhLocal",label:"本地",cls:"bg-purple-100 text-purple-700"}];function N(){var e,t,s,x,u,m;let p=(0,r.useRouter)(),N=(0,r.useSearchParams)(),k=N.get("id")||"",w=N.get("q")||"",C=(null!==(t=N.get("oc"))&&void 0!==t?t:"1")!=="0",[S,P]=(0,l.useState)(null),[T,A]=(0,l.useState)(!1),[L,O]=(0,l.useState)(!1),[I,D]=(0,l.useState)(0),[U,E]=(0,l.useState)(!1),[_,B]=(0,l.useState)(!1),[J,M]=(0,l.useState)(""),[H,R]=(0,l.useState)(!1),[q,V]=(0,l.useState)("profile"),z=N.get("src")||"",F=(0,l.useMemo)(()=>z.split(",").map(e=>e.trim()).filter(Boolean),[z]),[X,Y]=(0,l.useState)({customer:0,parsed:0,resume:0,hmhLocal:0}),[G,K]=(0,l.useState)(0),{session:Q,sync:W}=(0,y.nu)(),Z=null!==(s=null==W?void 0:W.activeTenantId)&&void 0!==s?s:null,$=(0,g.B)({deleteUrl:"/customers",label:"公司",onDeleted:()=>ee.refresh(),currentUserId:null!==(x=null==Q?void 0:Q.hmUserId)&&void 0!==x?x:null}),ee=(0,f.k)({fetchPage:(0,l.useCallback)(async(e,t)=>{var s,a;let l=new URLSearchParams;w&&l.set("query",w),C&&l.set("onlyCustomers","1"),F.length&&l.set("sources",F.join(",")),l.set("limit",String(t)),l.set("offset",String(e));let r=await (0,n.aA)("/customers/unified?".concat(l.toString()));return Y(null!==(s=r.sourceCounts)&&void 0!==s?s:{customer:0,parsed:0,resume:0,hmhLocal:0}),K(null!==(a=r.customerCount)&&void 0!==a?a:0),{items:r.items,total:r.total}},[w,C,F,Z]),pageSize:50,deps:[w,C,F,Z]}),et=ee.items,es=ee.total,ea=ee.loading;(0,l.useEffect)(()=>{$.prune(et.map(e=>String(e.id)))},[et,$]);let el=(0,l.useCallback)(e=>{var t,s,a;let l=new URLSearchParams(N.toString());void 0!==e.id&&(e.id?l.set("id",e.id):l.delete("id"));let r=null!==(t=e.q)&&void 0!==t?t:w;r?l.set("q",r):l.delete("q"),(null!==(s=e.oc)&&void 0!==s?s:C)?l.delete("oc"):l.set("oc","0");let n=null!==(a=e.src)&&void 0!==a?a:F;n.length?l.set("src",n.join(",")):l.delete("src"),p.replace("/companies?".concat(l.toString()))},[p,N,w,C,F]);(0,l.useEffect)(()=>{V("profile")},[k]);let er=(0,l.useCallback)(async()=>{if(k)try{let e=await (0,n.aA)("/customers/".concat(k,"/related"));P(e),O(!1)}catch(e){P(null),O(!0)}},[k]);(0,l.useEffect)(()=>{if(!k){P(null),O(!1);return}A(!0),er().then(()=>A(!1))},[k,er,I]);let en=(0,l.useCallback)(async()=>{let e=null==S?void 0:S.companyProfile;if(null==e?void 0:e.sourceUrl){M("重新适配中…(浏览器编排重跑,稍候)");try{await (0,n.aA)("/extract/adapter",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e.sourceUrl})}),M("已重新适配并入库 ✓"),await er()}catch(e){M("重新适配失败(需扩展在线且页面可访问),请重试")}setTimeout(()=>M(""),6e3)}},[null==S?void 0:S.companyProfile,er]),ec=(0,l.useCallback)(async()=>{let e=null==S?void 0:S.companyProfile;if(e){M("");try{let t=await fetch("".concat((0,n.Ox)(),"/entities/company/").concat(e.id,"/repair-prompt"));if(!t.ok)throw Error("HTTP ".concat(t.status));let s=await t.json();await navigator.clipboard.writeText(s.prompt),R(!0),setTimeout(()=>R(!1),4e3)}catch(e){var t;M("复制失败:".concat(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:e))}}},[null==S?void 0:S.companyProfile]),ei=(0,l.useCallback)(async(e,t)=>{E(!0),B(!1);try{await (0,n.aA)("/customers/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({isCustomer:t?1:0})})}catch(e){E(!1),B(!0);return}ee.refresh(),await er(),E(!1)},[ee,er]),eo=(0,l.useMemo)(()=>et.map(e=>({id:String(e.id),content:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[$.checkbox(String(e.id)),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-gray-900",children:e.canonicalName}),e.activeJobCount>0?(0,a.jsxs)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-xs text-emerald-700",children:["交付中 ",e.activeJobCount]}):null]}),(0,a.jsx)("div",{className:"mt-0.5",children:(0,a.jsx)(j,{sources:e.sources})}),(0,a.jsxs)("div",{className:"mt-0.5 text-xs text-gray-400",children:[e.jobCaseCount>0?"".concat(e.jobCaseCount," 个职位案件 \xb7 "):"","更新于 ",(0,c.d3)(e.updatedAt)]})]})]})})),[et,$]),ed=k?T?(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):L?(0,a.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-red-500",children:["加载失败",(0,a.jsx)("button",{type:"button",onClick:()=>D(e=>e+1),className:"text-blue-500 hover:underline",children:"重试"})]}):S?(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsxs)("div",{className:"mb-1 flex items-center gap-3",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-gray-900",children:S.customer.canonicalName}),(0,a.jsx)(j,{sources:null!==(u=S.customer.sources)&&void 0!==u?u:{customer:1===S.customer.isCustomer,parsed:!1,resume:!1,hmhLocal:!1}}),(0,a.jsx)("button",{type:"button",disabled:U,onClick:()=>void ei(S.customer.id,1!==S.customer.isCustomer),className:"rounded px-2 py-1 text-xs ".concat(1===S.customer.isCustomer?"bg-amber-100 text-amber-700 hover:bg-amber-200":"bg-gray-100 text-gray-600 hover:bg-gray-200"," disabled:opacity-50"),children:1===S.customer.isCustomer?"✓ 我服务的客户(点击取消)":"标注为我服务的客户"})]}),_?(0,a.jsx)("div",{className:"mb-2 text-xs text-red-500",children:"标注失败,请重试"}):null,(null===(e=S.customer.aliases)||void 0===e?void 0:e.length)?(0,a.jsxs)("div",{className:"mb-2 text-xs text-gray-500",children:["别名:",S.customer.aliases.join("、")]}):null,(0,a.jsxs)("div",{className:"mb-4 text-xs text-gray-400",children:["更新于 ",(0,c.d3)(S.customer.updatedAt)]}),S.customer.notes?(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"mb-1 text-sm font-medium text-gray-800",children:"备注"}),(0,a.jsx)("p",{className:"whitespace-pre-wrap text-sm text-gray-700",children:S.customer.notes})]}):null,(0,a.jsx)(d,{customer:{id:S.customer.id,canonicalName:S.customer.canonicalName,aliases:S.customer.aliases}}),S.companyProfile?(0,a.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[(0,a.jsxs)("span",{className:"text-xs text-gray-500",children:["解析档案:(",S.companyProfile.source,") ",null!==(m=S.companyProfile.name)&&void 0!==m?m:""," \xb7 更新于"," ",(0,c.d3)(S.companyProfile.updatedAt)]}),(0,a.jsx)("button",{type:"button",onClick:()=>void en(),className:"rounded border border-gray-300 bg-white px-2 py-0.5 text-xs text-gray-700 hover:bg-gray-100",children:"重新适配"}),(0,a.jsx)("button",{type:"button",onClick:()=>void ec(),className:"rounded border border-gray-300 bg-white px-2 py-0.5 text-xs text-gray-700 hover:bg-gray-100",children:H?"已复制 ✓ 请发给 agent":"解析有误让agent修复"}),J?(0,a.jsx)("span",{className:"text-xs text-gray-600",children:J}):null]}):null,(0,a.jsx)("div",{className:"mb-2 flex flex-wrap gap-1 border-b border-gray-200",children:[{key:"profile",label:"公司信息"},{key:"jobCases",label:"关联交付职位(".concat(S.jobCases.length,")")},{key:"jobPostings",label:"招聘网站解析职位(".concat(S.jobPostings.length,")")},{key:"talents",label:"相关简历(".concat(S.talents.length,")")},{key:"parseLogs",label:"录制解析(".concat(S.parseLogs.length,")")}].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>V(e.key),className:"rounded-t px-3 py-1.5 text-sm ".concat(q===e.key?"border-b-2 border-blue-500 font-medium text-blue-600":"text-gray-500 hover:text-gray-700"),children:e.label},e.key))}),"profile"===q?(0,a.jsx)(b,{customer:S.customer,onSaved:()=>void er()}):null,"jobCases"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.jobCases.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无交付职位"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.jobCases.map(e=>{var t;return(0,a.jsx)("li",{children:(0,a.jsx)("a",{href:"/jobs?id=".concat(e.id),className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm hover:border-blue-300",children:(0,a.jsx)(h.dy,{title:function(e){var t,s;let a;let l=(null!==(t=e.folderPath)&&void 0!==t?t:"").split("/").filter(Boolean).filter(e=>!["job","jd","raw"].includes(e));return(a=e.title)&&!["job","jd","raw"].includes(a)?e.title:null!==(s=l.at(-1))&&void 0!==s?s:"案件 #".concat(e.id)}(e),status:e.status,hmhLocal:(null!==(t=e.folderPath)&&void 0!==t?t:"").includes("/local/clients/"),time:e.updatedAt})})},e.id)})})}):null,"jobPostings"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.jobPostings.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无解析职位"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.jobPostings.map(e=>{var t;return(0,a.jsx)("li",{className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm",children:(0,a.jsx)(h.rY,{title:null!==(t=e.title)&&void 0!==t?t:"(无标题)",source:e.source,company:e.company,sourceUrl:e.sourceUrl,updatedAt:e.updatedAt})},e.id)})})}):null,"talents"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.talents.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无相关简历"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.talents.map(e=>{var t;return(0,a.jsx)("li",{children:(0,a.jsx)("a",{href:"/talents?id=".concat(e.id),className:"flex items-start gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm hover:border-blue-300",children:(0,a.jsx)(h.oj,{name:null!==(t=e.name)&&void 0!==t?t:"(简历 #".concat(e.id,")"),headline:e.headline,updatedAt:e.updatedAt})})},e.id)})})}):null,"parseLogs"===q?(0,a.jsx)("section",{className:"mb-4",children:0===S.parseLogs.length?(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无解析记录(该公司尚未从网页解析入库)"}):(0,a.jsx)("ul",{className:"space-y-1",children:S.parseLogs.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-2 rounded border border-gray-200 bg-white px-3 py-2 text-sm",children:[(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat("ok"===e.status?"bg-emerald-100 text-emerald-700":"bg-gray-100 text-gray-500"),children:e.status}),e.hasSnapshot?(0,a.jsx)("span",{className:"rounded bg-green-50 px-1.5 py-0.5 text-xs text-green-700",children:"有快照"}):null,e.adapterVersion?(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:["adapter ",e.adapterVersion]}):null,(0,a.jsxs)("span",{className:"truncate text-xs text-gray-500",title:e.sourceUrl,children:[e.domain," \xb7 session ",e.sessionId]}),(0,a.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"ml-auto shrink-0 text-xs text-blue-500 hover:underline",children:"来源"}),(0,a.jsx)("span",{className:"shrink-0 text-xs text-gray-400",children:(0,c.d3)(e.createdAt)})]},e.id))})}):null]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-red-500",children:"未找到该公司"}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"请在左侧选择一家公司查看详情(客户、职位与备注)"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.m,{filterBar:(0,a.jsxs)("div",{className:"space-y-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)("input",{type:"text",value:w,onChange:e=>el({q:e.target.value}),placeholder:"搜索公司名/别名…",className:"w-full rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,a.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-gray-600 hover:text-gray-800",children:[(0,a.jsx)("input",{type:"checkbox",checked:C,onChange:e=>el({oc:e.target.checked}),className:"accent-amber-600"}),"只看我服务的客户",(0,a.jsx)("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-amber-700",children:G})]}),(0,a.jsx)("span",{className:"text-gray-300",children:"|"}),(0,a.jsx)("span",{className:"text-gray-400",children:"来源:"}),v.map(e=>{let t=F.includes(e.key);return(0,a.jsxs)("button",{type:"button",title:t?"点击取消该来源筛选":"点击按该来源过滤(可多选,同时命中)",onClick:()=>el({src:t?F.filter(t=>t!==e.key):[...F,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:[e.label," ",X[e.key]]},e.key)}),F.length?(0,a.jsx)("button",{type:"button",onClick:()=>el({src:[]}),className:"text-xs text-gray-400 hover:text-gray-600",children:"清除来源筛选"}):null,(0,a.jsxs)("span",{className:"ml-auto text-gray-400",children:["共 ",es," 家"]})]}),$.bar(eo)]}),listPanel:ee.error?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:"加载失败"}),(0,a.jsx)("button",{type:"button",onClick:()=>ee.refresh(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:eo,selectedId:k,onSelect:e=>el({id:e}),loading:ea,emptyText:C?"暂无符合筛选条件的客户(取消勾选或清除来源筛选可浏览全部)":"暂无公司数据",onLoadMore:ee.loadMore,loadingMore:ee.loadingMore,exhausted:ee.exhausted}),detailPanel:ed}),$.modal()]})}function k(){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)("div",{className:"p-6 text-gray-500",children:"加载中…"}),children:(0,a.jsx)(N,{})})}var w=s(49616);function C(){var e,t;let[s,r]=(0,l.useState)(""),[c,d]=(0,l.useState)(""),[x,u]=(0,l.useState)(""),[m,p]=(0,l.useState)([]),[b,h]=(0,l.useState)(0),[g,f]=(0,l.useState)(!1),[j,v]=(0,l.useState)(null),[N,k]=(0,l.useState)(null),[C,S]=(0,l.useState)(null),{sync:P}=(0,y.nu)(),T=null!==(e=null==P?void 0:P.activeTenantId)&&void 0!==e?e:null,A=(0,l.useCallback)(async()=>{f(!0);let e=new URLSearchParams;c&&e.set("q",c),x&&e.set("touched",x),e.set("limit","200");try{let t=await (0,n.aA)("/market/companies?".concat(e.toString()));v(null),p(t.items),h(t.total)}catch(e){v("加载失败")}finally{f(!1)}},[c,x,T]);(0,l.useEffect)(()=>{let e=setTimeout(()=>d(s.trim()),300);return()=>clearTimeout(e)},[s]),(0,l.useEffect)(()=>{A()},[A]),(0,l.useEffect)(()=>{S(null),null!=N&&(0,n.aA)("/market/companies/".concat(N)).then(S).catch(()=>{})},[N,T]);let L=(0,l.useMemo)(()=>m.map(e=>({id:String(e.id),content:(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"truncate font-medium text-gray-900",children:e.name}),e.touched?(0,a.jsx)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-[10px] text-emerald-700",children:"已操作"}):null]}),(0,a.jsxs)("div",{className:"mt-0.5 flex items-center gap-0.5",children:[e.platforms.length?e.platforms.map(e=>(0,a.jsx)(w.v,{platform:e},e)):(0,a.jsx)("span",{className:"text-[10px] text-gray-300",children:"无职位发布数据"}),(0,a.jsxs)("span",{className:"ml-1 text-[10px] text-gray-400",children:["在招 ",e.postingsCount," \xb7 ",e.source]})]})]})})),[m]);return(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-amber-200 bg-[color:var(--brand-soft)] px-3 py-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-[color:var(--brand-strong)]",children:"\uD83E\uDDED 市场公司(BD 视角:目标/对手公司在各平台的发布与操作痕迹)"}),(0,a.jsx)("span",{className:"ml-auto text-[10px] text-gray-400",children:"下方统一列表 = 客户/解析来源维度"})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1",children:(0,a.jsx)(i.m,{filterBar:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)("input",{type:"text",value:s,onChange:e=>r(e.target.value),placeholder:"搜索公司名…",className:"w-56 rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),["","1","0"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>u(e),className:"rounded px-2 py-1 text-xs ".concat(x===e?"bg-[color:var(--brand-soft)] font-medium text-[color:var(--brand-strong)]":"text-gray-500 hover:bg-gray-100"),children:""===e?"全部":"1"===e?"已操作过":"未操作"},e)),(0,a.jsxs)("span",{className:"ml-auto text-xs text-gray-400",children:["共 ",b," 家"]})]}),listPanel:j?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:j}),(0,a.jsx)("button",{type:"button",onClick:()=>void A(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:L,selectedId:null!=N?String(N):void 0,onSelect:e=>k(Number(e)),loading:g,emptyText:"暂无市场公司数据"}),detailPanel:N?C?(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:null!==(t=C.profile.name)&&void 0!==t?t:"(未命名)"}),(0,a.jsx)("a",{href:C.profile.sourceUrl,target:"_blank",rel:"noreferrer",className:"mb-4 block truncate text-xs text-blue-600 hover:underline",children:C.profile.sourceUrl}),(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsxs)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:["在招职位(",C.postings.length,")"]}),0===C.postings.length?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"名下暂无职位发布(解析库 company 字段归一后自动出现)"}):(0,a.jsx)("div",{className:"space-y-1",children:C.postings.map(e=>{var t;return(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-sm",children:[(0,a.jsx)(w.v,{platform:e.source}),(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate",children:null!==(t=e.title)&&void 0!==t?t:"(无标题)"}),(0,a.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"text-xs text-blue-600 hover:underline",children:"打开"})]},e.id)})})]}),(0,a.jsxs)("section",{children:[(0,a.jsxs)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:["对手公司(同类型在招,",C.peers.length,")"]}),0===C.peers.length?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"暂无(需要职位标题数据支撑;解析质量修复后自动点亮)"}):(0,a.jsx)("div",{className:"space-y-1",children:C.peers.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>k(e.id),className:"flex w-full items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-left text-sm hover:bg-amber-50",children:[(0,a.jsx)("span",{className:"flex-1 truncate",children:e.name}),(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:["在招 ",e.postingsCount]})]},e.id))})]})]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"选择左侧公司查看发布与对手"})})})]})}var S=s(88801);function P(){return"bd"===(0,S.mJ)()?(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsx)("div",{className:"min-h-0 flex-[2] border-b border-gray-200",children:(0,a.jsx)(C,{})}),(0,a.jsx)("div",{className:"min-h-0 flex-[3] overflow-auto",children:(0,a.jsx)(k,{})})]}):(0,a.jsx)(k,{})}}},function(e){e.O(0,[253,686,400,935,744],function(){return e(e.s=41937)}),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3facb604-4e9c-4400-b2c0-24fd670ee44a",e._sentryDebugIdIdentifier="sentry-dbid-3facb604-4e9c-4400-b2c0-24fd670ee44a")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[109],{74843:function(e,t,s){Promise.resolve().then(s.bind(s,5311))},5311:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return q}});var a=s(72835),l=s(70852),n=s(60635),r=s(27473),i=s(74431),d=s(8448),c=s(94518),o=s(63718),x=s(86777),u=s(27828),m=s(26119),h=s(93464),p=s(65777),b=s(67002);let g=[{hours:24,label:"1 天"},{hours:72,label:"3 天"},{hours:168,label:"7 天"},{hours:720,label:"30 天"}];function y(e){var t;let s,{jobCaseId:l,onClose:r}=e,[d,c]=(0,n.useState)(null),[o,x]=(0,n.useState)("tenant"),[u,m]=(0,n.useState)(new Set),[h,p]=(0,n.useState)(168),[y,v]=(0,n.useState)(""),[j,f]=(0,n.useState)(!1),[N,w]=(0,n.useState)(null),[k,S]=(0,n.useState)(null),[C,I]=(0,n.useState)(!1);async function A(){f(!0),w(null);try{let e=await (0,i.aA)("/shares",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobCaseId:l,scope:"users"===o?{type:"users",hmUserIds:Array.from(u)}:{type:"tenant"},ttlHours:h,note:y.trim()||void 0})});if(!(null==e?void 0:e.token)){w("创建失败:未登录云端账号 / 云服务不可达 / 该职位未同步上云");return}S(e)}catch(e){w("创建失败:未登录云端账号 / 云服务不可达 / 该职位未同步上云")}finally{f(!1)}}(0,n.useEffect)(()=>{let e=()=>{(async()=>{try{let e=await (0,i.aA)("/team/members");c(Array.isArray(e.items)?e.items:[])}catch(e){c([])}})()};return e(),(0,b.Lc)(e)},[]);let O=k?(t=k.urlPath,"".concat(window.location.origin).concat(t)):null;return s=null===d?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"加载同事目录…(未登录云端账号时为空)"}):d.length?d.map(e=>(0,a.jsxs)("label",{className:"flex items-center gap-2 py-1 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",checked:u.has(e.hmUserId),onChange:t=>{let s=new Set(u);t.target.checked?s.add(e.hmUserId):s.delete(e.hmUserId),m(s)}}),(0,a.jsx)("span",{children:e.name}),(0,a.jsx)("span",{className:"text-xs text-gray-400",children:e.email})]},e.hmUserId)):(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"暂无公司租户同事"}),(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40",onClick:r,children:(0,a.jsxs)("div",{className:"w-[520px] max-w-[92vw] rounded-lg bg-white p-5 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsxs)("h3",{className:"text-base font-semibold",children:["分享职位推荐(职位 #",l,")"]}),(0,a.jsx)("button",{onClick:r,className:"text-gray-400 hover:text-gray-600",children:"✕"})]}),k?(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mb-2 rounded bg-emerald-50 px-3 py-2 text-sm text-emerald-800",children:["分享已创建,有效期至 ",new Date(k.expiresAt).toLocaleString()]}),(0,a.jsx)("div",{className:"mb-1 text-xs text-gray-500",children:"把链接发给同事(对方在自己本地 hm 打开):"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{readOnly:!0,value:null!=O?O:"",className:"flex-1 rounded border border-gray-300 px-2 py-1.5 font-mono text-xs",onFocus:e=>e.target.select()}),(0,a.jsx)("button",{onClick:()=>{O&&navigator.clipboard.writeText(O).then(()=>{I(!0),setTimeout(()=>I(!1),2500)})},className:"rounded bg-blue-600 px-3 py-1.5 text-xs text-white hover:bg-blue-700",children:C?"已复制 ✓":"复制"})]}),(0,a.jsx)("div",{className:"mt-4 text-right",children:(0,a.jsx)("button",{onClick:r,className:"rounded border border-gray-300 px-4 py-1.5 text-sm hover:bg-gray-50",children:"完成"})})]}):(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"分享范围"}),(0,a.jsxs)("label",{className:"mr-4 text-sm",children:[(0,a.jsx)("input",{type:"radio",checked:"tenant"===o,onChange:()=>x("tenant")})," 租户内所有同事"]}),(0,a.jsxs)("label",{className:"text-sm",children:[(0,a.jsx)("input",{type:"radio",checked:"users"===o,onChange:()=>x("users")})," 指定同事"]}),"users"===o?(0,a.jsx)("div",{className:"mt-2 max-h-36 overflow-auto rounded border border-gray-200 p-2",children:s}):null]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"有效期"}),(0,a.jsx)("select",{value:h,onChange:e=>p(Number(e.target.value)),className:"rounded border border-gray-300 px-2 py-1 text-sm",children:g.map(e=>(0,a.jsx)("option",{value:e.hours,children:e.label},e.hours))})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-1 text-xs font-medium text-gray-600",children:"备注(可选,给查看者的说明)"}),(0,a.jsx)("input",{value:y,onChange:e=>v(e.target.value),maxLength:200,placeholder:"例如:这 10 位是本周重点推荐,请 op 优先跟进",className:"w-full rounded border border-gray-300 px-2 py-1.5 text-sm"})]}),N?(0,a.jsx)("div",{className:"text-xs text-red-600",children:N}):null,(0,a.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,a.jsx)("button",{onClick:r,className:"rounded border border-gray-300 px-4 py-1.5 text-sm hover:bg-gray-50",children:"取消"}),(0,a.jsx)("button",{onClick:()=>void A(),disabled:j||"users"===o&&!u.size,className:"rounded bg-blue-600 px-4 py-1.5 text-sm text-white hover:bg-blue-700 disabled:opacity-40",children:j?"创建中…":"生成分享链接"})]})]})]})})}let v=null;function j(e,t,s){return(0,i.aA)(e,{method:t,headers:{"Content-Type":"application/json"},body:null!=s?JSON.stringify(s):void 0})}let f={create:"建档",move:"阶段迁移",form:"保存表单",invite:"记录邀请",invite_approved:"批准邀请",note:"备注",delete:"移出流程"};function N(e){var t;let{jobCaseId:s,canOperate:l=!0}=e,[r,c]=(0,n.useState)(v),[o,x]=(0,n.useState)("recommended"),[m,h]=(0,n.useState)([]),[p,g]=(0,n.useState)({}),[N,w]=(0,n.useState)(null),[k,S]=(0,n.useState)({}),[C,I]=(0,n.useState)(!1),[A,O]=(0,n.useState)(new Set),[T,E]=(0,n.useState)(new Set),[U,P]=(0,n.useState)(null),[z,_]=(0,n.useState)(!1),[D,L]=(0,n.useState)([]),[M,J]=(0,n.useState)(s),[B,F]=(0,n.useState)(""),[R,q]=(0,n.useState)(!1),[W,H]=(0,n.useState)(null),[Z,Y]=function(){let[e,t]=(0,n.useState)(null);return[e,(0,n.useCallback)((e,s)=>{navigator.clipboard.writeText(s).then(()=>{t(e),setTimeout(()=>t(t=>t===e?null:t),2500)})},[])]}(),[K,G]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(v)return;let e=!0,t=()=>{v||(0,i.aA)("/recommendations/meta").then(t=>{t&&e&&(v=t,c(t))}).catch(()=>{})};t();let s=(0,b.Lc)(t);return()=>{e=!1,s()}},[r]);let Q=(0,n.useMemo)(()=>{var e;return null!==(e=null==r?void 0:r.stages.map(e=>e.key))&&void 0!==e?e:[]},[r]),V=(0,n.useCallback)(async()=>{I(!0);try{var e;let t=await (0,i.aA)("/job-cases/".concat(s,"/recommendations"));h(t.items),g(null!==(e=t.counts)&&void 0!==e?e:{}),O(new Set)}catch(e){}finally{I(!1)}},[s]);(0,n.useEffect)(()=>{x("recommended"),P(null),w(null),V()},[V]),(0,n.useEffect)(()=>{"matched"===o&&null===N&&(async()=>{var e,t;let[a,l]=await Promise.all([(0,i.aA)("/matching/jobs/".concat(s,"/talents")).catch(()=>[]),(0,i.aA)("/talent-portraits").catch(()=>[])]);w(a);let n={};for(let s of l)n[s.id]=null!==(t=null===(e=s.identity)||void 0===e?void 0:e.displayName)&&void 0!==t?t:"(未命名)";S(n)})()},[o,N,s]);let X=(0,n.useCallback)(async(e,t)=>{try{let s=await t();(null==s?void 0:s.prompt)&&Y(e,s.prompt)}catch(e){}},[Y]),$=(e,t,s)=>{let a=new Set(e);a.has(t)?a.delete(t):a.add(t),s(a)},ee=async()=>{if(B){q(!0),H(null);try{await j("/recommendations/batch-move","POST",{ids:Array.from(A),stage:B,jobCaseId:M})}catch(e){q(!1),H("移动失败,请重试");return}q(!1),_(!1),await V()}},et=async()=>{q(!0),H(null);let e=Array.from(T),t=(await Promise.all(e.map(e=>j("/recommendations/adopt","POST",{matchId:e}).then(()=>!0,()=>!1)))).filter(e=>!e).length;q(!1),E(new Set),await V(),t&&H("".concat(t," 个采纳失败,请重试"))},es=async()=>{J(s),F(""),_(!0);try{var e;let t=await (0,i.aA)("/job-cases?limit=200");L(null!==(e=t.items)&&void 0!==e?e:[])}catch(e){}};if(!r)return(0,a.jsx)("div",{className:"p-4 text-sm text-gray-400",children:"加载推荐流水线定义…"});let ea=[...r.stages.map(e=>{var t;return{key:e.key,label:"".concat(e.label,"(").concat(null!==(t=p[e.key])&&void 0!==t?t:0,")")}})];ea.splice(1,0,{key:"matched",label:"匹配人才(".concat(null!==(t=null==N?void 0:N.length)&&void 0!==t?t:"…",")")});let el=e=>{var t;return e?null!==(t=r.stageLabels[e])&&void 0!==t?t:e:""};return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-3 flex flex-wrap gap-1 border-b border-gray-200 pb-2",children:ea.map(e=>(0,a.jsx)("button",{onClick:()=>{x(e.key),P(null)},className:"rounded px-2.5 py-1 text-xs ".concat(o===e.key?"bg-blue-100 font-medium text-blue-800":"text-gray-500 hover:bg-gray-100"),children:e.label},e.key))}),l?(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:["recommended"===o?(0,a.jsx)("button",{onClick:()=>void X("recommend",()=>(0,i.aA)("/job-cases/".concat(s,"/recommend-prompt"))),className:"rounded bg-amber-600 px-3 py-1 text-xs text-white hover:bg-amber-700",children:"recommend"===Z?"已复制 ✓ 请发给 agent":"再推荐(复制 prompt)"}):null,"matched"===o?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:()=>void X("match",()=>(0,i.aA)("/job-cases/".concat(s,"/match-prompt"))),className:"rounded bg-amber-600 px-3 py-1 text-xs text-white hover:bg-amber-700",children:"match"===Z?"已复制 ✓ 请发给 agent":"打分分析推荐(复制 prompt)"}),(0,a.jsxs)("button",{onClick:()=>void et(),disabled:!T.size||R,className:"rounded bg-emerald-600 px-3 py-1 text-xs text-white hover:bg-emerald-700 disabled:opacity-40",children:["采纳为推荐(",T.size,")"]})]}):null,"pending_invite"===o&&A.size?(0,a.jsx)("button",{onClick:()=>void X("invite",()=>j("/recommendations/invite-prompt","POST",{ids:Array.from(A)})),className:"rounded bg-sky-600 px-3 py-1 text-xs text-white hover:bg-sky-700",children:"invite"===Z?"已复制 ✓ 请发给 agent":"发送邀请(".concat(A.size,")")}):null,"invited"===o&&A.size?(0,a.jsx)("button",{onClick:()=>void X("reply",()=>j("/recommendations/reply-check-prompt","POST",{ids:Array.from(A)})),className:"rounded bg-sky-600 px-3 py-1 text-xs text-white hover:bg-sky-700",children:"reply"===Z?"已复制 ✓ 请发给 agent":"检查回复(".concat(A.size,")")}):null,"matched"!==o&&A.size?(0,a.jsxs)("button",{onClick:()=>void es(),className:"rounded border border-gray-300 px-3 py-1 text-xs text-gray-700 hover:bg-gray-50",children:["移动到…(",A.size,")"]}):null,A.size||T.size?(0,a.jsx)("button",{onClick:()=>{O(new Set),E(new Set)},className:"text-xs text-gray-400 hover:text-gray-600",children:"清除选择"}):null,(0,a.jsx)("button",{onClick:()=>G(!0),className:"ml-auto rounded bg-violet-600 px-3 py-1 text-xs text-white hover:bg-violet-700",children:"分享给同事"})]}):(0,a.jsx)("div",{className:"mb-3 rounded border border-amber-100 bg-amber-50 px-2 py-1 text-xs text-amber-600",children:"仅该职位的 op/rs 可操作推荐流程,你可查看"}),K?(0,a.jsx)(y,{jobCaseId:s,onClose:()=>G(!1)}):null,W?(0,a.jsx)("div",{className:"mb-2 text-xs text-red-500",children:W}):null,C?(0,a.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"加载中…"}):"matched"===o?(0,a.jsx)(function(e){return null===e.matches?(0,a.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"计算匹配中…"}):e.matches.length?(0,a.jsx)("div",{className:"space-y-2",children:e.matches.map(t=>{var s,l,n,r,i,d;return(0,a.jsxs)("div",{className:"rounded border border-gray-200 bg-white p-2",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[e.canOperate?(0,a.jsx)("input",{type:"checkbox",checked:e.selected.has(t.id),onChange:()=>e.onToggle(t.id),className:"mt-1"}):null,(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium text-gray-900",children:null!==(r=e.names[t.portraitId])&&void 0!==r?r:t.portraitId}),(0,a.jsxs)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-xs text-emerald-700",children:[null!==(i=null===(s=t.scores)||void 0===s?void 0:s.overall)&&void 0!==i?i:"?","分"]}),t.humanFeedback?(0,a.jsx)("span",{className:"rounded bg-purple-100 px-1.5 py-0.5 text-xs text-purple-700",children:t.humanFeedback.isRecommended?"已采纳":"已排除"}):null]}),(0,a.jsx)("button",{onClick:()=>e.onExpand(t.id),className:"mt-0.5 text-xs text-blue-500 hover:underline",children:e.expanded===t.id?"收起":"AI 推荐理由"})]})]}),e.expanded===t.id?(0,a.jsxs)("div",{className:"mt-2 border-t border-gray-100 pt-2 text-xs text-gray-600",children:[null!==(d=null===(l=t.recommendation)||void 0===l?void 0:l.aiReason)&&void 0!==d?d:"(无推荐理由)",(null===(n=t.humanFeedback)||void 0===n?void 0:n.reason)?(0,a.jsxs)("div",{className:"mt-1 text-purple-600",children:["人工反馈:",t.humanFeedback.reason]}):null]}):null]},t.id)})}):(0,a.jsx)("div",{className:"py-8 text-center text-sm text-gray-400",children:"暂无人岗匹配数据"})},{matches:N,names:k,selected:T,onToggle:e=>$(T,e,E),expanded:U,onExpand:e=>P(U===e?null:e),canOperate:l}):0===m.length?(0,a.jsxs)("div",{className:"py-8 text-center text-sm text-gray-400",children:["本阶段暂无人选","recommended"===o?",点上方「再推荐」让 agent 寻访":"","pending_invite"===o?",可在人才详情「加入推荐流程」":""]}):(0,a.jsx)("div",{className:"space-y-2",children:m.map(e=>(0,a.jsx)(en,{row:e,meta:r,checked:A.has(e.id),onToggle:()=>$(A,e.id,O),expanded:U===e.id,onExpand:()=>P(U===e.id?null:e.id),onChanged:V,canOperate:l},e.id))}),z?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",children:(0,a.jsxs)("div",{className:"w-96 rounded-lg bg-white p-4 shadow-xl",children:[(0,a.jsxs)("h3",{className:"mb-3 text-sm font-semibold text-gray-900",children:["批量移动(",A.size," 人)"]}),(0,a.jsxs)("label",{className:"mb-2 block text-xs text-gray-500",children:["目标职位",(0,a.jsxs)("select",{value:M,onChange:e=>J(Number(e.target.value)),className:"mt-1 w-full rounded border border-gray-300 px-2 py-1.5 text-sm",children:[D.map(e=>(0,a.jsx)("option",{value:e.id,children:e.title||e.externalId},e.id)),D.find(e=>e.id===s)?null:(0,a.jsx)("option",{value:s,children:"当前职位"})]})]}),(0,a.jsxs)("label",{className:"mb-3 block text-xs text-gray-500",children:["目标阶段(当前职位的当前阶段不可选)",(0,a.jsxs)("select",{value:B,onChange:e=>F(e.target.value),className:"mt-1 w-full rounded border border-gray-300 px-2 py-1.5 text-sm",children:[(0,a.jsx)("option",{value:"",children:"选择阶段…"}),Q.filter(e=>!(M===s&&e===o)).map(e=>(0,a.jsx)("option",{value:e,children:el(e)},e))]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{onClick:()=>_(!1),className:"rounded border border-gray-300 px-3 py-1 text-xs text-gray-600",children:"取消"}),(0,a.jsx)("button",{onClick:()=>void ee(),disabled:!B||R,className:"rounded bg-blue-600 px-3 py-1 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:R?"移动中…":"确认移动"})]})]})}):null]});function en(e){var t,s,l,r,i,c,o,x,m,h,p,b,g,y,v,N,w,k;let S=e.row,C=null!==(m=e.meta.formTemplates[S.stage])&&void 0!==m?m:[],[I,A]=(0,n.useState)(!1),[O,T]=(0,n.useState)({}),[E,U]=(0,n.useState)(!1),P=async()=>{var t;let s={},a=null!==(t=S.formData)&&void 0!==t?t:{};for(let[e,t]of Object.entries(O)){let l="string"==typeof t?t.trim():t;""===l||void 0===l?e in a&&(s[e]=null):a[e]!==l&&(s[e]=l)}for(let e of Object.keys(a))e in O||(s[e]=null);try{await j("/recommendations/".concat(S.id),"PATCH",Object.keys(s).length?{formData:s}:{})}catch(e){H("保存表单失败,请重试");return}A(!1),await e.onChanged()};return(0,a.jsxs)("div",{className:"rounded border border-gray-200 bg-white p-2",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[e.canOperate?(0,a.jsx)("input",{type:"checkbox",checked:e.checked,onChange:e.onToggle,className:"mt-1"}):null,(0,a.jsx)("button",{className:"min-w-0 flex-1 text-left",onClick:e.onExpand,children:(0,a.jsx)(u.h5,{name:null!==(h=null===(t=S.snapshot)||void 0===t?void 0:t.name)&&void 0!==h?h:"(未命名)",headline:null!==(p=null===(s=S.scores)||void 0===s?void 0:s.aiReason)&&void 0!==p?p:null===(l=S.snapshot)||void 0===l?void 0:l.headline,overall:null!==(b=null===(i=S.scores)||void 0===i?void 0:null===(r=i.dimensions)||void 0===r?void 0:r.overall)&&void 0!==b?b:null,invitationChannel:null!==(g=null===(c=S.invitation)||void 0===c?void 0:c.channel)&&void 0!==g?g:null,updatedAt:S.updatedAt})}),e.canOperate?(0,a.jsx)("button",{onClick:()=>U(!0),className:"mt-1 text-xs text-gray-300 hover:text-red-500",title:"移出流程",children:"\xd7"}):null]}),e.expanded?(0,a.jsxs)("div",{className:"mt-2 space-y-3 border-t border-gray-100 pt-2",children:[(0,a.jsxs)("section",{children:[(0,a.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,a.jsxs)("h4",{className:"text-xs font-medium text-gray-700",children:[el(S.stage),"\xb7阶段表单"]}),I?(0,a.jsxs)("span",{className:"flex gap-2",children:[(0,a.jsx)("button",{onClick:()=>void P(),className:"rounded bg-blue-600 px-2 py-0.5 text-xs text-white",children:"保存"}),(0,a.jsx)("button",{onClick:()=>A(!1),className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600",children:"取消"})]}):e.canOperate?(0,a.jsx)("button",{onClick:()=>{var e;let t={...null!==(e=S.formData)&&void 0!==e?e:{}};for(let e of C)e.key in t||(t[e.key]="");T(t),A(!0)},className:"text-xs text-blue-500 hover:underline",children:"编辑表单"}):null]}),I?(0,a.jsxs)("div",{className:"space-y-1.5",children:[Object.entries(O).map(e=>{var t,s;let[l,n]=e,r=null!==(s=null===(t=C.find(e=>e.key===l))||void 0===t?void 0:t.label)&&void 0!==s?s:l;return(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,a.jsx)("span",{className:"w-40 shrink-0 truncate text-gray-500",title:r,children:r}),(0,a.jsx)("input",{value:String(null!=n?n:""),onChange:e=>T({...O,[l]:e.target.value}),className:"min-w-0 flex-1 rounded border border-gray-300 px-1.5 py-1"}),(0,a.jsx)("button",{onClick:()=>{let e={...O};delete e[l],T(e)},className:"text-gray-300 hover:text-red-500",children:"\xd7"})]},l)}),(0,a.jsx)(er,{onAdd:(e,t)=>T({...O,[e]:t}),existing:Object.keys(O)})]}):(0,a.jsxs)("dl",{className:"space-y-1 text-xs",children:[Object.entries(null!==(y=S.formData)&&void 0!==y?y:{}).length?Object.entries(null!==(v=S.formData)&&void 0!==v?v:{}).map(e=>{var t,s;let[l,n]=e;return(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("dt",{className:"w-40 shrink-0 truncate text-gray-500",children:null!==(s=null===(t=C.find(e=>e.key===l))||void 0===t?void 0:t.label)&&void 0!==s?s:l}),(0,a.jsx)("dd",{className:"min-w-0 flex-1 whitespace-pre-wrap text-gray-800",children:String(n)})]},l)}):(0,a.jsx)("div",{className:"text-gray-400",children:"(表单为空)"}),(null===(o=S.invitation)||void 0===o?void 0:o.sentAt)?(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("dt",{className:"w-40 shrink-0 text-gray-500",children:"邀请发送时间"}),(0,a.jsx)("dd",{className:"text-gray-800",children:(0,d.d3)(S.invitation.sentAt)})]}):null]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h4",{className:"mb-1 text-xs font-medium text-gray-700",children:"操作历史"}),(0,a.jsxs)("ol",{className:"space-y-1 text-xs text-gray-500",children:[[...null!==(N=S.history)&&void 0!==N?N:[]].reverse().map((e,t)=>{var s;return(0,a.jsxs)("li",{className:"flex flex-wrap gap-x-2",children:[(0,a.jsx)("span",{className:"text-gray-400",children:(0,d.d3)(e.at)}),(0,a.jsx)("span",{className:"text-gray-700",children:null!==(s=f[e.action])&&void 0!==s?s:e.action}),e.fromStage?(0,a.jsxs)("span",{children:[el(e.fromStage)," → ",el(e.toStage)]}):null,e.note?(0,a.jsxs)("span",{className:"text-gray-500",children:["\xb7 ",e.note]}):null,(0,a.jsxs)("span",{className:"text-gray-300",children:["by ",e.by]})]},t)}),(null!==(w=S.history)&&void 0!==w?w:[]).length?null:(0,a.jsx)("li",{className:"text-gray-400",children:"(暂无)"})]})]})]}):null,E?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",children:(0,a.jsxs)("div",{className:"w-72 rounded-lg bg-white p-4 shadow-xl",children:[(0,a.jsxs)("p",{className:"mb-3 text-sm text-gray-800",children:["把 ",null!==(k=null===(x=S.snapshot)||void 0===x?void 0:x.name)&&void 0!==k?k:"(未命名)"," 移出推荐流程?"]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{onClick:()=>U(!1),className:"rounded border border-gray-300 px-3 py-1 text-xs text-gray-600",children:"取消"}),(0,a.jsx)("button",{onClick:async()=>{try{await j("/recommendations/".concat(S.id),"DELETE")}catch(e){H("移出流程失败,请重试"),U(!1);return}U(!1),await e.onChanged()},className:"rounded bg-red-600 px-3 py-1 text-xs text-white hover:bg-red-700",children:"确认移出"})]})]})}):null]})}function er(e){let{onAdd:t,existing:s}=e,[l,r]=(0,n.useState)(""),[i,d]=(0,n.useState)("");return(0,a.jsxs)("div",{className:"flex items-center gap-2 border-t border-dashed border-gray-200 pt-1.5 text-xs",children:[(0,a.jsx)("input",{value:l,onChange:e=>r(e.target.value),placeholder:"新字段名",className:"w-32 rounded border border-gray-300 px-1.5 py-1"}),(0,a.jsx)("input",{value:i,onChange:e=>d(e.target.value),placeholder:"内容",className:"min-w-0 flex-1 rounded border border-gray-300 px-1.5 py-1"}),(0,a.jsx)("button",{onClick:()=>{let e=l.trim();!e||s.includes(e)||(t(e,i),r(""),d(""))},className:"rounded border border-gray-300 px-2 py-1 text-gray-600 hover:bg-gray-50",children:"加一行"})]})}}var w=s(49616),k=s(80584),S=s(29858);let C=[{key:"active",label:"启动中",cls:"bg-emerald-100 text-emerald-700"},{key:"closed",label:"结束",cls:"bg-gray-300 text-gray-700"}],I=[{key:"op",label:"我是 op",cls:"bg-blue-100 text-blue-700"},{key:"rs",label:"我是 rs",cls:"bg-cyan-100 text-cyan-700"}],A=[{key:"recommended",label:"有推荐"},{key:"invite",label:"邀约中"},{key:"replied",label:"已回复"},{key:"to_client",label:"已推客户"},{key:"interview",label:"面试"},{key:"offer",label:"offer"},{key:"onboarding",label:"入职"}],O=["liepin","linkedin","lagou","zhaopin","51job","boss"];function T(e){var t,s;let a;let l=(null!==(t=e.folderPath)&&void 0!==t?t:"").split("/").filter(Boolean).filter(e=>!["job","jd","raw"].includes(e));return(a=e.title)&&!["job","jd","raw"].includes(a)?e.title:null!==(s=l.at(-1))&&void 0!==s?s:"职位 #".concat(e.id)}function E(e){let t=e.requirements;if(!t)return;let s=[t.company,t.location,t.salary].map(e=>"string"==typeof e?e.trim():"").filter(Boolean);return s.length?s.join(" \xb7 "):void 0}function U(){var e,t;let s=(0,r.useRouter)(),l=(0,r.useSearchParams)(),d=l.get("id"),[x,b]=(0,n.useState)({}),[g,y]=(0,n.useState)(new Set),[v,j]=(0,n.useState)(""),[f,N]=(0,n.useState)(""),[w,U]=(0,n.useState)(null),[z,_]=(0,n.useState)(!1),[D,L]=(0,n.useState)(!1),[M,J]=(0,n.useState)(0),{session:B,sync:F}=(0,p.nu)(),R=null!==(e=null==B?void 0:B.hmUserId)&&void 0!==e?e:null,q=null!==(t=null==F?void 0:F.activeTenantId)&&void 0!==t?t:null,W=l.get("st")||"",H=l.get("rel")||"",Z=l.get("cust")||"",Y=l.get("stage")||"",K=l.get("ch")||"",G=(0,n.useMemo)(()=>W.split(",").map(e=>e.trim()).filter(Boolean),[W]),Q=(0,n.useMemo)(()=>Y?Y.split(",").map(e=>e.trim()).filter(Boolean):[],[Y]),V=(0,n.useMemo)(()=>K?K.split(",").map(e=>e.trim()).filter(Boolean):[],[K]),X=!!(W||H||Z||Y||K),$=(0,n.useMemo)(()=>H?H.split(",").map(e=>e.trim()).filter(Boolean):X?[]:["op","rs"],[H,X]),[ee,et]=(0,n.useState)(!1),[es,ea]=(0,n.useState)(!1),el=(0,n.useMemo)(()=>X||es||!ee?$:[],[X,es,ee,$]),[en,er]=(0,n.useState)({active:0,closed:0}),[ei,ed]=(0,n.useState)({}),[ec,eo]=(0,n.useState)({}),[ex,eu]=(0,n.useState)({}),[em,eh]=(0,n.useState)(!1),[ep,eb]=(0,n.useState)(""),[eg,ey]=(0,n.useState)(!1),[ev,ej]=(0,n.useState)(null),ef=(0,m.B)({deleteUrl:"/job-cases",label:"职位",onDeleted:()=>ew.refresh(),currentUserId:R}),eN=(0,n.useMemo)(()=>Array.from(ef.selectedIds),[ef.selectedIds]),ew=(0,h.k)({fetchPage:(0,n.useCallback)(async(e,t)=>{var s;let a=new URLSearchParams;a.set("q",f),a.set("limit",String(t)),a.set("offset",String(e)),G.length&&a.set("status",G.join(",")),el.length&&a.set("relation",el.join(",")),Z&&a.set("customerId",Z),Y&&a.set("stage",Y),K&&a.set("channel",K);let l=await (0,i.aA)("/job-cases?".concat(a.toString()));er(null!==(s=l.statusCounts)&&void 0!==s?s:{active:0,closed:0});let n=l.items.map(e=>e.id);return n.length&&((0,i.aA)("/recommendations/summary?ids=".concat(n.join(","))).then(e=>{ed(t=>({...t,...e}))}).catch(()=>{}),(0,i.aA)("/job-case-postings?ids=".concat(n.join(","))).then(e=>{eo(t=>({...t,...e}))}).catch(()=>{})),{items:l.items,total:l.total}},[f,G,el,Z,Y,K,q]),pageSize:50,deps:[f,G,el,Z,Y,K,q]});(0,n.useEffect)(()=>{X||ee||es||ew.loading||ew.error||0!==ew.total||et(!0)},[X,ee,es,ew.loading,ew.error,ew.total]),(0,n.useEffect)(()=>{et(!1),ea(!1)},[q]),(0,n.useEffect)(()=>{let e=setTimeout(()=>N(v.trim()),300);return()=>clearTimeout(e)},[v]),(0,n.useEffect)(()=>{(0,i.aA)("/customers").then(e=>{let t={},s=new Set;for(let l of e){var a;t[l.id]=l.canonicalName,(null===(a=l.dedupKey)||void 0===a?void 0:a.startsWith("placeholder:"))&&s.add(l.id)}b(t),y(s)}).catch(()=>{b({}),y(new Set)})},[q]),(0,n.useEffect)(()=>{(0,i.aA)("/job-cases/tenant-members").then(e=>{var t;let s={};for(let a of null!==(t=e.items)&&void 0!==t?t:[])s[a.hmUserId]=a;eu(s)}).catch(()=>{eu({})})},[q]);let ek=(0,n.useCallback)(e=>{var t,s;return null==e?void 0:null!==(s=null===(t=ex[e])||void 0===t?void 0:t.label)&&void 0!==s?s:e===R?"我":"用户 #".concat(e)},[ex,R]);(0,n.useEffect)(()=>{ef.prune(ew.items.map(e=>String(e.id)))},[ew.items,ef]),(0,n.useEffect)(()=>{if(!d){U(null),L(!1);return}_(!0),L(!1),(0,i.aA)("/job-cases/".concat(d)).then(e=>{U(e)}).catch(()=>{U(null),L(!0)}).finally(()=>{_(!1)})},[d,q,M]);let eS=(0,n.useCallback)(e=>{let t=new URLSearchParams(l.toString());e.id?t.set("id",e.id):null===e.id&&t.delete("id"),void 0!==e.st&&(e.st.length?t.set("st",e.st.join(",")):t.delete("st")),void 0!==e.rel&&(e.rel.length?t.set("rel",e.rel.join(",")):t.delete("rel")),void 0!==e.cust&&(e.cust?t.set("cust",e.cust):t.delete("cust")),void 0!==e.stage&&(e.stage.length?t.set("stage",e.stage.join(",")):t.delete("stage")),void 0!==e.ch&&(e.ch.length?t.set("ch",e.ch.join(",")):t.delete("ch")),s.replace("/jobs?".concat(t.toString()))},[s,l]),eC=(0,n.useCallback)(e=>{var t;return null==R?null:e.ownerId===R?"op":(null!==(t=e.rsUserIds)&&void 0!==t?t:[]).includes(R)?"rs":null},[R]),eI=(0,n.useMemo)(()=>ew.items.map(e=>{var t,s,l,n,r;return{id:String(e.id),content:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[ef.checkbox(String(e.id)),(0,a.jsx)(u.dy,{title:null!==(t=T(e))&&void 0!==t?t:"(职位 #".concat(e.id,")"),status:e.status,hmhLocal:(null!==(s=e.folderPath)&&void 0!==s?s:"").includes("/local/clients/"),subtitle:E(e),customerName:null!==(n=e.customerName)&&void 0!==n?n:e.customerId?null!==(l=x[e.customerId])&&void 0!==l?l:"客户 #".concat(e.customerId):"未关联客户",opName:null!=e.ownerId?ek(e.ownerId):void 0,rsNames:(null!==(r=e.rsUserIds)&&void 0!==r?r:[]).map(e=>{var t;return null!==(t=ek(e))&&void 0!==t?t:"用户 #".concat(e)}),updatedAt:e.updatedAt,createdAt:e.createdAt,stages:ei[e.id],platforms:ec[e.id],myRole:eC(e)})]})}}),[ew.items,x,ef,ei,ec,eC,ek]),eA=(0,n.useMemo)(()=>{let e=new Set;for(let t of Object.values(ec))for(let s of t)e.add(s);for(let t of O)e.add(t);return Array.from(e)},[ec]),eO=async()=>{let e;let t=Number(ep),s=eN.map(Number).filter(e=>e!==t);if(!t||!s.length)return;ey(!0);try{e=await (0,i.aA)("/job-cases/merge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetId:t,sourceIds:s})})}catch(e){ey(!1),eh(!1),ej("合并失败(服务无响应),请重试");return}ey(!1),eh(!1);let a=Object.values(e.moved).reduce((e,t)=>e+t,0);ej("已合并 ".concat(e.sourceIds.length," 个职位 → #").concat(e.targetId,",迁移 ").concat(a," 条关联")+(e.matchConflicts?",匹配冲突按高分保留 ".concat(e.matchConflicts," 处"):"")),ef.clear(),ew.refresh(),setTimeout(()=>ej(null),8e3)},eT=d?z?(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"加载中…"}):D?(0,a.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-red-500",children:["加载失败",(0,a.jsx)("button",{type:"button",onClick:()=>J(e=>e+1),className:"text-blue-500 hover:underline",children:"重试"})]}):w?(0,a.jsx)(P,{detail:w,customers:x,placeholderCusts:g,myUserId:R}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-red-500",children:"未找到该职位"}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"请在左侧选择一个职位查看详情"}),eE=G.length>0||$.length>0||Z||Y||K||ee;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.m,{filterBar:(0,a.jsxs)("div",{className:"space-y-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)(k.Z,{allowClear:!0,size:"small",value:v,onChange:e=>j(e.target.value),placeholder:"搜索职位/客户/路径…"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,a.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"状态:"}),C.map(e=>{let t=G.includes(e.key);return(0,a.jsxs)("button",{type:"button",title:t?"点击取消该状态筛选":"点击按该状态过滤(可多选)",onClick:()=>eS({st:t?G.filter(t=>t!==e.key):[...G,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:[e.label," ",en[e.key]]},e.key)}),(0,a.jsx)("span",{className:"mx-1 text-gray-300",children:"|"}),(0,a.jsx)("span",{className:"text-gray-400",children:"关系:"}),I.map(e=>{let t=$.includes(e.key);return(0,a.jsx)("button",{type:"button",title:t?"点击取消该关系筛选":"点击按该关系过滤(op∨rs=我操作的)",onClick:()=>eS({rel:t?$.filter(t=>t!==e.key):[...$,e.key]}),className:"rounded px-1.5 py-0.5 text-xs transition ".concat(t?"".concat(e.cls," ring-1 ring-current"):"".concat(e.cls," opacity-40 hover:opacity-80")),children:e.label},e.key)}),(0,a.jsx)("span",{className:"mx-1 text-gray-300",children:"|"}),(0,a.jsx)("button",{type:"button",title:"unlinked"===Z?"点击取消未关联客户筛选":"只显示未关联客户的职位",onClick:()=>eS({cust:"unlinked"===Z?"":"unlinked"}),className:"rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700 transition ".concat("unlinked"===Z?"ring-1 ring-current":"opacity-40 hover:opacity-80"),children:"未关联客户"}),(0,a.jsxs)("span",{className:"ml-auto text-gray-400",children:["共 ",ew.total," 个"]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,a.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"客户:"}),(0,a.jsx)(S.Z,{size:"small",showSearch:!0,allowClear:!0,placeholder:"全部客户",style:{minWidth:220},value:Z&&"unlinked"!==Z?Number(Z):void 0,onChange:e=>eS({cust:e?String(e):""}),options:Object.entries(x).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return{value:Number(t),label:s}})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,a.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"招聘状态:"}),(0,a.jsx)(S.Z,{mode:"multiple",size:"small",allowClear:!0,maxTagCount:"responsive",placeholder:"全部",style:{minWidth:260},value:Q,onChange:e=>eS({stage:e}),options:A.map(e=>({value:e.key,label:e.label}))})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,a.jsx)("span",{className:"w-12 shrink-0 text-gray-400",children:"渠道:"}),(0,a.jsx)(S.Z,{mode:"multiple",size:"small",allowClear:!0,maxTagCount:"responsive",placeholder:"全部",style:{minWidth:220},value:V,onChange:e=>eS({ch:e}),options:eA.map(e=>({value:e,label:e}))})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[eE&&(0,a.jsx)("button",{type:"button",onClick:()=>{et(!1),ea(!1),eS({st:[],rel:[],cust:"",stage:[],ch:[]})},className:"text-xs text-gray-400 hover:text-gray-600",children:"清除筛选"}),!ee||es||X?null:(0,a.jsx)("button",{type:"button",title:"无我操作的职位,已显示全部;点击恢复只看自己参与的",onClick:()=>ea(!0),className:"rounded bg-indigo-50 px-1.5 py-0.5 text-xs text-indigo-600 hover:bg-indigo-100",children:"已显示全部(无我操作的)→ 只看我的"})]}),ef.bar(eI),eN.length>=2?(0,a.jsxs)("button",{type:"button",onClick:()=>{eb(eN[0]),eh(!0)},className:"mt-1 rounded bg-indigo-600 px-2.5 py-1 text-xs text-white hover:bg-indigo-700",children:["合并所选职位(",eN.length,")"]}):null,ev?(0,a.jsx)("div",{className:"mt-1 text-xs text-emerald-600",children:ev}):null]}),listPanel:ew.error?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:"加载失败"}),(0,a.jsx)("button",{type:"button",onClick:()=>ew.refresh(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:eI,selectedId:null!=d?d:void 0,onSelect:e=>eS({id:e}),loading:ew.loading,emptyText:"暂无职位",onLoadMore:ew.loadMore,loadingMore:ew.loadingMore,exhausted:ew.exhausted}),detailPanel:eT}),ef.modal(),em?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",children:(0,a.jsxs)("div",{className:"w-96 rounded-lg bg-white p-4 shadow-xl",children:[(0,a.jsxs)("h3",{className:"mb-2 text-sm font-semibold text-gray-900",children:["合并职位(保留目标,其余 ",eN.length-1," 个结束)"]}),(0,a.jsx)("p",{className:"mb-3 text-xs text-gray-500",children:"源职位的推荐流水/发布/简历/画像/评估/沟通记录全部迁到目标职位;同人才匹配冲突保留高分。"}),(0,a.jsx)("div",{className:"mb-3 max-h-48 space-y-1 overflow-auto",children:eN.map(e=>{var t;let s=ew.items.find(t=>String(t.id)===e);return(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,a.jsx)("input",{type:"radio",name:"merge-target",checked:ep===e,onChange:()=>eb(e)}),(0,a.jsxs)("span",{className:"min-w-0 flex-1 truncate",children:["#",e," ",s?T(s):"",s?(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:[" ",null!==(t=E(s))&&void 0!==t?t:""]}):null]})]},e)})}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>eh(!1),className:"rounded border border-gray-300 px-3 py-1 text-xs text-gray-600",children:"取消"}),(0,a.jsx)("button",{type:"button",onClick:()=>void eO(),disabled:!ep||eg,className:"rounded bg-indigo-600 px-3 py-1 text-xs text-white hover:bg-indigo-700 disabled:opacity-40",children:eg?"合并中…":"确认合并"})]})]})}):null]})}function P(e){var t,s,l;let{detail:r,customers:i,placeholderCusts:c,myUserId:o}=e,[x,u]=(0,n.useState)("info"),m=null!=o&&(r.ownerId===o||(null!==(t=r.rsUserIds)&&void 0!==t?t:[]).includes(o));return(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:null!==(s=r.title)&&void 0!==s?s:"职位 #".concat(r.id)}),(0,a.jsxs)("div",{className:"mb-3 text-xs text-gray-400",children:["externalId: ",r.externalId," \xb7 更新于 ",(0,d.d3)(r.updatedAt)]}),(0,a.jsx)("div",{className:"mb-4 flex gap-1 border-b border-gray-200",children:[{key:"info",label:"职位信息"},{key:"members",label:"成员"},{key:"criteria",label:"找人条件"},{key:"history",label:"历史"},{key:"pipeline",label:"推荐流程"},{key:"publish",label:"发布管理"}].map(e=>(0,a.jsx)("button",{onClick:()=>u(e.key),className:"rounded-t px-3 py-1.5 text-sm ".concat(x===e.key?"bg-gray-100 font-medium text-gray-900":"text-gray-500 hover:text-gray-700"),children:e.label},e.key))}),"info"===x?(0,a.jsx)(z,{detail:r,customers:i,placeholderCusts:c,myUserId:o}):"members"===x?(0,a.jsx)(_,{detail:r,myUserId:o},"".concat(r.id,"-").concat(null!=o?o:"anon")):"criteria"===x?(0,a.jsx)(D,{detail:r,myUserId:o},"".concat(r.id,"-").concat(null!=o?o:"anon")):"history"===x?(0,a.jsx)(J,{jobCaseId:r.id},r.id):"pipeline"===x?(0,a.jsx)(N,{jobCaseId:r.id,canOperate:m},r.id):(0,a.jsx)(w.I,{jobCaseId:r.id,caseTitle:null!==(l=r.title)&&void 0!==l?l:"职位 #".concat(r.id),canOperate:m},r.id)]})}function z(e){var t,s,l;let{detail:d,customers:c,placeholderCusts:o,myUserId:u}=e,m=(0,r.useRouter)(),[h,p]=(0,n.useState)(!1),[b,g]=(0,n.useState)(null),[y,v]=(0,n.useState)(!1),[j,f]=(0,n.useState)(null!==(t=d.title)&&void 0!==t?t:""),[N,w]=(0,n.useState)(d.customerId?String(d.customerId):""),[k,S]=(0,n.useState)(!1),C=null!=u&&d.ownerId===u,I=null==d.customerId||o.has(d.customerId),A=async(e,t)=>{let s;p(!0),g(null);try{s=await (0,i.aA)("/job-cases/".concat(d.id),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){return p(!1),g(t),null}return p(!1),m.refresh(),location.reload(),s},O=async()=>{S(!0),g(null);try{await (0,i.aA)("/job-cases/".concat(d.id,"/op/claim"),{method:"POST"})}catch(e){S(!1),g("申请 op 失败:该职位可能已有 op,或服务无响应");return}S(!1),location.reload()};return(0,a.jsxs)("div",{children:[I&&C?(0,a.jsxs)("div",{className:"mb-4 rounded border border-amber-300 bg-amber-50 p-3",children:[(0,a.jsx)("div",{className:"mb-2 text-sm font-medium text-amber-800",children:"该职位尚未关联客户,请先选择客户公司(客户不能为空)"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("select",{value:N,onChange:e=>w(e.target.value),className:"rounded border border-amber-300 px-2 py-1.5 text-sm",children:[(0,a.jsx)("option",{value:"",children:"选择客户…"}),Object.entries(c).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return(0,a.jsx)("option",{value:t,children:s},t)})]}),(0,a.jsx)("button",{type:"button",disabled:!N||h,onClick:()=>void A({customerId:Number(N)},"关联客户失败,请重试"),className:"rounded bg-amber-600 px-3 py-1.5 text-xs text-white hover:bg-amber-700 disabled:opacity-40",children:h?"保存中…":"确认关联"})]})]}):null,I&&!C?(0,a.jsx)("div",{className:"mb-4 rounded border border-gray-200 bg-gray-50 p-3 text-sm text-gray-500",children:"该职位尚未关联客户,请联系 op 选择客户公司"}):null,(0,a.jsxs)("div",{className:"mb-4 rounded border border-gray-200 bg-gray-50 p-2",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,a.jsx)("span",{className:"text-gray-500",children:"状态:"}),(0,a.jsx)("span",{className:"rounded px-1.5 py-0.5 text-xs ".concat("active"===d.status?"bg-emerald-100 text-emerald-700":"bg-gray-300 text-gray-700"),children:"active"===d.status?"启动中":"结束"}),null==d.ownerId?(0,a.jsx)("button",{type:"button",disabled:k,onClick:()=>void O(),className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:k?"申请中…":"申请做 op(无人管理,直接生效)"}):null,C&&!I?"active"===d.status?(0,a.jsx)("button",{type:"button",disabled:h,onClick:()=>void A({status:"closed"},"状态更新失败(仅 op 可操作)"),className:"rounded border border-gray-300 px-2.5 py-1 text-xs text-gray-600 hover:bg-gray-100",children:"结束职位"}):(0,a.jsx)("button",{type:"button",disabled:h,onClick:()=>void A({status:"active"},"状态更新失败(仅 op 可操作)"),className:"rounded bg-emerald-600 px-2.5 py-1 text-xs text-white hover:bg-emerald-700",children:"重新启动"}):null,C||null==d.ownerId?null:(0,a.jsx)("span",{className:"text-xs text-gray-400",children:"仅 op 可切换状态"})]}),b?(0,a.jsx)("div",{className:"mt-1 text-xs text-red-500",children:b}):null]}),d.customerId?(0,a.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("a",{href:"/companies?id=".concat(d.customerId),className:"inline-flex items-center gap-2 rounded border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-800 hover:border-amber-400",children:[(0,a.jsx)("span",{className:"text-gray-500",children:"客户公司:"}),(0,a.jsx)("span",{className:"font-medium",children:null!==(s=c[d.customerId])&&void 0!==s?s:"#".concat(d.customerId)}),(0,a.jsx)("span",{className:"text-xs text-amber-500",children:"查看公司详情 →"})]}),C?(0,a.jsx)("select",{value:String(d.customerId),onChange:e=>{e.target.value&&Number(e.target.value)!==d.customerId&&A({customerId:Number(e.target.value)},"更换客户失败:同客户下可能已有同名职位")},className:"rounded border border-gray-300 px-2 py-1.5 text-xs text-gray-600",children:Object.entries(c).sort((e,t)=>e[1].localeCompare(t[1],"zh")).map(e=>{let[t,s]=e;return(0,a.jsx)("option",{value:t,children:s},t)})}):null]}):null,(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"职位名"}),C&&!y?(0,a.jsx)("button",{type:"button",onClick:()=>{var e;f(null!==(e=d.title)&&void 0!==e?e:""),v(!0)},className:"text-xs text-blue-600 hover:underline",children:"修改"}):null]}),y?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{type:"text",value:j,onChange:e=>f(e.target.value),className:"rounded border border-gray-300 px-2 py-1 text-sm"}),(0,a.jsx)("button",{type:"button",disabled:!j.trim()||h,onClick:()=>{A({title:j.trim()},"改名失败:同客户下可能已有同名职位").then(e=>{e&&v(!1)})},className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:"保存"}),(0,a.jsx)("button",{type:"button",onClick:()=>v(!1),className:"rounded border border-gray-300 px-2.5 py-1 text-xs text-gray-600",children:"取消"})]}):(0,a.jsx)("div",{className:"text-sm text-gray-700",children:null!==(l=d.title)&&void 0!==l?l:"—"})]}),d.folderPath?(0,a.jsxs)("div",{className:"mb-4 break-all text-xs text-gray-500",children:["文件夹:",d.folderPath]}):null,d.requirements&&Object.keys(d.requirements).length>0?(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"职位要求(requirements)"}),(0,a.jsx)(x.Y,{data:d.requirements})]}):null,d.rawFiles&&Object.keys(d.rawFiles).length>0?(0,a.jsxs)("section",{children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"原始文件(rawFiles)"}),(0,a.jsx)(x.Y,{data:d.rawFiles})]}):null]})}function _(e){let{detail:t,myUserId:s}=e,[l,r]=(0,n.useState)({op:null,rs:[]}),[d,c]=(0,n.useState)([]),[o,x]=(0,n.useState)(null),[u,m]=(0,n.useState)(!1),[h,p]=(0,n.useState)(""),[b,g]=(0,n.useState)(""),y=(0,n.useCallback)(()=>{(async()=>{try{let e=await (0,i.aA)("/job-cases/".concat(t.id,"/members"));r(e)}catch(e){}})()},[t.id]);(0,n.useEffect)(()=>{y(),(async()=>{try{let e=await (0,i.aA)("/job-cases/tenant-members");c(e.items)}catch(e){}})()},[y]);let v=e=>{var t,a;return null!==(a=null===(t=d.find(t=>t.hmUserId===e))||void 0===t?void 0:t.label)&&void 0!==a?a:e===s?"我":"用户 #".concat(e)},j=null!=s&&l.op===s,f=async function(e,s){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"操作失败(仅 op 可操作)";m(!0),x(null);try{await (0,i.aA)("/job-cases/".concat(t.id).concat(e),{method:e.startsWith("/rs/")?"DELETE":"POST",headers:{"Content-Type":"application/json"},body:null!=s?JSON.stringify(s):void 0})}catch(e){m(!1),x(a);return}m(!1),y()},N=d.filter(e=>e.hmUserId!==l.op&&!l.rs.includes(e.hmUserId));return(0,a.jsxs)("div",{children:[(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"op(职位管理者,唯一)"}),null!=l.op?(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,a.jsxs)("span",{className:"rounded bg-blue-100 px-2 py-0.5 text-blue-700",children:[v(l.op),l.op===s?"(我)":""]}),j?(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:[(0,a.jsxs)("select",{value:h,onChange:e=>p(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5",children:[(0,a.jsx)("option",{value:"",children:"转移给…"}),d.filter(e=>e.hmUserId!==l.op).map(e=>{var t;return(0,a.jsx)("option",{value:e.hmUserId,children:null!==(t=e.label)&&void 0!==t?t:"用户 #".concat(e.hmUserId)},e.hmUserId)})]}),(0,a.jsx)("button",{type:"button",disabled:!h||u,onClick:()=>void f("/op/transfer",{userId:Number(h)},"转移失败,请重试").then(()=>p("")),className:"rounded border border-blue-300 px-2 py-0.5 text-blue-600 hover:bg-blue-50 disabled:opacity-40",children:"确认转移"}),(0,a.jsx)("span",{className:"text-gray-400",children:"直接生效,无需对方确认"})]}):null]}):(0,a.jsx)("div",{className:"text-sm text-gray-500",children:"当前无 op——到「职位信息」tab 点「申请做 op」即可直接接管(无需审批)"})]}),(0,a.jsxs)("section",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"rs(协作成员,可多个)"}),l.rs.length?(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:l.rs.map(e=>(0,a.jsxs)("span",{className:"flex items-center gap-1 rounded bg-cyan-100 px-2 py-0.5 text-cyan-700",children:[v(e),e===s?"(我)":"",j?(0,a.jsx)("button",{type:"button",disabled:u,onClick:()=>void(0,i.aA)("/job-cases/".concat(t.id,"/rs/").concat(e),{method:"DELETE"}).then(()=>y()).catch(()=>x("移除失败(仅 op 可操作)")),className:"text-cyan-500 hover:text-red-500",title:"移除该 rs",children:"\xd7"}):null]},e))}):(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无 rs"}),j?(0,a.jsxs)("div",{className:"mt-2 flex items-center gap-1 text-xs",children:[(0,a.jsxs)("select",{value:b,onChange:e=>g(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5",children:[(0,a.jsx)("option",{value:"",children:"添加 rs(限同租户成员)…"}),N.map(e=>{var t;return(0,a.jsx)("option",{value:e.hmUserId,children:null!==(t=e.label)&&void 0!==t?t:"用户 #".concat(e.hmUserId)},e.hmUserId)})]}),(0,a.jsx)("button",{type:"button",disabled:!b||u,onClick:()=>void f("/rs",{userId:Number(b)},"添加失败:目标须为同租户在租成员").then(()=>g("")),className:"rounded bg-cyan-600 px-2 py-0.5 text-white hover:bg-cyan-700 disabled:opacity-40",children:"添加"})]}):null]}),o?(0,a.jsx)("div",{className:"text-xs text-red-500",children:o}):null]})}function D(e){var t;let{detail:s,myUserId:l}=e,[r,d]=(0,n.useState)([]),[c,o]=(0,n.useState)(null),[x,u]=(0,n.useState)(null),[m,h]=(0,n.useState)(!1),[p,b]=(0,n.useState)(!1),[g,y]=(0,n.useState)([]),v=(0,n.useCallback)(()=>{(async()=>{try{let e=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria"));d(e.items)}catch(e){}})()},[s.id]);(0,n.useEffect)(()=>{v()},[v]);let j=r.find(e=>e.userId===(null!=l?l:0));r.find(e=>{var t;return e.userId===(null!==(t=s.ownerId)&&void 0!==t?t:-1)});let f=null!=l&&(s.ownerId===l||(null!==(t=s.rsUserIds)&&void 0!==t?t:[]).includes(l)),N=()=>{var e;y((null!==(e=null==j?void 0:j.criteria)&&void 0!==e?e:[]).map(e=>{var t;return{dimension:e.dimension,value:"string"==typeof e.value?e.value:JSON.stringify(e.value),weight:String(null!==(t=e.weight)&&void 0!==t?t:1)}})),b(!0),o(null)},w=async()=>{let e;let t=g.filter(e=>e.dimension.trim()&&e.value.trim()).map(e=>{let t=e.value.trim();try{t=JSON.parse(e.value)}catch(e){}return{dimension:e.dimension.trim(),value:t,weight:Number(e.weight)||1}});if(!t.length){o("至少保留一条条件(dimension + value)");return}h(!0),o(null);try{e=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:t})})}catch(e){h(!1),o("保存失败,请重试");return}h(!1),d(e.items),b(!1)},k=async e=>{let t;h(!0),o(null),u(null);try{t=await (0,i.aA)("/job-cases/".concat(s.id,"/criteria/merge"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fromUserId:e,mode:"apply"})})}catch(e){h(!1),o("叠加失败,请重试");return}h(!1),u("已叠加 ".concat(t.applied," 条新条件到我的条件")),v()},S=e=>(0,a.jsx)("ul",{className:"space-y-1",children:e.map((e,t)=>(0,a.jsxs)("li",{className:"text-xs text-gray-600",children:[(0,a.jsx)("span",{className:"rounded bg-gray-100 px-1.5 py-0.5 text-gray-500",children:e.dimension})," ","string"==typeof e.value?e.value:JSON.stringify(e.value),1!==e.weight?(0,a.jsxs)("span",{className:"text-gray-400",children:["(权重 ",e.weight,")"]}):null]},t))});return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("p",{className:"text-xs text-gray-400",children:"招人条件按人维护:op 一份(=职位共享规则),每个 rs 一份。agent 找人默认按「op 条件 + 自己那份」;可叠加他人条件后选择是否更新自己那份。"}),null==l?(0,a.jsx)("div",{className:"rounded border border-gray-200 bg-gray-50 p-2 text-xs text-gray-500",children:"未登录同步用户,展示全部条件(本机工具视角)"}):null,null==l||f?null:(0,a.jsx)("div",{className:"rounded border border-amber-100 bg-amber-50 p-2 text-xs text-amber-600",children:"仅该职位的 op/rs 可维护找人条件,你可查看"}),0!==r.length||p?r.map(e=>{let t=null!=l&&e.userId===l,n=null!=s.ownerId&&e.userId===s.ownerId,r=t?"我的条件":n?"op 的条件(职位共享,#".concat(e.userId,")"):"用户 #".concat(e.userId," 的条件");return(0,a.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:r}),t&&null!=l&&!p&&f?(0,a.jsx)("button",{type:"button",onClick:N,className:"text-xs text-blue-600 hover:underline",children:"编辑我的条件"}):null,t||null==l||p||!f?null:(0,a.jsx)("button",{type:"button",disabled:m,onClick:()=>void k(e.userId),className:"text-xs text-indigo-600 hover:underline disabled:opacity-40",children:"叠加到我的条件"})]}),t&&p?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"(正在下方编辑我的条件)"}):e.criteria.length?S(e.criteria):(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"(空)"})]},e.userId)}):(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无找人条件"}),null!=l&&p&&f?(0,a.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"我的条件(编辑中)"}),(0,a.jsxs)("div",{className:"space-y-2",children:[g.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,a.jsx)("input",{type:"text",value:e.dimension,placeholder:"维度,如 city/skill/school",onChange:e=>y(g.map((s,a)=>a===t?{...s,dimension:e.target.value}:s)),className:"w-36 rounded border border-gray-300 px-1.5 py-0.5"}),(0,a.jsx)("input",{type:"text",value:e.value,placeholder:"值(字符串或 JSON)",onChange:e=>y(g.map((s,a)=>a===t?{...s,value:e.target.value}:s)),className:"w-56 rounded border border-gray-300 px-1.5 py-0.5"}),(0,a.jsx)("input",{type:"text",value:e.weight,placeholder:"权重",onChange:e=>y(g.map((s,a)=>a===t?{...s,weight:e.target.value}:s)),className:"w-14 rounded border border-gray-300 px-1.5 py-0.5"}),(0,a.jsx)("button",{type:"button",onClick:()=>y(g.filter((e,s)=>s!==t)),className:"text-gray-400 hover:text-red-500",children:"\xd7"})]},t)),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>y([...g,{dimension:"",value:"",weight:"1"}]),className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600",children:"+ 加一条"}),(0,a.jsx)("button",{type:"button",disabled:m,onClick:()=>void w(),className:"rounded bg-blue-600 px-2.5 py-0.5 text-xs text-white hover:bg-blue-700 disabled:opacity-40",children:m?"保存中…":"保存(整体替换我的条件)"}),(0,a.jsx)("button",{type:"button",onClick:()=>b(!1),className:"rounded border border-gray-300 px-2 py-0.5 text-xs text-gray-600",children:"取消"})]})]})]}):null,null==l||j||p||!f?null:(0,a.jsx)("button",{type:"button",onClick:N,className:"rounded bg-blue-600 px-2.5 py-1 text-xs text-white hover:bg-blue-700",children:"添加我的条件"}),x?(0,a.jsx)("div",{className:"text-xs text-emerald-600",children:x}):null,c?(0,a.jsx)("div",{className:"text-xs text-red-500",children:c}):null,(0,a.jsx)(L,{externalId:s.externalId})]})}function L(e){let{externalId:t}=e,[s,l]=(0,n.useState)(null),[r,c]=(0,n.useState)(!1),[o,x]=(0,n.useState)("");(0,n.useEffect)(()=>{let e=!0;return(async()=>{try{var s;let a=await (0,i.aA)("/searchlog?jobCaseExternalId=".concat(encodeURIComponent(t),"&limit=100"));e&&l(null!==(s=a.items)&&void 0!==s?s:[])}catch(t){e&&(l([]),c(!0))}})(),()=>{e=!1}},[t]);let u=Array.from(new Set((null!=s?s:[]).map(e=>e.actorEmail).filter(Boolean))),m=(null!=s?s:[]).filter(e=>!o||e.actorEmail===o),h=e=>{let t="string"==typeof e?e:JSON.stringify(e);return t&&t.length>160?"".concat(t.slice(0,160),"…"):null!=t?t:""};return(0,a.jsxs)("section",{className:"rounded border border-gray-200 p-3",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-gray-800",children:"agent 找人历史"}),u.length>1?(0,a.jsxs)("label",{className:"flex items-center gap-1 text-xs text-gray-500",children:["按用户:",(0,a.jsxs)("select",{value:o,onChange:e=>x(e.target.value),className:"rounded border border-gray-300 px-1.5 py-0.5 text-xs",children:[(0,a.jsx)("option",{value:"",children:"全部"}),u.map(e=>(0,a.jsx)("option",{value:e,children:e},e))]})]}):null]}),null===s?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:"加载中…"}):0===m.length?(0,a.jsx)("div",{className:"text-xs text-gray-400",children:r?"历史服务不可用(需 hm 0.1.23+ 且已登录),不影响找人条件":"暂无搜索历史——agent 每轮搜索后会自动登记"}):(0,a.jsx)("ul",{className:"space-y-2",children:m.map(e=>{var t;return(0,a.jsxs)("li",{className:"rounded border border-gray-100 bg-gray-50 p-2 text-xs text-gray-600",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between text-gray-500",children:[(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"rounded bg-blue-50 px-1.5 py-0.5 text-blue-600",children:e.platform})," ",null!==(t=e.actorEmail)&&void 0!==t?t:"#".concat(e.actorHmUserId),e.model&&"unknown"!==e.model?(0,a.jsxs)("span",{className:"text-gray-400",children:[" \xb7 ",e.model]}):null]}),(0,a.jsx)("span",{children:(0,d.d3)(e.createdAt)})]}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsx)("span",{className:"text-gray-400",children:"条件:"})," ",h(e.conditions)]}),(0,a.jsxs)("div",{className:"mt-0.5",children:[(0,a.jsx)("span",{className:"text-gray-400",children:"结果:"})," ",h(e.stats)]}),e.note?(0,a.jsxs)("div",{className:"mt-0.5",children:[(0,a.jsx)("span",{className:"text-gray-400",children:"备注:"})," ",e.note]}):null]},e.id)})})]})}let M={created:"创建职位",status_change:"状态切换",op_claim:"申请成为 op",op_transfer:"转移 op",op_cleared:"退租清空 op",rs_add:"添加 rs",rs_remove:"移除 rs",customer_change:"客户变更",info_update:"信息更新"};function J(e){let{jobCaseId:t}=e,[s,l]=(0,n.useState)([]);return((0,n.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await (0,i.aA)("/job-cases/".concat(t,"/history?limit=100"));e&&l(s.items)}catch(e){}})(),()=>{e=!1}},[t]),s.length)?(0,a.jsx)("ol",{className:"relative ml-2 space-y-3 border-l border-gray-200 pl-4",children:s.map(e=>{var t;return(0,a.jsxs)("li",{className:"relative",children:[(0,a.jsx)("span",{className:"absolute -left-[21px] top-1 h-2.5 w-2.5 rounded-full bg-blue-300"}),(0,a.jsx)("div",{className:"text-xs text-gray-400",children:(0,d.d3)(e.createdAt)}),(0,a.jsxs)("div",{className:"text-sm text-gray-800",children:[null!==(t=M[e.action])&&void 0!==t?t:e.action,null!=e.actorId?(0,a.jsxs)("span",{className:"text-gray-400",children:[" \xb7 操作人 #",e.actorId]}):null]}),e.detail&&Object.keys(e.detail).length?(0,a.jsx)("div",{className:"mt-0.5 text-xs text-gray-500",children:JSON.stringify(e.detail)}):null]},e.id)})}):(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"暂无历史记录"})}function B(){return(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)("div",{className:"p-6 text-gray-500",children:"加载中…"}),children:(0,a.jsx)(U,{})})}function F(){var e;let[t,s]=(0,n.useState)(""),[l,r]=(0,n.useState)(""),[d,x]=(0,n.useState)(""),[u,m]=(0,n.useState)([]),[h,b]=(0,n.useState)(0),[g,y]=(0,n.useState)(!1),[v,j]=(0,n.useState)(null),[f,N]=(0,n.useState)(null),{sync:k}=(0,p.nu)(),S=null!==(e=null==k?void 0:k.activeTenantId)&&void 0!==e?e:null,C=(0,n.useCallback)(async()=>{y(!0);let e=new URLSearchParams;l&&e.set("q",l),d&&e.set("touched",d),e.set("limit","200");try{let t=await (0,i.aA)("/market/jobs?".concat(e.toString()));j(null),m(t.items),b(t.total)}catch(e){j("加载失败")}finally{y(!1)}},[l,d,S]);(0,n.useEffect)(()=>{let e=setTimeout(()=>r(t.trim()),300);return()=>clearTimeout(e)},[t]),(0,n.useEffect)(()=>{C()},[C]);let I=(0,n.useMemo)(()=>{var e;return null!==(e=u.find(e=>e.key===f))&&void 0!==e?e:null},[u,f]),A=(0,n.useMemo)(()=>u.map(e=>({id:e.key,content:(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"truncate font-medium text-gray-900",children:e.title}),e.touched?(0,a.jsx)("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-[10px] text-emerald-700",children:"已操作"}):null]}),e.company?(0,a.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.company}):null,(0,a.jsxs)("div",{className:"mt-0.5 flex items-center gap-0.5",children:[e.sources.map(e=>(0,a.jsx)(w.v,{platform:e},e)),(0,a.jsxs)("span",{className:"ml-1 text-[10px] text-gray-400",children:[e.postings.length," 个发布"]})]})]})})),[u]);return(0,a.jsx)(c.m,{filterBar:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-gray-200 bg-white p-3",children:[(0,a.jsx)("input",{type:"text",value:t,onChange:e=>s(e.target.value),placeholder:"搜索职位/公司…",className:"w-56 rounded border border-gray-300 px-2 py-1.5 text-sm outline-none focus:border-blue-500"}),["","1","0"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>x(e),className:"rounded px-2 py-1 text-xs ".concat(d===e?"bg-[color:var(--brand-soft)] font-medium text-[color:var(--brand-strong)]":"text-gray-500 hover:bg-gray-100"),children:""===e?"全部":"1"===e?"已操作过":"未操作"},e)),(0,a.jsxs)("span",{className:"ml-auto text-xs text-gray-400",children:["共 ",h," 组(BD 市场视角)"]})]}),listPanel:v?(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 text-center text-sm",children:[(0,a.jsx)("span",{className:"text-red-500",children:v}),(0,a.jsx)("button",{type:"button",onClick:()=>void C(),className:"ml-2 text-blue-500 hover:underline",children:"重试"})]}):(0,a.jsx)(o.L,{items:A,selectedId:null!=f?f:void 0,onSelect:N,loading:g,emptyText:"暂无市场职位(解析库暂无数据)"}),detailPanel:I?(0,a.jsxs)("div",{className:"h-full overflow-y-auto p-4",children:[(0,a.jsx)("h2",{className:"mb-1 text-lg font-semibold text-gray-900",children:I.title}),(0,a.jsxs)("div",{className:"mb-4 text-xs text-gray-400",children:[I.company?"".concat(I.company," \xb7 "):"",I.touched?"本租户已操作过":"本租户未操作"," \xb7 ",I.postings.length," 个平台发布"]}),I.jobCaseIds.length>0?(0,a.jsxs)("div",{className:"mb-4 rounded border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm",children:[(0,a.jsx)("span",{className:"text-emerald-800",children:"我们交付中的案件:"}),I.jobCaseIds.map(e=>(0,a.jsxs)("a",{href:"/jobs?id=".concat(e),className:"ml-2 font-medium text-emerald-700 underline",children:["案件 #",e]},e))]}):null,(0,a.jsxs)("section",{children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-medium text-gray-800",children:"平台发布"}),(0,a.jsx)("div",{className:"space-y-1",children:I.postings.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded border border-gray-100 px-2 py-1.5 text-sm",children:[(0,a.jsx)(w.v,{platform:e.source}),(0,a.jsx)("a",{href:e.sourceUrl,target:"_blank",rel:"noreferrer",className:"min-w-0 flex-1 truncate text-blue-600 hover:underline",children:e.sourceUrl}),(0,a.jsx)("span",{className:"text-xs text-gray-400",children:e.updatedAt.slice(0,10)})]},e.id))})]})]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-gray-400",children:"选择左侧职位查看各平台发布"})})}var R=s(88801);function q(){let e=(0,R.mJ)();return"1"===new URLSearchParams(window.location.search).get("entities")?(0,a.jsx)("div",{className:"flex h-full flex-col",children:(0,a.jsx)("div",{className:"min-h-0 flex-1",children:(0,a.jsx)(l.EntityListPage,{type:"job",label:"职位",batchDelete:!0})})}):(0,a.jsxs)("div",{className:"flex h-full flex-col",children:["bd"===e?(0,a.jsx)("div",{className:"flex border-b border-gray-200 bg-white px-3 py-1.5",children:(0,a.jsx)("span",{className:"ml-auto rounded bg-[color:var(--brand-soft)] px-2 py-0.5 text-xs text-[color:var(--brand-strong)]",children:"\uD83E\uDDED BD 市场视角"})}):null,(0,a.jsx)("div",{className:"min-h-0 flex-1",children:"bd"===e?(0,a.jsx)(F,{}):(0,a.jsx)(B,{})})]})}}},function(e){e.O(0,[105,555,253,852,686,400,935,744],function(){return e(e.s=74843)}),_N_E=e.O()}]);
@@ -1 +1 @@
1
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="406cc702-2566-4fa4-890c-2f02b90dc538",e._sentryDebugIdIdentifier="sentry-dbid-406cc702-2566-4fa4-890c-2f02b90dc538")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[93],{85539:function(e,n,r){Promise.resolve().then(r.bind(r,70852))},27473:function(e,n,r){"use strict";var u=r(38321);r.o(u,"useParams")&&r.d(n,{useParams:function(){return u.useParams}}),r.o(u,"usePathname")&&r.d(n,{usePathname:function(){return u.usePathname}}),r.o(u,"useRouter")&&r.d(n,{useRouter:function(){return u.useRouter}}),r.o(u,"useSearchParams")&&r.d(n,{useSearchParams:function(){return u.useSearchParams}}),r.o(u,"useServerInsertedHTML")&&r.d(n,{useServerInsertedHTML:function(){return u.useServerInsertedHTML}})}},function(e){e.O(0,[954,852,400,935,744],function(){return e(e.s=85539)}),_N_E=e.O()}]);
1
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2ae30522-b816-4718-9069-1b92e437a582",e._sentryDebugIdIdentifier="sentry-dbid-2ae30522-b816-4718-9069-1b92e437a582")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[93],{85539:function(e,n,r){Promise.resolve().then(r.bind(r,70852))},27473:function(e,n,r){"use strict";var u=r(38321);r.o(u,"useParams")&&r.d(n,{useParams:function(){return u.useParams}}),r.o(u,"usePathname")&&r.d(n,{usePathname:function(){return u.usePathname}}),r.o(u,"useRouter")&&r.d(n,{useRouter:function(){return u.useRouter}}),r.o(u,"useSearchParams")&&r.d(n,{useSearchParams:function(){return u.useSearchParams}}),r.o(u,"useServerInsertedHTML")&&r.d(n,{useServerInsertedHTML:function(){return u.useServerInsertedHTML}})}},function(e){e.O(0,[253,852,400,935,744],function(){return e(e.s=85539)}),_N_E=e.O()}]);
@@ -0,0 +1,3 @@
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
+ ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
3
+ */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-left-\[21px\]{left:-21px}.bottom-full{bottom:100%}.left-2{left:.5rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-1\/2{top:50%}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-\[7px\]{margin-left:7px}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-36{max-height:9rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[32rem\]{max-height:32rem}.max-h-\[90vh\]{max-height:90vh}.max-h-\[92vh\]{max-height:92vh}.min-h-0{min-height:0}.min-h-16{min-height:4rem}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-56{width:14rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[520px\]{width:520px}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[360px\]{max-width:360px}.max-w-\[92vw\]{max-width:92vw}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-\[3\]{flex:3}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr\2c 2fr\2c auto\]{grid-template-columns:1fr 2fr auto}.grid-cols-\[90px\2c 1fr\2c auto\]{grid-template-columns:90px 1fr auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.divide-gray-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(249 250 251/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-100{--tw-border-opacity:1;border-color:rgb(254 243 199/var(--tw-border-opacity,1))}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-50{--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(220 252 231/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-indigo-600{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-purple-100{--tw-border-opacity:1;border-color:rgb(243 232 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.bg-\[color\:var\(--brand-soft\)\]{background-color:var(--brand-soft)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/50{background-color:rgba(239,246,255,.5)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-violet-50{--tw-bg-opacity:1;background-color:rgb(245 243 255/var(--tw-bg-opacity,1))}.bg-violet-600{--tw-bg-opacity:1;background-color:rgb(124 58 237/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.tracking-widest{letter-spacing:.1em}.text-\[color\:var\(--brand-strong\)\]{color:var(--brand-strong)}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-500{--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity,1))}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-violet-700{--tw-text-opacity:1;color:rgb(109 40 217/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-red-300{text-decoration-color:#fca5a5}.accent-amber-600{accent-color:#d97706}.accent-blue-600{accent-color:#2563eb}.opacity-40{opacity:.4}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-current{--tw-ring-color:currentColor}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root,:root[data-view=delivery]{--brand:#0e7490;--brand-strong:#155e75;--brand-soft:#ecfeff;--accent:#2563eb}:root[data-view=bd]{--brand:#b45309;--brand-strong:#92400e;--brand-soft:#fffbeb;--accent:#7c3aed}.hm-active{background:var(--brand-soft);color:var(--brand-strong)}.hm-spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--brand-soft);border-top-color:var(--brand);border-radius:9999px;animation:hm-spin .8s linear infinite}.hm-spinner-sm{width:16px;height:16px;border-width:2px}@keyframes hm-spin{to{transform:rotate(1turn)}}.hm-top-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;overflow:hidden;pointer-events:none}.hm-top-bar:before{content:"";position:absolute;top:0;bottom:0;width:40%;background:var(--accent);animation:hm-top-bar-slide 1.1s ease-in-out infinite}@keyframes hm-top-bar-slide{0%{left:-40%}to{left:100%}}.last\:border-0:last-child{border-width:0}.hover\:border-amber-400:hover{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:bg-amber-100:hover{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\:bg-amber-700:hover{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-cyan-700:hover{--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity,1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-50:hover{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-sky-700:hover{--tw-bg-opacity:1;background-color:rgb(3 105 161/var(--tw-bg-opacity,1))}.hover\:bg-violet-700:hover{--tw-bg-opacity:1;background-color:rgb(109 40 217/var(--tw-bg-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.active\:bg-blue-200:active{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.disabled\:border-gray-300:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.disabled\:text-gray-300:disabled{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.disabled\:text-gray-400:disabled{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-4{padding:1rem}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[250px\2c 1fr\]{grid-template-columns:250px 1fr}.md\:border-b-0{border-bottom-width:0}.md\:border-r{border-right-width:1px}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/bd072fee69ae8474.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-54e74ccc9e9451ee.js"/><script src="/_next/static/chunks/a7067448-e416655baf443992.js" async=""></script><script src="/_next/static/chunks/935-7be3e60dd8bc29d2.js" async=""></script><script src="/_next/static/chunks/main-app-f496bd51a73ef9f3.js" async=""></script><script src="/_next/static/chunks/app/admin/data/page-14698e9c4ddaa6d9.js" async=""></script><script src="/_next/static/chunks/589-f984bff035a1cb85.js" async=""></script><script src="/_next/static/chunks/105-dcd8f6d5867c8995.js" async=""></script><script src="/_next/static/chunks/app/layout-af39afc7866e74db.js" async=""></script><title>HunterMate 采集仪表盘</title><meta name="description" content="HunterMate 采集/解析/入库仪表盘"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="flex h-screen overflow-hidden bg-gray-50 text-gray-900"><div class="flex h-screen w-screen flex-col items-center justify-center bg-gray-50"><span class="hm-spinner" aria-label="加载中"></span><div class="mt-4 text-sm text-gray-400">正在加载,请稍候…</div></div><script src="/_next/static/chunks/webpack-54e74ccc9e9451ee.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/bd072fee69ae8474.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[76939,[],\"\"]\n4:I[84042,[\"116\",\"static/chunks/app/admin/data/page-14698e9c4ddaa6d9.js\"],\"AdminDataPage\"]\n5:I[74268,[],\"\"]\n6:I[81050,[],\"\"]\n7:I[15214,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"AuthGate\"]\n8:I[67188,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"AntdProvider\"]\n9:I[9424,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"SystemSidebar\"]\nb:I[62319,[],\"\"]\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"GLFVRtthA5lVwS4QGRhZQ\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"admin\",\"data\"],\"initialTree\":[\"\",{\"children\":[\"admin\",{\"children\":[\"data\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"admin\",{\"children\":[\"data\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"admin\",\"children\",\"data\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"admin\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/bd072fee69ae8474.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"flex h-screen overflow-hidden bg-gray-50 text-gray-900\",\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-hidden\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"HunterMate 采集仪表盘\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"HunterMate 采集/解析/入库仪表盘\"}]]\n3:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/10ba1fa1d6ce23a7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-54e74ccc9e9451ee.js"/><script src="/_next/static/chunks/a7067448-e416655baf443992.js" async=""></script><script src="/_next/static/chunks/935-7be3e60dd8bc29d2.js" async=""></script><script src="/_next/static/chunks/main-app-f496bd51a73ef9f3.js" async=""></script><script src="/_next/static/chunks/app/admin/data/page-14698e9c4ddaa6d9.js" async=""></script><script src="/_next/static/chunks/589-f984bff035a1cb85.js" async=""></script><script src="/_next/static/chunks/105-dcd8f6d5867c8995.js" async=""></script><script src="/_next/static/chunks/app/layout-af39afc7866e74db.js" async=""></script><title>HunterMate 采集仪表盘</title><meta name="description" content="HunterMate 采集/解析/入库仪表盘"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="flex h-screen overflow-hidden bg-gray-50 text-gray-900"><div class="flex h-screen w-screen flex-col items-center justify-center bg-gray-50"><span class="hm-spinner" aria-label="加载中"></span><div class="mt-4 text-sm text-gray-400">正在加载,请稍候…</div></div><script src="/_next/static/chunks/webpack-54e74ccc9e9451ee.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/10ba1fa1d6ce23a7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[76939,[],\"\"]\n4:I[84042,[\"116\",\"static/chunks/app/admin/data/page-14698e9c4ddaa6d9.js\"],\"AdminDataPage\"]\n5:I[74268,[],\"\"]\n6:I[81050,[],\"\"]\n7:I[15214,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"AuthGate\"]\n8:I[67188,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"AntdProvider\"]\n9:I[9424,[\"589\",\"static/chunks/589-f984bff035a1cb85.js\",\"105\",\"static/chunks/105-dcd8f6d5867c8995.js\",\"185\",\"static/chunks/app/layout-af39afc7866e74db.js\"],\"SystemSidebar\"]\nb:I[62319,[],\"\"]\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"hBLezfvVOMiGqm4V9F15i\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"admin\",\"data\"],\"initialTree\":[\"\",{\"children\":[\"admin\",{\"children\":[\"data\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"admin\",{\"children\":[\"data\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"admin\",\"children\",\"data\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"admin\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/10ba1fa1d6ce23a7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"children\":[\"$\",\"body\",null,{\"className\":\"flex h-screen overflow-hidden bg-gray-50 text-gray-900\",\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-hidden\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"HunterMate 采集仪表盘\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"HunterMate 采集/解析/入库仪表盘\"}]]\n3:null\n"])</script></body></html>
@@ -4,6 +4,6 @@
4
4
  5:I[15214,["589","static/chunks/589-f984bff035a1cb85.js","105","static/chunks/105-dcd8f6d5867c8995.js","185","static/chunks/app/layout-af39afc7866e74db.js"],"AuthGate"]
5
5
  6:I[67188,["589","static/chunks/589-f984bff035a1cb85.js","105","static/chunks/105-dcd8f6d5867c8995.js","185","static/chunks/app/layout-af39afc7866e74db.js"],"AntdProvider"]
6
6
  7:I[9424,["589","static/chunks/589-f984bff035a1cb85.js","105","static/chunks/105-dcd8f6d5867c8995.js","185","static/chunks/app/layout-af39afc7866e74db.js"],"SystemSidebar"]
7
- 0:["GLFVRtthA5lVwS4QGRhZQ",[[["",{"children":["admin",{"children":["data",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["admin",{"children":["data",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","admin","children","data","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","admin","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/bd072fee69ae8474.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L5",null,{"children":["$","$L6",null,{"children":[["$","$L7",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L8",null]]]]
7
+ 0:["hBLezfvVOMiGqm4V9F15i",[[["",{"children":["admin",{"children":["data",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["admin",{"children":["data",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","admin","children","data","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","admin","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/10ba1fa1d6ce23a7.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"zh-CN","children":["$","body",null,{"className":"flex h-screen overflow-hidden bg-gray-50 text-gray-900","children":["$","$L5",null,{"children":["$","$L6",null,{"children":[["$","$L7",null,{}],["$","main",null,{"className":"flex-1 overflow-hidden","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]}]}]}]],null],null],["$L8",null]]]]
8
8
  8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"HunterMate 采集仪表盘"}],["$","meta","3",{"name":"description","content":"HunterMate 采集/解析/入库仪表盘"}]]
9
9
  1:null