, origjinalisht zhvilluar me...">
,需要通过父级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 || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_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;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_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)) {
_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')) {
_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)) {
_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)) {
_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);
}
});
})();
Këtu në Nadun, ne jemi të lumtur të njoftojmë lansimin e produktit tonë të ri mashinë pres hidraulik 100 tonë , fillimisht u zhvillua me qëllim të shërbyer në shumë probleme prodhimi. Meqë është ndërtuar për të qëndruar gjatë dhe është me cilësi më të lartë, kjo mund të ndihmojë çdo tregtar që ka nevojë të prodhojë një numër të madh të produkteve të gatshme sa të duhet shpejt. Falë teknologjisë më të mirë të klasës dhe inxhinierisë së saktësisë së shkëlqyeshme, makina jonë e presit hidraulik me performancë të lartë ofronë performancë të besueshme dhe efikase, duke siguruar operacione të lëmuara dhe përbërje të plotë. Makineria me pres hidraulik prej 100 tonë është gjithashtu e fortë dhe me tërhiqje të gjatë, e cila e bën të përshtatshme për përdorim në mjediset industriale. Qoftë se është bërë nga përbërësit dhe materialet e klasës së lartë, kjo është lloji që mund të funksionojë edhe nën operacione të rënda dhe ofron një shërbim të përhershem. Punoni në një fabrikë të zjarritur apo në një tregtarë të zjarritur; makineria jonë me pres hidraulik nuk do t'ju lë në pritje, duke ofruar performancë të lartë në çdo aplikim. Kjo makineri vjen me një gamë mundësish personalizimi dhe zgjedhjesh konfigurimi, që të plotësojë nevojat e shumta të industrisë së prodhimit. Të presje hidraulike kjo makineri mund të përdoret për gjithçka nga formimi i metalit, plastikave modeluese deri te produktet kompakte. Për më tepër, kjo makineri është e thjeshtë për t'u përdorur dhe e lehtë për t'u kontrolluar, pasi ka një ndërfaqe të përdorueshme. Ne vlerësojmë zgjidhjet ekonomike për blerësit me shumicë. Kjo është arsyeja pse ofrojmë pres hidraulik 100 tonë makinë me çmime të arsyeshme për të mundësuar bizneseve të mos harxhojnë më shumë se buxheti i tyre, por të marrin cilësinë më të mirë. Çmimet dhe opsionet e pagesave tona janë me kosto efektive, kështu që mund të bliheni një makinë presi hidraulike nga ne dhe të jeni të sigurt për të marrë vlerën më të mirë për paratë tuaja. Së dyti, me mbështetjen dhe shërbimin tonë për klientët, kështu që ju nuk jeni kurrë të vetmuar. Kur ju vendosni për Nadun për të plotësuar kërkesat tuaja për makina pres hidraulike, ne ofrojmë shërbim dhe mbështetje për klientët të papërsëritshme. Ne jemi një ekip profesionistësh të afërt dhe të gatshëm që punojnë për të ofruar klientëve tanë një përvojë tërësisht të suksesshme blerjeje, kështu që na kontaktoni në çdo moment dhe ne do të jemi të lumtur të ju ndihmojmë! Nga ndihma për të zgjedhur makinen e përsosur, deri te mbështetja teknike pas blerjes, ne jemi këtu për ju në çdo hap të rrugës. Ju jeni në duar të sigurta dhe kompetente. Nadun Machinery është prodhues dhe eksportues i udhëheqës i pajisjeve për përpunimin e metaleve me mbi 17 vjet përvojë. Ne fokusohemi në presa punxhuese, presa hidraulike, makina prerëse, makina bënjtëse dhe lathe vertikale që i shërbejnë shumë industri, përfshirë ajronautikën, prodhimin automobilistik, inxhinierinë mekanike, ndërtimin dhe inxhinierinë metalurgjike. Produktet tona shiten në 150+ vende dhe rajone në mbarë botën dhe po vendosin standarde të re me makinën e presit hidraulik 100 tonëshe në makinerinë e prodhimit. Kompania ofron instalimin dhe punësimin e mbi 400 klientësh çdo vit. Ajo prodhon çdo vit nga 500 deri në 600 sete produktesh të ndryshme. Produktet tona janë certifikuar nga ISO, CE dhe SGS. Ne jemi pronarët e shumë patenteve të inovacionit të produktit dhe të certifikatave nderuese që njohin angazhimin tonë për makinen hydraulike 100 tonë. Nadun Machinery e dihet për produktet e saj të larg ta larg kualitetit që janë të famshme për performancën e tyre dhe për trajnën e rritur të shërbimit të tyre. Kërkuesit dhe zhvilluesit e Nadun Machinery janë me shumë se 10 njerëz dhe me mesatare më shumë se 10 vjet arsime dhe zhvillim. Ekipi ynë vazhdon përpjekje në mashinë hidraulike me presje 100 tonë dhe inovon për të plotësuar kërkesat e ndryshme të tregut. Për të kënaqur kërkesën e rritur të tregut për produktet e ftohjes, makina hydraulike 100 tonë Dragon and Tiger dhe Temple of Heaven ofron një gamë produktesh që mund të përshtaten për lloje të ndryshme përdoruesish dhe konsumatorësh. Përcaktimi i firmës për të bëkur një kompani elitare në sektorin e shëndetësisë bazohet në zhvillimin e produkteve të markës për shëndetin dhe mirëqenien, si dhe në përvojën e përdoruesit. Të drejta të krejt reserved © Nadun Machinery Manufacture Co., Ltd.
-
Politika e privatësisë
Nadun Machinery Manufacture Co., Ltd.
mashinë pres hidraulik 100 tonë
Konstruksion i qëndrueshëm për përdorim të gjatë në kushte industriale

Funksionalitet i lëshueshëm për të përmbushur nevojat e ndryshme prodhimi

Çmim konkurrent për blerësit me pakicë që kërkojnë zgjidhje me kosto efikase

Shërbim i shkëlqyeshëm klientësh dhe mbështetje për një eksperiencë të bërë blerjeje të lehtësuar
Why choose Nadun
mashinë pres hidraulik 100 tonë?
Eksperthësia e Kompanisë dhe Larg dhe Larg dhe Larg dhe Larg dhe Larg dhe Larg:
Kualitet i Larg Prodhi
Kualitet i Larg dhe Performancë:
Një Gjithçka të Larg dhe Larg Prodhuar
Kategoritë të Larg të Larg të Larg
Nuk po gjeni ç'po kërkonit?
Pyetni një Ofertë Tani
Largoni kontaktoni konsultantët tanë për produktë të tjera të disponueshme.LARGU NJE LARG