정밀 하이드라울릭 실린더는... ">
,需要通过父级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++) {
;(function (i) {
if (nodeChildList[i].nodeType !== 3) return
var val = nodeChildList[i].textContent.replace(/\s?:?/g, '')
if (!limitRegLength(val)) return
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val])
return
}
})(i)
}
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()
break
}
/** 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()
break
}
/** 向上查找父节点 */
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')
// 回调函数
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)
}
})
})();
안녕하세요! 이번 블로그에서는 우리는 이야기할 것입니다 하이드라울릭 파워 팩 이것들이 어떤 기계에서도 중요한 역할을 한다는 것처럼. 당신은 "그게 무슨 의미야?"라고 물을 수도 있습니다. 제가 그것을 간단히 설명하겠습니다. 정밀 하이드라울릭 실린더는 기름과 같은 유체 매체를 이용하여 움직임을 생성하는 특수 목적 도구입니다. 이는 매우 유용하며, 무거운 물체를 쉽게 들어 올리고 기계가 과거보다 더 효율적으로 작동하도록 합니다. 화첸은 이러한 실린더를 제조하는 회사입니다. 이 글에서는 다음 내용들을 다룰 것입니다: 이 실린더들의 힘 이해하기, 그들의 장점 이해하기, 다양한 상황에서의 기능성 이해하기, 다양한 기계의 작동에서 차지하는 역할 이해하기. 높은-의 영향에 대해 먼저 시작해 봅시다. 유압 파워팩 이것들은 매우 무거운 하중을 쉽게 작동시킬 수 있는 강력한 실린더입니다. 그들의 작동 방식은 기름을 실린더를 통해 흐르게 하는 것이며, 이는 기계가 상대적으로 많은 힘을 들어 올리기 쉽도록 만듭니다. 이렇게 생각해 보세요: 자신 혼자 큰 무거운 상자를 들어 올리는 것. 어렵지 않나요? 하지만 하이드라울릭 실린더만 있다면, 상자를 쉽게 들어 올릴 수 있고 특별히 많은 노력 없이도 할 수 있습니다. 이것이 바로 그들이 왜 강력한지 이유입니다! 자, 정밀 하이드라울릭 실린더의 장점에 대해 이야기해 보겠습니다. 먼저, 이들은 우리가 손으로 들기보다 훨씬 빠르게 크고 무거운 물건을 들어올릴 수 있기 때문에 많은 시간을 절약할 수 있습니다. 이러한 실린더는 짧은 시간 내에 무거운 물체를 들어올리는 최고의 해결책입니다. 두 번째로, 이들은 무거운 물체를 들어 올릴 때 안전을 유지하는 데 도움을 줍니다. 중량을 들어 올리기 위해 중력과 싸우지 않고도 하이드라울릭 실린더가 대부분의 작업을 수행합니다. 즉, 부상의 위험이 줄어듭니다. 세 번째로, 이러한 실린더는 기계摩耗를 줄일 수 있습니다. 그들은 기계가 과도하게 피로하거나 스트레스를 받지 않도록 해주어 기계의 수명과 작동 가능성을 증가시킵니다. 그렇다면, 정밀 하이드라울릭 실린더는 실제로 어떻게 작동할까요? 사실, 당신은 그것이 작동하는 것을 눈치채지 못하고도 본 적이 있을 수 있습니다! 그것은 건설 장비, 큰 선박 등에서 사용되며, 우리가 구조물의 벽을 오르내리는 엘리베이터에도 하나가 있습니다. 하이드라울릭 실린더는 일을 끝내기 위해 정말 열심히 작동하는 메커니즘입니다; 예를 들어, 큰 크레인이 무거운 물체를 들ifting는 것을 볼 때, 그것이 바로 하이드라울릭 실린더가 일을 하는 이상적인 예시입니다. 이러한 실린더는 상상할 수 있는 거의 모든 종류의 중장비에 존재하므로, 많은 산업에서 매우 중요합니다. 그들이 무거운 물건의 이동을 쉽게 하면서, 유압 실린더는 사람들에게 중요한 안전을 제공합니다. 이것이 바로 그들이 작동하는 이유입니다. 이제, 유압 실린더 없이 어떤 거대한 건물을 짓려고 상상해 보세요. 둘 다 훨씬 더 오래 걸리고 작업자들에게 더 많은 위험을 초래할 것입니다. 유압 실린더는 매우 적은 사고로 작업을 훨씬 더 빠르고 쉽게 완료할 수 있도록 합니다. 즉, 프로젝트를 계획된 시간에 맞추거나 심지어 그 전에 완료할 수 있어 작업자부터 건축을 필요로 하는 사람들까지 모두에게 좋습니다. 그러므로 이제 정밀 하이드라울릭 실린더의 중요성에 대해 논의해 보겠습니다. 첫째, 이들은 작업을 간소화하고, 가속화하며, 안전하게 합니다. 이는 생산성을 증대시키며, 더 짧은 시간에 더 많은 일을 할 수 있게 해줍니다. 또한 이러한 기계를 사용할 때 사람들은 더 안전하므로 부상도 줄어듭니다. 모든 것이会사의 수익성을 높이는 데로 이어지며 따라서 비즈니스의 모든 상위 영역에도 긍정적인 영향을 미칩니다! 둘째, 이들은 장비의 마모를 방지하여 장기적으로 돈을 절약하는 데 도움을 줍니다. 마지막으로, 안전 규정에서는 종종 하이드라울릭 실린더의 사용을 요구합니다. 이는 중장비에서 이를 사용하는 것이 더 안전할 뿐만 아니라 법적 요건에도 부합한다는 것을 의미합니다. 20년 이상의 업계 경험을 바탕으로, 화천은 150개국 이상의 유명 브랜드들과 신뢰할 수 있는 파트너로 자리잡았습니다. 우리는 스노우 장비, 재료 취급, 공중 작업 플랫폼, 농업 기계, 자동차 리프트, 트레일러 및 트럭, 그리고 쓰레기 차량 등 다양한 회사에 하이드라울릭 솔루션을 제공하고 있습니다. 화천은 모든 고객에게 고품질의 솔루션을 제공하고 그들의 성공을 돕는데 헌신하고 있습니다. HCIC는 2020년까지 화천 센터를 재구축하고 20명의 하이드라울릭 엔지니어로 구성된 통합 팀을 갖추었습니다. 이 업그레이드를 통해 우리는 귀하의 특정 요구에 맞춘 특별한 솔루션을 제공할 수 있습니다. 우리는 확고한 OEM 파트너이며, 고객 여러분의 방문을 기다리고 있습니다. 화첸은 3개의 공장에 헌신하고 있으며, 각 공장은 70,000평방피트 이상의 생산 워크샵을 보유하고 있습니다. 이 조직은 약 1000명의 숙련된 노동자를 고용하고 있으며, 최신 생산 장비를 사용하고 있습니다. 화첸은 배송 전에 소비자에게 철저한 연구를 보내기 위해 각 항목을 자세히 분석합니다. 우리는 제조 단계마다 품질 가치를 두고 있으며, 전력, 스트레스 및 크롬 층 두께에 대한 완전한 테스트를 수행합니다. 우리는 품질 있는 제품을 공급하기 위해 평가 장비와 절차에 많은 투자를 해왔습니다.정밀 하이드라울릭 실린더
정밀 하이드라울릭 실린더의 이점
작동 중인 정밀 하이드라울릭 실린더
정밀 하이드라울릭 실린더가 어떻게 결과를 제공하는지
왜 정밀 하이드라울릭 실린더가 필수적인 투자인지
Why choose Huachen 정밀 하이드라울릭 실린더?
우리는 전 세계 브랜드들과 협력하여 맞춤형 산업 솔루션을 제공합니다.
전문적인 설계 및 OEM 제조 능력
최신 생산 장비와 엄격한 작업 프로세스
포괄적인 테스트 보고서 및 제품 품질 보증을 제공합니다.
원하는 내용을 찾지 못하셨나요?
지금 견적 요청하기
더 많은 이용 가능한 제품은 전문가와 상담해 주세요.