PageSourceSearch

https://app.nexport.ai/assets/Leads-BFbn1mkN.js

js nexport.ai collected 2026-10-05 13:53:40 UTC 26,928 bytes, 1 lines download raw bytes

1import{r,j as s,P as M,L as D}from"./index--1RmYx0j.js";import{f as _,a as O,L as $,b as o,u as P,d as G,l as R,c as U,e as Y}from"./adminLeadsApi-A_2VgRcC.js";function b(e){if(!e)return"—";const i=new Date(e);return`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`}function w(e){if(!e)return"";const i=Math.floor((Date.now()-new Date(e).getTime())/864e5);return i<=0?"오늘":i===1?"어제":`${i}일 전`}const q={name:"",stage:"untouched",domainsText:"",source:"",docPath:"",contactName:"",contactRole:"",phone:"",email:"",website:"",nextAction:"",note:""};function B(e){return{name:e.name,stage:e.stage,domainsText:e.domains.join(", "),source:e.source??"",docPath:e.docPath??"",contactName:e.contactName??"",contactRole:e.contactRole??"",phone:e.phone??"",email:e.email??"",website:e.website??"",nextAction:e.nextAction??"",note:e.note??""}}const l="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm outline-none focus:border-brand-400 dark:border-gray-600 dark:bg-gray-900 dark:text-white",m="mb-1 block text-xs font-medium text-gray-600 dark:text-gray-300";function E({initial:e,submitting:i,onSubmit:d,onCancel:N}){const[c,h]=r.useState(e);r.useEffect(()=>h(e),[e]);const n=x=>y=>h(A=>({...A,[x]:y.target.value}));return s.jsxs("form",{className:"grid grid-cols-1 gap-4 md:grid-cols-3",onSubmit:x=>{x.preventDefault(),d(c)},"data-sc-src":"src/pages/Admin/Leads.tsx:108",children:[s.jsxs("div",{className:"md:col-span-1","data-sc-src":"src/pages/Admin/Leads.tsx:115",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:116",children:"업체명 *"}),s.jsx("input",{name:"name",className:l,value:c.name??"",onChange:n("name"),required:!0,"data-sc-src":"src/pages/Admin/Leads.tsx:117"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:125",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:126",children:"단계"}),s.jsx("select",{name:"stage",className:l,value:c.stage??"untouched",onChange:n("stage"),"data-sc-src":"src/pages/Admin/Leads.tsx:127",children:$.map(x=>s.jsxs("option",{value:x,"data-sc-src":"src/pages/Admin/Leads.tsx:134",children:[o[x].label," — ",o[x].hint]},x))})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:140",children:[s.jsxs("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:141",children:["이메일 도메인 ",s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:142",children:"(쉼표로 여러 개)"})]}),s.jsx("input",{name:"domains",className:l,value:c.domainsText,onChange:n("domainsText"),placeholder:"drcus.co.kr, dhcus.kr","data-sc-src":"src/pages/Admin/Leads.tsx:144"}),s.jsx("p",{className:"mt-1 text-[11px] leading-relaxed text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:151",children:"이 도메인으로 가입하면 자동으로 이 업체에 붙는다. 홈페이지와 가입 도메인이 다른 경우가 흔하니 둘 다 적는다."})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:157",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:158",children:"담당자"}),s.jsx("input",{name:"contactName",className:l,value:c.contactName??"",onChange:n("contactName"),"data-sc-src":"src/pages/Admin/Leads.tsx:159"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:166",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:167",children:"직함"}),s.jsx("input",{name:"contactRole",className:l,value:c.contactRole??"",onChange:n("contactRole"),placeholder:"대표 관세사","data-sc-src":"src/pages/Admin/Leads.tsx:168"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:176",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:177",children:"전화"}),s.jsx("input",{name:"phone",className:l,value:c.phone??"",onChange:n("phone"),"data-sc-src":"src/pages/Admin/Leads.tsx:178"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:181",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:182",children:"이메일"}),s.jsx("input",{name:"email",className:l,value:c.email??"",onChange:n("email"),"data-sc-src":"src/pages/Admin/Leads.tsx:183"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:185",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:186",children:"홈페이지"}),s.jsx("input",{name:"website",className:l,value:c.website??"",onChange:n("website"),"data-sc-src":"src/pages/Admin/Leads.tsx:187"})]}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:189",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:190",children:"알게 된 경로"}),s.jsx("input",{name:"source",className:l,value:c.source??"",onChange:n("source"),placeholder:"소개 / 스레드 / forwarder.kr","data-sc-src":"src/pages/Admin/Leads.tsx:191"})]}),s.jsxs("div",{className:"md:col-span-1","data-sc-src":"src/pages/Admin/Leads.tsx:200",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:201",children:"상세 문서 경로"}),s.jsx("input",{name:"docPath",className:l,value:c.docPath??"",onChange:n("docPath"),placeholder:"docs/ops/sales/choyul.md","data-sc-src":"src/pages/Admin/Leads.tsx:202"})]}),s.jsxs("div",{className:"md:col-span-2","data-sc-src":"src/pages/Admin/Leads.tsx:210",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:211",children:"다음에 할 일"}),s.jsx("input",{name:"nextAction",className:l,value:c.nextAction??"",onChange:n("nextAction"),placeholder:"카톡 상담톡 발송","data-sc-src":"src/pages/Admin/Leads.tsx:212"})]}),s.jsxs("div",{className:"md:col-span-3","data-sc-src":"src/pages/Admin/Leads.tsx:221",children:[s.jsx("label",{className:m,"data-sc-src":"src/pages/Admin/Leads.tsx:222",children:"한 줄 메모"}),s.jsx("input",{name:"note",className:l,value:c.note??"",onChange:n("note"),placeholder:"길어지면 문서로 옮긴다","data-sc-src":"src/pages/Admin/Leads.tsx:223"})]}),s.jsxs("div",{className:"flex gap-2 md:col-span-3","data-sc-src":"src/pages/Admin/Leads.tsx:232",children:[s.jsx("button",{type:"submit",disabled:i,className:"rounded-lg bg-brand-500 px-4 py-2 text-sm font-semibold text-white disabled:opacity-50","data-sc-src":"src/pages/Admin/Leads.tsx:233",children:"저장"}),s.jsx("button",{type:"button",onClick:N,className:"rounded-lg border border-gray-300 px-4 py-2 text-sm dark:border-gray-600 dark:text-gray-200","data-sc-src":"src/pages/Admin/Leads.tsx:240",children:"취소"})]})]})}function W({lead:e,onChanged:i}){return e.accounts.length===0?s.jsx("p",{className:"text-sm text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:261",children:"아직 이 업체로 가입한 계정이 없다. 개인 메일로 가입했다면 아래 「어느 업체인지 모르는 가입자」에서 붙인다."}):s.jsxs("table",{className:"w-full text-sm","data-sc-src":"src/pages/Admin/Leads.tsx:268",children:[s.jsx("thead",{className:"text-xs text-gray-500 dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:269",children:s.jsxs("tr",{className:"text-left","data-sc-src":"src/pages/Admin/Leads.tsx:270",children:[s.jsx("th",{className:"py-1 pr-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:271",children:"계정"}),s.jsx("th",{className:"py-1 pr-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:272",children:"연결"}),s.jsx("th",{className:"py-1 pr-3 text-right font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:273",children:"분석"}),s.jsx("th",{className:"py-1 pr-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:274",children:"가입"}),s.jsx("th",{className:"py-1 pr-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:275",children:"마지막 활동"}),s.jsx("th",{"data-sc-src":"src/pages/Admin/Leads.tsx:276"})]})}),s.jsx("tbody",{"data-sc-src":"src/pages/Admin/Leads.tsx:279",children:e.accounts.map(d=>s.jsxs("tr",{className:"border-t border-gray-100 dark:border-gray-800","data-sc-src":"src/pages/Admin/Leads.tsx:281",children:[s.jsxs("td",{className:"py-1.5 pr-3","data-sc-src":"src/pages/Admin/Leads.tsx:282",children:[s.jsx("span",{className:"text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:283",children:d.email}),d.displayName&&s.jsx("span",{className:"ml-2 text-xs text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:285",children:d.displayName})]}),s.jsx("td",{className:"py-1.5 pr-3","data-sc-src":"src/pages/Admin/Leads.tsx:288",children:s.jsx("span",{className:d.link==="manual"?"rounded bg-vi
1olet-100 px-1.5 py-0.5 text-[11px] text-violet-700 dark:bg-violet-900/30 dark:text-violet-200":"rounded bg-gray-100 px-1.5 py-0.5 text-[11px] text-gray-600 dark:bg-gray-700 dark:text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:289",children:d.link==="manual"?"손으로 연결":"도메인 자동"})}),s.jsx("td",{className:"py-1.5 pr-3 text-right font-semibold text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:299",children:d.cases}),s.jsx("td",{className:"py-1.5 pr-3 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:302",children:b(d.signupAt)}),s.jsxs("td",{className:"py-1.5 pr-3 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:303",children:[b(d.lastCaseAt),d.lastCaseAt&&s.jsxs("span",{className:"ml-1 text-xs text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:306",children:["(",w(d.lastCaseAt),")"]})]}),s.jsx("td",{className:"py-1.5 text-right","data-sc-src":"src/pages/Admin/Leads.tsx:309",children:s.jsx("button",{className:"text-xs text-gray-400 hover:text-red-500",title:"이 계정은 이 업체가 아니다 — 목록에서 뗀다",onClick:async()=>{d.link==="manual"?await Y(e.id,d.userId):await R(e.id,d.userId,!0),i()},"data-sc-src":"src/pages/Admin/Leads.tsx:310",children:"떼기"})})]},d.userId))})]})}function J(){const[e,i]=r.useState([]),[d,N]=r.useState([]),[c,h]=r.useState(!0),[n,x]=r.useState(null),[y,A]=r.useState(!1),[T,f]=r.useState(!1),[F,L]=r.useState(null),[k,I]=r.useState(null),[u,v]=r.useState("all"),p=r.useCallback(async()=>{h(!0);try{const[a,t]=await Promise.all([_(),O()]);i(a),N(t),x(null)}catch(a){x(a instanceof Error?a.message:String(a))}finally{h(!1)}},[]);r.useEffect(()=>{p()},[p]);const C=async(a,t)=>{A(!0);try{const g={name:a.name,stage:a.stage,domains:a.domainsText,source:a.source,docPath:a.docPath,contactName:a.contactName,contactRole:a.contactRole,phone:a.phone,email:a.email,website:a.website,nextAction:a.nextAction,note:a.note};t?await P(t,g):await U(g),f(!1),L(null),await p()}catch(g){x(g instanceof Error?g.message:String(g))}finally{A(!1)}},S=r.useMemo(()=>u==="all"?e:e.filter(a=>a.stage===u),[e,u]),j=r.useMemo(()=>({leads:e.length,accounts:e.reduce((a,t)=>a+t.accountCount,0),cases:e.reduce((a,t)=>a+t.caseCount,0),live:e.filter(a=>["trying","spreading","pilot","paying"].includes(a.stage)).length}),[e]);return s.jsxs(s.Fragment,{children:[s.jsx(M,{title:"영업 리드 관리",description:"업체별 영업 진행 상황과 실제 가입 계정"}),s.jsxs("div",{className:"mx-auto max-w-[1400px] px-4 py-6","data-sc-src":"src/pages/Admin/Leads.tsx:407",children:[s.jsxs("div",{className:"mb-1 flex items-center justify-between","data-sc-src":"src/pages/Admin/Leads.tsx:408",children:[s.jsx("h1",{className:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/Leads.tsx:409",children:"영업 리드 관리"}),s.jsx("button",{onClick:()=>{f(!0),L(null)},className:"rounded-lg bg-brand-500 px-4 py-2 text-sm font-semibold text-white","data-sc-src":"src/pages/Admin/Leads.tsx:412",children:"+ 리드 추가"})]}),s.jsxs("p",{className:"mb-5 text-sm leading-relaxed text-gray-500 dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:422",children:["업체 한 곳이 한 행이다. 이메일 도메인을 적어 두면 그 회사 메일로 가입한 계정이 자동으로 붙고, 개인 메일로 가입한 사람은 아래에서 손으로 붙인다."," ",s.jsxs("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:425",children:["누가 결정권자인지·무슨 말이 오갔는지 같은 서술은 ",s.jsx("code",{"data-sc-src":"src/pages/Admin/Leads.tsx:426",children:"docs/ops/sales/"})," 문서가 진본이다."]})]}),n&&s.jsx("div",{className:"mb-4 rounded-lg bg-red-50 px-4 py-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-200","data-sc-src":"src/pages/Admin/Leads.tsx:432",children:n}),s.jsx("div",{className:"mb-5 grid grid-cols-2 gap-3 md:grid-cols-4","data-sc-src":"src/pages/Admin/Leads.tsx:437",children:[{label:"리드",value:j.leads},{label:"살아 있는 곳",value:j.live,hint:"시험~유료"},{label:"연결된 계정",value:j.accounts},{label:"총 분석 건수",value:j.cases}].map(a=>s.jsxs("div",{className:"rounded-xl border border-gray-200 bg-white px-4 py-3 dark:border-gray-800 dark:bg-white/[0.03]","data-sc-src":"src/pages/Admin/Leads.tsx:444",children:[s.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:448",children:[a.label,a.hint&&s.jsxs("span",{className:"ml-1 text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:450",children:["(",a.hint,")"]})]}),s.jsx("div",{className:"text-2xl font-bold text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/Leads.tsx:452",children:a.value})]},a.label))}),s.jsxs("div",{className:"mb-4 flex flex-wrap gap-1.5","data-sc-src":"src/pages/Admin/Leads.tsx:457",children:[s.jsxs("button",{onClick:()=>v("all"),className:`rounded-full px-3 py-1 text-xs ${u==="all"?"bg-gray-900 text-white dark:bg-white dark:text-gray-900":"bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-300"}`,"data-sc-src":"src/pages/Admin/Leads.tsx:458",children:["전체 ",e.length]}),$.map(a=>{const t=e.filter(g=>g.stage===a).length;return s.jsxs("button",{onClick:()=>v(a),title:o[a].hint,className:`rounded-full px-3 py-1 text-xs ${u===a?"bg-gray-900 text-white dark:bg-white dark:text-gray-900":"bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-300"}`,"data-sc-src":"src/pages/Admin/Leads.tsx:471",children:[o[a].label," ",t]},a)})]}),T&&s.jsxs("div",{className:"mb-5 rounded-xl border border-brand-200 bg-brand-50/40 p-5 dark:border-brand-500/30 dark:bg-brand-500/5","data-sc-src":"src/pages/Admin/Leads.tsx:488",children:[s.jsx("h2",{className:"mb-4 text-base font-bold text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/Leads.tsx:489",children:"새 리드"}),s.jsx(E,{initial:q,submitting:y,onSubmit:a=>void C(a),onCancel:()=>f(!1)})]}),s.jsx("div",{className:"overflow-x-auto rounded-xl border border-gray-200 bg-white dark:border-gray-800 dark:bg-white/[0.03]","data-sc-src":"src/pages/Admin/Leads.tsx:499",children:s.jsxs("table",{className:"w-full text-sm","data-sc-src":"src/pages/Admin/Leads.tsx:500",children:[s.jsx("thead",{className:"bg-gray-50 text-xs text-gray-500 dark:bg-white/[0.02] dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:501",children:s.jsxs("tr",{className:"text-left","data-sc-src":"src/pages/Admin/Leads.tsx:502",children:[s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:503",children:"업체"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:504",children:"단계"}),s.jsx("th",{className:"px-4 py-3 text-right font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:505",children:"사람"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:506",children:"조직"}),s.jsx("th",{className:"px-4 py-3 text-right font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:507",children:"분석"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:508",children:"마지막 활동"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:509",children:"마지막 연락"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:510",children:"다음에 할 일"}),s.jsx("th",{className:"px-4 py-3","data-sc-src":"src/pages/Admin/Leads.tsx:511"})]})}),s.jsxs("tbody",{"data-sc-src":"src/pages/Admin/Leads.tsx:514",children:[c&&s.jsx("tr",{"data-sc-src":"src/pages/Admin/Leads.tsx:516",children:s.jsx("td",{colSpan:9,className:"px-4 py-10 text-center text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:517",children:"불러오는 중…"})}),!c&&S.length===0&&s.jsx("tr",{"data-sc-src":"src/pages/Admin/Leads.tsx:523",children:s.jsx("td",{colSpan:9,className:"px-4 py-10 text-center text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:524",children:"리드가 없다. 「+ 리드 추가」로 시작한다."})}),S.map(a=>s.jsxs(r.Fragment,{children:[s.jsxs("tr",{className:"cursor-pointer border-t border-gray-100 align-top hover:bg-gray-50/70 dark:border-gray-800 dark:hover:bg-white/[0.02]",onClick:()=>I(k===a.id?null:a.id),"data-sc-src":"src/pages/Admin/Leads.tsx:533",children:[s.jsxs("td",{className:"px-4 py-3","data-sc-src":"src/pages/Admin/Leads.tsx:537",children:[s.jsx("div",{className:"font-semibold text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/Leads.tsx:538",children:a.name}),s.jsx("div",{className:"mt-0.5 font-mono text-[11px] text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:539",children:a.domains.length>0?a.domains.join(", "):"도메인 미등록"})]}),s.jsx("td",{className:"px-4 py-3","data-sc-src":"src/pages/Admin/Leads.tsx:543",children:s.jsx("span",{className:`whitespace-nowrap rounded-full px-2 py-0.5 text-xs ${o[a.stage].badge}`,"data-sc-src":"src/pages/Admin/Leads.tsx:544",children:o[a.stage].label})}),s.jsxs("td",{className:"whitespace-nowrap px-4 py-3 text-right","data-sc-src":"src/pages/Admin/Leads.tsx:552",children:[s.jsx("span",{className:"font-semibold text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:553",children:a.accountCount}),a.peopleCount>0&&s.jsxs("span",{className:"text-xs text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:557",children:[" / ",a.peopleCount]})]}),s.jsx("td",{className:"px-4 py-3","data-sc-src":"src/pages/Admin/Leads.tsx:561",children:a.org?s.jsxs("span",{className:"whitespace-nowrap rounded-full bg-violet-100 px-2 py-0.5 text-xs text-violet-700 dark:bg-violet-900/30 dark:text-violet-200",title:`${a.org.name}${a.org.hasOwner?" · 조직장 있음":" · 조직장 미상"}`,"data-sc-src":"src/pages/Admin/Leads.tsx:563",children:["🏢 ",a.org.memberCount,"명",a.org.orgCount>1&&` · 조직 ${a.org.orgCount}`]}):s.jsx("span",{className:"text-xs text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:571",children:"—"})}),s.jsx("td",{className:"px-4 py-3 text-right font-semibold text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:574",children:a.caseCount}),s.jsx("td",{className:"px-4 py-3 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:577",children:a.lastActivityAt?w(a.lastActivityAt):"—"}),s.jsx("td",{className:"px-4 py-3 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:580",children:b(
1a.lastContactAt)}),s.jsx("td",{className:"px-4 py-3 text-gray-600 dark:text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:581",children:a.nextAction||s.jsx("span",{className:"text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:582",children:"—"})}),s.jsxs("td",{className:"px-4 py-3 text-right text-xs","data-sc-src":"src/pages/Admin/Leads.tsx:584",children:[s.jsx(D,{to:`/admin/leads/${a.id}`,onClick:t=>t.stopPropagation(),className:"mr-3 font-semibold text-brand-500 hover:underline",children:"상세"}),s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:595",children:k===a.id?"닫기":"열기"})]})]}),k===a.id&&s.jsx("tr",{className:"bg-gray-50/60 dark:bg-white/[0.02]","data-sc-src":"src/pages/Admin/Leads.tsx:599",children:s.jsx("td",{colSpan:9,className:"px-4 py-5","data-sc-src":"src/pages/Admin/Leads.tsx:600",children:F===a.id?s.jsx(E,{initial:B(a),submitting:y,onSubmit:t=>void C(t,a.id),onCancel:()=>L(null)}):s.jsxs("div",{className:"space-y-4","data-sc-src":"src/pages/Admin/Leads.tsx:609",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-1 text-sm text-gray-600 dark:text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:610",children:[a.contactName&&s.jsxs("span",{"data-sc-src":"src/pages/Admin/Leads.tsx:612",children:[s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:613",children:"담당"})," ",a.contactName,a.contactRole&&` (${a.contactRole})`]}),a.phone&&s.jsxs("span",{"data-sc-src":"src/pages/Admin/Leads.tsx:618",children:[s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:619",children:"전화"})," ",a.phone]}),a.email&&s.jsxs("span",{"data-sc-src":"src/pages/Admin/Leads.tsx:623",children:[s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:624",children:"메일"})," ",a.email]}),a.website&&s.jsx("a",{href:a.website.startsWith("http")?a.website:`https://${a.website}`,target:"_blank",rel:"noreferrer",className:"text-brand-500 hover:underline","data-sc-src":"src/pages/Admin/Leads.tsx:628",children:a.website}),a.source&&s.jsxs("span",{"data-sc-src":"src/pages/Admin/Leads.tsx:640",children:[s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:641",children:"경로"})," ",a.source]})]}),a.docPath&&s.jsxs("div",{className:"text-sm","data-sc-src":"src/pages/Admin/Leads.tsx:646",children:[s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:647",children:"상세 문서"})," ",s.jsx("code",{className:"rounded bg-gray-100 px-1.5 py-0.5 font-mono text-xs text-gray-700 dark:bg-gray-800 dark:text-gray-200","data-sc-src":"src/pages/Admin/Leads.tsx:648",children:a.docPath})]}),a.note&&s.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300","data-sc-src":"src/pages/Admin/Leads.tsx:654",children:a.note}),s.jsxs("div",{"data-sc-src":"src/pages/Admin/Leads.tsx:657",children:[s.jsxs("h3",{className:"mb-2 text-sm font-bold text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:658",children:["이 업체로 가입한 계정 ",a.accountCount,"개 · 분석 ",a.caseCount,"건"]}),s.jsx(W,{lead:a,onChanged:()=>void p()})]}),s.jsxs("div",{className:"flex flex-wrap gap-2 pt-1","data-sc-src":"src/pages/Admin/Leads.tsx:664",children:[s.jsx("button",{onClick:()=>L(a.id),className:"rounded-lg border border-gray-300 px-3 py-1.5 text-xs dark:border-gray-600 dark:text-gray-200","data-sc-src":"src/pages/Admin/Leads.tsx:665",children:"수정"}),s.jsx("button",{onClick:async()=>{await P(a.id,{touch:!0}),await p()},className:"rounded-lg border border-gray-300 px-3 py-1.5 text-xs dark:border-gray-600 dark:text-gray-200",title:"마지막 연락 시각을 지금으로 찍는다","data-sc-src":"src/pages/Admin/Leads.tsx:671",children:"방금 연락함"}),s.jsx("button",{onClick:async()=>{confirm(`${a.name} 리드를 삭제할까요?`)&&(await G(a.id),await p())},className:"rounded-lg border border-red-200 px-3 py-1.5 text-xs text-red-600 dark:border-red-500/30 dark:text-red-300","data-sc-src":"src/pages/Admin/Leads.tsx:681",children:"삭제"})]})]})})})]},a.id))]})]})}),s.jsxs("div",{className:"mt-8","data-sc-src":"src/pages/Admin/Leads.tsx:704",children:[s.jsxs("h2",{className:"text-base font-bold text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/Leads.tsx:705",children:["어느 업체인지 모르는 가입자 ",d.length,"명"]}),s.jsxs("p",{className:"mb-3 mt-1 text-sm leading-relaxed text-gray-500 dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:708",children:["개인 메일로 가입했거나 아직 리드로 등록 안 한 곳의 계정이다."," ",s.jsx("span",{className:"text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:710",children:"같은 사무실 사람이 개인 메일로 나눠 가입하면 여기서 붙이기 전까지 «팀이 쓰고 있다»가 안 보인다."})]}),s.jsx("div",{className:"overflow-x-auto rounded-xl border border-gray-200 bg-white dark:border-gray-800 dark:bg-white/[0.03]","data-sc-src":"src/pages/Admin/Leads.tsx:715",children:s.jsxs("table",{className:"w-full text-sm","data-sc-src":"src/pages/Admin/Leads.tsx:716",children:[s.jsx("thead",{className:"bg-gray-50 text-xs text-gray-500 dark:bg-white/[0.02] dark:text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:71
17",children:s.jsxs("tr",{className:"text-left","data-sc-src":"src/pages/Admin/Leads.tsx:718",children:[s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:719",children:"계정"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:720",children:"가입"}),s.jsx("th",{className:"px-4 py-3 text-right font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:721",children:"분석"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:722",children:"마지막 활동"}),s.jsx("th",{className:"px-4 py-3 font-medium","data-sc-src":"src/pages/Admin/Leads.tsx:723",children:"업체에 붙이기"})]})}),s.jsxs("tbody",{"data-sc-src":"src/pages/Admin/Leads.tsx:726",children:[d.length===0&&!c&&s.jsx("tr",{"data-sc-src":"src/pages/Admin/Leads.tsx:728",children:s.jsx("td",{colSpan:5,className:"px-4 py-8 text-center text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:729",children:"모든 가입자가 업체에 연결돼 있다."})}),d.map(a=>s.jsxs("tr",{className:"border-t border-gray-100 dark:border-gray-800","data-sc-src":"src/pages/Admin/Leads.tsx:735",children:[s.jsxs("td",{className:"px-4 py-2.5","data-sc-src":"src/pages/Admin/Leads.tsx:739",children:[s.jsx("span",{className:"text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:740",children:a.email}),a.displayName&&s.jsx("span",{className:"ml-2 text-xs text-gray-400","data-sc-src":"src/pages/Admin/Leads.tsx:742",children:a.displayName})]}),s.jsx("td",{className:"px-4 py-2.5 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:745",children:b(a.signupAt)}),s.jsx("td",{className:"px-4 py-2.5 text-right font-semibold text-gray-800 dark:text-gray-100","data-sc-src":"src/pages/Admin/Leads.tsx:746",children:a.cases}),s.jsx("td",{className:"px-4 py-2.5 text-gray-500","data-sc-src":"src/pages/Admin/Leads.tsx:749",children:a.lastCaseAt?w(a.lastCaseAt):"—"}),s.jsx("td",{className:"px-4 py-2.5","data-sc-src":"src/pages/Admin/Leads.tsx:752",children:s.jsxs("select",{className:"rounded-lg border border-gray-300 px-2 py-1 text-xs dark:border-gray-600 dark:bg-gray-900 dark:text-white",value:"",onChange:async t=>{t.target.value&&(await R(t.target.value,a.userId),await p())},"data-sc-src":"src/pages/Admin/Leads.tsx:753",children:[s.jsx("option",{value:"","data-sc-src":"src/pages/Admin/Leads.tsx:762",children:"— 선택 —"}),e.map(t=>s.jsx("option",{value:t.id,"data-sc-src":"src/pages/Admin/Leads.tsx:764",children:t.name},t.id))]})})]},a.userId))]})]})})]})]})]})}export{J as default};

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