\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);
}
});
})();
산업 분야: 정수 필터링 / 산업용 장비 | 연간 생산량: 5,000개 | 제조사: 창저우 딥링크(ISO 9001 인증) 이 사례 연구는 연간 생산량을 기록한 것이다. 유럽의 정수 필터링 OEM을 위해 창저우 딥링크 국제 공급망 유한회사에서 제조한, 외부 나사산 출구와 용접식 L자형 설치 브래킷이 장착된 빨간 분체 도장 심층 인출 강철 탱크 5,000개 이며, 본체는 1.5mm SPCC 냉간 압연 강판 으로 성형되어 상단은 목부 형성 및 외부 나사가 가공되었고, 레이저 절단된 설치 브래킷에 이음매 용접되었으며, 최종 마감은 RAL 3002 빨간 분체 도장(60–80μm) 모든 제품은 포장 전에 1.5바의 공기 누출 테스트를 통과합니다. 금형 제작, 성형, 용접, 마감 작업은 중국 창저우에 위치한 당사의 5,000 m² 규모 ISO 9001 인증 공장에서 자체 수행합니다. 고객 도면에는 세 가지 엄격한 요구사항을 충족해야 하는 원통형 2피스 저장 탱크가 명시되어 있었다: (가) 중간 본체 이음매 및 브래킷 접합부에서 기체 및 액체 누출 방지 용접 과 (나) 상단부에 표준 남성 피팅을 셔밍 없이 바로 조립할 수 있도록 정밀 롤링 가공된 외부 나사산, 그리고 (다) 정밀 롤링 가공된 외부 나사산 표준 남성 피팅을 셔밍 없이 바로 조립할 수 있도록 상단부에 가공된 정밀 롤링 외부 나사산, 그리고 (다) 오렌지 필, 흐름 자국, 용접 스패터 흔적 등 코팅 후 육안으로 확인 가능한 결함이 없는 광택 있는 빨간 외관 마감 측면에 장착된 L자형 브래킷은 충전된 탱크를 벽 패널에 고정해야 하므로, 브래킷의 평탄도와 구멍 위치는 조립 정확도 확보에 매우 중요하다. 모든 생산 로트는 딥링크의 문서화된 검사 체계를 거칩니다: 질문 1. 딥드로잉(deep drawing)이란 무엇이며, 스피닝(spinning)이나 용접(welding) 대신 이 공정을 선택해야 하는 경우는 언제인가요? 질문 2. 용접된 강재 탱크에 적용된 빨간 분체도장의 내구성은 어느 정도인가요? 질문 3. 동일한 부품을 304 또는 316 스테인리스강으로 제작할 수 있나요? 질문 4. 유사한 심형 탱크의 최소 주문 수량(MOQ)은 얼마입니까? 질문 5. 금형 제작 및 샘플 제작 기간은 얼마나 걸립니까? 질문 6. 어떤 CAD 파일 형식을 받습니까? 이 빨간 파우더 코팅 탱크 외에도 딥링크는 맞춤형 금속 부품을 원스톱으로 공급합니다: 딥드로잉 스테인리스강 부품 , 프로그레시브 다이 금속 스탬핑 , 레이저 절단 및 프로파일 가공 , Cnc 가공 부품 , 용접 가공 및 조립 그리고 맞춤형 시트메탈 인클로저 — 자동차, 전자, 의료, 산업 기계, 신에너지, 식품 장비 분야의 글로벌 OEM 고객을 위한 서비스입니다. 도면, 재료, 수량, 마감 요구 사항을 보내주세요. 당사 엔지니어가 서면 DFM 검토를 수행합니다. — 드로우 가능성, 허용 오차 위험, 실/넥 옵션, 마감 선택을 포함 — 하여 24시간 이내에 견적서를 제출합니다. 프로토타입부터 2만 개 규모의 양산까지 환영합니다. 나사식 배출구가 있는 레드 파우더 코팅 딥 드로운 강철 탱크 — OEM 사례 연구
나사식 배출구가 있는 레드 파우더 코팅 딥 드로운 강철 탱크 — OEM 사례 연구
1. 부품 개요
속성
사양
부분 이름
나사식 출구가 있는 심형 가공 강재 저장조/필터 하우징
재질
SPCC 냉간 압연 강판, 벽 두께 1.5 mm (고객 요청 시 304 SS도 가능)
성형
2단계 심형 가공 + 목부 형성 + 나사 압연
출구 나사
외부 압연 나사, G 3/4″ (고객 도면 기준)
장착장치
레이저 절단 L형 브래킷(두 개의 관통 구멍 포함), 본체에 MIG 용접
표면 거칠기
철 인산염 전처리 + RAL 3002 레드 광택 파우더 코팅, 두께 60–80 μm
누출 테스트
수중에서 1.5바 공기압 테스트, 100% 검사
연간 생산량
연간 5,000개 생산(재주문 단위)
리드 타임
금형 및 시료 제작: 25일, 대량 생산: 30~35일

도면에 명시된 사항
해결한 엔지니어링 과제

4. 제조 공정 흐름

5. 품질 관리 — 39단계 이상의 품질 보증 절차, ISO 9001 인증
무대
검사 항목
입고 재료
재료 인증서, 두께, SPCC 코일 표면 상태
최초 샘플
배치 출하 전 도면 대비 완전한 치수 보고서
생산 중
드로잉 치수, 나사 게이지, 용접 부위 시각 검사(교대별 실시)
누출 테스트
1.5바 수중 공기 테스트 — 전량 검사
코팅
도장 두께 60–80μm, 크로스컷 부착력 시험, RAL 색상 칩 대비 색상 일치 여부
최종 포장
시각적 검사, 브래킷 홀 위치, 낙하 충격 안정 포장
고객을 위한 결과
7. 자주 묻는 질문
딥드로잉은 블랭크를 블랭크홀더(blank-holder) 아래에서 다이(die) 안으로 당겨 성형하는 판금 가공 공정입니다. 이 공정은 벽 두께가 균일하고 본체에 종방향 용접 이음매가 없어야 하며, 중간에서 고량 생산 시 경제성이 요구되는 원통형 또는 직사각형 폐쇄형 부품(탱크, 컵, 캡 등) 제작에 적합합니다. 스피닝은 극소량 생산에 적합하며, 용접 롤시밍(welded roll-seam)은 매우 큰 지름의 부품에 적합합니다.
철인산염 전처리 위에 60–80 μm 두께로 도장된 RAL 3002 빨간 분체도장은 실내 또는 덮개가 있는 장비 사용 조건에서 일반적으로 염수분무 테스트 500–1,000시간 수준의 내식성을 제공하며, 액체 페인트보다 찰과상 저항성이 우수합니다. 실외 사용 또는 침수 환경에서는 304/316 스테인리스강 또는 해양용 폴리에스터 분체도장을 적용합니다.
네. 심형 스테인리스 탱크는 디플링크의 표준 제품 라인입니다. 단, 스테인리스 심형은 더 높은 톤수, 느린 속도, 다이 내 윤활이 필요하며, 304재질의 나사 굴림 공정 후에는 연성 확보를 위해 응력 완화 열처리가 일반적으로 추가로 필요합니다. 금형은 SPCC 버전과 별도로 제작됩니다.
프로토타입 제작과 양산 모두 지원합니다. 이와 같은 맞춤형 심형 탱크의 경우, 프로그레시브 다이 투자 비용을 고려할 때 경제적 최적 규모는 연간 약 1,000개 이상입니다. 소량 생산은 싱글스테이션 금형 또는 시트 용접 방식으로 견적 가능합니다. DFM 검토 후 MOQ 및 금형비를 서면으로 안내해 드립니다.
일반적으로 소프트 금형 샘플은 20–25일, 하드 양산 금형은 부품 복잡도 및 나사 성형 여부에 따라 25–35일이 소요됩니다. 승인 후 배치 생산 리드타임은 25–35일입니다.
STEP, IGES, DXF, DWG 및 PDF 도면이 표준입니다. 재료, 두께, 수량, 마감 요구 사항을 포함한 파일을 보내주시면, 당사 엔지니어링 팀이 견적 전에 실현 가능 여부를 확인합니다. 8. 관련 역량 및 장기 지원 서비스
9. 자체 탱크 또는 하우징 프로젝트 시작하기
추천 제품