시알리스 구매 - 시알마켓 > 자유게시판

본문 바로가기

사이트 내 전체검색

뒤로가기 자유게시판

시알리스 구매 - 시알마켓

페이지 정보

작성자 ue28pmvs 작성일 26-11-15 22:30 조회 2 댓글 0

본문

시알리스 구매 - 시알마켓

IczzHc2.jpeg

시알리스 구매 - 시알마켓
시알리스,시알마켓



시알리스 구매 - 시알마켓 마음심리상담소 시알리스 구매 - 시알마켓 시알리스 구매 - 시알마켓 시알리스 구매 - 시알마켓 시알리스 구매 - 100% 정품 안심 유통 전문 시알마켓시알마켓은 성공적인 시알리스 구매를 위해 엄격한 정품 검증 절차, 365일 비밀 이중 포장 배송, 그리고 1:1 암호화 전담 상담 시스템을 제공합니다. 검증된 타다라필 정품 제형과 신속한 당일 출고 서비스로 당신의 당당한 자신감을 찾아드립니다.시알리스 20mg시알리스 구매 바로가기 브랜드 소개: 정품 안심 유통의 중심, 시알마켓 (Cia MARKET)시알마켓은 남성 건강 솔루션 분야의 선두주자로서, 고객님들께 가장 안전하고 신뢰할 수 있는 시알리스 구매 환경을 제공하기 위해 설립되었습니다.우리는 시장에 범람하는 불투명한 유통 구조를 배제하고, 오직 엄격한 품질 검증 프로세스를 통과한 검증된 타다라필 정품 제형만을 엄선하여 공급합니다. 단순한 제품 전달을 넘어, 철저한 개인정보 보호와 1:1 맞춤형 전담 상담 시스템을 통해 고객 한 분 한 분의 건강한 라이프스타일과 당당한 자신감을 완벽하게 케어해 드립니다.성공적인 시알리스 구매를 위해 시알마켓을 선택해야 하는 3가지 이유1. 100% 정품 유통 보장 및 즉시 검증 시스템원칙 중심의 품질 관리: 시알마켓은 확실한 정품 검증 프로세스를 거친 안전한 제품만을 취급합니다.2. 철저한 프라이버시 보호: 2중 무지 박스 비밀 배송완벽한 비밀 보장: 송장 및 택배 상자 표면에 상품명, 제형명, 매장명이 일절 표기되지 않는 일반 무지 박스 포장을 원칙으로 합니다.3. 초스피드 당일 출고 & 개인정보 즉시 파기기다림 없는 빠른 수령: 평일 오후 3시 이전 주문 접수 건은 당일 즉시 발송 시스템을 가동하여 가장 신속하게 제품을 전달해 드립니다. 제품 라인업: 용도별 맞춤 시알리스 라인업 안내시알마켓은 고객님의 라이프스타일과 케어 목적에 맞춘 다양한 시알리스 구매 옵션을 제공합니다. 모든 라인업은 엄격한 품질 검증을 마친 100% 정품 제형으로 구성되어 있습니다.데일리 케어용 (Daily Care - 5mg)제품 구성: 정품 시알리스 5mg특징 및 추천:매일 같은 시간에 꾸준히 복용하여 일상적인 활력과 남성 건강을 유지하는 데 최적화된 저용량 라인업입니다.신체적 부담을 최소화하면서 자연스럽고 지속적인 관리를 원하시는 분께 추천합니다.퀵 액션 케어용 (Quick Action - 10mg / 20mg)제품 구성: 정품 시알리스 10mg / 20mg특징 및 추천:중요한 순간에 집중적이고 확실한 케어를 제공하는 시알마켓의 대표 베스트셀러 라인업입니다.필요에 따라 유연하게 선택할 수 있으며, 빠른 반응성과 강력한 케어 만족도를 원하는 분께 적합합니다. 이용 안내: 간편하고 안전한 4단계 주문 절차시알마켓은 복잡한 과정 없이 누구나 쉽고 신속하게 시알리스 구매를 진행하실 수 있도록 최적화된 주문 시스템을 운영합니다.01맞춤 제품 선택제품 라인업을 확인한 후, 본인의 케어 목적(데일리 5mg / 퀵 액션 10mg·20mg / 가성비 세트)에 맞는 용량과 수량을 선택합니다.021:1 비밀 상담 및 접수웹사이트 내 상담 버튼을 통해 , 또는 보안 온라인 폼으로 이동합니다.전담 상담원과의 1:1 암호화 채널을 통해 제품 문의 및 간편 주문 접수를 진행합니다.03암호화 안심 결제개인정보가 안전하게 보호되는 보안 결제 시스템을 안내받아 결제를 완료합니다.모든 결제 데이터는 암호화 처리되어 외부 유출이 불가능합니다.04이중 비밀 포장 및 당일 출고평일 오후 3시 이전 주문 건은 검수를 거쳐 당일 즉시 발송됩니다.송장번호가 실시간으로 안내되며, 제품명이 기재되지 않은 이중 무지 박스로 안전하게 전달됩니다. 자주 묻는 질문 (FAQ)Q. 시알리스(타다라필)의 핵심 성분적 특징과 작용 시간은 어떻게 되나요?시알마켓에서 유통하는 제품의 주성분은 타다라필(Tadalafil)입니다. 타다라필은 체내 혈류 흐름을 원활하게 돕는 성분으로, 복용 후 최대 36시간까지 유효 작용 시간이 유지되는 것이 가장 큰 특징입니다. 짧은 시간 동안만 작용하는 타 성분 제형에 비해 시간적 압박감이 적고 자연스러운 케어가 가능합니다. Q. 5mg 데일리용과 10mg·20mg 퀵 액션용의 올바른 복용법 차이는 무엇인가요? 복용 목적과 용량에 따라 아래와 같이 구분됩니다.5mg (매일 복용법): 하루 중 편한 시간대를 정해 매일 같은 시간에 1정씩 주기적으로 복용합니다. 체내 성분 농도를 일정하게 유지하여 상시 관리 효과를 누릴 수 있습니다.10mg / 20mg (필요시 복용법): 원하는 시점 30분~1시간 전에 미온수와 함께 1정 복용합니다. 하루에 최대 1회(24시간 이내 1회)를 초과하여 복용하지 않아야 합니다. Q. 식사 여부나 음주가 제품 작용에 영향을 미치나요?타다라필 성분은 음식물 흡수의 영향을 상대적으로 적게 받아 식사 여부와 관계없이 식전·식후 편하신 때 복용하실 수 있습니다. 다만, 과도한 지방 함량이 높은 식사는 체내 흡수 속도를 지연시킬 수 있으며, 과음은 혈관 확장 작용과 맞물려 일시적인 어지럼증을 유발하거나 효과를 감소시킬 수 있으므로 가급적 과도한 음주는 피하시는 것을 권장합니다. Q. 제품 복용 시 나타날 수 있는 일시적 반응과 대처법은 무엇인가요?체내 혈류량이 급격히 증가함에 따라 일시적인 안면 홍조, 가벼운 두통, 코막힘, 소화불량 등의 반응이 나타날 수 있습니다. 이는 성분이 반응하면서 나타나는 자연스러운 수혈 현상이며, 대부분 시간이 지나면서 자연스럽게 완화됩니다. 복용 시 충분한 양의 물(미온수)을 함께 섭취하시면 이러한 일시적 현상을 줄이는 데 큰 도움이 됩니다. Q. 제품 수령 후 안전한 장기 보관 방법과 유효기간은 어떻게 되나요?정품 타다라필 제형은 직사광선과 고온다습한 환경을 피해 1℃~30℃ 사이의 서늘한 실온(방온도)에 보관해야 합니다.냉장 보관 시 습기로 인해 제형이 변질될 수 있으므로 실온 상온 보관을 권장합니다.제품 패키지 측면에 명시된 유효기간(보통 제조일로부터 2~3년)을 준수해 주시고, 겉포장이 훼손되지 않은 PTP 알루미늄 블리스터 상태 그대로 보관하십시오. Q. 배송 포장 시 내부 내용물이 비치거나 냄새/소리로 유추될 가능성이 있나요?전혀 없습니다. 시알마켓의 2중 보안 포장 시스템은 외관상 내용물을 절대 알 수 없도록 내부 암막 완충재 포장 후 두꺼운 무지 박스로 2차 봉인됩니다. 박스를 흔들거나 빛에 비추어도 내부 구성품을 추측할 수 없으며, 송장 표기 역시 잡화류로 기재되어 수령 시 완전한 프라이버시가 보장됩니다. 시알리스(타다라필) 핵심 가이드시알리스란 무엇인가요?시알리스는 타다라필(Tadalafil)을 주성분으로 하는 남성 건강 케어 제형입니다. 체내 PDE-5 효소를 조절하여 혈관을 확장시키고 혈류 흐름을 원활하게 개선함으로써 당당하고 건강한 라이프스타일을 되찾아 드립니다.주요 효과 및 작용긴 유효 작용 시간: 복용 후 최대 36시간까지 유효 작용이 지속되어, 시간적 압박감 없이 자연스럽고 유연한 케어가 가능합니다.혈류 개선 효과: 원활한 혈액 순환을 도와 신체 활력 증가 및 안정적인 반응을 유도합니다.음식물 영향 최소화: 식사 여부에 따른 체내 흡수율 변화가 적어 식전·식후에 구애받지 않고 편하게 관리할 수 있습니다.올바른 용량별 복용법복용 목적에 맞춰 적절한 용량을 선택해 관리하십시오.5mg (매일 복용법 - 데일리 케어)방법: 하루 중 일정한 시간을 정해 매일 1정씩 주기적으로 복용합니다.특징: 체내 성분 농도를 일정하게 유지하여 매일 지속적인 활력을 제공합니다.10mg / 20mg (필요시 복용법 - 퀵 액션)방법: 필요 시점 30분~1시간 전에 미온수와 함께 1정 복용합니다.주의: 하루 최대 1회(24시간 이내 1회)를 초과하여 복용하지 않도록 합니다.일시적 반응 및 안전 보관법일시적 반응: 복용 후 혈류량이 급격히 늘어남에 따라 가벼운 안면 홍조, 두통, 코막힘 등이 일시적으로 나타날 수 있습니다. 미온수를 충분히 섭취하면 완화에 도움이 됩니다.보관 방법: 直射日光(직사광선)과 습기를 피해 1~30℃ 이하의 서늘한 실온에 보관해 주십시오. 시알리스 구매 - 시알마켓본 사이트는 성인 남성 전용 건강 정보 및 정품 안심 유통 서비스를 제공합니다.© Copyright © 시알리스 구매 - 시알마켓. All Rights Reserved. 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.innerWidth,previewFallback:false,previewNavigationZ:null}; }, computed:{ row:{get(){return this.modelValue||{};},set(value){this.$emit('update:modelValue',value);}}, phone(){return [this.row.phone1,this.row.phone2,this.row.phone3].filter(value=>value!==null&&value!==undefined&&value!=='').join('-');}, previewKey(){return JSON.stringify(['address','jibun','address2','jibun2','title','phone1','phone2','phone3'].map(key=>this.row[key]));}, hasAddress(){return Boolean(String(this.row.address||'').trim()||String(this.row.jibun||'').trim());}, isNewUnset(){return !this.row.primary && !this.row.idx && !['address','jibun','address2','jibun2','title','phone1','phone2','phone3'].some(key=>String(this.row[key]||'').trim());}, displayJibun(){return this.row.jibun || (this.hasAddress ? '-' (this.previewFallback ? '서울 강서구 마곡동 759-1' '-'));}, displayAddress(){return this.row.address || (this.hasAddress ? '-' (this.previewFallback ? '서울 강서구 마곡서로 152' '-'));}, previewHeight(){ const value=this.viewport=0?number:(this.viewportparams.set(key,this.previewRow[key]??'')); params.set('z',this.previewNavigationZ == null ? (this.previewRow.z??'') : this.previewNavigationZ); return (this.origin||window.location.origin).replace(/\/$/,'')+'/JayDream/kakaoMapEmbed.php?'+params.toString(); } }, methods:{ setPhone(value){ value=String(value||''); let parts=value.split('-'); if(parts.length>1) parts=[parts[0],parts[1],parts.slice(2).join('-')]; else if(/^\d{9,11}$/.test(value)){ const prefix=value.startsWith('02')?2:3, tail=value.slice(prefix); parts=[value.slice(0,prefix),tail.slice(0,-4),tail.slice(-4)]; } else parts=[value,'','']; [this.row.phone1,this.row.phone2,this.row.phone3]=[parts[0]||'',parts[1]||'',parts[2]||'']; }, sendPreviewUpdate(){ const frame=this.$refs.frame; if (!frame || !frame.contentWindow) return; const next={}; ['address','jibun','address2','jibun2','title','phone1','phone2','phone3','z'].forEach(key=>next[key]=this.previewRow[key] == null ? '' : String(this.previewRow[key])); frame.contentWindow.postMessage({type:'jd-kakao-map-preview-update',widget_code:this.widget_code||this.row.widget_code||'',row:next},new URL(this.iframeSrc,window.location.href).origin); }, syncPreview(initial){ if(!this.previewOnly)return; const address=JSON.stringify([this.row.address,this.row.jibun]); const previewZoom=this.previewFallback ? (this.previewRow.z??3) : (this.row.z??3); if (initial && this.previewNavigationZ == null) this.previewNavigationZ=previewZoom; if(!initial&&this.previousAddress!==address){this.row.z=3;this.previewNavigationZ=3;} this.previousAddress=address; if (this.hasAddress) this.previewFallback=false; this.previewRow={}; ['address','jibun','address2','jibun2','title','phone1','phone2','phone3','z'].forEach(key=>this.previewRow[key]=this.row[key]??''); if (this.previewFallback) { this.previewRow.address='서울 강서구 마곡동 759-1'; this.previewRow.z=previewZoom; } if (!initial) this.sendPreviewUpdate(); }, onMessage(event){ const frame=this.$refs.frame; if(!frame||event.source!==frame.contentWindow||event.origin!==new URL(this.iframeSrc,window.location.href).origin)return; const data=event.data||{},code=this.widget_code||this.row.widget_code||''; if(data.type==='jd-kakao-map-preview-ready') { this.sendPreviewUpdate(); return; } if(data.type!=='jd-kakao-map-level'||(data.widget_code&&code&&data.widget_code!==code))return; const level=Number(data.z); if(level) { this.row.z=level; if(this.previewFallback) this.previewRow.z=level; } } }, mounted(){ if(this.previewOnly){ this.previewFallback=this.isNewUnset; this.syncPreview(true); this.messageListener=this.onMessage.bind(this); this.resizeListener=()=>{this.viewport=window.innerWidth;}; window.addEventListener('message',this.messageListener); window.addEventListener('resize',this.resizeListener); } else { this.eventNamespace='.jdMapPostcode_'+this.widget_code; this.pickerShown=event=>{ if(!event.target.closest('[data-map-owner="'+this.widget_code+'"]'))return; $(event.target).css('z-index',1380); $('.modal-backdrop').last().addClass('jd-map-postcode-backdrop'); }; $(document).on('shown.bs.modal'+this.eventNamespace,'.jd-map-postcode .modal',this.pickerShown); } }, beforeUnmount(){ if(this.messageListener)window.removeEventListener('message',this.messageListener); if(this.resizeListener)window.removeEventListener('resize',this.resizeListener); if(this.eventNamespace){ $(document).off(this.eventNamespace); const modal=document.querySelector('[data-map-owner="'+this.widget_code+'"] .modal'); if(modal&&$(modal).hasClass('in'))$(modal).modal('hide'); $('.jd-map-postcode-backdrop').remove(); } }, watch:{ previewKey(){this.syncPreview(false);}, previewHeight(){this.syncPreview(true);}, viewport(){this.syncPreview(true);} } }}); {{error}} 다시 불러오기 {{provider.label}}

댓글목록 0

등록된 댓글이 없습니다.

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

사이트 정보

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

PC 버전으로 보기