PageSourceSearch

https://snapbox.ai/assets/ContentsCreateNew-Y2QQt1Op.js

js snapbox.ai collected 2026-10-05 12:39:33 UTC 8,897 bytes, 2 lines download raw bytes

1import{_ as j,r as L,m as x,B as q,o as A,p as D,c as p,b as e,t as v,k as T,w as k,v as N,e as B,F as W,f as F,i as b,q as z,s as O,h as J,u as K,z as H,j as Q,g as u,n as X,y as Y}from"./index-GRB8Jcml.js";import{S}from"./ContentsService-DKa2qyOq.js";import{C as Z}from"./compressor.esm-FeJMiU6q.js";import{S as $}from"./spinner-CjlHwONo.js";const ss={name:"ContentsCreateNew",components:{SNAP_SPINNER:$},setup(){const t=L([]),s=L(""),d=x({alert_display:!1,alert_confirm:!1,msg:"",is_uploading:!1,showGuide:!1,selected:0}),i=K(),_=H().params.content_id||null,f=x({title:"",link:"",is_ad:!1}),n=["오늘의스냅","꾸안꾸","출근룩","체형커버코디","여행코디"],m=q(()=>t.value.length>0),w=a=>{const l="#"+a,o=s.value,c=o.length===0||o.endsWith(" ")||o.endsWith(`
2`)?"":" ",r=o+c+l+" ";s.value=r.slice(0,2e3)},E=a=>{const l=t.value[a];l&&l.links.push({title:"",link:"",is_ad:!1})},I=(a,l)=>{const o=t.value[a];o&&o.links.length>1&&o.links.splice(l,1)},V=a=>(a.links||[]).some(l=>(l.link||"").trim()),y=a=>{d.alert_display=!0,d.alert_confirm=!1,d.msg=a},P=a=>{const l=a.target.files,o=20-t.value.length;l.length>
2o&&y("최대 20개까지 선택 가능합니다.");for(let c=0;c<Math.min(l.length,o);c++){const r=l[c];if(r)if(r.type.startsWith("video/")){y("사진만 등록할 수 있습니다.");continue}else if(r.type.startsWith("image/")){const g={file:r,photo:URL.createObjectURL(r),is_video:0,order:0,links:[{title:"",link:"",is_ad:!1}]};if(t.value.push(g),r.type!=="image/gif"){let h=1;r.size>6194304?h=.1:r.size>5194304?h=.2:r.size>4194304?h=.3:r.size>3145728?h=.4:r.size>2097152&&(h=.5),new Z(r,{quality:h,success(C){g.file=C},error(C){console.log(C.message)}})}}else y("사진 파일을 선택해주세요.")}a.target.value=null},G=a=>{t.value.splice(a,1),d.selected>=t.value.length?d.selected=Math.max(0,t.value.length-1):a<d.selected&&(d.selected-=1)},U=()=>{if(t.value.length===0)return y("사진을 선택해주세요."),!1;d.alert_confirm=!0,M()},M=()=>{if(d.alert_confirm){if(d.is_uploading==!1){d.is_uploading=!0,d.alert_display=!1;const a=(f.link||"").trim();t.value.forEach((o,c)=>{o.order=c,o.links=c===0&&a?[{title:"상품 보기",link:a,is_ad:!!f.is_ad}]:[]});const l=new FormData;l.append("contents",s.value),l.append("photos",JSON.stringify(t.value)),_?(t.value.forEach(o=>{o.file&&l.append("file_photos[]",o.file)}),S.updateNew(_,l).then(o=>{if(o.status==200){i.push("/mypage");return}d.is_uploading=!1}).catch(o=>{var c;alert(((c=o.response)==null?void 0:c.data)||"수정 실패"),d.is_uploading=!1})):(l.append("is_hidden",0),l.append("is_main",1),t.value.forEach(o=>{l.append("file_photos[]",o.file)}),S.upload(l).then(o=>{if(o.status==200){i.push("/mypage");return}d.is_uploading=!1}).catch(o=>{alert(o.response.data),d.is_uploading=!1}))}}else d.msg=="등록되었습니다."||d.msg=="수정되었습니다."?i.push("/mypage"):d.alert_display=!1};return A(()=>{_&&S.editData(_).then(a=>{var o;const l=(o=a.data)==null?void 0:o.content;if(l){s.value=l.contents||"",t.value=(l.photos||[]).map(c=>({id:c.id,file:null,photo:c.photo,is_video:c.is_video?1:0,order:c.order??0,links:[]}));for(const c of l.photos||[]){const r=(c.links||[]).find(g=>g&&g.link);if(r){f.title=r.title||"",f.link=r.link||"",f.is_ad=!!r.is_ad;break}}}}).catch(a=>console.log(a))}
2),{editId:_,medias:t,intro:s,postLink:f,recommendedTags:n,addTag:w,addLink:E,removeLink:I,hasLink:V,canShare:m,...D(d),onMediaChange:P,removeMedia:G,upload:U,clickConfirm:M}}},es={class:"sc_page"},ts={class:"sc_topbar"},os={class:"sc_main"},is={class:"sc_guide_body"},ls={class:"sc_section"},ns={class:"sc_photos"},as=["onClick"],ds=["src"],rs=["src"],cs={key:2,class:"sc_photo_link_badge","aria-label":"링크 있음"},ps=["onClick"],us={class:"sc_photo_count"},fs={key:1,class:"sc_photo_tip"},_s={class:"sc_section"},hs={class:"sc_link_photo"},ks={class:"sc_link_item"},ms={class:"sc_link_fields"},gs={class:"sc_link_ad"},vs={class:"sc_section"},ys={class:"sc_counter"},bs={class:"sc_bottom"},ws=["disabled"],Cs={class:"popup_layer"},Ns={class:"alert"},Ss={class:"msg"},Ms={class:"btn_area"};function Ls(t,s,d,i,R,_){const f=Q("SNAP_SPINNER");return u(),p("div",es,[e("header",ts,[e("h1",null,v(i.editId?"게시글 수정":"게시글 작성하기"),1),e("button",{type:"button",class:"sc_btn_icon",onClick:s[0]||(s[0]=n=>t.$router.go(-1)),"aria-label":"닫기"},s[11]||(s[11]=[e("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#111","stroke-width":"2","stroke-linecap":"round"},[e("line",{x1:"6",y1:"6",x2:"18",y2:"18"}),e("line",{x1:"18",y1:"6",x2:"6",y2:"18"})],-1)]))]),e("div",os,[e("button",{type:"button",class:"sc_guide_row",onClick:s[1]||(s[1]=n=>t.showGuide=!t.showGuide)},[s[13]||(s[13]=e("span",null,"작성 시 유의사항",-1)),(u(),p("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"#999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:T({transform:t.showGuide?"rotate(90deg)":"none"})},s[12]||(s[12]=[e("polyline",{points:"9 6 15 12 9 18"},null,-1)]),4))]),k(e("div",is,s[14]||(s[14]=[e("p",null,"· 실제 촬영한 사진만 등록해 주세요.",-1),e("p",null,"· 타인의 저작권을 침해하는 콘텐츠는 제재될 수 있습니다.",-1),e("p",null,"· 욕설·비방·음란성 내용은 삭제될 수 있습니다.",-1)]),512),[[N,t.showGuide]]),e("section",ls,[s[18]||(s[18]=e("h2",{class:"sc_label"},[B("사진 첨부 "),e("span",{class:"sc_req"},"(필수)")],-1)),e("div",ns,[(u(!0),p(W,null,F(i.medias,(n,m)=>(u(),p("div",{key:n.photo,class:X(["sc_photo",{active:m===t.selected}]),onClick:w=>t.selected=m},[n.is_video?(u(),p("video",{key:0,src:n.photo,muted:"",playsinline:""},null,8,ds)):(u(),p("img",{key:1,src:n.photo},null,8,rs)),i.postLink.link?(u(),p("span",cs,s[15]||(s[15]=[e("svg",{viewBox:"0 0 24 24",width:"11",height:"11",fill:"none",stroke:"#fff","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},[e("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),e("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})],-1)]))):b("",!0),e("button",{type:"button",class:"sc_photo_del",onClick:Y(w=>i.removeMedia(m),["stop"]),"aria-label":"삭제"},s[16]||(s[16]=[e("svg",{viewBox:"0 0 24 24",width:"13",height:"13",fill:"none",stroke:"#fff","stroke-width":"2.4","stroke-linecap":"round"},[e("line",{x1:"6",y1:"6",x2:"18",y2:"18"}),e("line",{x1:"18",y1:"6",x2:"6",y2:"18"})],-1)]),8,ps)],10,as))),128)),i.medias.length<20?(u(),p("button",{key:0,type:"button",class:"sc_photo_add",onClick:s[2]||(s[2]=n=>t.$refs.uploadfile.click())},[s[17]||(s[17]=e("svg",{viewBox:"0 0 24 24",width:"26",height:"26",fill:"none",stroke:"#bbb","stroke-width":"1.6","stroke-linecap":"round"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)),e("span",us,v(i.medias.length)+"/20",1)])):b("",!0),i.medias.length===0?(u(),p("div",fs," 사진을 등록해 주세요. ")):b("",!0)])]),e("section",_s,[s[20]||(s[20]=e("h2",{class:"sc_label"},"링크",-1)),s[21]||(s[21]=e("p",{class:"sc_sub"},"외부 링크를 연결할 수 있어요.",-1)),e("div",hs,[e("div",ks,[e("div",ms,[k(e("input",{type:"url","onUpdate:modelValue":s[3]||(s[3]=n=>i.postLink.link=n),placeholder:"https://"},null,512),[[z,i.postLink.link]]),e("label",gs,[k(e("input",{type:"checkbox","onUpdate:modelValue":s[4]||(s[4]=n=>i.postLink.is_ad=n)},null,512),[[O,i.postLink.is_ad]]),s[19]||(s[19]=e("span",null,"수익형 제휴 링크가 포함되어 있습니다.",-1))])])])])]),e("section",vs,[s[22]||(s[22]=e("h2",{class:"sc_label"},"본문 입력",-1)),k(e("textarea",{class:"sc_body","onUpdate:modelValue":s[5]||(s[5]=n=>i.intro=n),maxlength:"2000",rows:"5",placeholder:"캡션 추가."},null,512),[[z,i.intro]]),b("",!0),e("div",ys,v(i.intro.length)+"/2,000",1)])]),e("div",bs,[e("button",{type:"button",class:"sc_btn_share",disabled:!i.canShare||t.is_uploading,onClick:s[6]||(s[6]=(...n)=>i.upload&&i.upload(...n))},v(t.is_uploading?"저장 중...":i.editId?"수정 완료":"공유하기"),9,ws)]),e("input",{type:"file",multiple:"",accept:"image/*",onChange:s[7]||(s[7]=(...n)=>i.onMediaChange&&i.onMediaChange(...n)),ref:"uploadfile",style:{display:"none"}},null,544),k(e("div",Cs,[e("div",Ns,[e("h1",null,[s[23]||(s[23]=B(" 알림")),e("button",{type:"button",class:"btn_close",onClick:s[8]||(s[8]=n=>t.alert_display=!1)}," 닫기 ")]),e("div",Ss,v(t.msg),1),e("div",Ms,[k(e("button",{type:"button",class:"btn_basic",onClick:s[9]||(s[9]=n=>t.alert_display=!1)}," 취소 ",512),[[N,t.alert_confirm]]),e("button",{type:"button",class:"btn_basic btn_color_BK",style:{"margin-left":"5px"},onClick:s[10]||(s[10]=(...n)=>i.clickConfirm&&i.clickConfirm(...n))}," 확인 ")])])],512),[[N,t.alert_display]]),J(f,{loading:t.is_uploading},null,8,["loading"])])}const Es=j(ss,[["render",Ls],["__scopeId","data-v-40be1eb3"]]);export{Es 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.