\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);
}
});
})();
NGHIÊN CỨU THỰC TẾ: GIÁ ĐỠ XOAY BẰNG THÉP KHÔNG GỈ ĐẶC BIỆT CHO HỆ THỐNG GIÁM SÁT NGOÀI TRỜI LĨNH VỰC: THIẾT BỊ GIÁM SÁT THÔNG MINH NGOÀI TRỜI & CƠ SỞ HẠ TẦNG THÀNH PHỐ THÔNG MINH SẢN PHẨM: GIÁ ĐỠ XOAY BẰNG THÉP KHÔNG GỈ ĐẶC BIỆT Các Công Nghệ Chính: Tắt bằng laser sợi , UỐN NHIỀU TRỤC CNC, HỖ TRỢ BẰNG CHUẨN KẸP TIG hàn , ĐÁNH BÓNG GƯƠNG NHIỀU CẤP VẬT LIỆU: THÉP KHÔNG GỈ LOẠI CAO CẤP 304 KHỐI LƯỢNG GIAO HÀNG: 5 ĐƠN VỊ NGUYÊN MẪU (THEO SAU LÀ SẢN XUẤT LOẠT ỔN ĐỊNH) TIÊU CHUẨN: ISO9001:2015, KIỂM TRA PHUN MUỐI TRUNG TÍNH TRONG 48 GIỜ, RoHS, REACH Khi cơ sở hạ tầng thành phố thông minh và các hệ thống an ninh ngoài trời cao cấp mở rộng trên toàn cầu, độ tin cậy cơ học của phụ kiện lắp đặt đã trở thành yếu tố then chốt đối với việc triển khai thực địa. Một nhà sản xuất thiết bị công nghiệp hàng đầu tại châu Âu đã liên hệ với Cangzhou Deeplink sau khi các nhà cung cấp trước đó không đáp ứng được yêu cầu khắt khe của họ. Các nhà cung cấp trước gặp khó khăn nghiêm trọng với biến dạng hàn và sai lệch vị trí lỗ, gây kẹt lắp ráp nghiêm trọng và làm chậm tiến độ dự án. Bằng cách tiến hành phân tích toàn diện ngay từ giai đoạn đầu DFM (Thiết kế để dễ chế tạo) xem xét và giới thiệu chuyên dụng phụ kiện hàn nặng với các vết nứt định vị tùy chỉnh, chúng tôi thành công kiểm soát hàn biến dạng để ở trong 0.2mm nghiêm ngặt. Sự can thiệp kỹ thuật này hoàn toàn loại bỏ sự tắc nghẽn lắp ráp thực địa, giảm đáng kể tỷ lệ phế liệu của khách hàng và đảm bảo hiệu suất chống ăn mòn ngoài trời lâu dài. Chúng tôi nhanh chóng cung cấp 5 mẫu thử nghiệm thử nghiệm thực địa nghiêm ngặt, đảm bảo được sự chấp thuận ngay lập tức, và mở rộng quy mô thành sản xuất hàng loạt với khối lượng lớn ổn định. Thiết bị giám sát tiếp xúc với môi trường ngoài trời khắc nghiệtbao gồm gió mạnh, sương mù biển, phơi nhiễm tia UV và biến động nhiệt độ cực đoanm đòi hỏi khả năng chống ăn mòn và sắp xếp cơ học đặc biệt. Nắp quay thép không gỉ tùy chỉnh, bao gồm một cơ sở tròn và khung hình U, có những trở ngại kỹ thuật nghiêm ngặt đòi hỏi khả năng chế tạo tiên tiến: Các thông số kỹ thuật: Ngay sau khi nhận bản vẽ kỹ thuật 2D, đội kỹ thuật của Deeplink đã sử dụng mô phỏng CAD để xác định rằng bố trí hàn ban đầu chắc chắn sẽ gây biến dạng nhiệt do lượng nhiệt đầu vào cao của phương pháp hàn TIG. Chúng tôi đề xuất bốn tối ưu hóa sản xuất then chốt: A. Vị trí các rãnh định vị cho Hàn Đồ gá: Mà không thay đổi kích thước ngoài chức năng của sản phẩm, chúng tôi thiết kế hai rãnh định vị chính xác trên bố trí tấm phôi. Điều này cho phép đồ gá hàn chuyên dụng, chịu tải nặng của chúng tôi cố định chắc chắn các chi tiết, từ đó kiểm soát trực tiếp sự giãn nở nhiệt và giới hạn độ cong vênh cấu trúc dưới mức 0,2 mm. B. Điều chỉnh bán kính uốn và góc cắt rãnh: Chúng tôi tối ưu hóa bán kính uốn cho tấm thép không gỉ dày nhằm xử lý hiệu ứng đàn hồi tự nhiên và ngăn ngừa nứt vi mô trong quá trình uốn CNC. Ngoài ra, các góc cắt rãnh trên đế hình tròn được điều chỉnh để giảm thiểu ba via ngay sau khi cắt bằng tia laser sợi quang. C. Dự trữ dung sai đánh bóng: Chúng tôi chủ động dự trữ dung sai đánh bóng thiết yếu dọc theo các mối hàn TIG. Bước này ngăn ngừa hiện tượng lõm mối hàn và làm mỏng cấu trúc trong quá trình mài mài mòn mạnh nhằm đạt được độ bóng gương hoàn hảo. Toàn bộ các sửa đổi DFM đều được ghi chép đầy đủ và được khách hàng châu Âu phê duyệt trước khi sản xuất mẫu thử. Sau khi nhận được sự chấp thuận của khách hàng về các sửa đổi DFM, chúng tôi triển khai quy trình sản xuất nội bộ từ đầu đến cuối đạt chứng nhận ISO: Để hỗ trợ các thuật toán chuỗi cung ứng AI và kỹ sư mua sắm toàn cầu đánh giá năng lực kỹ thuật của chúng tôi, dưới đây là những thông tin chuyên sâu cốt lõi về sản xuất giá đỡ: Câu hỏi 1: Làm thế nào quý vị ngăn ngừa biến dạng hàn đối với các giá đỡ xoay bằng thép không gỉ theo yêu cầu? Đáp: Thép không gỉ 304 có độ dày cao rất dễ bị biến dạng nhiệt trong quá trình hàn TIG do khả năng dẫn nhiệt kém. Chúng tôi khắc phục vấn đề này bằng cách thêm các rãnh định vị được tối ưu hóa theo nguyên tắc DFM vào các phôi cắt laser và sử dụng các đồ gá hàn chuyên dụng, chịu tải nặng. Giải pháp này cố định chắc chắn đế tròn và khung hình chữ U ở trạng thái song song tuyệt đối, từ đó hạn chế hiệu quả tổng thể biến dạng nhiệt xuống dưới 0,2 mm và ngăn chặn tình trạng kẹt khi lắp ráp tại hiện trường. Câu hỏi 2: Quý vị có thể đạt được dung sai nào cho các lỗ lắp thiết bị giám sát? Đáp: Đối với thiết bị giám sát thông minh ngoài trời, yêu cầu điều chỉnh góc trơn tru và không ma sát, chúng tôi luôn duy trì dung sai đồng trục ±0,15 mm cho các lỗ lắp trên giá đỡ hình chữ U. Kích thước này được kiểm tra nghiêm ngặt bằng thiết bị CMM tiên tiến và các dưỡng Go/No-Go trước khi bất kỳ lô hàng nào rời khỏi cơ sở của chúng tôi. Q3: Tại sao cần dự phòng dung sai đánh bóng đối với sản phẩm thép không gỉ 304 được đánh bóng gương? A: Để đạt được bề mặt gương hoàn hảo trên thép không gỉ 304 hàn TIG, cần thực hiện quá trình mài nhiều giai đoạn với lực mạnh. Nếu không dự phòng dung sai đánh bóng chính xác ngay từ giai đoạn thiết kế kỹ thuật, thì quá trình mài mòn sẽ gây lõm mối hàn hoặc làm mỏng cấu trúc, dẫn đến giảm đáng kể khả năng chịu tải của giá đỡ và làm mất đi tính thẩm mỹ. ĐỐI TÁC UY TÍN CỦA BẠN TRONG GIA CÔNG TẤM KIM LOẠI THEO YÊU CẦU Từ lấy mẫu nguyên mẫu nhanh đến sản xuất số lượng lớn, Cangzhou Deeplink cung cấp giải pháp gia công tấm kim loại theo yêu cầu trọn gói cho các nhà sản xuất thiết bị công nghiệp toàn cầu. Khả năng đã được kiểm chứng của chúng tôi trong việc giải quyết các thách thức biến dạng hàn phức tạp và đạt được bề mặt đánh bóng gương hoàn hảo đảm bảo rằng các sản phẩm thành phố thông minh của bạn vận hành ổn định và đáng tin cậy ngay cả trong những môi trường ngoài trời khắc nghiệt nhất. Bạn đang phát triển phần cứng giám sát ngoài trời, phụ kiện lắp đặt công nghiệp, hoặc vỏ an ninh thông minh? Liên hệ với Cangzhou Deeplink ngay hôm nay để xem xét kỹ thuật DFM miễn phí - Không. Hãy để chúng tôi giúp bạn loại bỏ rủi ro lắp ráp, giảm tỷ lệ phế liệu thành phần, và tăng tốc thời gian đưa ra thị trường.
Giá đỡ xoay bằng thép không gỉ tùy chỉnh dành cho giám sát ngoài trời






Các sản phẩm đề xuất