\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);
}
});
})();
Trong các lĩnh vực tự động hóa công nghiệp, viễn thông và năng lượng mới đang phát triển nhanh chóng, nhu cầu về vỏ bọc kim loại bền bỉ, chính xác về kích thước và hoàn hảo về mặt thẩm mỹ đang ở mức cao nhất mọi thời đại. Cangzhou Deeplink International Supply Chain Co., Ltd .đứng đầu ngành công nghiệp này. Với hơn một thập kỷ kinh nghiệm sản xuất và vốn điều lệ đăng ký 10 triệu Nhân dân tệ (RMB), cơ sở sản xuất rộng hơn 5.000 mét vuông của chúng tôi cung cấp giải pháp trọn gói từ đầu đến cuối Chế tạo kim loại tấm theo yêu cầu tùy chỉnh dịch vụ. Nghiên cứu điển hình này đi sâu vào một dự án quy mô lớn gần đây, trong đó đội kỹ sư của chúng tôi đã tích hợp liền mạch kỹ thuật cắt laser ở cấp micromet, uốn CNC chính xác và hàn chuyên sâu để sản xuất các cụm kết cấu phức tạp, hiện thực hóa cam kết của chúng tôi: "giao hàng nhanh, tay nghề tinh xảo và chất lượng ổn định." Một khách hàng nổi bật trong lĩnh vực viễn thông đã liên hệ với Deeplink để sản xuất các vỏ bọc thiết bị ngoài trời có độ bền cao và chống chịu thời tiết. Dự án yêu cầu kết hợp giữa độ bền cấu trúc vượt trội và dung sai kích thước chính xác tuyệt đối. Các thách thức chính bao gồm: Để đáp ứng những yêu cầu khắt khe này, Deeplink đã triển khai một chiến lược sản xuất được phối hợp chặt chẽ, tận dụng thiết bị hiện đại bậc nhất và khả năng tích hợp toàn chuỗi ngành công nghiệp. Chúng tôi bắt đầu chu kỳ sản xuất bằng các hệ thống cắt laser sợi quang tiên tiến của mình. Dịch vụ cắt laser tùy chỉnh độ chính xác cao cho phép chúng tôi gia công các tấm thép không gỉ và nhôm dày với tốc độ vượt trội cùng độ chính xác ở mức micromet. Độ rộng rãnh cắt hẹp của tia laser đảm bảo các hoa văn thông gió phức tạp và các chốt khớp nối chính xác được cắt hoàn hảo mà không gây biến dạng nhiệt hay ứng suất cơ học. Sau giai đoạn cắt, các mẫu phẳng được chuyển đến các trạm uốn thủy lực CNC của chúng tôi. Với sự am hiểu về "nghệ thuật và khoa học của việc uốn kim loại", các kỹ sư của chúng tôi đã sử dụng phần mềm phân tích DFM (Thiết kế để dễ sản xuất) tiên tiến nhằm tính toán chính xác lượng giãn uốn và dự đoán độ đàn hồi trở lại của vật liệu. Nhờ đó, mọi đường uốn đa trục đều được thực hiện với độ chính xác tuyệt đối, giúp các tấm hình học phức tạp khớp hoàn hảo trong quá trình lắp ráp. Độ bền cấu trúc cuối cùng được đảm bảo nhờ các kỹ thuật nối ghép chuyên sâu. Các kỹ thuật viên được chứng nhận của chúng tôi đã thực hiện hàn TIG hoàn hảo để tạo ra các mối nối kín nước, liền mạch dọc theo các cạnh của vỏ bọc. Đối với các giá đỡ gắn bên trong, chúng tôi áp dụng phương pháp tán đinh nguội Bộ phận hàn và tán đinh để tránh biến dạng do nhiệt. Cuối cùng, các vỏ bọc trải qua các quy trình xử lý bề mặt nghiêm ngặt, bao gồm đánh bóng điện phân, nhằm đảm bảo khả năng chống ăn mòn tối đa.
Thành công của chúng tôi trong việc triển khai dự án này đúng hạn và trong ngân sách được thúc đẩy bởi cơ sở hạ tầng vững chắc, có thể kiểm chứng: Để mang lại giá trị sâu sắc hơn cho các đội kỹ thuật và mua sắm, chúng tôi giải đáp các câu hỏi kỹ thuật phổ biến liên quan đến gia công kim loại tấm: Câu hỏi 1: Vì sao Cắt kim loại tấm bằng tia laser độ chính xác cao được ưu tiên hơn dập cơ học truyền thống đối với các chi tiết kim loại tấm phức tạp? A: Cắt Laser công nghệ này mang lại độ linh hoạt và độ chính xác vượt trội. Khác với dập cơ học—yêu cầu khuôn vật lý riêng biệt cho từng hình dạng và thường để lại ba-vơ—cắt laser sử dụng chùm tia sáng hội tụ để làm nóng chảy kim loại. Phương pháp này rất phù hợp cho các hình học phức tạp, chế tạo mẫu nhanh và đảm bảo bề mặt cạnh hoàn hảo mà không gây ứng suất cơ học nào lên phôi. Câu hỏi 2: Deeplink đảm bảo độ chính xác trong uốn kim loại tấm đa trục bằng CNC như thế nào? Ađộ chính xác trong công đoạn uốn đạt được nhờ sự kết hợp giữa máy uốn CNC hiện đại và phân tích DFM nghiêm ngặt. Bằng cách tính toán chính xác hệ số K (độ giãn vật liệu) và tính đến độ bền kéo cụ thể của thép không gỉ hoặc nhôm, hệ thống CNC của chúng tôi tự động điều chỉnh lực uốn để bù trừ hiện tượng đàn hồi sau uốn (springback), từ đó đảm bảo góc uốn luôn đồng nhất và chính xác tuyệt đối. Q3: Khi nào một dự án nên sử dụng hàn thay vì tán đinh trong lắp ráp tấm kim loại? Aviệc lựa chọn phụ thuộc vào các yêu cầu về cấu trúc và môi trường. Hàn TIG hoặc MIG là bắt buộc khi vỏ bọc cần độ cứng vững về cấu trúc, kín nước hoặc chắn điện từ. Riveting tán đinh được sử dụng để nối các kim loại khác nhau, gắn các giá đỡ bên trong nơi phải tránh biến dạng do nhiệt (gây ra bởi hàn), hoặc khi cụm lắp ráp có thể cần tháo rời trong tương lai. Từ thiết kế bản vẽ ban đầu và tư vấn kỹ thuật đến sản xuất máy hoàn chỉnh và vận chuyển toàn cầu, Cangzhou Deeplink cung cấp dịch vụ ‘Một điểm dừng’ thực sự cho các dự án kỹ thuật đòi hỏi cao nhất của bạn. 👉 Khám phá các giải pháp gia công tấm kim loại toàn diện của chúng tôi 👉 Liên hệ ngay với chuyên gia của chúng tôi để nhận báo giá tùy chỉnh và phân tích khả thi về thiết kế (DFM)
Nghiên Cứu Trường Hợp Nâng Cao: Tích Hợp Cắt Laser Độ Chính Xác Cao & Uốn CNC để Gia Công Tấm Kim Loại Theo Đặt Hàng
Nghiên Cứu Trường Hợp Nâng Cao: Tích Hợp Cắt Laser Độ Chính Xác Cao & Uốn CNC để Gia Công Tấm Kim Loại Theo Đặt Hàng
▍ Tóm tắt điều hành

▍ Bối cảnh dự án & Các thách thức cốt lõi
▍ Giải pháp kỹ thuật & Quy trình công nghệ
1. Cắt laser CNC độ chính xác cao

2. Uốn tự động bằng máy uốn thủy lực CNC

3. Hàn TIG, tán đinh và hoàn thiện bề mặt
▍ Năng lực sản xuất dựa trên dữ liệu

▍ Thông tin chuyên ngành
▍ Hợp tác cùng một nhà sản xuất toàn cầu hàng đầu
Các sản phẩm đề xuất