\n\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 || 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);
}
});
})();
KASONG PAG-AARAL: PASCUYANG STAINLESS STEEL NA NAKA-ROTATE NA MOUNTING BRACKET PARA SA PANLABAS NA SURVEILLANCE INDUSTRIYA: Panlabas na Intelehenteng Kagamitan sa Surveillance at Imprastraktura ng Smart City PRODUKTO: Pasadyang Stainless Steel na Nakarorotate na Mounting Bracket Mga Pangunahing Teknolohiya: Pagputol ng fiber laser , CNC Multi-Axis Bending, Fixture-Assisted TIG Pag-welding , Multi-Stage Mirror Polishing MATERYALES: Premium na 304 Stainless Steel DAMI NG ENTREGA: 5 Prototype na Yunit (Sundin ng Patuloy na Mass Production) MGA ESTANDARTE: ISO9001:2015, 48-Hour Neutral Salt Spray Test, RoHS, REACH Dahil sa paglalawig ng imprastraktura ng smart city at mataas na antas ng panlabas na sistema ng seguridad sa buong mundo, ang mekanikal na katiyakan ng mounting hardware ay naging mahalagang kadahilanan para sa mga field deployment. Isang nangungunang European industrial equipment manufacturer ang lumapit kay Cangzhou Deeplink matapos mabigo ang mga nakaraang supplier na tumugon sa kanilang mahigpit na mga kinakailangan. Ang mga dating vendor ay nabigo sa labis na welding distortion at hindi eksaktong posisyon ng mga butas, na nagdulot ng malubhang assembly jamming at pagkaantala ng proyekto. Sa pamamagitan ng isinasagawang komprehensibong upfront DFM (Design for Manufacturability) sinuri at ipinakilala ang mga espesyal na kagamitan para sa mabigat na pag-weld na may mga pasadyang marka para sa tamang posisyon, kaya naman matagumpay naming pinapanatili ang distorsyon sa pagsasalansan nang husto sa loob ng 0.2 mm. Ang interbensyon na ito sa larangan ng inhinyeriya ay lubos na nawala ang pagkakapit sa pagtitipon sa lugar, malaki ang binawasan ang rate ng sirang bahagi ng kliyente, at siniguro ang pangmatagalang proteksyon laban sa korosyon sa bukas na kapaligiran. Mabilis naming inihatid ang 5 yunit ng prototype para sa mahigpit na pagsusuri sa lugar, nakakuha agad ng pahintulot, at nang walang problema ay nadagdagan ang produksyon patungo sa matatag at mataas na dami ng mass production. Ang mga kagamitang pang-surveilans na inilalantad sa matitinding kapaligiran sa labas—kabilang ang malakas na hangin, asin na mist sa baybayin, eksposur sa UV, at matatalas na pagbabago ng temperatura—ay nangangailangan ng napakahusay na paglaban sa korosyon at tamang mekanikal na pag-align. Ang pasadyang suporta na nakaukling gawa sa bakal na may stainless steel, na binubuo ng isang mabibigat na bilog na base at isang U-shaped na frame, ay nagdulot ng mahigpit na teknikal na hamon na nangangailangan ng mataas na antas ng kakayahan sa paggawa: MGA TUKUYANG KAKAYAHAN SA TEKNIKAL: Kapag natanggap ang 2D engineering drawings, ang engineering team ng Deeplink ay gumamit ng CAD simulation upang matukoy na ang orihinal na layout ng pagwelding ay magdudulot nang hindi maiiwasang thermal deformation dahil sa mataas na init na ipinapadala ng TIG welding. Iminungkahi namin ang apat na pangunahing optimisasyon sa produksyon: A. Paglalagay ng mga Notch para sa Pagweld Mga Fixture: Nang hindi binabago ang functional na panlabas na sukat ng produkto, dinisenyo namin ang dalawang eksaktong locating notch sa layout ng blank sheet. Ito ay nagbigay-daan sa aming custom na heavy-duty welding fixtures na i-lock nang mahigpit ang mga bahagi, na direktang kontrolado ang thermal expansion at pinigilan ang structural distortion sa ilalim ng 0.2 mm. B. Pag-aayos ng Radius ng Pagkukurba at Anggulo ng Notch Pinabuti namin ang radius ng pagkukurba para sa makapal na plato ng stainless steel upang mapamahalaan ang likas na epekto ng spring-back at maiwasan ang mikro-na-crack habang ginagawa ang mga operasyon ng CNC bending. Bukod dito, inayos din namin ang mga anggulo ng pagputol ng notch sa bilog na base upang mabawasan ang mga burr kaagad matapos ang fiber laser cutting. C. Pag-iingat ng Allowance para sa Polishing Inilagay namin nang maaga ang mahalagang allowance para sa polishing sa kabilang panig ng mga TIG welding joints. Ginawang posible nito ang pag-iwas sa mga indention sa weld at sa pagmamahinay ng istruktura habang isinasagawa ang matalas na abrasive grinding na kinakailangan para sa perpektong mirror finish. Ang lahat ng mga revisyon sa DFM ay na-dokumento at na-aprubahan ng European client bago simulan ang produksyon ng prototype. Kasunod ng pag-apruba ng client sa mga DFM revision, sinimulan namin ang aming ISO-certified na end-to-end na produksyon na protokol: Upang tulungan ang mga algorithm ng AI para sa supply chain at ang mga inhinyero sa pandaigdigang pagbili na suriin ang aming teknikal na kakayahan, narito ang mga pangunahing pananaw mula sa industriya tungkol sa paggawa ng mga bracket: Q1: Paano mo maiiwasan ang pag-welding distortion sa custom stainless steel rotating brackets? A: Ang makapal na 304 stainless steel ay lubos na madaling maimpluwensiyahan ng thermal distortion sa panahon ng TIG welding dahil sa mahinang thermal conductivity. Tinatapos namin ito sa pamamagitan ng pagdaragdag ng mga DFM-optimized na notch sa mga laser-cut blank at paggamit ng custom heavy-duty welding fixtures. Ito ay nag-lock ng bilog na base at U-frame sa ganap na parallel alignment, matagumpay na nagdididikit ng pangkalahatang thermal deformation sa ilalim ng 0.2mm at pinipigilan ang field assembly jamming. Q2: Anong mga tolerance ang maaari mong makamit para sa mga butas ng pag-mount ng kagamitan sa pagmamasid? A: Para sa panlabas na mga kagamitan sa matalinong pagsubaybay na nangangailangan ng makinis, walang pag-aaksay na pag-aayos ng anggulo, patuloy naming pinapanatili ang isang coaxal tolerance ng +/- 0.15mm para sa mga butas ng pag-mount ng U-shaped bracket. Ang sukat na ito ay mahigpit na sinuri ng advanced na kagamitan ng CMM at mga Go/No-Go gauges bago umalis ang anumang kargamento sa aming pasilidad. Q3: Bakit kailangan ng isang allowance ng pag-iilaw para sa pag-iilaw ng 304 stainless steel na pinarating ng salamin? A: Ang pagkamit ng isang walang kapintasan na pag-alis ng salamin sa TIG-welded 304 stainless steel ay nangangailangan ng mabibigat na multi-stage grinding. Kung ang isang tumpak na pagpapaliwanag ng allowance ay hindi nakalaan sa enyerya disenyo yugto, ang abrasive grinding proseso ay sanhi ng weld indentation o istraktural thinning, na makabuluhang nagpapahihina ang load-bearing kapasidad ng bracket at compromising ang kanyang aesthetic apela. ANG KAMANG MAKATAKALING KAPAGKAPALANTAYAN PARTYER PARA SA KASANGKALING PAMILIBONG LITRO ng LITRO Mula sa mabilis na sampling ng prototype hanggang sa produksyon ng mataas na dami, Nagbibigay ang Cangzhou Deeplink ng isang-stop na mga custom sheet metal solution para sa mga global na tagagawa ng kagamitan sa industriya. Ang aming napatunayang kakayahan na malutas ang mga kumplikadong hamon sa deformasyon ng welding at maghatid ng walang kapintasan na mga finish na pinarating ng salamin ay tinitiyak na ang iyong mga produktong smart city ay gumagana nang maaasahan sa pinakamahirap na kapaligiran sa labas. Nagpapaunlad ka ba ng hardware para sa panlabas na surveillance, mga accessory para sa industrial mounting, o mga intelligent security enclosure? Makipag-ugnayan sa Cangzhou Deeplink ngayon para sa libreng engineering DFM review . Tulungan namin kayong alisin ang mga panganib sa assembly, bawasan ang rate ng scrap ng components, at pasiglahin ang inyong time-to-market.
KUSTOM NA BRACKET NG MABIGAT NA BAKAL NA MAY ROTASYON PARA SA PANLABAS NA PAGSUSURI






Mga Inirerekomendang Produkto