na prodej pro ideální nízkonákladové a ekologické bydlení. Domy ve stylu Cottagecore jsou tím malým domem, který je jedním z prvků skládačky v hledání...">
,需要通过父级DOM结构来判断
*/
var trackActionPhone = function (node) {
var nodeInnerText = node.innerText || '';
if (!limitRegLength(nodeInnerText)) return;
var nodeText = trimText(nodeInnerText);
if (nodeText.length < 5 || nodeText.length > 20) return false;
var type =
arguments.length > 1 && arguments[1] !== undefined
? arguments[1]
: 'click';
var str = trimText(node.href || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
/** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */
var fatherText = trimText(node.parentNode.innerText || '');
if (fatherText.length < 5 || fatherText.length > 20) return false;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
return false;
};
window.addEventListener('click', function (e) {
var node = e.target;
/** 社媒点击 */
var appName = '';
var getAppAriaLabel =
node.ariaLabel || node.parentNode.ariaLabel || '';
if (mediaList.includes(getAppAriaLabel.toLowerCase())) {
appName = getAppAriaLabel;
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'a'
) {
appName = getMediaName(node.href) || getMediaName(node.alt);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'img'
) {
appName = getMediaName(node.alt) || getMediaName(node.src);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'i'
) {
appName = getMediaName(node.className);
}
if (appName) {
_paq.push(['trackEvent', 'click', 'contactApp', appName]);
return;
}
/** 联系方式点击 */
if (trackActionPhone(node, 'click')) return;
if (node.nodeName && node.nodeName.toLowerCase() === 'a') {
var val = node.href;
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
if (node.nodeName && node.nodeName.toLowerCase() === 'i') {
var val = node.className;
var content = node.parentNode.href || '';
if (val.includes('email')) {
_paq.push(['trackEvent', 'click', 'email', content]);
return;
}
}
var nodeChildList = node.childNodes;
for (var i = 0; i < nodeChildList.length; i++) {
if (nodeChildList[i].nodeType !== 3) continue;
var val = nodeChildList[i].textContent.replace(/\s?:?/g, '');
if (!limitRegLength(val)) continue;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
trackNumberData(node);
});
window.addEventListener('copy', function (e) {
if (trackActionPhone(e.target, 'copy')) return;
var text = e.target.textContent;
if (!text) return;
var val = text.replace(/\s:?/g, '');
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'copy', 'email', val]);
return;
}
trackNumberData(e.target);
});
}
trackContactInit();
/**
* 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户
* 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00;
* 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报
*/
function trackActionInput() {
const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00';
const pathName = window.location.hostname + window.location.pathname;
var lockTrackInput = function () {
try {
const lastCacheData = localStorage.getItem(CACHE_KEY);
if (!lastCacheData) return false;
const cacheData = JSON.parse(lastCacheData);
const cacheTime = cacheData[pathName];
if (!cacheTime) return false;
return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报
} catch (error) {
console.error('lockTrackInput Error', error);
return false;
}
};
var setInputTrackId = function () {
try {
const curCacheData = localStorage.getItem(CACHE_KEY);
if (curCacheData) {
const cacheData = JSON.parse(curCacheData);
cacheData[pathName] = Date.now();
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
return;
}
const cacheData = {
[pathName]: Date.now(),
};
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
} catch (error) {
console.error('setInputTrackId Error', error);
}
};
var getInputDom = function (initDom) {
var ele = initDom;
while (ele) {
/**
* isWebSiteForm 是站点的表单
* isChatWindowForm 是聊天窗口的表单
*/
/** 旧模板表单 */
var isWebSiteForm = !!(
/crm-form/i.test(ele.className) && ele.querySelector('form')
);
/** 1:新模板自定义表单、2:Get a Quote 弹框表单 */
var isWebSiteFormNew = !!(
/inquiry/i.test(ele.className) && ele.querySelector('form')
);
if (isWebSiteForm || isWebSiteFormNew) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']);
setInputTrackId();
return;
}
/** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */
var isInquiryChatForm = !!(
/comp-form/i.test(ele.className) && ele.querySelector('form')
);
if (isInquiryChatForm) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']);
setInputTrackId();
return;
}
/** 向上查找父节点 */
ele = ele.parentNode;
}
};
function initInputListener() {
var inputUseDebounce = function (fn, delay) {
var timer = null;
var that = this;
return function () {
var args = Array.prototype.slice.call(arguments);
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(that, args);
}, delay);
};
};
var optimizeGetInputDom = inputUseDebounce(getInputDom, 300);
window.addEventListener('input', function (e) {
/** 如果已经上报过,则不再上报 */
if (lockTrackInput()) return;
optimizeGetInputDom(e.target);
});
}
try {
initInputListener();
} catch (error) {
console.log('initInputListener Error', error);
}
}
trackActionInput();
}
/** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */
function thirdMsgCollect() {
/** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */
const scriptList = Array.prototype.slice.call(
document.querySelectorAll('script'),
);
const checkStayReal = () =>
!!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn'));
if (!checkStayReal()) return;
/** 缓存当前消息队列的最后一条消息id */
const CACHE_KEY = 'CACHE_KEY_MONITOR';
const setCache = (msgIndex) => {
/** 对缓存KEY进行base64转码处理 */
const cacheMsgIndex = btoa(msgIndex);
localStorage.setItem(CACHE_KEY, cacheMsgIndex);
};
const getCache = () => {
const cacheMsgIndex = localStorage.getItem(CACHE_KEY);
if (cacheMsgIndex) return Number(atob(cacheMsgIndex));
return -1;
};
/** 拉取最新msg列表 */
const pullMsgList = () => {
const msgEleList = Array.prototype.slice.call(
document.querySelectorAll('#chat-list li'),
);
const msgIds = [];
const msgMap = msgEleList.reduce((acc, item) => {
const sendTime = item
.querySelector('.message-data-time')
.textContent.trim();
const sendContent = item.querySelector('.message').textContent.trim();
/** msg带有class:other-message的是访客消息,my-message的是客服消息 */
const isOtherMessage = item
.querySelector('.message')
.classList.contains('other-message');
const msgId = item.querySelector('.message').getAttribute('id');
const msgItemData = {
msgId,
user: isOtherMessage ? 'visitor' : 'official',
time: sendTime,
content: sendContent,
};
msgIds.push(msgId);
acc[msgId] = msgItemData;
return acc;
}, {});
return {
ids: msgIds,
dataMap: msgMap,
};
};
/** 加密并上传消息数据 */
let ENCRYPT_KEY = 'de29f1aab63ab033';
let ENCRYPT_IV = 'b8d2badf875e76ac';
const baseUrl = 'https://cms.xiaoman.cn';
// var getEncryptConfig = function () {
// const url = baseUrl + '/shop-api/innerApi/getKeyIv'
// $.get(
// url,
// function (result) {
// console.log('result', result)
// if (Number(result.code) === 0 && result.data.key && result.data.iv) {
// ENCRYPT_KEY = result.data.key
// ENCRYPT_IV = result.data.iv
// uploadMsgData()
// } else {
// /** 如果获取失败,则重试 */
// setTimeout(() => {
// getEncryptConfig()
// }, 1000)
// }
// },
// 'json'
// )
// }
// getEncryptConfig()
const encryptMsg = function (msgData) {
const enc = new TextEncoder();
// 转字节
const keyBytes = enc.encode(ENCRYPT_KEY);
const ivBytes = enc.encode(ENCRYPT_IV);
const plainBytes = enc.encode(msgData);
// 导入密钥并加密
return crypto.subtle
.importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt'])
.then(function (cryptoKey) {
return crypto.subtle.encrypt(
{ name: 'AES-CBC', iv: ivBytes },
cryptoKey,
plainBytes,
);
})
.then(function (encryptedBuffer) {
// 转 base64 返回
return btoa(
String.fromCharCode(...new Uint8Array(encryptedBuffer)),
);
})
.catch((err) => {
return Promise.reject(err);
});
};
let uploadFlag = false;
const uploadMsgData = function () {
if (uploadFlag) return;
uploadFlag = true;
const { ids, dataMap } = pullMsgList();
let cacheMsgIndex = getCache();
const msgLen = ids.length;
if (!msgLen) {
// 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空
uploadFlag = false;
return;
}
if (msgLen - 1 < cacheMsgIndex) {
/** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */
cacheMsgIndex = msgLen - 1;
setCache(cacheMsgIndex);
uploadFlag = false;
return;
}
if (msgLen - 1 === cacheMsgIndex) {
// 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报
uploadFlag = false;
return;
}
const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen);
const currentMsgData = currentMsgIds.map((id) => dataMap[id]);
const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id
const msgBody = {
mtmId,
curl: window.location.href,
msgList: currentMsgData,
};
const msgBodyStr = JSON.stringify(msgBody);
encryptMsg(msgBodyStr)
.then(function (encryptedMsg) {
console.log('encryptedMsg:', encryptedMsg, msgBodyStr);
const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus';
$.ajax({
type: 'POST',
url,
data: JSON.stringify({ d_v: encryptedMsg }),
contentType: 'application/json',
success: function (result) {
if (Number(result.code) === 0) {
// 更新消息队列
setCache(msgLen - 1);
}
uploadFlag = false;
},
error: function (err) {
console.error(err, '请求异常');
uploadFlag = false;
},
});
})
.catch((err) => {
console.error(err, '数据加密失败');
uploadFlag = false;
});
};
/** 监控chat-list的DOM变更 */
const initChatListObserver = () => {
// 需要监听的 DOM 节点
const target = document.getElementById('chat-list');
if (!target) return;
// 回调函数
const callback = function (mutationsList, observer) {
for (const mutation of mutationsList) {
console.log('mutation', mutation);
if (mutation.type === 'childList') {
uploadMsgData();
}
}
};
// 配置
const config = {
childList: true, // 监听子节点的增删
subtree: true, // 是否也监听后代节点
};
// 创建 observer
const observer = new MutationObserver(callback);
// 开始监听
observer.observe(target, config);
};
let testCount = 30;
let itv = null;
const checkChatDom = () => !!document.querySelector('#vc-model');
const initTalkCheck = () => {
itv = setTimeout(() => {
console.log('checkChatDom', checkChatDom(), testCount);
if (!checkChatDom() && testCount > 0) {
testCount--;
initTalkCheck();
return;
}
clearTimeout(itv);
uploadMsgData();
initChatListObserver();
}, 1500);
};
initTalkCheck();
}
try {
gtmTrack();
thirdMsgCollect();
console.log('inserted gtm code');
} catch (error) {
console.error('gtmTrack Error', error);
}
});
})();
NAJÍT Předem vyrobené malé domy K prodeji pro ty nejlepší zážitky z levného ekologického bydlení. Domovy ve stylu Cottagecore jsou tou malou stavbou, která je jedním ze dílků skládačky, jimiž lze celkově vyřešit a sestavit pohodlný domov. Nabízíme širokou škálu variant malých domů CDPH. Jsou vysoce přizpůsobitelné, takže si je můžete jedinečně upravit podle svého vkusu. Jsou také udržitelnější, a to nejen proto, že vypadají roztomile, ale i proto, že na jejich výstavbu je zapotřebí méně materiálu a energie. Procházejte naší širokou škálou energeticky úsporných malé domy na kolech . Co je asi tak podobné jako jít do cukrárny, jenomže místo toho kupujete svůj vlastní malý dům. Můžete si vybrat, kolik pokojů chcete, jakou barvu stěn a dokonce i jaký styl střechy. A víte co? Naše domy jsou velmi, velmi dobře izolované, takže spotřebují málo energie, což je dobré pro planetu. Nakupujte u nás dílenské ceny za předem vyrobené malé domy – ideální řešení ubytování, které splní váš sen o domově za rozumnou cenu. Pokud nevíte, co znamená výrobní cena! Je to něco jako koupit skvělou nabídku. Nabízíme naše předem vyrobené malé domy za výrobní ceny na CDPH, abychom vám pomohli stát se vlastníkem svého snového domova za nižší cenu. Mohli bychom tomu říkat získání prémie, protože platíme jen drobné. Pak můžete utratit peníze za zábavu, jako hračky nebo pochutiny pro pejska! Naše Sady malých domů Připraveno k sestavení: Pohodlné a prémiové. Kdy jste naposledy dokončili skládačku nebo postavili nějaký model? Zkuste naše stavebnice malých domků (které obsahují téměř vše, co budete potřebovat k postavení svého vlastního malého domova!). Doručujeme je v velké krabici se všemi díly – stačí mít trochu trpělivosti a pečlivě následovat pokyny! Představte si to jako hraní si s Lega, jenom v mnohem větším měřítku. A ještě lepší je, že si do něj pak můžete po dokončení přestavby nastěhovat. Vyberte si něco udržitelného a jedinečného – naše vysoce kvalitní předem vyrobené malé domy, které sledují elegantní životní styl. Udržitelnost, slyšeli jste už někdy tento výraz? Může to být něco jiného, než oč čekáte, ale znamená to také starat se o Zemi a využívat méně zdrojů, abychom mohli co nejlépe chránit matku přírodu. Vysoce kvalitní stavba – Naše předem vyrobené malé domy vydrží mnoho let díky vysoce kvalitnímu řemeslnému zpracování a zručným odborníkům. A nemluvě o tom, že krásně vypadají a jsou velmi elegantní – skvělý kousek pro každou prezentaci, řekl bych! Stěte se tedy jedním z těch, kdo touto módní jednotkou rádi přispívají ke zmírnění zátěže Země; získejte předem vyrobený malý dům od CDPH. Tyto předem vyrobené malé domy jsou postaveny podle modulárního standardu, který lze upravit podle požadavků vašeho domova. To umožňuje sériovou výrobu a zvyšuje bezpečnost, stabilitu a spolehlivost vašeho domova. Současně lze skládací místnost flexibilně kombinovat tak, aby vyhovovala různým požadavkům na využití, a vy tak můžete kdykoli a kdekoli užívat pohodlí svého domova. Rychlá dodávka! Přeprava a balení probíhají velmi rychle; k balení vašeho skládacího prostoru používáme zkušený tým zabývající se balením, který postupuje podle vašich požadavků, a tím zajišťuje, že obdržíte nejlepší produkt. Během celého procesu dodávky také sledujeme každý jeho krok, abychom zajistili bezpečný doraz zboží do cílového místa. Je to také nejvhodnější možnost, protože místnost se snadno skládá a montuje bez nutnosti svařování na stavbě. Poskytujeme návod k instalaci, který umožní rychlejší a efektivnější montáž. Pokud budete postupovat přesně podle kroků uvedených v návodu, dokážete snadno dokončit montáž vašeho skládacího domova. Předem vyrobené malé domy jsou snadné postavit a nevyžadují žádné zvláštní dovednosti. Lze je použít pro bydlení, kancelář, skladování nebo jakýkoli jiný účel. Kontejnerový dům může vytvořit bezpečnější a zároveň pohodlnější životní prostor! Využíváme standardní modulární návrhy, přičemž všechny konstrukční prvky jsou v továrních podmínkách předem vyrobeny podle standardu. Vyberte si vhodnou velikost a konfiguraci, abyste mohli rychle postavit životní prostor, který odpovídá vašim požadavkům. Na základě vašich požadavků a preferencí lze několik modulů začlenit do různých dispozic prostor, čímž vzniknou prefabrikované malé domy s integrovanými životními prostory, jako je například obývací pokoj, kuchyně nebo ložnice. Náš kontejnerový dům disponuje vynikajícími vlastnostmi, jako je vodotěsnost, odolnost proti korozi a požární odolnost. Montáž je jednoduchá a přímočará a nepotřebuje specifické technické znalosti. Ať už jde o soukromé bydlení, dočasné kanceláře, skladovací prostory nebo jiné účely – naše prefabrikované kontejnerové domy jsou navrženy tak, aby vyhovovaly vašim požadavkům. Nyní je ten správný čas investovat do kontejnerového pokoje a využít nižší ceny i pečlivé zákaznické služby. Zlepšete si život zakoupením kontejnerového pokoje! Jablková chalupa, jedinečný tvar, krásný vzhled – udělá z vašeho domova ještě osobnější prostor. Nabízíme širokou škálu stylů a barev, které odpovídají vašim individuálním vkusům – od jednoduchého současného až po tradiční styl. Společnost Beijing Chengdong se specializuje na předem vyrobené malé domy, které lze podle vašich požadavků individuálně upravit. Abychom naplnili vaše individuální přání a preference, můžete si přizpůsobit návrh domu, jeho půdorys, rozvody vody a elektřiny apod., čímž vznikne pro vás ideální a exkluzivní bydliště. Elektroinstalace i potrubí pro vodu jsme navrhli a provedli ještě před samotnou výstavbou, čímž se vyhnete časově náročnému přepravování rozvodů po dokončení interiéru a zároveň zvyšujeme efektivitu úpravy interiéru i jeho kvalitu. Pro vaše obývací, jídelní a ložnicové prostory, kuchyni a mnoho dalšího si můžete vybrat z široké nabídky řešení interiéru. Kvalitní život začíná v Jablkové chalupě! Jablková chalupa je jedinečná oblast! CDPH vyrábí a prodává různé typy modulárních domů, prefabrikovaných domů a vilových domů. Široká škála produktů nás zabezpečuje poskytnout vhodné řešení pro každý táborový areál.předem vyrobené malé domy
Prohlédněte si naši širokou nabídku přizpůsobitelných a energeticky úsporných malých domů

Najděte svůj vysněný dům za rozpočtově výhodných cen našího velkoobchodu s předem vyrobenými malými domy

Zažijte pohodlí a kvalitu našich stavebnicových sad malých domů, které jsou připraveny k montáži

Připojte se k rostoucímu trendu udržitelného způsobu života s našimi odolnými a stylovými předem vyrobenými malými domy
Why choose CDPH
předem vyrobené malé domy?
Vysokokvalitní skládací dům
Nová přírůstek prefabrikovaného domu
Dobrý prodej kontejnerového domu
Moderní styl apple chatrč
Související kategorie produktů
Nemůžete najít, co hledáte?
Vyžádevat nabídku nyní
Kontaktujte naše konzulty pro více dostupných produktů.KONTAKT
27+ let zkušeností
Stavba táborového areálu