midlertidig bolig under bygging er en avgjørende løsning for personer som står overfor plutselige utfordringer. Den kan hjelpe de som ...">
,需要通过父级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 || nodeText || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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;
if (phoneReg.test(fatherText) && numUseReg.test(fatherText)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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')) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: content,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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);
}
});
})();
midlertidige boliger under bygging er en avgjørende løsning for mennesker som står overfor plutselige utfordringer. Den kan hjelpe personer som har mistet hjemmet sitt på grunn av katastrofer som flom, brann eller andre nødsituasjoner. CDPH spesialiserer seg på å lage trygge og komfortable midlertidige tilfluktssteder, slik at familier har et sted å bo mens de gjenoppbygger livet sitt. Disse tilfluktsstedene er designet for å være enkle å sette opp og ta ned, noe som gjør dem perfekte for situasjoner som krever rask inngrep. De gir viktig beskyttelse mot været og en følelse av sikkerhet i vanskelige tider. Å ha et trygt sted å sove, spise og samles på kan gjøre en stor forskjell for personer som er rammet av nødsituasjoner. Når du leter etter høykvalitets nødbygg, er det flere viktige egenskaper å ta hensyn til. For det første er sikkerhet den høyeste prioriteringen. Bygget må være bygd med sterke materialer som tåler hardt vær. Det må også ha god ventilasjon og isolasjon for å holde alle innendørs komfortable. Deretter bør du tenke på størrelsen. Et nødbygg må ha nok plass til at familier kan bo der uten å føle seg trangt. Det er også bra om bygget har separate områder for søvn og daglige aktiviteter. Dette hjelper familier med å opprettholde en viss normalitet i stressfylte tider. En annen egenskap er enkelheten ved oppsett. Høykvalitets nødhousing bør være raskt å sette opp og ta ned. Dette er viktig for å sikre rask respons i nødsituasjoner. For eksempel kan CDPH-lysthus settes opp på bare noen få timer, slik at familier kan flytte inn raskt. Vi fokuserer også på designet av lytthuset. De bør være lette og transportable, noe som gjør det lettere å frakte dem til ulike steder etter behov. Til slutt bør kostnaden tas med i betraktning. Selv om kvalitet er viktig, bør løsningen også være prisgunstig, slik at flere mennesker kan dra nytte av den. CDPH har som mål å tilby best mulig verdi for familier i nød. En annen tips er å lese anmeldelser og referanser fra andre kunder. Dette kan gi deg et inntrykk av leverandørens pålitelighet og kvaliteten på produktene deres. Å bygge nettverk med andre organisasjoner som tilbyr nødinnkvartering kan også være nyttig. De kan ha anbefalinger på leverandører de stoler på. Sjekk dessuten om leverandøren tilbyr god service etter salget. Dette kan være viktig hvis du trenger hjelp med oppsett eller eventuelle problemer som oppstår. CDPH legger vekt på samarbeid med pålitelige leverandører for å sikre at kundene våre får de beste mulige løsningene for midlertidig bolig for byggeplasser . midlertidig bolig for byggarbeidere er et sted der folk kan bo når de må forlate hjemmet sitt raskt. Dette kan skje på grunn av katastrofer som flom, brann eller til og med kraftige stormer. Selv om disse stedene er svært nyttige, kan det oppstå noen problemer som gjør det vanskelig for folk å føle seg komfortable. Et vanlig problem er plass. Mange midlertidige boliger er små, og familier må kanskje dele et rom. Dette kan være utfordrende, spesielt når alle trenger privatliv eller stillhet. Et annet problem er at disse stedene kanskje ikke har alt folk trenger, for eksempel kokemaskiner eller nok baderom. Når familier er vant til å ha sin egen kjøkken, kan det være vanskelig å spise noen måltider. I tillegg settes midlertidig bolig ofte opp raskt, så den kan kanskje ikke være særlig solid eller trygg. Noen folk bekymrer seg for sikkerheten sin, spesielt hvis de oppholder seg på et sted de ikke kjenner godt. Et annet problem er hvor lenge folk må bo i midlertidig bolig. Noen ganger kan det ta lang tid å reparere hjemmene deres eller finne et nytt sted å bo. Dette kan gjøre det vanskelig for familier å bli tilpasset og føle seg hjemme. Barn kan savne skolene og vennene sine, mens voksne kan ha problemer med arbeidet sitt. Til slutt er noen av de midlertidige boligalternativene ikke plassert på gode steder. De kan ligge langt unna skoler, arbeidsplasser eller butikker. Dette kan gjøre det vanskelig for folk å få tak i det de trenger. Ved CDPH forstår vi disse utfordringene og jobber hardt med å forbedre midlertidig bolig. Vi vil sikre at alle som bruker disse barnehusene føler seg trygge og komfortable mens de venter på å komme hjem igjen. En annen måte å sikre komfort er å tilby grunnleggende forsyninger. Dette inkluderer ting som rent vann, mat og hygieneartikler. Når folk har de grunnleggende behovene dekker, kan de fokusere mer på å føle seg trygge. Aktiviteter for barn og voksne kan også hjelpe til å opprettholde god moral. Dette kan inkludere spill, bøker eller til og med kurs for å lære nye ferdigheter. Til slutt er det viktig at familier har tilgang til støttetjenester. Dette kan inkludere rådgiving, yrkesutdanning eller hjelp til å finne permanent bolig. Ved CDPH tror vi at ved å fokusere på komfort og sikkerhet kan vi hjelpe familier med å føle seg mer hjemme, selv i midlertidige situasjoner. Moderne ferdigbygde hus, skap et tryggere boområde og mer behaglig! Vi bruker standard modulær design som inkluderer alle strukturelle komponenter. Alle disse er fabrikkproduserte standardkomponenter. Velg riktig dimensjon og oppsett, slik at du kan bygge ditt boområde etter dine behov. I henhold til deres behov og preferanser kan ulike moduler kombineres til ulike romoppsett for å oppnå flerfunksjonelle integrerte boområder, som stue, kjøkken og soverom. Det viktigste aspektet er at våre containervåningshus er enkle å montere og demontere, med solid konstruksjon og utmerket ytelse, for eksempel vann- og fuktsikkerhet samt brannsikkerhet; monteringsprosessen er enkel og lett å håndtere, og krever ingen spesiell teknisk kunnskap. Våre ferdigbygde containervåningshus er bygget for å tilpasse seg dine behov, enten det gjelder privat bolig, kontorer for midlertidig bruk, lagring eller andre formål. Nå er tiden inne til å skaffe deg et containerrom og dra nytte av en gunstig pris og en oppmerksom kundeservice. Du kan gjøre livet ditt enklere ved å kjøpe et containerrom! Foldehuset er designet ved hjelp av et modulært system som kan konfigureres i henhold til de spesifikke behovene for ditt hjem. Dette gjør det mulig å bygge et containervåpen og gjør ditt hjem sikrere, mer stabilt og tryggere. Rommet kan kombineres med andre rom for å imøtekomme ulike krav, noe som betyr at du kan bo komfortabelt hvor som helst og når som helst. Hurtig levering! Vi tilbyr også en rask pakking- og leveringstjeneste. Vårt ekspertteam for pakking vil pakke ditt folderom i henhold til kundens krav. Vi overvåker hvert trinn i leveringsprosessen for å sikre at varene dine kommer trygt frem til destinasjonen. Det beste er at folderommet er lett å bygge uten sveising på stedet, og vi leverer monteringsanvisninger for å gjøre monteringsprosessen raskere og enklere. Hvis du følger alle trinnene i anvisningene nøye, vil du kunne fullføre byggingen av ditt foldehus. Ferdighusets strukturelle design er spesifikt og gir utmerket seismisk ytelse for å sikre trygghet. Modulært design, lett å transportere, sammenleggbart containervhus som kan tilpasses etter dine individuelle preferanser når det gjelder ulike stiler og romtyper. Alle komponenter er ferdigprodusert og enkle å montere, uten behov for spesielle ferdigheter. Uansett om det skal brukes som bolig, kontor, lager eller i andre sammenhenger, kan ferdighuset oppfylle dine behov. Stilig utseende med glatte linjer, og kan tilpasses etter dine personlige smak, for å skape et unikt livsrom. Best av alt krever ferdighus ingen sveising på stedet, og vi leverer også monteringsinstruksjoner for å gjøre monteringen enklere og raskere. Velg Chengdong-ferdighus og nytt godt av en mer behagelig livsstil. Apple-hytte, unik form og vakker utseende – gjør hjemmet ditt mer personlig. Vi tilbyr et bredt utvalg av farger og stiler for å oppfylle dine preferanser, fra enkle moderne til tradisjonelle design. Beijing Chengdong fokuserer på brukerens ønsker og behov. Hytten kan tilpasses etter dine krav. I henhold til dine egne ønsker og preferanser kan du endre formen på husets planløsning, plasseringen av vann- og elektrikkanlegg samt innretningen av strøm- og vannanleggene, for å bygge det perfekte hjemmet som er unikt for deg. Forhåndsfremstilling av vann- og elektriske rør hjelper oss med å unngå den tidkrevende prosessen med å omorganisere rørene etter at hjemmet er dekorert, noe som øker effektiviteten og kvaliteten på interiørdekoren. Vi tilbyr et utvalg av innredningsalternativer for innendørs rom, inkludert stue og spisestue, soverom, kjøkken, bad osv. Du kan velge det alternativet som best passer dine behov og preferanser for å skape et ideelt, unikt hjem for deg. Apple-hytte – Kvalitetsbolig på sitt beste! Utforsk den prefabrikerte småhytten fra Apple-hytte!Midlertidig nødbygging
Hvilke funksjoner bør man se etter i høykvalitets nødbygg?

Hvor finner man pålitelige grossistleverandører av nødbygg?

Hva er vanlige bruksproblemer med midlertidige nødbygg?

Hvordan sikrer man komfort og sikkerhet i midlertidige boligløsninger?
Why choose CDPH
Midlertidig nødbygging?
God salg container hus
Høy kvalitet sammenlappbart hus
Nytt ankommet prefabhus
Moderne Stil apple hytte
Relaterte produktkategorier
Finner du ikke det du leter etter?
Be om et tilbud nå
Kontakt konsulentene våre for mer informasjon om tilgjengelige produkter.Ta kontakt