\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); } }); })();

Toate categoriile
Înapoi

Studiu de caz OEM: Carcase personalizate din tablă metalică de precizie pentru echipamente electronice

Prezentare generală a proiectului: Protecție inginerească pentru electronice avansate În industria electronică rapidă și extrem de competitivă, protejarea componentelor interne sensibile este la fel de importantă ca și echipamentul hardware în sine. Fără o carcasă robustă și realizată cu precizie, plăcile PCB (plăci de circuite imprimate), microprocesoarele și sursele de alimentare sunt expuse impactului fizic, suprasarcinii termice și contaminării mediului.

Cangzhou Deeplink International Supply Chain Co., Ltd. a colaborat recent cu un client OEM de top în domeniul tehnologiei pentru fabricarea unor carcase personalizate din tablă metalică de înaltă precizie destinate noii linii de echipamente electronice avansate. Aceste carcase necesitau o precizie dimensională strictă pentru a asigura o montare internă fără probleme, proprietăți excelente de disipare termică pentru funcționare continuă și un finisaj impecabil prin pulverizare electrostatică, pentru a satisface cerințele estetice riguroase ale consumatorilor. În plus, carcasele trebuiau să ofere o protecție fiabilă împotriva interferențelor electromagnetice și radiofrecvență (EMI/RFI) pentru a respecta standardele internaționale de siguranță electronică.

Metrici esențiale de producție și flux de proces Beneficiindu-ne de experiența noastră de peste 10 ani în producția personalizată și de atelierul nostru de prelucrare, care acoperă peste 5.000 mp, echipa noastră de ingineri a adoptat o abordare proactivă. Am efectuat o analiză completă DFM (Design for Manufacturability) cu mult timp înainte de începerea fabricării matrițelor. Prin optimizarea razelor de îndoire, standardizarea dimensiunilor găurilor și rafinarea acumulărilor de toleranțe, am redus la minimum riscurile de producție, am optimizat randamentul materialelor și am scăzut semnificativ costul pe unitate.

  • Selectarea materialelor și analiza proprietăților: Pentru acest proiect, clientul a cerut un echilibru între construcția ușoară și protecția rigidă. Am selectat aliaje de aluminiu de înaltă calitate pentru carcasă principală, datorită raportului optim greutate-rezistență și conductivității termice superioare, esențiale pentru răcirea pasivă. Pentru suporturile structurale interne, s-au utilizat oțel carbon și foi pre-galvanizate, pentru a asigura integritatea structurală și continuitatea legării la pământ.
  • Tăierea și profilarea cu laser de înaltă viteză: Complexitatea carcaselor electronice constă adesea în aranjamentul precis al interfețelor pentru conectori, porturilor I/O și al fantelor complexe de ventilare. Aceste geometrii complexe au fost prelucrate prin divizia noastră Tăiere cu laser și prelucrare profilată . Folosind echipamentele noastre avansate de laser cu fibră de 12 kW, am obținut margini fără bavuri, distorsiuni termice minime (zone afectate de căldură) și o scalare rapidă de la prototipurile inițiale la serii mari de producție.

  • Formare și ambutisare progresivă: Pentru suporturile interne standardizate de montare și elementele structurale repetitive, am trecut producția pe liniile noastre de Bombardea metalică progresivă . Această tehnologie asigură o producție rapidă și rentabilă, păstrând în același timp o consistență dimensională absolută pe mii de unități.

Forming & Progressive Stamping 1.jpg

Tratament de suprafață: planitate strictă, protecție împotriva interferențelor electromagnetice (EMI) și control al finisajului Carcaselor electronice le este necesară mai mult decât doar rezistență structurală; ele necesită o finișare durabilă și estetic plăcută, care să corespundă identității mărcii. După etapa inițială Prelucrare personalizată a tablei subțiri și procesele de îndoire, carcasele au fost supuse unei pregătiri minuțioase a suprafeței.

În primul rând, anumite puncte interne de contact au fost acoperite pentru a asigura un contact curat metal-pe-metal, esențial pentru menținerea legării la pământ electrice și a protecției eficiente împotriva interferențelor electromagnetice (EMI). Ulterior, am aplicat un proces de pulverizare cu praf de înaltă calitate, cu o textură fină. Această finisare oferă o rezistență superioară la coroziune, umiditatea ambientală, zgârieturile zilnice și uzură.

În mod esențial, echipa noastră de fabricație a menținut un control riguros al planității pe tot parcursul etapelor de sudare, rectificare și coacere la temperatură înaltă. Deformarea termică apărută în timpul sudării sau al coacerii în cuptorul de pulverizare poate duce la deformarea panourilor, ceea ce provoacă nesuprapunerea în timpul montajului final. Prin controlul strict al intrărilor termice, am asigurat faptul că carcasele finale s-au asamblat fără probleme cu plăcile de circuit imprimat (PCB) interne ale clientului, cu marginile ecranelor și cu capacele exterioare, fără a lăsa niciun spațiu vizibil neplăcut.

Asigurarea Calității și Trasabilitatea Certificată ISO 9001 Conformitatea în cadrul producției de serie reprezintă pilonul serviciului nostru OEM. În mod diferit de practicile obișnuite de pe piață, care pot efectua doar verificări vizuale elementare înainte de ambalare, Deeplink operează în cadrul unui sistem strict de management al calității, certificat ISO 9001. Fiecare serie de producție este supusă unor verificări QA specifice, documentate, în număr de peste 39.

Pentru aceste carcase electronice sensibile, protocolul nostru riguros de inspecție a inclus:

  1. Inspecția Materialelor Primite: Verificarea certificatelor de material (MTR) și efectuarea unor verificări dimensionale ale foilor brute din aluminiu și oțel, înainte de începerea oricărei operațiuni de tăiere.
  2. Inspecția la primul articol (FAI): Probele inițiale sunt supuse unei examinări riguroase în raport cu desenele CAD originale ale clientului, pentru a verifica toate unghiurile de îndoire, pozițiile găurilor și toleranțele, înainte ca producția de serie să fie autorizată.
  3. Monitorizare în timpul procesului: Verificări dimensionale și de planitate sunt efectuate în mod regulat pe întreaga durată a ciclului de fabricație, pentru a preveni acumularea eventualelor abateri sau probleme legate de uzurarea sculelor.
  4. Inspeția finală și ambalarea: Se efectuează o evaluare amănunțită a grosimii stratului de pudră, a consistenței culorii și a potrivirii la asamblare. În final, carcasele sunt ambalate personalizat, folosind materiale antistatice și absorbante de șoc, pentru a garanta că ajung pe linia de asamblare a clientului în stare imaculată.


Întrebări frecvente

Î: Ce procese de fabricație utilizează Deeplink pentru carcase electronice de precizie? R: Cangzhou Deeplink aplică o abordare completă de fabricație, care combină tăierea cu laser de fibră de 12 kW pentru decupări precise ale orificiilor, îndoirea cu presă CNC pentru precizie și stampilarea metalică cu matrițe progresive pentru suporturi structurale în volume mari. Carcasele sunt finalizate cu control riguros al planității și cu un strat durabil de pudră.

Î: Cum gestionează Deeplink cerințele de ecranare EMI/RFI în carcasele din tablă metalică? A: În etapele de fabricare și finisare, Deeplink utilizează tehnici precise de mascare înainte de aplicarea stratului de pudră pentru a asigura menținerea curată a punctelor de contact metal-pe-metal. Aceasta garantează o legătură electrică corectă la pământ și o protecție continuă împotriva interferențelor electromagnetice/radiofrecvență (EMI/RFI) pentru echipamentele electronice sensibile.

Î: Ce standarde de control al calității se aplică carcaselor metalice personalizate? A: Deeplink funcționează în cadrul unui sistem de calitate certificat ISO 9001, efectuând peste 39 de verificări QA pe proiect. Acest protocol cuprinzător acoperă verificarea materialelor primite, inspecția primului articol (FAI), monitorizarea dimensională în timpul procesului și evaluarea finală a grosimii stratului de acoperire înainte de expediere.

Î: Oferă Deeplink sprijin ingineresc pentru fabricarea din tablă? A: Da, echipa noastră de inginerie efectuează o analiză DFM (Design for Manufacturability) completă înainte de realizarea matrițelor. Analizăm desenele clienților pentru a identifica riscurile legate de toleranțe, pentru a optimiza utilizarea materialelor și pentru a sugera îmbunătățiri ale proceselor, reducând astfel costul pe unitate și sporind fiabilitatea produsului.

Anterior

Carcase metalice pentru dispozitive medicale: un studiu de caz privind oțelul inoxidabil 316L fără defecțiuni

TOATE

Suport personalizat pentru senzori din oțel inoxidabil: Studiu de caz privind stampilarea cu matriță progresivă, de la DFM până la producția de 20.000 de bucăți

Următorul
Produse recomandate