лагери за работници в нефтена област осигуряват място за живеене и хранене на работниците, а...">
,需要通过父级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);
}
});
})();
Нефтени работни лагери са специален тип жилища, където работниците пребивават по време на работа в нефтените полета. Тези лагер за работници в нефтополето предоставят място за живеене, хранене и отдих на работниците. Те са важни, тъй като много нефтови полета се намират в отдалечени райони, далеч от градовете. Работниците често прекарват седмици или месеци в тези лагери. Размерът и удобствата на лагерите могат да се различават. Някои предлагат основни легла и тоалетни, докато други осигуряват допълнителни удобства като фитнес центрове и игри за забавление. Целта на тези лагери е да се гарантира, че работниците имат всичко необходимо, за да изпълняват добре задъчения си труд. CDPH разбира колко е важно да се осигури добро жилищно обкръжение за тези работници, което им помага да се концентрират върху задачите си и да останат безопасни. При избора на лагер за работници в нефтена местност има много неща, които трябва да се имат предвид. Първо, трябва да знаете колко работници ще пребивават там. За малък проект може да е необходим по-малък лагер, докато за голям проект е нужен по-голям лагер. След това проверете местоположението на лагера. Той трябва да е близо до работната площадка, за да се спести време и да се намали пътуването. Ако Лагери за нефтени полета разстоянието е прекалено голямо, работниците могат да губят ценни часове в път. Освен това вземете предвид удобствата, които се предлагат. Някои лагери имат кухни, които сервират добри ястия, докато други може да предлагат ограничени хранителни опции. Работниците обикновено предпочитат лагери с по-добра храна и по-голям комфорт, тъй като това прави престоя им по-приятен. Здравето и безопасността също са изключително важни. Проверете дали лагерът спазва правилата за безопасност и разполага с добро здравно обслужване. Ако някой се разболее или пострада, е необходимо бързо медицинско вмешателство. CDPH се фокусира върху тези важни фактори, за да се гарантира, че работниците имат добър опит и могат да работят ефективно. Лагерите за работници в нефтени полета наистина могат значително да подобрят производителността на работниците. Когато работниците се чувстват удобно и добре грижени, те са по-щастливи и по-усърдни в работата си. Добър модулни жилищни единици за нефтени полета предоставя чисти жилищни помещения и здравословна храна. Това може да доведе до по-малко болнични дни и повече енергия на работното място. Много лагери също предлагат развлекателни дейности като фитнес зали, игри за забавление или открити зони. Това помага на работниците да се отпуснат след дълги работни часове. Когато имат възможност да се отпуснат, те се връщат на работа по-обновени и готови да се справят с предизвикателствата. Освен това приятелската атмосфера в лагера насърчава сплотяването на екипа. Работниците могат да си намират приятели и да споделят опита си, което укрепва екипа. CDPH разбира, че доволните служители са по-производителни. Затова се фокусираме върху създаването на лагери за работници, които отговарят на всички тези нужди, което води до по-добри работни резултати и по-щастливи работници като цяло. Когато търсите достъпни за наем лагери за работници в нефтени полета за големи операции, е важно да знаете къде да търсите. Лагерите за работници в нефтени полета са места, където служителите пребивават, докато участват в производството на нефт. Тези лагери осигуряват храна, спални помещения и понякога дори забавни дейности. За да намерите добър и достъпен лагер за работници, трябва да започнете с онлайн търсене. Много компании, които предоставят такива лагери, имат уебсайтове, където можете да видите какви услуги предлагат и колко струват. Можете да сравните цени и услуги, за да намерите най-добрата оферта. Освен това разговорите с други компании от нефтената индустрия могат да ви помогнат. Те може да препоръчат места, които вече са използвали. Това може да ви спести време и пари. Друг вариант е да се свържете с CDPH. Те са специализирани в предоставянето на лагери за работници и могат да ви помогнат да намерите такъв, който отговаря на вашите нужди и бюджет. Също така е добра идея да попитате за специални оферти или отстъпки за големи групи. Понякога можете да получите по-добра цена, ако резервирате едновременно много стаи. Освен това се уверете, че сте прочели отзивите на други работници, които са пребивавали в тези лагери. Техните преживявания могат да ви кажат много за качеството и стойността на лагера за работници. Имайте предвид, че макар цената да е важна, удобството и безопасността на вашите работници трябва да са първо на първо място. Затова вземете си време, за да намерите баланс между достъпност и качество. Какво отличава надеждния доставчик на лагери за работници в нефтени полета? Добрият доставчик е този, който се грижи за работниците. Първо, трябва да разполага с чисти и безопасни жилищни помещения. Работниците имат нужда от място, където да се почиват след дълъг работен ден. Стаята трябва да е подредена, а баните – добре поддържани. След това, надеждният доставчик предлага качествена храна. Здравословните ястия са важни, за да се поддържа енергията на работниците. Ако храната е вкусна и разнообразна, работниците ще са по-доволни. Друго нещо, което трябва да се провери, е наличността на поддръжни услуги. Това включва персонал на място, който може да помогне при всякакви проблеми или въпроси. Например, ако работника има нужда от медицинска помощ, трябва да има някой, който може бързо да му окаже подкрепа. CDPH е известен с приятелски и отзивчив персонал, което прави голяма разлика. Освен това, заслужаващият доверие доставчик на лагери предлага развлекателни дейности. След усърдна работа работниците обичат да се отпуснат и да се забавляват. Това могат да са игри, прожекции на филми или спортни занимания. Всички тези характеристики помагат за създаване на позитивна среда за всички. Накрая, комуникацията е от решаващо значение. Отличният доставчик поддържа връзка с работниците и слуша техните нужди. Когато работниците се чувстват чути, те са по-вероятни да бъдат доволни и продуктивни. Предварително изработеният дом е построен със специална конструктивна схема и притежава добри сейсмични характеристики, за да гарантира безопасността. Модулната конструкция позволява лесно преместване и монтаж и може да бъде персонализирана като сгъваем дом според вашите индивидуални предпочитания относно различни стилове и типове помещения. Всички елементи са изработени от предварително изработени материали, лесни за монтаж и не изискват специфични умения. Независимо дали се планира за офис, жилище, склад или други цели, предварително изработеният дом може да задоволи вашите нужди. Стилно външно оформление и изящни линии, които могат да бъдат адаптирани според вашите лични предпочитания, за да се създаде индивидуално жилищно пространство. Най-важното е, че предварително изработените домове не изискват заваряване на място, а ние предоставяме подробни инструкции за монтаж, за да направим процеса по-лесен и по-бърз. Възползвайте се от предимствата на по-удобен начин на живот с предварително изработените домове Chengdong. Предварително изработени домове Chengdong. Направете своя дом по-безопасен и по-комфортен, инсталирайки ковчежи! Използваме къщи от контейнери, които включват всички структурни компоненти. Всички те са префабрикирани по заводски стандарт. Изберете правилния размер и конфигурация и бързо можете да сградите жилищно пространство, което отговаря на вашите нужди. Според изискванията и предпочитанията на клиента, различните модули могат да бъдат комбинирани за да се създадат различни планировки на стаи като кухня, живееща стая или спалня. Нашата къща в контейнер има фантастични качества като водонепроницаемост, защита срещу влажност, противокорозия, огнестойкост и антикорозия. Процесът на инсталация е лесен и прост, и не изисква специални технически познания. Дали е за лично пространство, временен офис, склад или други нужди, нашите префабрикувани контейнери са разработени, за да отговорят на вашите изисквания. Закажете контейнерна стая днес и насладете се на по-ниска цена и по-вежлив услуга, за да направите вашия живот по-приятен! Ябълков дом, уникален дизайн, красив външен вид, който прави дома ви още по-персонализиран. Предлагаме разнообразни стилове и цветове, за да съответстват на вашите лични предпочитания – от прост и съвременен до традиционен. Компанията „Пекин Ченгдун“ се специализира в производството на преносими контейнерни къщи и може да ги персонализира според вашите нужди. За да отговорим на вашите индивидуални желания и предпочитания, можете да персонализирате дизайна, планировката, водопроводната и електрическата инсталация и др., за да създадете идеалния, ексклузивен дом за вас. Електрическите и водопроводните тръби са проектирани и монтирани още преди строителството, което избягва време-емкото преустройство на инсталациите след завършване на интериора и повишава ефективността и качеството на ремонта. Можете да изберете от широка гама решения за интериорен дизайн за жилищното си пространство, трапезарията, спалнята, кухнята и много други помещения. Качествен живот – от Ябълковия дом! Ябълковият дом е уникално пространство! Сгъваемата къща е базирана на предварително изработената къща от традиционния тип, която може да се проектира според вашите изисквания, да се произвежда в големи количества и да направи вашия жилищен комфорт по-безопасен, стабилен и сигурен. Стаята може да се използва по начин, който отговаря на различни изисквания, което означава, че можете удобно да живеете навсякъде и по всяко време. Бърза доставка! Опаковането и доставката също са бързи, тъй като в нашата опаковъчна служба работят професионалисти, които опаковат сгъваемата стая според вашите изисквания и гарантират, че ще получите продукт от най-високо качество. Ще следим всеки етап от процеса на доставка, за да се уверим, че вашите продукти пристигат на предназначението си безопасно и без повреди. Сгъваемата къща може да се монтира на място без заваряване и ние предоставяме инструкции за монтаж, за да ускорим и опростим процеса. Ако последвате стъпките, посочени в инструкциите, ще можете лесно и бързо да завършите монтажа на сгъваемата къща.Лагери за работници в нефтени полета
Как да изберете подходящия лагер за работници в нефтена област за нуждите на вашия проект

Как лагерите за работници в нефтена област подобряват продуктивността и задоволството на служителите

Къде да набавите достъпни по цена лагери за работници в нефтена област за големи операции

Какво прави надеждния доставчик на лагери за работници в нефтена област да се отличава?
Why choose CDPH
Лагери за работници в нефтени полета?
Нов пристигнал префабрикан дом
Добър Продажби контейнерен дом
Модерен стил apple кабина
Висококачествена складна къща
Свързани категории продукти
Не намирате това, което търсите?
Поискайте оферта сега
Свържете се с нашите консултанти за повече налични продукти.Свържете се с нас