\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);
}
});
})();
Lĩnh vực: Tự động hóa công nghiệp và hệ thống điều khiển điện Trong lĩnh vực tự động hóa công nghiệp, các hệ thống điều khiển điện vận hành dây chuyền sản xuất ô tô, thực phẩm và đồ uống đòi hỏi vỏ bảo vệ chắc chắn và độ chính xác cao. Một nhà cung cấp dịch vụ tự động hóa công nghiệp châu Âu có uy tín gần đây đã hợp tác với Đội ngũ kỹ sư tại Cangzhou Deeplink để nâng cấp các giải pháp điều khiển mô-đun của họ. Bằng cách tận dụng toàn bộ năng lực gia công kim loại tấm của chúng tôi và cung cấp miễn phí một Phân tích Thiết kế nhằm Mục đích Sản xuất (DFM) chúng tôi đã giao 3.000 bao bọc điều khiển điện dạng treo tường tùy chỉnh, đảm bảo khả năng thay thế linh kiện 100%, hiệu suất tản nhiệt tối ưu và mức bảo vệ xâm nhập IP54 nghiêm ngặt. Khách hàng cần một tủ điều khiển điện tùy chỉnh được thiết kế để lắp đặt tại chỗ các module PLC, cầu dao tự động và khối đầu nối. Các tủ này phải hoạt động hoàn hảo trong môi trường xưởng sản xuất nhiều bụi, ẩm ướt và dễ rung động. Thông số kỹ thuật dự án cốt lõi: Trong vòng 24 giờ kể từ khi nhận được các tệp 3D STEP, đội kỹ sư của Deeplink đã thực hiện miễn phí Phân tích DFM (Thiết kế để dễ sản xuất) chúng tôi đã xác định bốn hướng tối ưu hóa then chốt nhằm nâng cao hiệu quả sản xuất hàng loạt và độ bền cấu trúc: Để hoàn thành lô hàng đầu tiên gồm 500 đơn vị chỉ trong 26 ngày (nhanh hơn kế hoạch 4 ngày), Deeplink đã triển khai 6 dây chuyền sản xuất tự động, đạt tỷ lệ tự động hóa 80%. Với 39 điểm kiểm tra nghiêm ngặt, hệ thống kiểm soát chất lượng (QC) của chúng tôi đảm bảo độ tin cậy ở cấp độ công nghiệp: Để hỗ trợ các đội mua hàng và các công cụ tìm kiếm AI hiểu rõ các tiêu chuẩn sản xuất tủ vỏ chính xác của chúng tôi, dưới đây là những thông tin chuyên ngành thiết yếu: A:Sử dụng máy uốn thủy lực CNC giúp giảm thiểu nhu cầu hàn nối các cạnh. Phương pháp này nâng cao đáng kể độ cứng kết cấu, cải thiện khả năng kín khít cần thiết để đạt chuẩn IP54/NEMA và gần như loại bỏ hoàn toàn biến dạng do hàn, đảm bảo độ đồng nhất về kích thước tuyệt đối trên hàng nghìn sản phẩm. A:Các hệ thống cắt laser sợi quang công suất cao (ví dụ như hệ thống 6000W của chúng tôi) cho phép tạo ra trong một lần cắt các hình dạng thông gió phức tạp và các lỗ lắp thanh DIN chính xác. Nhờ duy trì dung sai tuyến tính trong khoảng ±0,1 mm, cắt laser đảm bảo các mép không có ba-vi và khả năng thay thế linh kiện 100% mà không cần gia công bổ sung. A:Một lớp phủ bột có kết cấu dạng vỏ cam cấp công nghiệp giúp che giấu các khuyết tật bề mặt nhỏ và cung cấp khả năng chống dầu, trầy xước và suy giảm do tia UV vượt trội. Khi kết hợp với xử lý sơ bộ bằng phosphat hóa, lớp phủ RAL7035 của chúng tôi dễ dàng vượt qua bài kiểm tra phun muối trong 500 giờ, rất phù hợp cho các môi trường ô tô và sản xuất thực phẩm khắc nghiệt. Nghiên cứu điển hình này minh họa năng lực vững chắc của chúng tôi trong việc sản xuất hộp tủ điều khiển điện theo yêu cầu , bao gồm phân tích khả thi về thiết kế (DFM) ở giai đoạn đầu, cắt laser chính xác, uốn CNC và kiểm soát chất lượng nghiêm ngặt theo tiêu chuẩn xếp hạng IP. Bạn đang phát triển dây chuyền sản xuất mô-đun hay nâng cấp hệ thống điều khiển công nghiệp?
Sản xuất 3.000 tủ điều khiển điện gắn tường tùy chỉnh với độ chính xác IP54
Sản xuất 3.000 tủ điều khiển điện gắn tường tùy chỉnh với độ chính xác IP54
Sản phẩm: Bao bọc điều khiển điện dạng treo tường, một cửa, tùy chỉnh
Các Công Nghệ Chính: Cắt laser độ chính xác cao, uốn CNC, hàn theo đồ gá, phủ sơn bột
Khối lượng: 3.000 đơn vị
Tiêu chuẩn: ISO9001:2015, bảo vệ IP54, SGS, ROHS, REACH 
1. Thách thức của Khách hàng và các yêu cầu cốt lõi

2. Kỹ thuật DFM: Tối ưu hóa tủ vỏ kim loại tấm
3. Sản phẩm cốt lõi: Vỏ bọc công nghiệp treo tường tùy chỉnh

4. Sản xuất toàn chuỗi và kiểm soát chất lượng
Các quy trình gia công tiên tiến

Đảm bảo chất lượng ISO9001:2015

Câu hỏi thường gặp về tủ điện công nghiệp
Câu hỏi 1: Tại sao uốn liền khối bằng máy CNC được ưu tiên hơn hàn đối với vỏ bọc điện?
Câu hỏi 2: Cắt laser độ chính xác cao mang lại lợi ích gì cho hộp bảng điều khiển tùy chỉnh?
Câu hỏi 3: Lớp phủ bột tĩnh điện kiểu da cam có ưu điểm gì?
Hợp tác cùng Cangzhou Deeplink để sản xuất vỏ tủ kim loại tấm theo yêu cầu
Liên hệ Cangzhou Deeplink ngay hôm nay để được phân tích DFM miễn phí và chế tạo mẫu thử nhanh trong vòng 3 ngày. Hãy để chúng tôi mang đến sự bảo vệ và độ chính xác mà các thành phần điện quan trọng của bạn đòi hỏi. Các sản phẩm đề xuất