PageSourceSearch

https://gojin.com/_nuxt/DWI7IURz.js

js gojin.com collected 2026-10-06 03:22:26 UTC 6,973 bytes, 1 lines download raw bytes

1import{R as A,r,b as $,c as o,a as i,e as a,j as v,D as f,h,S as G,q as b,d as U,G as j,E as w,f as K,F as P,k as H,t as y,C as J}from"./CTAYT8W8.js";import{S as O}from"./AORGcRXT.js";import"./q317vMsK.js";import{u as Q}from"./Dy34pbDW.js";import"./CqkleIqs.js";import"./CElwm-g9.js";import"./B9ygI19o.js";const W={class:"admin--event-form"},X={class:"admin--form-group"},Y={key:0,value:"facebook"},Z={key:1,value:"youtube"},ee={class:"admin--form-group"},ae={class:"admin--checkbox-group"},te={class:"admin--checkbox-label"},le={class:"admin--form-group"},se={class:"admin--form-group"},ne={class:"admin--form-group"},oe={key:0,class:"admin--form-group"},ie={class:"admin--form-group"},re={class:"admin--file-list"},ue={class:"admin--file-name"},de={class:"admin--file-size"},me=["onClick"],ce={key:1,class:"admin--form-group"},pe={key:0,class:"admin--link-input-group"},ve={key:1,class:"admin--file-list"},fe={class:"admin--file-item"},be=["href"],ye={class:"admin--form-actions"},ge=["disabled"],ke={key:2,class:"admin--alert admin--alert-success"},_e={key:3,class:"admin--alert admin--alert-error"},De={__name:"create",setup(he){const C=A(),u=U(),{post:D,upload:F}=Q(),d=r(!1),_=r(""),n=r(""),g=r([]),M=r(null),m=r(""),{companyName:B}=$(),t=r({category:"insta",flag:"",allow_comment:!1,is_notice:!1,is_show:!0,name:B,email:"[email protected]",start_date:"",end_date:"",title:"",content:"",tag:"",file_urls:[],link:""}),T=()=>{M.value?.click()},q=s=>{const e=Array.from(s.target.files);g.value.push(...e),s.target.value=""},z=s=>{g.value.splice(s,1)},L=s=>{if(s===0)return"0 Bytes";const e=1024,l=["Bytes","KB","MB","GB"],c=Math.floor(Math.log(s)/Math.log(e));return Math.round(s/Math.pow(e,c)*100)/100+" "+l[c]},N=()=>{if(!m.value){n.value="링크를 입력하세요.",setTimeout(()=>{n.value=""},3e3);return}try{new URL(m.value)}catch{n.value="올바른 URL 형식이 아닙니다. (예: https://example.com)",setTimeout(()=>{n.value=""},3e3);return}t.value.link=m.value,m.value=""},R=()=>{t.value.link=""},E=async()=>{if(_.value="",n.value="",!t.value.category){n.value="카테고리를 선택하세요.";return}if(!t.value.title){n.value="제목을 입력하세요.";return}if(!t.value.content){n.value="내용을 입력하세요.";return}d.value=!0;try{let s=[];if(g.value.length>0)for(const k of g.value){const S=new FormData;S.append("file",k);const{data:p,error:V}=await F("/upload/sns-file",S);if(V){n.value=`파일 업로드에 실패했습니다: ${k.name}`,d.value=!1;return}if(!p?.success||!p?.data?.url){n.value="파일 업로드 응답이 올바르지 않습니다.",d.value=!1;return}s.push({name:k.name,url:p.data?.url||p.url,size:k.size})}let e=t.value.content;if(e){const p=(U().public.siteUrl||window.location.origin).replace(/https?:\/\//,"").replace(/\//g,"\\/"),V=new RegExp(`https?:\\/\\/${p}`,"g");e=e.replace(V,"")}const l={...t.value,allow_comment:t.value.allow_comment?1:0,is_notice:t.value.is_notice?1:0,content:e,file_urls:s},{data:c,error:x}=await D("/board/sns",l);x?n.value=x.message||"등록에 실패했습니다.":(_.value="SNS가 등록되었습니다.",setTimeout(()=>{C.push("/admin/board/sns")},1e3))}catch(s){n.value="서버 오류가 발생했습니다.",console.error("Save error:",s)}finally{d.value=!1}},I=()=>{C.push("/admin/board/sns")};return(s,e)=>(i(),o("div",W,[a("form",{onSubmit:J(E,["prevent"]),class:"admin--form"},[a("div",X,[e[9]||(e[9]=a("label",{class:"admin--form-label"},[h("카테고리 "),a("span",{class:"admin--required"},"*")],-1)),f(a("select",{"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.category=l),class:"admin--form-select",required:""},[e[7]||(e[7]=a("option",{value:""},"카테고리를 선택하세요",-1)),e[8]||(e[8]=a("option",{value:"insta"},"인스타그램",-1)),b(u).public.company==="k"?(i(),o("option",Y,"페이스북")):v("",!0),b(u).public.company==="k"?(i(),o("option",Z,"유튜브")):v("",!0)],512),[[G,t.value.category]])]),a("div",ee,[e[11]||(e[11]=a("label",{class:"admin--form-label"},"노출여부",-1)),a("div",ae,[a("label",te,[f(a("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.is_show=l),type:"checkbox"},null,512),[[j,t.value.is_show]]),e[10]||(e[10]=a("span",null,"노출",-1))])])]),a("div",le,[e[12]||(e[12]=a("label",{class:"admin--form-label"},"이름",-1)),f(a("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.name=l),type:"text",class:"admin--form-input",placeholder:"이름을 입력하세요"},null,512),[[w,t.value.name]])]),a("div",se,[e[13]||(e[13]=a("label",{class:"admin--form-label"},[h("제목 "),a("span",{class:"admin--required"},"*")],-1)),f(a("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>t.value.title=l),type:"text",class:"admin--form-input",placeholder:"제목을 입력하세요",required:""},null,512),[[w,t.value.title]])]),a("div",ne,[e[14]||(e[14]=a("label",{class:"admin--form-label"},[h("내용 "),a("span",{class:"admin--required"},"*")],-1)),K(O,{modelValue:t.value.content,"onUpdate:modelValue":e[4]||(e[4]=l=>t.value.content=l)},null,8,["modelValue"])]),b(u).public.company==="h"?(i(),o("div",oe,[e[15]||(e[15]=a("label",{class:"admin--form-label"},"태그",-1)),f(a("textarea",{"onUpdate:modelValue":e[5]||(e[5]=l=>t.value.tag=l),class:"admin--form-input",placeholder:"태그를 입력하세요",rows:"3"},null,512),[[w,t.value.tag]])])):v("",!0),a("div",ie,[e[16]||(e[16]=a("label",{class:"admin--form-label"},[h("파일첨부"),a("em",{class:"caution--text--small"},"(* 첫번째 파일은 리스트용으로 사용됩니다.)")],-1)),a("div",re,[(i(!0),o(P,null,H(g.value,(l,c)=>(i(),o("div",{key:c,class:"admin--file-item"},[a("span",ue,y(l.name),1),a("span",de,"("+y(L(l.size))+")",1),a("button",{type:"button",class:"admin--btn-remove-file",onClick:x=>z(c)}," 삭제 ",8,me)]))),128))]),a("input",{ref_key:"fileInput",ref:M,type:"file",multiple:"",class:"admin--form-file-hidden",onChange:q},null,544),a("button",{type:"button",class:"admin--btn admin--btn-secondary",onClick:T}," 파일 추가 ")]),b(u).public.company==="i"||b(u).public.company==="k"||b(u).public.company==="h"?(i(),o("div",ce,[e[17]||(e[17]=a("label",{class:"admin--form-label"},"링크",-1)),t.value.link?(i(),o("div",ve,[a("div",fe,[a("a",{href:t.value.link,target:"_blank",class:"admin--file-name"},y(t.value.link),9,be),a("button",{type:"button",class:"admin--btn-remove-file",onClick:R}," 삭제 ")])])):(i(),o("div",pe,[f(a("input",{"onUpdate:modelValue":e[6]||(e[6]=l=>m.value=l),type:"url",class:"admin--form-input",placeholder:"https://example.com"},null,512),[[w,m.value]]),a("button",{type:"button",class:"admin--btn admin--btn-secondary",onClick:N}," 링크 추가 ")]))])):v("",!0),a("div",ye,[a("button",{type:"submit",class:"admin--btn admin--btn-primary",disabled:d.value},y(d.value?"저장 중...":"확인"),9,ge),a("button",{type:"button",class:"admin--btn admin--btn-secondary",onClick:I}," 목록 ")]),_.value?(i(),o("div",ke,y(_.value),1)):v("",!0),n.value?(i(),o("div",_e,y(n.value),1)):v("",!0)],32)]))}};export{De 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.