\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);
}
});
})();
Pe măsură ce tranziția globală către energie durabilă și regenerabilă se accelerează, standardele de producție pentru infrastructură – în special pentru sistemele de stocare a energiei pe bază de baterii (BESS) și invertorii solari comerciali – au devenit din ce în ce mai riguroase. Aceste sisteme esențiale necesită carcase robuste care să ofere integritate structurală fără compromisuri, gestionare termică precisă și rezistență extremă la condițiile meteo. Cangzhou Deeplink International Supply Chain Co., Ltd., un lider global Procesul de prelucrare a tablei producător cu peste 10 ani de experiență, care a încheiat recent un parteneriat cu o companie de top în domeniul tehnologiilor pentru energie nouă, pentru a oferi soluții personalizate OEM pentru piese din tablă. Această studiu de caz cuprinzător explorează modul în care echipa noastră de ingineri a utilizat tăierea laser avansată, îndoirea CNC cu mai multe axe și sudarea TIG de precizie pentru a îndeplini și depăși cerințele riguroase ale proiectului. Clientul avea nevoie de carcase rezistente, concepute pentru utilizare în exterior și capabile să găzduiască module baterie extrem de sensibile și grele. Provocările legate de inginerie și fabricație erau complexe: La Deeplink, ne mândrim cu modelul nostru de servicii complet integrați. Înainte de începerea producției, echipa noastră de ingineri a efectuat o analiză riguroasă de tip Design for Manufacturability (DFM) pentru a optimiza planurile clienților în vederea eficienței costurilor și a stabilității structurale. Pentru a prelucra geometriile complexe ale plăcilor groase din oțel inoxidabil și aliaje de aluminiu, am utilizat sistemele noastre de tăiere cu laser cu fibră de ultimă generație. Divizia noastră operează echipamente de înaltă putere capabile să taie până la 20 mm oțel inoxidabil, cu precizie la nivel de microni. Aceasta a asigurat tăierea curată a orificiilor dense de ventilație și a profilurilor complexe de muchie, evitând complet deformarea termică și microfisurile. Calitatea excepțională a muchiilor a redus semnificativ necesitatea deburării secundare, accelerând astfel cronograma de producție. Piese tăiate cu laser divizia noastră operează echipamente de înaltă putere capabile să taie până la 20 mm oțel inoxidabil, cu precizie la nivel de microni. Aceasta a asigurat tăierea curată a orificiilor dense de ventilație și a profilurilor complexe de muchie, evitând complet deformarea termică și microfisurile. Calitatea excepțională a muchiilor a redus semnificativ necesitatea deburării secundare, accelerând astfel cronograma de producție. După etapa de tăiere cu laser, componentele plane au fost transferate pe linia noastră automatizată de formare. Am utilizat prese CNC avansate cu 6 axe pentru a obține îndoiri precise sub mai multe unghiuri. Menținerea unei toleranțe de îndoire de ±0,1 mm a permis alinierea perfectă a panourilor îmbinate în faza de asamblare. Pentru asamblarea comună, inginerii noștri certificați ISO 3834 au aplicat sudura TIG cu protecție de argon de precizie. Această tehnică garantează o integritate structurală ridicată, o capacitate excepțională de rezistență la sarcină pentru bateriile interne grele și o finisare impecabilă, fără rosturi, care previne în mod permanent pătrunderea umidității. Pentru a îndeplini cerința riguroasă de durabilitate în aer liber pe o perioadă de 10 ani, acoperirea tradițională cu pulbere nu a fost suficientă, datorită riscului de acoperire neuniformă în colțurile ascunse ale carcasei. În schimb, am aplicat lustruirea electroforetică (E-coating). Această tratare avansată a suprafeței oferă o acoperire uniformă pe 360 de grade, legându-se activ de substratul metalic. Nu doar că a îmbunătățit finisarea metalică estetică și de înaltă calitate, ci a oferit și proprietăți superioare de anticorozivitate și antiruginozitate, trecând ușor testul clientului de pulverizare cu soluție salină pe o durată de 1.000 de ore. Instalația de producție Deeplink acoperă o suprafață de peste 5.000 de metri pătrați și este echipată cu 6 linii de producție automate (nivel de automatizare: 80%). Capacitățile noastre specifice pentru acest proiect au inclus: Prin integrarea capacităților noastre de pe întreaga lanț industrială—de la consultanță DFM și tăiere cu laser până la Piese prelucrate CNC și asamblarea finală—Deeplink a reușit să reducă cu 25 % timpul total de producție al clientului. Combinarea toleranțelor exacte de prelucrare CNC și a lustruirii electrolitice a determinat trecerea produsului, din prima încercare, testelor riguroase ale clientului privind etanșeitatea la apă (IP67) și rezistența la stresul ambiental. Rata ridicată de piese bune la prima verificare a redus în mod semnificativ costurile de fabricație, consolidând un parteneriat OEM/ODM pe termen lung între Deeplink și furnizorul de tehnologii energetice. Î: Care este grosimea maximă a materialului pe care o puteți prelucra pentru piese personalizate tăiate cu laser? R: La Deeplink, mașinile noastre avansate de tăiere cu laser din fibră pot tăia până la 25 mm oțel carbon, 20 mm oțel inoxidabil și 12 mm aluminiu, cu precizie excepțională și muchii curate. Î: Oferiți și servicii de asamblare și tratamente de suprafață, în plus față de fabricarea de bază a pieselor din tablă? A: Da. Suntem un producător certificat ISO9001, cu servicii complete „de la A la Z”. Ofertăm servicii cuprinzătoare, inclusiv ambutisare metalică, îndoire CNC, sudură TIG/MIG, nituire, lustruire electroforetică, pulverizare cu pudră și asamblare mecanică finală. Î: Puteți să ne ajutați cu proiectarea produselor și cu realizarea prototipurilor pentru carcase destinate energiei regenerabile? R: Desigur. Echipa noastră de ingineri oferă consultanță tehnică și proiectare desen (analiză DFM) pentru a optimiza fișierele dumneavoastră CAD înainte de producție. Asigurăm teste rapide pe eșantioane și prototipare pentru a verifica dacă proiectul îndeplinește toate cerințele funcționale și de clasă de protecție IP, înainte de trecerea la producția de masă. Î: Cum asigurați precizia dimensională a pieselor obținute prin ambutisare profundă și ambutisare metalică? R: Dispunem de o echipă specializată de Asigurare a Calității (QA), care efectuează peste 80 de tipuri de verificări. Folosind mașini de măsurare cu coordonate (CMM) și proiectoare optice de precizie, ne asigurăm că toate piesele OEM personalizate respectă cu strictețe toleranțele la nivel de micron. Gata să optimizați următorul proiect de fabricație cu calitate superioară și livrare rapidă? CONTACTAȚI NEAZI DEEPLINK pentru o analiză gratuită DFM și o ofertă personalizată rapidă.
Producție personalizată de piese metalice OEM: Studiu de caz privind tăierea laser de precizie și îndoirea cu presă CNC
Tăiere cu laser de înaltă precizie și îndoire CNC pentru carcase ale echipamentelor energetice noi

1. Provocările și cerințele centrale ale proiectului
2. Soluțiile integrate de fabricație Deeplink
2.1 Tăiere și profilare personalizată cu laser la nivel de micron

H3: 2.2 Îndoire cu presă CNC și sudare TIG de precizie

2.3 Tratare avansată a suprafeței: lustruire electroforetică

3. Parametrii capacității de prelucrare (specificații tehnice)
4. Rezultatele proiectului și beneficiile pentru client
H2: 5. Întrebări frecvente (FAQ)
Produse recomandate