시알리스 구매 - 시알리스스토어 > 공지사항

본문 바로가기

사이트 내 전체검색

뒤로가기 공지사항

시알리스 구매 - 시알리스스토어

페이지 정보

작성자 utzz15kd 작성일 26-11-15 19:08 조회 4 댓글 0

본문

시알리스 구매 - 시알리스스토어

KzLnqmh.png

시알리스 구매와 타다라필의 주요 성분, 제품 특징, 함량, 복용법, 주의사항과 구매 전 확인사항을 알기 쉽게 안내합니다. 시알리스 가격, 타다라필 정보 등 관련 내용을 한곳에서 확인하고, 처방 및 정식 구매 절차를 이해하는 데 도움을 드리는 정보 중심 사이트입니다.
시알리스 구매,시알리스스토어



시알리스 스토어 시알리스 구매 - 시알리스스토어 시알리스 구매 - 시알리스스토어 시알리스 구매 - 시알리스스토어 CIALIS STORE 시알리스 구매 필요한 정보를 한눈에 시알리스 구매 과 제품 함량, 가격, 복용방법부터 정식 절차까지 쉽고 편하게 확인하세요. 구매 안내 상담하기 제품 정보 함량 안내 복용 가이드 구매 절차 CIALIS STORE 시알리스스토어 브랜드 소개 시알리스에 대한 필요한 정보를 쉽고 편하게 확인할 수 있는 정보 중심의 브랜드입니다. 필요한 정보를 한곳에서 쉽고 명확하게 시알리스스토어는 시알리스에 관심이 있는 분들이 제품에 대한 기본적인 정보를 보다 쉽게 확인할 수 있도록 구성한 남성 건강 정보 브랜드입니다. 시알리스는 타다라필(Tadalafil)을 주요 성분으로 사용하는 발기부전 치료제로 알려져 있습니다. 하지만 제품을 알아볼 때 단순히 제품명이나 가격만 확인하는 것보다 성분과 함량, 복용 방법, 주의사항 등을 함께 확인하는 것이 중요합니다. 시알리스스토어는 이러한 정보를 복잡한 의학 용어만 나열하지 않고 일반적인 이용자가 이해하기 쉬운 방식으로 정리하는 것을 목표로 합니다. 시알리스스토어가 제공하는 정보 시알리스스토어에서는 제품의 기본 정보부터 주요 성분과 함량, 복용 방법, 복용 전 확인해야 할 사항, 일반적으로 알려진 이상반응 등에 대한 정보를 단계적으로 확인할 수 있도록 구성합니다. 처음 시알리스에 대해 알아보는 분도 제품이 어떤 의약품인지, 어떤 성분이 사용되는지, 복용할 때 무엇을 주의해야 하는지 쉽게 이해할 수 있도록 핵심 내용을 중심으로 설명합니다. 특히 개인마다 건강 상태와 복용 중인 약물이 다를 수 있기 때문에 모든 사람에게 동일한 복용 방법이 적용되는 것은 아닙니다. 따라서 제품 정보와 함께 복용 전 확인해야 할 사항을 충분히 살펴볼 수 있도록 안내합니다. OUR DIRECTION 정확한 정보와 편리한 이용 경험 시알리스스토어는 단순히 제품을 소개하는 데 그치지 않고, 시알리스와 관련해 궁금한 내용을 한 페이지에서 자연스럽게 확인할 수 있는 정보 공간을 만들어가는 것을 목표로 합니다. 제품을 처음 알아보는 단계부터 제품의 성분과 함량을 확인하고, 복용 방법과 주의사항을 살펴보는 과정까지 필요한 정보를 순서대로 확인할 수 있도록 사이트를 구성합니다. 의약품은 개인의 건강 상태에 따라 적합한 사용 방법이 달라질 수 있으므로, 사이트에서 제공하는 정보는 일반적인 정보 확인을 위한 용도로 활용하고 실제 복용 여부와 방법은 의료진 또는 약사와 상담하는 것을 권장합니다. 시알리스스토어 시알리스에 대한 제품 정보부터 성분, 복용 가이드와 주의사항까지 필요한 내용을 한곳에서 쉽고 편하게 확인할 수 있도록 정보를 제공합니다. CIALIS PRODUCT 시알리스 제품 특징 시알리스의 주요 성분과 함량, 제품별 특징을 쉽게 확인해보세요. CIALIS 타다라필을 주요 성분으로 하는 발기부전 치료제 시알리스는 타다라필(Tadalafil)을 주요 성분으로 사용하는 발기부전 치료제입니다. 성적 자극이 있을 때 음경으로의 혈류가 원활하게 이루어지는 데 도움을 주는 방식으로 작용합니다. 제품은 여러 함량으로 제공되며 개인의 건강 상태, 복용 중인 약물 등에 따라 적절한 용량과 복용 방법이 달라질 수 있습니다. 주요 성분 Tadalafil 제품 함량 5mg · 10mg · 20mg 제형 필름코팅정 01 타다라필 시알리스의 주요 성분으로, PDE-5 억제제에 해당합니다. 02 다양한 함량 제품에 따라 5mg, 10mg, 20mg 등 다양한 함량이 사용됩니다. 03 복용 전 확인 기존 질환이나 복용 중인 약물이 있다면 의료진 또는 약사에게 확인하는 것이 좋습니다. 04 정식 구매 절차 국내 허가 의약품은 정해진 처방 및 판매 절차에 따라 구매해야 합니다. PRICE INFORMATION 시알리스 가격 안내 함량별 제품 정보를 확인하고 정확한 가격은 정식 판매·처방 경로에서 확인하세요. 5mg 시알리스 5mg 타다라필 5mg 저용량 제품 정보 및 복용 관련 안내 가격 확인 문의 10mg 시알리스 10mg 타다라필 10mg 제품 특징 및 복용 관련 안내 가격 확인 문의 20mg 시알리스 20mg 타다라필 20mg 제품 함량 및 복용 전 확인사항 안내 가격 확인 문의 가격 안내 의약품 가격은 판매처, 처방 및 조제 조건 등에 따라 달라질 수 있습니다. 실제 구매 전 현재 가격과 처방·판매 조건을 확인하시기 바랍니다. 시알리스 구매 전 확인하세요 시알리스는 전문의약품으로, 개인의 건강 상태와 복용 중인 약물에 따라 사용 가능 여부가 달라질 수 있습니다. 특히 질산염 계열 약물을 복용하고 있다면 반드시 의료진에게 알리고 복용 여부를 확인해야 합니다. CIALIS STORE FAQ 시알리스스토어 FAQ 시알리스와 타다라필에 대해 자주 궁금해하는 내용을 쉽게 확인해보세요. 시알리스는 어떤 의약품인가요? + 시알리스는 타다라필(Tadalafil)을 주요 성분으로 사용하는 발기부전 치료제입니다. 성적 자극이 있을 때 음경으로 혈액이 원활하게 흐르는 데 도움을 주는 방식으로 작용합니다. 시알리스의 주요 성분은 무엇인가요? + 시알리스의 주요 성분은 타다라필입니다. 타다라필은 PDE-5 억제제에 해당하는 성분으로, 발기부전 치료에 사용됩니다. 시알리스는 어떤 함량이 있나요? + 시알리스는 제품 및 처방 형태에 따라 5mg, 10mg, 20mg 등의 함량이 있습니다. 어떤 함량을 사용할지는 개인의 상태와 의료진의 판단에 따라 달라질 수 있습니다. 시알리스는 얼마나 오래 효과가 지속되나요? + 타다라필은 다른 일부 발기부전 치료제보다 작용 시간이 긴 편으로 알려져 있습니다. 다만 개인마다 반응과 지속 시간에는 차이가 있을 수 있습니다. 시알리스를 복용하면 바로 발기가 되나요? + 시알리스는 성적 자극 없이 자동으로 발기를 일으키는 약이 아닙니다. 약을 복용했다고 해서 바로 발기가 되는 것은 아니며, 성적 자극이 있어야 약효가 나타날 수 있습니다. 시알리스 복용 전에 확인해야 할 사항은 무엇인가요? + 현재 복용 중인 약물이 있거나 심혈관 질환 등 기존 질환이 있다면 복용 전에 의료진에게 알려야 합니다. 특히 질산염 계열 약물을 복용하는 경우에는 함께 사용하면 안 되므로 반드시 의료진에게 확인해야 합니다. 시알리스 복용 후 나타날 수 있는 증상은 무엇인가요? + 두통, 소화불량, 안면홍조, 코막힘, 근육통이나 허리 통증 등이 나타날 수 있습니다. 증상이 심하거나 평소와 다른 이상 증상이 나타난다면 의료진과 상담하는 것이 좋습니다. 시알리스는 누구나 복용할 수 있나요? + 모든 사람에게 적합한 것은 아닙니다. 복용 중인 약물이나 심혈관 질환 등의 건강 상태에 따라 사용하면 안 되는 경우가 있으므로, 자신의 상태에 맞는 복용 여부를 의료진에게 확인하는 것이 중요합니다. 시알리스 가격은 어떻게 결정되나요? + 실제 가격은 판매·조제 조건, 제품의 함량과 수량 등에 따라 달라질 수 있습니다. 정확한 가격과 처방·판매 조건은 정식 의료기관이나 약국 등에서 확인하는 것이 좋습니다. 시알리스 복용에 대해 상담이 필요한 경우 어떻게 하나요? + 개인의 건강 상태나 복용 중인 약물에 따라 주의사항이 달라질 수 있습니다. 구체적인 복용 가능 여부나 용량에 대한 판단은 의료진 또는 약사와 상담하는 것이 가장 안전합니다. ! 본 페이지의 내용은 시알리스와 타다라필에 대한 일반적인 정보 제공을 위한 것입니다. 개인의 질환, 복용 중인 약물 등에 따라 사용 방법이 달라질 수 있으므로 실제 복용 전에는 의료진 또는 약사와 상담하시기 바랍니다. CUSTOMER CENTER 고객센터 상담 안내 시알리스 제품 정보부터 타다라필 성분, 복용 전 확인사항과 구매 절차까지 안내해드립니다. 01 무엇을 상담할 수 있나요? 궁금한 내용을 편하게 확인해보세요. 01 제품 정보 시알리스의 주요 성분인 타다라필과 제품 함량 등에 대한 정보를 확인할 수 있습니다. 02 복용 관련 안내 복용 전 확인해야 할 사항과 일반적인 주의사항에 대해 안내받을 수 있습니다. 03 구매 절차 안내 처방이 필요한 의약품의 정식 구매 및 약국 이용 절차에 대한 정보를 확인할 수 있습니다. 04 기타 문의 사이트 이용이나 제품 정보와 관련하여 추가로 궁금한 사항을 확인할 수 있습니다. CONSULTATION 상담센터 필요한 정보를 먼저 확인하고 정확한 상담을 받아보세요. 상담 분야 제품 · 성분 · 복용 · 구매절차 상담 방법 온라인 문의 상담 시간 문의 접수 후 안내 상담 문의하기 → ! 상담 전 확인해주세요 시알리스는 처방이 필요한 의약품입니다. 현재 복용 중인 약물이 있거나 심혈관 질환 등 건강상 문제가 있다면 복용 전에 의료진 또는 약사와 상담하는 것이 좋습니다. 특히 질산염 계열 약물을 복용 중인 경우에는 반드시 의료진에게 알려야 합니다. 시알리스스토어는 시알리스 구매를 알아보는 분들을 위해 시알리스와 타다라필의 주요 성분, 제품 특징, 함량, 복용법, 주의사항과 구매 전 확인사항을 알기 쉽게 안내합니다. 시알리스 구매, 시알리스 가격, 타다라필 정보 등 관련 내용을 한곳에서 확인하고, 처방 및 정식 구매 절차를 이해하는 데 도움을 드리는 정보 중심 사이트입니다. JayDream_components.push({name: "design-widget-button", object: { template: "#design-widget-button-template", props: { primary {type: String, default: ""}, widget_code: {type: String, default: ""}, }, data() { const defaultRow = { widget_code this.widget_code, label 'BUTTON', font 'Pretendard', font_size 14, bg_color '#ffffff', font_color '#000000', icon_src '', icon_color '#000000', icon_position '왼쪽', icon_size 16, border_use true, border_color '#000000', border_width 1, border_radius_use false, border_radius_px 6, box_shadow_use false, box_shadow_opacity 20, mouse_click_type 'URL', mouse_click_url '', mouse_click_target '_self', hover_effect '사용안함', hover_bg_color '#ffffff', hover_font_color '#000000', hover_border_use false, hover_border_color '#000000', hover_border_width 1, hover_box_shadow_use false, hover_box_shadow_opacity: 20, hover_transition '없음', layout_width '자동', layout_width_px 150, layout_height '자동', layout_height_px 40, layout_align '중앙', }; return { load false, component_name: "design-widget-button", component_idx "", injectUrls [ "", "", "", "", "", ], table: null, buttonSaveOwner: null, buttonReady: null, fontFamilyMap: {"Galmuri14":"Galmuri14","GamjaFlower":"GamjaFlower","KNUTruth":"KNUTruth","GowunDodum":"GowunDodum","GowunBatang":"GowunBatang","Gulim":"Gulim","GulimChe":"GulimChe","Gungsuh":"Gungsuh","GungsuhChe":"GungsuhChe","Malgun Gothic":"Malgun Gothic","NanumGothic":"NanumGothic","NanumMyeongjo":"NanumMyeongjo","NanumBarunGothic":"NanumBarunGothic","NanumBarunpen":"NanumBarunpen","NanumSquare":"NanumSquare","NanumSquareRound":"NanumSquareRound","NanumPenScript":"NanumPenScript","Dokdo":"Dokdo","Dotum":"Dotum","DotumChe":"DotumChe","Dongle":"Dongle","EastSeaDokdo":"EastSeaDokdo","Batang":"Batang","BatangChe":"BatangChe","New Gulim":"New Gulim","Sogang_university":"Sogang_University","SeolleimCool":"SeolleimCool","SBAggro":"SBAggro","PyeongChang":"PyeongChang","PyeongChangPeace":"PyeongChangPeace","Pretendard":"Pretendard","Skybori":"Skybori","HiMelody":"HiMelody","휴먼엽서체":"휴먼엽서체","Arial":"Arial","Arial Black":"Arial Black","BlackHanSans":"BlackHanSans","Comic Sans MS":"Comic Sans MS","Courier New":"Courier New","CuteFont":"CuteFont","GmarketSans":"GmarketSans","IBMPlexSansKR":"IBMPlexSansKR","SongMyung":"SongMyung","NotoSans-Regular":"NotoSans-Regular","Orbit":"Orbit","PoorStory":"PoorStory","SingleDay":"SingleDay","Tahoma":"Tahoma","Times New Roman":"Times New Roman","Verdana":"Verdana"}, fontAliasMap {"Noto Sans KR":"NotoSans-Regular","Nanum Gothic":"NanumGothic","Nanum Myeongjo":"NanumMyeongjo","맑은 고딕":"Malgun Gothic","궁서":"Gungsuh","굴림체":"GulimChe","돋음체":"DotumChe","돋움체":"DotumChe","바탕체":"BatangChe"}, defaultRow, row Object.assign({}, defaultRow), hover: false, }; }, async created() { this.component_idx = this.lib.generateUniqueId(); this.api.component_name = this.component_name; }, async mounted() { window.ISWEB_BUTTON_WIDGETS = window.ISWEB_BUTTON_WIDGETS || {}; window.ISWEB_BUTTON_WIDGETS[this.widget_code] = this; this.buttonReady = this.loadButton(); await this.buttonReady; }, unmounted() { if (window.ISWEB_BUTTON_WIDGETS && window.ISWEB_BUTTON_WIDGETS[this.widget_code] === this) { delete window.ISWEB_BUTTON_WIDGETS[this.widget_code]; } }, methods: { async loadButton() { this.table = await this.api.table('jd_widget_button'); this.table.where('widget_code', this.widget_code); await this.getRow(); this.load = true; }, async getRow() { let row = await this.table.get(); if (row.length > 0) this.row = Object.assign({}, this.defaultRow, row[0]); this.row.font = this.normalizeFontValue(this.row.font); this.row.hover_transition = this.normalizeHoverTransition(this.row.hover_transition); }, async handleClick() { const type = this.row.mouse_click_type || 'URL'; const value = (this.row.mouse_click_url || '').trim(); if (!value) return; if (type === '섹션 스크롤') { const selector = value.startsWith('#') ? value `#${value}`; const target = document.querySelector(selector); if (target && typeof target.scrollIntoView === 'function') { target.scrollIntoView({behavior: 'smooth', block: 'start'}); } return; } if (type === '전화걸기') { const tel = value.startsWith('tel:') ? value `tel:${value.replace(/-/g, '')}`; window.location.href = tel; return; } if (type === '메일 보내기') { await this.openMailApp(value); return; } if (type === '파일 다운로드') { await this.lib.download({ src value, name: this.downloadFileName, }); return; } this.lib.href(value, this.linkTarget); }, extractFileName(src) { try { return decodeURIComponent((src || '').split('/').pop() || 'download'); } catch (e) { return (src || '').split('/').pop() || 'download'; } }, async openMailApp() { const emailAddress = .replace(/^mailto:/i, '').trim(); const mailtoUrl = `mailto:${emailAddress}`; let appOpened = false; const onVisibilityChange = () => { if (document.hidden) appOpened = true; }; const onBlur = () => { appOpened = true; }; document.addEventListener('visibilitychange', onVisibilityChange); window.addEventListener('blur', onBlur); window.location.href = mailtoUrl; await new Promise(resolve => setTimeout(resolve, 1200)); document.removeEventListener('visibilitychange', onVisibilityChange); window.removeEventListener('blur', onBlur); if (appOpened) return; const copied = await this.copyToClipboard(emailAddress); if (copied) { alert(`기본 메일 앱을 실행할 수 없어 를 복사했습니다.\n${emailAddress}`); return; } alert(`기본 메일 앱을 실행할 수 없습니다.\n를 직접 복사해주세요.\n${emailAddress}`); }, async copyToClipboard(text) { try { if (navigator.clipboard && window.isSecureContext) { await navigator.clipboard.writeText(text); return true; } } catch (e) { } const textarea = document.createElement('textarea'); textarea.value = text; textarea.setAttribute('readonly', ''); textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; document.body.appendChild(textarea); textarea.select(); let copied = false; try { copied = document.execCommand('copy'); } catch (e) { copied = false; } document.body.removeChild(textarea); return copied; }, renderIconHtml(name, size, color) { if (typeof feather !== 'undefined' && feather.icons[name]) { return feather.icons[name].toSvg({width: size, height: size, color}); } return ''; }, iconStyle(extra) { return `color:${this.row.icon_color};font-size:${this.row.icon_size}px;${extra}`; }, normalizeFontValue(font) { return this.fontAliasMap[font] || font || 'Pretendard'; }, getFontFamily(font) { const normalized = this.normalizeFontValue(font); const family = this.fontFamilyMap[normalized] || normalized || 'Pretendard'; return "'" + String(family).replace(/'/g, "\\'") + "', sans-serif"; }, normalizeHoverTransition(transition) { return transition === '슬라이드' ? '없음' (transition || '없음'); }, }, computed: { appState() { return window.JAYDREAM_VUE_GLOBAL[this.$app_name]; }, hasLabelText() { return String(this.row.label || '').trim().length > 0; }, isIconOnlyButton() { return !!this.parsedIcon && !this.hasLabelText; }, displayLabel() { return this.hasLabelText ? this.row.label ''; }, downloadFileName() { if (this.row.mouse_click_target && this.row.mouse_click_target !== '_self' && this.row.mouse_click_target !== '_blank') { return this.row.mouse_click_target; } return this.extractFileName(this.row.mouse_click_url); }, linkTarget() { return this.row.mouse_click_target === '_blank' ? '_blank' '_self'; }, parsedIcon() { if (!this.row.icon_src) return null; const parts = this.row.icon_src.split(':'); if (parts.length < 2) return null; return {library: parts[0], name: parts[1]}; }, iconClass() { if (!this.parsedIcon) return ''; const {library, name} = this.parsedIcon; if (library === 'bootstrap') return `bi bi-${name}`; if (library === 'phosphor') return `ph ph-${name}`; if (library === 'simpleline') return `icon-${name}`; return ''; }, hoverClass() { const classMap = { '페이드' : 'hvr-fade', '줌인' : 'hvr-grow', '줌아웃' : 'hvr-sink', '떠오르기': 'hvr-float', }; return this.row.hover_transition && this.row.hover_transition !== '없음' ? (classMap[this.row.hover_transition] || '') : ''; }, wrapperStyle() { const align = this.row.layout_align; return { display : 'flex', justifyContent: align === '좌측' ? 'flex-start' : align === '우측' ? 'flex-end' : 'center', }; }, buttonStyle() { const base = { fontFamily : this.getFontFamily(this.row.font), fontSize : (this.row.font_size || 14) + 'px', backgroundColor: this.row.bg_color || '', color : this.row.font_color || '', border : this.row.border_use ? `${this.row.border_width}px solid ${this.row.border_color}` : 'none', borderRadius : this.row.border_radius_use ? `${this.row.border_radius_px}px` : '0px', boxShadow : this.row.box_shadow_use ? `0 4px 12px rgba(0,0,0,${this.row.box_shadow_opacity / 100})` : '', width : this.row.layout_width === '직접입력' && this.row.layout_width_px ? this.row.layout_width_px + 'px' : 'auto', height : this.row.layout_height === '직접입력' && this.row.layout_height_px ? this.row.layout_height_px + 'px' : 'auto', cursor : this.row.mouse_click_url ? 'pointer' : 'default', display : 'inline-flex', alignItems : 'center', justifyContent: 'center', transition : 'all 0.2s', }; if (this.hover && this.row.hover_effect === '사용함') { return { ...base, backgroundColor: this.row.hover_bg_color || base.backgroundColor, color : this.row.hover_font_color || base.color, border : this.row.hover_border_use ? `${this.row.hover_border_width}px solid ${this.row.hover_border_color}` : base.border, boxShadow : this.row.hover_box_shadow_use ? `0 4px 12px rgba(0,0,0,${this.row.hover_box_shadow_opacity / 100})` : base.boxShadow, }; } return base; }, }, watch: { appState: { async handler(newVal) { if (newVal && newVal.reload) { if (!this.buttonSaveOwner) await this.getRow(); this.appState.reload = false; } }, deep: true, }, }, }}); 레이아웃 설정 높이 모바일 자동 높이 직접 높이 설정 모바일 높이 모바일 숨김 처리 {{ body.blankSaveError }} 재시도 JayDream_components.push({name:'design-widget-blank-modal',object:{ template:'#design-widget-blank-modal-template', props:{primary:{type:String,default:''},widget_code:{type:String,default:''},site_code:{type:String,default:''}}, data:function(){return {load:false,row:null,body:null,bridge:null};}, mounted:async function(){ var bridge = (window.ISWEB_BLANK_SIDEBARS || {})[this.widget_code]; var body = (window.ISWEB_BLANK_WIDGETS || {})[this.widget_code]; if (!bridge || !body) return; await body.blankReady; if (bridge.closed || (window.ISWEB_BLANK_SIDEBARS || {})[this.widget_code] !== bridge) return; this.bridge = bridge; this.body = body; this.row = body.row; bridge.vm = this; this.load = true; }, beforeUnmount:function(){if(this.bridge && this.bridge.vm === this)this.bridge.vm = null;}, computed:{ mobileMode:function(){return this.row.mobile_height_type === 'hide' ? this.row.mobile_height_mode : this.row.mobile_height_type;}, isHidden:function(){return this.row.mobile_height_type === 'hide';} }, methods:{ queue:function(){ if (!this.load || this.bridge.closed || this.bridge.deleting) return; this.body.normalizeRow(); this.body.blankSaveError = ''; this.bridge.owner.touch(); clearTimeout(this.bridge.timer); var bridge = this.bridge; bridge.timer = setTimeout(function(){if(!bridge.closed)bridge.owner.flush();},350); }, setMobileMode:function(mode){ this.row.mobile_height_mode = mode; if (this.row.mobile_height_type !== 'hide') this.row.mobile_height_type = mode; this.queue(); }, toggleHidden:function(hidden){ if (hidden) { this.row.mobile_height_mode = this.mobileMode; this.row.mobile_height_type = 'hide'; } else this.row.mobile_height_type = this.mobileMode; this.queue(); }, retrySave:function(){this.body.blankSaveError = '';return this.bridge.owner.flush();} } }}); JayDream_components.push({name: "design-widget-blank", object: { template: "#design-widget-blank-template", props: { primary : {type: String, default: ""}, widget_code: {type: String, default: ""}, site_code : {type: String, default: ""}, }, data() { return { load : false, component_name: "design-widget-blank", component_idx : "", table : null, resizing : false, deviceMode : "desktop", savingResize : false, mobilePcSectionLocked: false, blankSaveOwner: null, blankPanelBridge: null, blankCommitted: null, blankSaveError: "", blankDeleting: false, row : { widget_code : this.widget_code, pc_height : 75, mobile_height_type : "auto", mobile_height_mode : null, mobile_height : 75, }, }; }, async created() { this.component_idx = this.lib.generateUniqueId(); this.api.component_name = this.component_name; this._resizeStartY = 0; this._resizeStartHeight = 75; this._resizeField = "pc_height"; this._bodyClassObserver = null; this._resizeDraggable = null; this._blankDisposed = false; this._blankEdgeResize = (event) => { if (this._blankDisposed || this.blankDeleting || (event.type === "mousedown" && event.button !== 0)) return; const target = event.target && event.target.closest ? event.target : null; if (!target || target.closest("button")) return; const edge = target.closest(".editor-hover-widget-edge.is-after"); const widget = edge && edge.closest(".widget"); if (!widget || widget.id !== this.widget_code) return; // The shared insertion edge covers the original resize handle. Keep its + button separate. if (!this.resizeEnabled || this.isMobilePcSection()) return; event.stopPropagation(); if (event.cancelable) event.preventDefault(); this.startResize(event); }; this.blankReady = new Promise((resolve) => { this._resolveBlankReady = resolve; }); window.ISWEB_BLANK_WIDGETS = window.ISWEB_BLANK_WIDGETS || {}; window.ISWEB_BLANK_WIDGETS[this.widget_code] = this; }, async mounted() { try { this.table = await this.api.table("jd_widget_blank"); this.table.where("widget_code", this.widget_code); await this.getRow(); if (this._blankDisposed) return; this.blankCommitted = this.blankSnapshot(); if (window.BLANK_JAYDREAM && this.isDesignMode) { this.blankSaveOwner = BLANK_JAYDREAM.createSaveOwner({ snapshot: () => this.blankSnapshot(), save: (snapshot) => this.persistBlankSnapshot(snapshot), onFailure: (error) => this.onBlankSaveFailure(error), }); } this.load = true; if (this.isDesignMode) { document.addEventListener("mousedown", this._blankEdgeResize, true); document.addEventListener("touchstart", this._blankEdgeResize, {capture:true, passive:false}); } this.$nextTick(() => { this.syncDeviceMode(); this.syncMobilePcSectionLock(); this.syncFirewallSettingButton(); this.bindBodyClassObserver(); }); } catch (error) { this.blankSaveError = error && error.message || "여백 설정을 불러오지 못했습니다."; } finally { this._resolveBlankReady(this.load); } }, beforeUnmount() { this._blankDisposed = true; document.removeEventListener("mousedown", this._blankEdgeResize, true); document.removeEventListener("touchstart", this._blankEdgeResize, true); if (this.blankSaveOwner) this.blankSaveOwner.dispose(); this.unbindResizeEvents(); if (this._bodyClassObserver) { this._bodyClassObserver.disconnect(); this._bodyClassObserver = null; } if (window.ISWEB_BLANK_WIDGETS && window.ISWEB_BLANK_WIDGETS[this.widget_code] === this) { delete window.ISWEB_BLANK_WIDGETS[this.widget_code]; } }, methods: { getDefaultRow() { return { widget_code : this.widget_code, pc_height : 75, mobile_height_type : "auto", mobile_height_mode : null, mobile_height : 75, }; }, async getRow() { const rows = await this.table.get(); Object.assign(this.row, this.getDefaultRow(), rows.length > 0 ? rows[0] : {}); this.normalizeRow(); }, normalizeRow() { this.row.pc_height = Math.max(0, parseInt(this.row.pc_height, 10) || 0); this.row.mobile_height = Math.max(0, parseInt(this.row.mobile_height, 10) || this.row.pc_height); if (!["auto", "custom", "hide"].includes(this.row.mobile_height_type)) this.row.mobile_height_type = "auto"; if (["auto", "custom"].includes(this.row.mobile_height_type)) this.row.mobile_height_mode = this.row.mobile_height_type; if (!["auto", "custom"].includes(this.row.mobile_height_mode)) this.row.mobile_height_mode = "auto"; }, blankSnapshot() { return Object.assign({}, this.row); }, async persistBlankSnapshot(snapshot) { // Resolve an uncertain first response before retrying insert. Do not replace live edits with an older response. if (!snapshot.primary) { const lookup = await this.lib.ajax("get", this.table.filter, "/JayDream/api.php", {$rejectOnError:true}); if (!lookup || lookup.success === false || !Array.isArray(lookup.data)) throw new Error("여백 저장 대상을 확인하지 못했습니다."); const existing = lookup.data[0]; if (existing && (existing.primary || existing.idx)) snapshot.primary = existing.primary || existing.idx; } const response = await this.lib.ajax(snapshot.primary ? "update" : "insert", snapshot, "/JayDream/api.php", {table:"jd_widget_blank", $rejectOnError:true, $timeoutMs:300000}); if (!response || response.success === false) throw new Error(response && response.message || "여백 설정을 저장하지 못했습니다."); if (response.primary) snapshot.primary = response.primary; if (!snapshot.primary) throw new Error("여백 저장 결과를 확인하지 못했습니다."); if (!this.row.primary) this.row.primary = snapshot.primary; this.blankCommitted = Object.assign({}, snapshot); this.blankSaveError = ""; if (this.table.clearCurrentWidgetDetailCache) this.table.clearCurrentWidgetDetailCache(snapshot); if (!this._blankDisposed) { this.emitHeightChange(); this.resetGrid(); } return response; }, onBlankSaveFailure(error) { this.blankSaveError = error && error.message || "여백 설정을 저장하지 못했습니다. 다시 시도해 주세요."; if (!this.blankPanelBridge && window.EDITOR_UI) EDITOR_UI.alert({message:this.blankSaveError + " 여백 설정에서 재시도해 주세요."}); }, restoreBlankCommitted() { if (!this.blankCommitted) return; Object.keys(this.row).forEach((key) => { if (!Object.prototype.hasOwnProperty.call(this.blankCommitted, key)) delete this.row[key]; }); Object.assign(this.row, this.blankCommitted); this.blankSaveError = ""; if (this.blankSaveOwner) this.blankSaveOwner.discard(); this.emitHeightChange(); this.resetGrid(); }, syncDeviceMode() { this.deviceMode = document.body.classList.contains("_mbv") ? "mobile" : "desktop"; }, bindBodyClassObserver() { if (this._bodyClassObserver || typeof MutationObserver === "undefined") return; this._bodyClassObserver = new MutationObserver(() => { this.syncDeviceMode(); this.syncMobilePcSectionLock(); this.syncFirewallSettingButton(); }); this._bodyClassObserver.observe(document.body, { attributes: true, attributeFilter: ["class"], }); }, getCookie(name) { const cookies = (`; ${document.cookie}`).split(`; ${name}=`); return cookies.length === 2 ? cookies.pop().split(";").shift() : ""; }, isMobileDesignMode() { return document.body.classList.contains("_mbv") || this.getCookie("lc_device") === "mobile"; }, isMobilePcSection() { const widget = document.getElementById(this.widget_code); const section = widget && widget.closest ? widget.closest("section") : null; return this.isMobileDesignMode() && !!section && !section.classList.contains("from-mobile"); }, alertMobilePcSectionBlocked() { const message = "PC에서 만든 섹션 또는 위젯은 모바일 디자인모드에서 설정할 수 없습니다."; if (window.jQuery && jQuery.alert) { jQuery.alert(message); } else { alert(message); } }, syncMobilePcSectionLock() { this.mobilePcSectionLocked = this.isMobilePcSection(); if (this.mobilePcSectionLocked && this.resizing) { this.resizing = false; this.unbindResizeEvents(); } }, syncFirewallSettingButton() { const widget = document.getElementById(this.widget_code); const firewall = widget ? widget.querySelector(".firewall") : null; if (!firewall) return; if (this.mobilePcSectionLocked) { firewall.classList.remove("widget_setting_btn"); return; } if (!this.row.idx) { firewall.classList.add("widget_setting_btn"); } }, getPcHeight() { return Math.max(0, parseInt(this.row.pc_height, 10) || 0); }, getMobileHeight() { return Math.max(0, parseInt(this.row.mobile_height, 10) || this.getPcHeight()); }, getResizeField() { return this.deviceMode === "mobile" ? "mobile_height" : "pc_height"; }, getResizeHeight() { return this.getResizeField() === "mobile_height" ? this.getMobileHeight() : this.getPcHeight(); }, prepareResizeTarget() { if (this.deviceMode !== "mobile") return; const currentHeight = this.row.mobile_height_type === "custom" ? this.getMobileHeight() : this.getPcHeight(); if (this.row.mobile_height_type !== "custom") { this.row.mobile_height_type = "custom"; } this.row.mobile_height_mode = "custom"; this.row.mobile_height = this.normalizeResizeHeight(currentHeight); }, getResizePoint(event) { const source = event.touches && event.touches.length ? event.touches[0] : event; return { y: source.clientY, }; }, normalizeResizeHeight(value) { return Math.max(1, parseInt(value, 10) || 1); }, startResize(event) { this.syncDeviceMode(); this.syncMobilePcSectionLock(); if (this.mobilePcSectionLocked) { this.alertMobilePcSectionBlocked(); return; } if (!this.resizeEnabled) return; this.prepareResizeTarget(); const point = this.getResizePoint(event); this._resizeField = this.getResizeField(); this._resizeStartY = point.y; this._resizeStartHeight = this.normalizeResizeHeight(this.getResizeHeight()); this.resizing = true; document.body.classList.add("design-widget-blank-resizing"); this.disableWidgetDrag(); this.bindResizeEvents(); }, bindResizeEvents() { document.addEventListener("mousemove", this.onResizeMove); document.addEventListener("mouseup", this.stopResize); document.addEventListener("touchmove", this.onResizeMove, {passive: false}); document.addEventListener("touchend", this.stopResize); document.addEventListener("touchcancel", this.stopResize); }, unbindResizeEvents() { document.removeEventListener("mousemove", this.onResizeMove); document.removeEventListener("mouseup", this.stopResize); document.removeEventListener("touchmove", this.onResizeMove); document.removeEventListener("touchend", this.stopResize); document.removeEventListener("touchcancel", this.stopResize); document.body.classList.remove("design-widget-blank-resizing"); this.enableWidgetDrag(); }, onResizeMove(event) { if (!this.resizing) return; if (event.cancelable) event.preventDefault(); const point = this.getResizePoint(event); const nextHeight = this.normalizeResizeHeight(this._resizeStartHeight + point.y - this._resizeStartY); this.row[this._resizeField] = nextHeight; this.emitHeightChange(); }, async stopResize() { if (!this.resizing) return; this.resizing = false; this.unbindResizeEvents(); await this.saveResizeHeight(); }, async saveResizeHeight() { if (this.blankDeleting || !this.blankSaveOwner) return false; const resizeField = this._resizeField || this.getResizeField(); if (resizeField === "mobile_height") { this.row.mobile_height_type = "custom"; this.row.mobile_height_mode = "custom"; } this.row[resizeField] = this.normalizeResizeHeight(this.row[resizeField]); this.blankSaveOwner.touch(); this.savingResize = true; try { return await this.blankSaveOwner.flush(); } finally { this.savingResize = false; } }, emitHeightChange() { if (typeof window === "undefined" || typeof window.CustomEvent !== "function") return; window.dispatchEvent(new CustomEvent("design-widget-blank-height-change", { detail: { widget_code: this.widget_code, pc_height: this.getPcHeight(), mobile_height: this.getMobileHeight(), mobile_height_type: this.row.mobile_height_type, mobile_height_mode: this.row.mobile_height_mode, resize_field: this._resizeField || this.getResizeField(), row: Object.assign({}, this.row), }, })); }, disableWidgetDrag() { const widget = document.getElementById(this.widget_code); if (!widget || !window.jQuery) return; const $widget = window.jQuery(widget); if (!$widget.data("ui-draggable")) return; this._resizeDraggable = $widget; $widget.draggable("disable"); }, enableWidgetDrag() { if (!this._resizeDraggable || !this._resizeDraggable.data("ui-draggable")) return; this._resizeDraggable.draggable("enable"); this._resizeDraggable = null; }, resetGrid() { if (window.design && window.design.menu && window.design.menu.grid) { window.design.menu.grid.reset(); } }, waitBlankSave() { return this.blankSaveOwner ? this.blankSaveOwner.wait() : Promise.resolve(true); }, }, computed: { blankStyle() { const pcHeight = Math.max(0, parseInt(this.row.pc_height, 10) || 0); const mobileHeight = Math.max(0, parseInt(this.row.mobile_height, 10) || pcHeight); return { "--design-widget-blank-pc-height" : `${pcHeight}px`, "--design-widget-blank-mobile-height": `${mobileHeight}px`, }; }, mobileClass() { const type = this.row.mobile_height_type || "auto"; return `design-widget-blank--mobile-${type}`; }, isDesignMode() { return typeof window !== "undefined" && !!(window.design && window.design.menu); }, resizeEnabled() { return this.isDesignMode && !this.mobilePcSectionLocked && !this.blankDeleting; }, appState() { return window.JAYDREAM_VUE_GLOBAL[this.$app_name]; }, }, watch: { appState: { async handler(newVal) { if (newVal.reload) { await this.getRow(); this.appState.reload = false; } }, deep: true, }, }, }}); JayDream_components.push({name : "design-widget-map-google",object : { template: "#design-widget-map-google-template", props: { primary : {type : String, default : ""}, modelValue : {type : Object, default : ""}, }, data: function () { return { load : false, component_name : "design-widget-map-google", component_idx: "", table : null, row: {}, rows : [], }; }, async created() { this.component_idx = this.lib.generateUniqueId(); this.api.component_name = this.component_name }, async mounted() { // this.table = await this.api.table("exam"); // await this.table.get(this.rows,{paging : 10}) this.load = true; this.$nextTick(async () => { // 해당부분에 퍼블리싱 라이브러리,플러그인 선언부분 하시면 됩니다 ex) swiper }); }, updated() { }, methods: { }, computed: { }, watch: { } }}); JayDream_components.push({name "design-widget-map-kakao",object { template: "#design-widget-map-kakao-template", props: { primary {type String, default ""}, modelValue {type Object, default ""}, widget_code {type String, default ""}, }, data: function () { return { load false, component_name "design-widget-map-kakao", component_idx: "", kakaoMapEmbedOrigin "https:\/\/", }; }, async created() { this.component_idx = this.lib.generateUniqueId(); this.api.component_name = this.component_name }, async mounted() { this.load = true; }, updated() { }, methods: { getStyle() { let style = { width: "100%", border: "0", }; if(this.lib.isMobile()) { style.height = (this.row.mobile_height || this.row.pc_height || 320) + "px"; } else { style.height = (this.row.pc_height || 450) + "px"; } return style; } }, computed: { row() { return this.modelValue || {}; }, iframeSrc() { const code = this.row.widget_code || this.widget_code || ""; const origin = this.kakaoMapEmbedOrigin || window.location.origin; return origin.replace(/\/$/, "") + "/JayDream/kakaoMapEmbed.php?widget_code=" + encodeURIComponent(code); } }, watch: { } }}); 구글 지도 삽입 코드를 입력해주세요. 삽입 코드 입력 JayDream_components.push({name:'design-widget-map-modal-google',object:{ template:'#design-widget-map-modal-google-template', props:{modelValue:Object,previewOnly:Boolean}, emits:['update:modelValue','editor-ready'], data(){return {editor:null};}, computed:{ row:{get(){return this.modelValue||{};},set(value){this.$emit('update:modelValue',value);}}, validCode(){return / 주소 검색 주소 검색 주소 지번 주소{{displayJibun}} 지번 상세 주소상세 주소 도로명 주소{{displayAddress}} 도로명 상세 주소상세 주소 상세 정보 상호명상호명 지도 크기 지도 높이 PC 모바일 주소 검색 닫기 JayDream_components.push({name:'design-widget-map-modal-kakao',object:{ template:'#design-widget-map-modal-kakao-template', props:{modelValue:Object,widget_code:String,previewOnly:Boolean}, emits:['update:modelValue'], data() { return {modal:this.lib.createModalObject(),origin:"https:\/\/",previewRow:{},viewport:window.inn

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기