CINXE.COM
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> <meta http-equiv="Cache-Control" content="max-age=31536000"/> <meta http-equiv="Pragma" content="max-age=31536000"/> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" /> <!-- Meta Pixel Code --> <script> !function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1041230296873208'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1041230296873208&ev=PageView&noscript=1" /> </noscript> <!-- End Meta Pixel Code --> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2834372922206562" crossorigin="anonymous"></script> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-B0EZSHLW6R"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'G-B0EZSHLW6R'); </script> <meta name="keywords" content=""/> <meta name="description" content=""/> <meta property="og:image" content="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d815374a53.ico"/> <link rel="shortcut icon" href="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d815374a53.ico" type="image/x-icon"/> <script> var ai_chat_url = 'https://ai.starify.cn'; let screen_width = screen.availWidth let white_list = ['/live-stream', '/mobile', '/invite-', '/community', '/supply-demand', '/job', '/city-plan-form'] //过滤白名单-是否进入 /mobile let is_pass = true //是否通过白名单筛选 white_list.forEach(item => { if (location.pathname.indexOf(item) !== -1) { is_pass = false } }) resizeInitWindow() window.addEventListener('resize', () => { resizeInitWindow() }) function resizeInitWindow() { if (window.screen.availWidth < 992) { document.querySelector('html').style.fontSize = ((screen_width / 375) * 62.5) + '%' if (is_pass) { if ((location.pathname.indexOf('/expo') > -1 || location.pathname.indexOf('/news') > -1 || location.pathname.indexOf('/live') > -1 || location.pathname.indexOf('/homepage') > -1)) { //跳转到对应的移动端页面 location.href = '/mobile' + location.pathname } else { //没有相关页面关键词跳转到移动端首页 location.href = '/mobile/index' } } } else { document.querySelector('html').style.fontSize = ((screen_width / 1920) * 62.5) + '%' } } </script> <script src="/common/js-config?v=8.8"></script> <!-- 导入 Vue 3 --> <script src="/assets/lib/jquery-1.11.1.min.js"></script> <script src="/assets/lib/vue@next.js"></script> <script src="/assets/lib/vue-i18n.global.min.js"></script> <script src="/lang/i18n.js?v=8.8"></script> <script src="/lang/module/en-us.js?v=8.8"></script> <script src="/lang/module/en-us-all.min.js?v=8.8"></script> <script src="/assets/lib/axios.min.js"></script> <!-- 导入组件库 --> <script src="/assets/lib/element-plus.js"></script> <!-- 导入压缩js库 --> <script src="/assets/utils/utils-all.min.js?v=8.8"></script> <script src="/assets/chatgpt-icon/iconfont.js?v=8.8"></script> <link href="/assets/iconfont/iconfont.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/element/index-rem.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/community/recommendUser.css" rel="stylesheet" type="text/css"/> <link href="/assets/css/index.css" rel="stylesheet" type="text/css"/> <link href="/assets/css/index/all.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/chatgpt-icon/iconfont.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/layout/common.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/news/detail.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/live/relatedLive.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/detailsAboutInfo/detailsAboutInfo.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/advertisement/right_ad.css?v=8.8" rel="stylesheet" type="text/css"/> <link href="/assets/css/layout.css?v=8.8" rel="stylesheet" type="text/css"/> </head> <body data-lang="en-us" > <div id="loadingBox" class="loading_container"> <div class="boxes"> <div class="box"> <div></div> <div></div> <div></div> <div></div> </div> <div class="box"> <div></div> <div></div> <div></div> <div></div> </div> <div class="box"> <div></div> <div></div> <div></div> <div></div> </div> <div class="box"> <div></div> <div></div> <div></div> <div></div> </div> </div> </div> <div class="container_body"> <div class="head_container"> <div style=""> <div class="head" id="headBox" > <div class="head_logo aichat_logo" v-if="isAiChatBot"> <svg class="icon svg-icon" aria-hidden="true"> <use xlink:href="#icon-jiqi"></use> </svg> <span>星光GPT大师</span> </div> <a class="head_logo" href="/" v-else> <svg class="icon_en svg-icon" aria-hidden="true"> <use xlink:href="#ic_Matchpages"></use> </svg> </a> <div class="head_menu" style="display: none" > <div class="el-row"> <div class="el-col-3" > <a class="nav_item" href="/"> Home </a> </div> <div class="el-col-3" > <a class="nav_item" href="/news"> News </a> </div> <div class="el-col-5" > <a class="nav_item" href="/expo"> Events & Fairs </a> </div> <div class="el-col-4"> <a class="nav_item" href="/community/dynamic"> Community </a> </div> <div class="el-col-4"> <a class="nav_item" href="/courses"> Curriculum </a> </div> </div> </div> <div class="head_user" v-if="isAiChatBot"> <div class="head_item"> <a class="none_token" v-if="!$config.apiToken" @click="toRoute('/register')"> Register </a> <span class="none_token">{{ baseUserInfo.curr_enterprise_name }}</span> <div class="user_avatar_box"> <img :src="baseUserInfo.curr_enterprise_logo ? $config.ossDomain + baseUserInfo.curr_enterprise_logo : $config.defaultLogo"/> </div> </div> </div> <div class="head_user" v-cloak v-show="!isAiChatBot"> <div class="head_item"> <div class="el-input el-input--large el-input--prefix w-50 m-2"> <!-- input --><!-- prepend slot --><!--v-if--> <div class="el-input__wrapper"> <!-- prefix slot --> <span class="el-input__prefix" @click="toSearchPage()"> <span class="el-input__prefix-inner"> <i class="icon iconfont ic_search"></i> </span> </span> <input class="el-input__inner" type="text" autocomplete="off" id="head_search"> <!-- suffix slot --><!--v-if--> </div> <!-- append slot --><!--v-if--> </div> </div> <div class="head_item"> <el-dropdown> <div class="fast_box"> <span class="iconfont ic_publish1"></span> <span>Quick publish</span> </div> <template #dropdown> <el-dropdown-menu> <el-dropdown-item @click="toPublishRoute('/event/expo-plan')"> <div class="fast_box_item"> <img src="/assets/image/svg/ic_events.svg"> Launch Exhibition </div> </el-dropdown-item> <el-dropdown-item @click="toPublishRoute('/components/news')"> <div class="fast_box_item"> <img src="/assets/image/svg/ic_earth.svg"> Release information </div> </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> </div> <div class="head_item" @click="toNotification('/notification')"> <span class="iconfont ic_notice"></span> <i class="notice_point" v-if="notificationData && notificationData.all_count > 0"><span>{{ notificationData.all_count > 99 ? 99 : notificationData.all_count }}</span></i> </div> <div class="head_item"> <a class="none_token" id="loginBtn" v-if="!$config.apiToken" @click="toRoute('/login')"> Sign in </a> </div> <div class="head_item" style="margin-left:0" > <a class="none_token" v-if="!$config.apiToken" @click="toRoute('/register')"> Register </a> <mtp-user-dropdown @update-user-info="updateUserInfo" v-else> <div class="user_avatar_box"> <img :src="baseUserInfo.curr_enterprise_logo ? $config.ossDomain + baseUserInfo.curr_enterprise_logo : $config.defaultLogo"/> </div> </mtp-user-dropdown> </div> <div class="head_item" v-cloak> <el-popover placement="bottom" :width="250" trigger="hover"> <template #reference> <span class="el-dropdown-link language-dropdown" v-cloak> <span class="iconfont ic_language icon_language"></span> <span>{{ locale.label }}</span> </span> </template> <div class="website-lang"> <div v-for="(website, i) in languages" :key="'web-' + i"> <div class="title">{{ website.name }}</div> <div class="site-languages"> <div class="language" :class="(language.site == currSite && language.value == currLanguage) ? 'selected' : ''" v-for="(language, j) in website.list" :key="'opt-' + j" @click="handleLang(language)" v-cloak> {{ language.label }} </div> </div> </div> </div> </el-popover> </div> </div> <div class="login_dialog"> <el-dialog :append-to-body="true" v-model="LoginDialogVisible" width="52%"> <div> <login-right :success-url="successUrl" @closepopup="closepopup"></login-right> </div> </el-dialog> </div> <el-dialog custom-class="guide_dialog" v-model="showGuideDialog" append-to-body> <div v-if="guideInfo.guide_type === 'new_clue'"> <div class="module_title"> Congratulations </div> <div class="module_desc"> <p v-html="guideInfo.get"></p> </div> <div class="module_btn"> <div @click="routeTo('clue')">View Now</div> </div> </div> <div v-else> <div class="module_title"> Congratulations </div> <div class="module_image"> <img :src="guideInfo.img"> </div> <div class="module_desc"> <p v-html="guideInfo.get"></p> </div> <div class="module_tips"> <p v-html="'('+ guideInfo.source +')'"></p> </div> <div class="module_btn"> <div v-if="guideInfo.type" @click="routeTo(guideInfo.type)">Go publish</div> </div> </div> </el-dialog> </div> <script src="/assets/js/UserDropdown/UserDropdown.js"></script> <script> let head_box = initVue({ name:'headBox', data() { return { showGuideDialog: false, guideInfo: {}, baseUserInfo: {}, currSite: 'overseas', currLanguage: 'en-us', locale: { 'label': 'English', 'value': 'en-us' }, languages: this.$config.languages, locales: this.$config.locales, notificationData: {}, successUrl: '', LoginDialogVisible: false, isAiChatBot: false } }, methods: { initAichatbotType() { if(location.origin === ai_chat_url) { this.isAiChatBot = true } else { this.isAiChatBot = false } }, updateUserInfo(data) { this.baseUserInfo = data }, routeTo(type) { this.showGuideDialog = false if (type && type === 'news') { this.routeCenter('/components/news') return } if (type && type === 'expo') { this.routeCenter('/components/activity') return } if (type && type === 'Live') { this.routeCenter('/components/live') return } if (type && type === 'achievement') { window.open('/achievement') return } if (type && type === 'clue') { this.routeCenter('/clue/clue-list') return } }, routeCenter(path) { let apiToken = this.$config.apiToken if (apiToken) { var homeUrl = encodeURIComponent(path) let centerUrl = this.$config.publishDomain + '/#/auth-login/' + apiToken + '?redirect=' + homeUrl window.open(centerUrl, '_blank') } }, getGuidPerMissionData() { mtpRequest({ url: '/api/user/guide-permission', method: 'get', }).then(res => { this.guideInfo = res.data if (res.data.get) { this.showGuideDialog = true } }) let interval = setInterval(() => { if (!this.showGuideDialog) { clearInterval(interval) interval = null this.getGuidPerMissionData() } }, 10000) }, getNotificationData() { mtpRequest({ url: '/api/user/get-all-notification-data', method: 'get', }).then((res) => { if (res.ret === 0) { this.notificationData = res.data } }) }, handleLang(lang) { this.currSite = lang.site this.currLanguage = lang.value let url = this.$config.siteDomain[lang.site]+ '?lang=' + lang.value this.$i18n.setLocale(lang.value) location.href = url }, toNotification(url) { if (this.$config.apiToken) { window.open(url,'_blank') } else { this.LoginDialogVisible=true this.successUrl= url } }, toPublishRoute(url) { if (this.$config.apiToken) { var homeUrl = encodeURIComponent(url) let centerUrl = this.$config.publishDomain + '/#/auth-login/' + this.$config.apiToken + '?redirect=' + homeUrl window.open(centerUrl, '_blank') } else { this.LoginDialogVisible=true this.successUrl='reloadPage' } }, closepopup(){ this.LoginDialogVisible = false this.successUrl='' }, toSearchPage(param) { const url = new URL(window.location.href) let pathname = url.pathname let pathnameArr = pathname.split('/') pathname = pathnameArr[1] if (param) { window.open('/globalSearch?val='+param + '&from=' + pathname,'_self') } else { window.open('/globalSearch?from=' + pathname,'_self') } }, toRoute(url) { if (location.search) { let params = location.search.replace('?','&') window.open( url + '?redirect=' + location.pathname + params,'_self') } else { window.open( url + '?redirect=' + location.pathname,'_self') } }, }, created() { this.locales.forEach(v => { if (v.value === this.$i18n.getLocale()) { this.locale = v return false } }) this.initAichatbotType() }, mounted() { this.$nextTick(()=>{ showLoginDialog((res)=>{ if (res) { this.successUrl = res } else { this.successUrl = 'closeLoginPopup' } this.LoginDialogVisible = true }) if (this.$config.apiToken) { this.getNotificationData() this.getGuidPerMissionData() } else { this.$loading.completeLoading() } document.getElementById('head_search').addEventListener('keyup',(event)=>{ if (event.keyCode === 13) { let val = document.getElementById('head_search').value if (val) { this.toSearchPage(val) } else { this.toSearchPage() } } }) }) }, }, "#headBox",['loginRight','mtpUserDropdown']); </script> </div> </div> <div class="body_container " id="app"> <div class="navbar_left" style="display: " > <div id="nav_container"> <a class="chat_gpt_box" href="/aichatbot"> <span class="gpt_i"> <svg class="icon svg-icon" aria-hidden="true"> <use xlink:href="#icon-jiqi"></use> </svg> </span> <span v-if="$config.siteName === 'inside'" class="gpt_title">AI大师</span> <span v-else class="gpt_title">AI Master</span> <span class="icon_list"> <i class="iconfont ic_fire"></i> <i class="iconfont ic_fire"></i> <i class="iconfont ic_fire"></i> </span> </a> <div class="nav_container" > <div class="nav_list"> <a class="nav_item" :class="moduleName === 'index' ? 'active' : '' " href="/"> <div class="iconfont_tag"><span class="iconfont ic_home"></span></div> <span>Home</span> </a> <a class="nav_item" :class="moduleName === 'news' ? 'active' : '' " href="/news"> <div class="iconfont_tag"> <span class="iconfont ic_news"></span> </div> <span>News</span> </a> <a class="nav_item" :class="moduleName === 'expo' ? 'active' : '' " href="/expo"> <div class="iconfont_tag"> <span class="iconfont ic_events"></span> </div> <span>Events & Fairs</span> </a> <a class="nav_item" :class="moduleName === 'business-travel' ? 'active' : '' " href="/business-travel"> <div class="iconfont_tag"> <span class="iconfont ic_expert"></span> </div> <span>Business travel</span> </a> <a class="nav_item" :class="moduleName === 'supply-demand' ? 'active' : '' " href="/supply-demand"> <div class="iconfont_tag"> <span class="iconfont ic_FunnelPlotOutlined"></span> </div> <span>Supply & Demand</span> </a> <a class="nav_item" href="/community/dynamic"> <div class="iconfont_tag"> <span class="iconfont ic_Community"></span> </div> <span>Community</span> </a> <a class="nav_item" href="https://www.starify.cn/" target="_blank"> <div class="iconfont_tag"> <span class="iconfont ic_Starify"></span> </div> <span>Marketing tools</span> </a> <a v-show="seeMore" class="nav_item" :class="moduleName === 'special' ? 'active' : '' " href="/community/topics"> <div class="iconfont_tag"> <svg class="icon" aria-hidden="true"> <use xlink:href="#ic_ic_thematic"></use> </svg> </div> <span>Topics</span> </a> <a v-show="seeMore" class="nav_item" :class="moduleName === 'group' ? 'active' : '' " href="/community/group"> <div class="iconfont_tag"> <svg class="icon" aria-hidden="true"> <use xlink:href="#ic_ic_group"></use> </svg> </div> <span>Group</span> </a> <div v-show="!seeMore" class="nav_item see_more" @click="handleSeeMore"> <div class="iconfont_tag"> <span class="iconfont ic_down_line"></span> </div> <span>See more</span> </div> <div v-show="seeMore" class="nav_item see_more" @click="handleSeeMore"> <div class="iconfont_tag"> <span class="iconfont ic_up"></span> </div> <span>fold</span> </div> <div class="divide_box"></div> <a class="nav_item" @click="toPublishRoute('/homepage')"> <div class="iconfont_tag"> <span class="iconfont ic_publish1"></span> </div> <span>Publishing Center</span> </a> <div class="divide_box"></div> <a class="nav_item" :class="moduleName === 'achievement' ? 'active' : '' " @click="toRouteWeb('/achievement')"> <div class="iconfont_tag"><span class="iconfont ic_honor"></span></div> <span>Exhibition record</span> </a> <a class="nav_item" :class="moduleName === 'order' ? 'active' : '' " @click="toRouteWeb('/order')"> <div class="iconfont_tag"> <span class="iconfont ic_order"></span> </div> <span>My order</span> </a> <a class="nav_item" :class="moduleName === 'userCenter' ? 'active' : '' " @click="toRouteWeb('/userCenter')"> <div class="iconfont_tag"> <span class="iconfont ic_collect"></span> </div> <span>My collection</span> </a> <a class="nav_item" :class="moduleName === 'column' ? 'active' : '' " @click="toRouteWeb('/column')"> <div class="iconfont_tag"> <span class="iconfont ic_column"></span> </div> <span>Column setting</span> </a> </div> </div> <div class="nav_btn_list"> <a class="nav_btn_item" @click="toRouteWeb('/achievement?show_create=1','open')"> <span> <div class="ic_honor1 iconfont"></div> Add exhibition plan now </span> </a> <a class="nav_btn_item" @click="toRouteWeb('/achievement?show_create=2','open')"> <span> <div class="ic_h1 iconfont"></div> Add exhibition records at any time </span> </a> <a class="nav_btn_item" href="/city-plan-form"> <span> <div class="ic_h1 iconfont"></div> City Affiliate programme </span> </a> </div> <div class="nav_image_list"> <a v-if="$i18n.getLocale() ==='en-us'" href="https://www.starify.cn/" target="_blank"><img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0712/6690c31879f19.png" class="invited_img"></a> <a v-else-if="$i18n.getLocale() ==='zh-tw'" href="https://www.starify.cn/" target="_blank"><img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0712/6690c317f1df5.png" class="invited_img"></a> <a v-else href="https://www.starify.cn/" target="_blank"><img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0712/6690c3175d81b.png" class="invited_img"></a> </div> </div> <script> let nav_container = initVue({ name:'nav_container', data() { return { isHoverNavbar:false, moduleName:'index', seeMore: false } }, methods:{ handleSeeMore() { if (this.seeMore === false) { this.seeMore = true } else { this.seeMore = false } }, getUrlParam() { if (window.location.pathname) { if (window.location.pathname.indexOf('index') > -1 || window.location.pathname === '/') { this.moduleName = 'index' } else if (window.location.pathname.indexOf('news') > -1) { this.moduleName = 'news' } else if (window.location.pathname.indexOf('expo') > -1) { this.moduleName = 'expo' } else if (window.location.pathname.indexOf('live') > -1) { this.moduleName = 'live' } else if(window.location.pathname.indexOf('achievement') > -1) { this.moduleName = 'achievement' } else if(window.location.pathname.indexOf('order') > -1) { this.moduleName = 'order' } else if(window.location.pathname.indexOf('userCenter') > -1) { this.moduleName = 'userCenter' } else if(window.location.pathname.indexOf('media') > -1) { this.moduleName = 'media' } else if(window.location.pathname.indexOf('supply-demand') > -1) { this.moduleName = 'supply-demand' }else if(window.location.pathname.indexOf('courses') > -1) { this.moduleName = 'courses' } else if(window.location.pathname.indexOf('column') > -1) { this.moduleName = 'column' } else if(window.location.pathname.indexOf('meeting-with-expert') > -1) { this.moduleName = 'meeting-with-expert' }else if(window.location.pathname.indexOf('servicefinder') > -1) { this.moduleName = 'servicefinder' }else if(window.location.pathname.indexOf('business-travel') > -1) { this.moduleName = 'business-travel' }else if(window.location.pathname.indexOf('shop-store') > -1) { this.moduleName = 'shop-store' }else if(window.location.pathname.indexOf('company') > -1) { this.moduleName = 'company' } else { this.moduleName = 'other' } } }, toRouteWeb(url,type) { if (url === '/invitation') { window.open(url,'_blank') return false } if (this.$config.apiToken) { if (type) { window.open(url,'_blank') } else { window.location.href = url } } else { $('#headBox').trigger('loginDialog',url) } }, toPublishRoute(url) { var homeUrl = encodeURIComponent(url) if (this.$config.apiToken) { let centerUrl = this.$config.publishDomain + '/#/auth-login/' + this.$config.apiToken + '?redirect=' + homeUrl window.open(centerUrl, '_blank') } else { let centerUrl = this.$config.publishDomain + '/#/?redirect=' + homeUrl $('#headBox').trigger('loginDialog',centerUrl) } }, }, mounted() { this.$nextTick(()=>{ //更新token的val getUserEvent((res)=>{ if (res) { this.$config.apiToken = res this.$login.setToken(res) } }) }) this.getUrlParam() window.onscroll = ()=>{ if (window.scrollY > 0) { this.isHoverNavbar = true } else { this.isHoverNavbar = false } } } }, "#nav_container"); </script> </div> <div class="app_container"> <div style="display: none"> </div> <script> //推广code let spread_code = getUrlParam('spread_code') if (spread_code) { mtqCookie.set('spreadCode', spread_code,{ domain: '.' + masterDomain, path: '/' }) } ToMobileRouter() </script> <div class="news_container" v-loading="loading" id="blog_detail" data-blog-id="5267"> <div class="news_detail_main el-row"> <div class="el-col-17"> <div class="news_detail_info"> <div class="news_head_process"> <a href="/news">News</a> > <a>Information details</a> </div> <div class="news_body"> <div class="news_head"> <div class="news_head_title">Henkel s'associe au fournisseur de solutions de maintenance prédictive, Nanoprecise Sci Corp</div> <div class="news_head_info"> <div class="news_head_info_left"> <div>1 Last year</div> <div><span class="iconfont ic_view"></span><span id="thumbs_up">6,919</span></div> <div><span class="iconfont ic_likeC"></span><span id="thumbs_up">754</span></div> <div><span class="iconfont ic_mesC"></span><span id="comments">0</span></div> <div class="to_comment" @click="scrollToComment">Comment area</div> </div> <div class="enjoy_list"> <span class="iconfont ic_Facebook" @click="shareUrl('facebook')"></span> <span class="iconfont ic_twitter" @click="shareUrl('twitter')"></span> <span class="iconfont ic_linkedin" @click="shareUrl('linkedin')"></span> <span class="iconfont ic_pinterest" @click="shareUrl('pinterest')"></span> <span class="iconfont ic_link" @click="shareUrl"></span> <span class="expo_collect" @click="isCollection" :class="blogDetail.blog_collection ? 'active' : ''"> <div class="iconfont ic_star"></div> </span> </div> </div> </div> <div class="news_detail_content"> <p><span style="font-size: 14pt;">Une alliance pour la numérisation des opérations industrielles et pour aider les clients à réaliser la valeur de la technologie de pointe</span></p> <p><span style="font-size: 14pt;"><span class="legendSpanClass">DÜSSELDORF, Allemagne</span>, <span class="legendSpanClass">10 novembre 2023</span> /PRNewswire/ -- Henkel Adhesive Technologies, un leader mondial des adhésifs, des mastics et des revêtements fonctionnels, a récemment annoncé un partenariat stratégique avec <u>Nanoprecise Sci Corp</u> (Nanoprecise), un fournisseur de solutions de maintenance prédictive basé au <span class="xn-location">Canada</span>. Cette alliance renforce l'engagement des deux organisations à numériser les opérations industrielles et à aider les clients à réaliser la valeur de la technologie de pointe.</span></p> <p><span style="font-size: 14pt;">Souhaitant élargir son offre en tant que partenaire expérimenté et fiable dans le domaine des opérations industrielles, Henkel a choisi Nanoprecise comme partenaire de confiance dans le domaine des solutions de maintenance prédictive pour les ensembles d'équipements rotatifs, après une analyse et un test complet de plusieurs solutions, y compris les solutions en phase de démarrage et les solutions matures disponibles sur le marché.</span></p> <p><span style="font-size: 14pt;">« Notre collaboration avec Nanoprecise marque une étape charnière vers la numérisation des opérations industrielles. Grâce à leur expertise en matière de maintenance prédictive des équipements rotatifs et à la gamme croissante de solutions d'IIoT LOCTITE<sup>®</sup> Pulse pour les équipements statiques, nous pouvons fournir aux clients industriels des solutions de maintenance intelligentes prêtes à l'emploi. Ce partenariat souligne notre engagement envers la fiabilité, l'efficacité et la durabilité », a déclaré <span class="xn-person">Kourosh Bahrami</span>, vice-président principal de Henkel. </span></p> <p><span style="font-size: 14pt;">Alors que le monde industriel s'oriente vers davantage de durabilité et d'excellence opérationnelle, ce partenariat renforce l'engagement de Henkel à améliorer son efficacité et sa durabilité globales ainsi que celles de ses clients. Il symbolise l'union de l'expertise industrielle et de l'innovation technologique, dans le but de créer de la valeur et de contribuer à un écosystème de fabrication plus vert et plus durable.</span></p> <p><span style="font-size: 14pt;">Avec ses <u>solutions d'Internet des objets industriel (IIoT)</u>, l'équipe de Nanoprecise aide les clients du monde entier à mettre en place des stratégies de maintenance prédictives et prescriptives pour améliorer la productivité. « Il s'agit d'une opportunité passionnante pour Nanoprecise de travailler avec l'une des entreprises emblématiques qui a régulièrement établi des relations de confiance et sans doute l'une des marques les plus emblématiques, LOCTITE, dans le monde industrie », a expliqué <span class="xn-person">Sunil Vedula</span>, fondateur et directeur général de Nanoprecise Sci Corp.</span></p> <p><span style="font-size: 14pt;">Ensemble, Henkel et Nanoprecise Sci Corp visent à transformer les opérations industrielles et à atteindre de nouveaux sommets en redéfinissant la façon dont les opérateurs abordent la maintenance et la fiabilité des équipements. Leur collaboration est très prometteuse pour les industries de processus, car elle leur permettra d'évoluer vers des opérations intelligentes et efficaces. Ce partenariat permettra une transition fluide vers des pratiques de fabrication durables, ce qui représente un grand pas vers un avenir plus vert et plus respectueux de l'environnement.</span></p> <p><span style="font-size: 14pt;"><strong>À propos de Henkel</strong></span></p> <p><span style="font-size: 14pt;">Avec ses marques, ses innovations et ses technologies, Henkel occupe des positions de leader sur le marché mondial dans les secteurs industriel et grand public. L'unité commerciale Adhesive Technologies est leader mondial sur le marché des adhésifs, des mastics et des revêtements fonctionnels. Avec ses marques grand public, la société occupe des positions de leader, notamment dans les domaines des soins capillaires et des produits de lessive et d'entretien, sur de nombreux marchés et dans de nombreuses catégories à travers le monde. Les trois marques les plus fortes de l'entreprise sont LOCTITE, Persil et Schwarzkopf. Au cours de l'exercice 2022, Henkel a réalisé un chiffre d'affaires de plus de 22 milliards d'euros et un résultat opérationnel ajusté d'environ 2,3 milliards d'euros. Les actions privilégiées de Henkel sont cotées dans l'indice boursier allemand DAX. La durabilité est une ancienne tradition chez Henkel, et l'entreprise dispose d'une stratégie de durabilité claire avec des objectifs spécifiques. Henkel a été fondée en 1876 et emploie aujourd'hui une équipe diversifiée composée de plus de 50 000 personnes dans le monde — unies par une solide culture d'entreprise, des valeurs communes et un objectif commun : « Des pionniers dans l'âme pour le bien des générations.</span></p> <p><span style="font-size: 14pt;"><strong>À propos de Nanoprecise Sci Corp</strong></span></p> <p><span style="font-size: 14pt;">Nanoprecise Sci Corp est un fournisseur de solution de maintenance prédictive automatisée basée sur l'IA qui facilite la détection précoce des plus petits changements dans les opérations de la machine, bien avant qu'ils n'aient une incidence sur la production ou causent des temps d'arrêt. Nanoprecise se spécialise dans le déploiement de l'intelligence artificielle et de la technologie IIoT à des fins de maintenance prédictive des actifs et la réduction de l'empreinte carbone des usines de fabrication. Nanoprecise Sci Corp se consacre à fournir des solutions de maintenance prédictive innovantes, fiables et évolutives, permettant aux entreprises de maximiser le temps de fonctionnement des actifs, d'accroître la productivité et d'atteindre une excellence opérationnelle inégalée dans le paysage concurrentiel d'aujourd'hui.</span></p> <div class="news_detail_option"> <el-dropdown> <div><i class="iconfont ic_Share"></i>Share</div> <template #dropdown> <el-dropdown-menu> <el-dropdown-item @click="shareUrl('facebook')"> Share to Facebook </el-dropdown-item> <el-dropdown-item @click="shareUrl('twitter')"> Share to twitter </el-dropdown-item> <el-dropdown-item @click="shareUrl('linkedin')"> Share to LinkedIn </el-dropdown-item> <el-dropdown-item @click="shareUrl('pinterest')"> Share to pinterest </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> <div v-show="!blogDetail.blog_collection" @click="isCollection"><i class="iconfont ic_starL"></i>Collection</div> <div v-show="blogDetail.blog_collection" @click="isCollection"><i class="iconfont ic_star"></i>Collected</div> <div v-show="!blogDetail.blog_thumbs_up" @click="isBlobThumbsUP(blogDetail)"><i class="iconfont ic_like"></i>Give the thumbs-up</div> <div v-show="blogDetail.blog_thumbs_up" @click="isBlobThumbsUP(blogDetail)"><i class="iconfont ic_likeC"></i>Liked</div> </div> </div> </div> <el-dialog v-model="shareWechat" title="Wechat sharing" width="20%"> <div class="qrcode_we" ref="qrcode_we"></div> </el-dialog> <div class="news_detail_position"> The content is the author's independent opinion, does not represent the position of Matchexpo, and cannot be reproduced without permission </div> <div style="padding-top: 24px"> <div style="display: none"> 0 </div> <div class="ad_container ad_container_0"> </div> </div> <mtp-comment :comment-option="commentOption"></mtp-comment> <div class="expo_desc"> <div class="expo_desc_head"> <img lazyload="true" data-original="/assets/image/svg/ic_heart.svg"> Pages you might like </div> <div class="lick_about_homepage"> <a class="homepage_item" href="https://capi.matchexpo.com/page/pg633fdea7964d8.html" target="_blank"> <div class="homepage_logo"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/hbr_uploads/143051ba97b06a95aeb325ca71dffdd2.jpg"> </div> <div class="homepage_title"> Haier </div> <div class="homepage_desc"> </div> </a> <a class="homepage_item" href="https://capi.matchexpo.com/page/pg633fdea78ec0d.html" target="_blank"> <div class="homepage_logo"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2021/1214/61b7fc8c6b416.jpg"> </div> <div class="homepage_title"> Retail Channel </div> <div class="homepage_desc"> </div> </a> <a class="homepage_item" href="https://capi.matchexpo.com/page/pg633fdea7c57d4.html" target="_blank"> <div class="homepage_logo"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/hbr_uploads/8c1160a49dafb31efbe165bc9abca46b.jpg"> </div> <div class="homepage_title"> Rum21 </div> <div class="homepage_desc"> </div> </a> <a class="homepage_item" href="https://capi.matchexpo.com/page/fespa-mexico.html" target="_blank"> <div class="homepage_logo"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/0604/647c305cce8e4.jpg"> </div> <div class="homepage_title"> FESPA Mexico </div> <div class="homepage_desc"> An unparalleled celebration where professionals from the printing industry will be able to meet with colleagues and exhibitors to find new approaches in large format digital printing, textile printing, screen printing, sublimation, garment decoration and signage. </div> </a> </div> </div> <div class="expo_desc"> <div class="expo_desc_head"> <img lazyload="true" data-original="/assets/image/svg/ic_topic.svg"> Today's topic </div> <div class="topic_today_list"> <a class="topic_item" href="https://www.matchexpo.com/news/CHINAPLAS-2022-国际橡塑展:巴斯夫智造新未来.html" target="_blank"> <div class="topic_image"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0221/621356a30d596.jpg"> </div> <div class="topic_info"> <div class="topic_title"> CHINAPLAS 2022 国际橡塑展:巴斯夫智造新未来 </div> <div class="topic_option"> <div class="topic_time"> 2 Last year </div> <div class="topic_data"> <div><i class="iconfont ic_view"></i>7,93</div> <div><i class="iconfont ic_like"></i>393</div> <div><i class="iconfont ic_mes"></i>1</div> </div> </div> </div> </a> <a class="topic_item" href="https://www.matchexpo.com/news/百事公司再捐100万美元,助力乡村儿童营养健康.html" target="_blank"> <div class="topic_image"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2021/1210/61b31ba5799d1.jpg"> </div> <div class="topic_info"> <div class="topic_title"> 百事公司再捐100万美元,助力乡村儿童营养健康 </div> <div class="topic_option"> <div class="topic_time"> 3 Last year </div> <div class="topic_data"> <div><i class="iconfont ic_view"></i>3,686</div> <div><i class="iconfont ic_like"></i>109</div> <div><i class="iconfont ic_mes"></i>1</div> </div> </div> </div> </a> <a class="topic_item" href="https://www.matchexpo.com/news/pg633fdea4e410f.html" target="_blank"> <div class="topic_image"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2021/1216/61bab59189772.jpg"> </div> <div class="topic_info"> <div class="topic_title"> 万物互联2021——智慧人居场景应用高峰论坛圆满落幕 </div> <div class="topic_option"> <div class="topic_time"> 2 Last year </div> <div class="topic_data"> <div><i class="iconfont ic_view"></i>1,29</div> <div><i class="iconfont ic_like"></i>35</div> <div><i class="iconfont ic_mes"></i>0</div> </div> </div> </div> </a> </div> </div> </div> </div> <div class="el-col-7"> <div style="flex: 1"> <div class="blog_list_container"> <div class="news_author_box"> <div class="author"> <a class="author_image" href="https://www.matchexpo.com/page/pg633fdea73f2e6.html"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/hbr_uploads/27cf46dad8d6a9107c321000a841b021.png" onerror="this.src= 'https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2021/1221/61c174a200a51.png'"> </a> <div class="author_info"> <a class="author_name" href="https://www.matchexpo.com/page/pg633fdea73f2e6.html">Plastic Trends</a> </div> </div> <div class="author_option_status"> <div class="author_status"> <div class="authentication_tag enterprise"> <svg class="icon" aria-hidden="true"> <use xlink:href="#ic_businessV"></use> </svg> <span>Enterprise</span> </div> </div> <div class="author_option"> <div class="option_btn" v-show="blogDetail.author.is_account_concern === 1" type="primary" class="isfollow" @click.stop=" enterpriseOptData( 1, blogDetail.pub_enterprise_id, blogDetail.user_id ) " >Followed</div> <div class="option_btn" v-show="blogDetail.author.is_account_concern !== 1" type="primary" class="follow" @click.stop=" enterpriseOptData( 0, blogDetail.pub_enterprise_id, blogDetail.user_id ) " >Follow</div> </div> </div> <div class="recently"> <div class="recently_head"><span></span> Recent content </div> <div class="recently_body"> <div class="recently_list"> <a class="recently_item" href="https://matchexpo.com/news/eve-energy-executive-share-insights-on-power-battery-industry-chain-resilience-at-forum.html" target="_self"> <div class="recently_title">EVE Energy Executive Share Insights on Power Battery Industry Chain Resilience at Forum</div> <div class="recently_date">1 Last year</div> </a> <a class="recently_item" href="https://matchexpo.com/news/the-home-depot-sets-goal-for-battery-powered-products-to-represent-over-85-of-outdoor-lawn-equipment-sales-by-2028.html" target="_self"> <div class="recently_title">The Home Depot Sets Goal for Battery-powered Products to Represent over 85% of Outdoor Lawn Equipment Sales by 2028</div> <div class="recently_date">1 Last year</div> </a> <a class="recently_item" href="https://matchexpo.com/news/toyota-to-build-new-automotive-battery-lab-at-michigan-r-d-headquarters-expanding-electrified-vehicle-development-capability-in-the-u-s-.html" target="_self"> <div class="recently_title">Toyota to Build New Automotive Battery Lab at Michigan R&D Headquarters, Expanding Electrified Vehicle Development Capability in the U.S.</div> <div class="recently_date">1 Last year</div> </a> </div> </div> </div> </div> <div style="display: none"> 0 </div> <div class="ad_container ad_container_0"> <div class="ad_list base_ad recently_ad " data-url="https://www.lyondellbasell.com/en/" data-id="17" data-name="recently_ad" > <div class="ad_item"> <div @click="$advertising.linkTo(17,'https://www.lyondellbasell.com/en/')" class="ad_media"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0930/6336498f3aa61.jpg" src=""> </div> <div class="ad_text_info"> <div class="ad_describe">We are also the world’s largest global licensor of polyolefin technologies.</div> <div class="ad_sponsor ad_mt "> <a href="https://www.lyondellbasell.com/en/"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0930/6336497762de7.png" src=""> </a> <a class="sponsor_name" href="https://www.lyondellbasell.com/en/">lyondellbasell</a> </div> </div> <div class="close_tag"> Advertising <i class="iconfont ic_closeC" @click="$advertising.closeAd('recently_ad')"></i> </div> </div> </div> </div> <div class="next_page_news"> </div> <div class="user_recommend_box" id="user_recommend"> <div class="group_title user_title"> <div> <i class="iconfont ic_other"></i> <span>People who may be interested</span> </div> <div class="hot_search_option" @click="$friend.getRecommendUserList()"><span class="iconfont ic_sync"></span>Change it</div> </div> <div id="hot_tag_box"> <div class="module_list" data-last-page="1675" style="display: flex;flex-direction: column"> <div class="module_item" data-id="1021406" data-current-page="1"> <div class="module_avatar"> <span>用</span> </div> <div class="group_title user_title"> <div> <div class="user_name">用*4</div> </div> <div class="user_company"> </div> </div> <div> <div class="user_friend_btn" data-user-id="1021406" data-friend-applying="0" data-action="0"> <div class="add_friend" > + Friends </div> <div class="cancel_friend" style="display: none;" > <i class="ic_check iconfont"></i> Requested </div> </div> </div> </div> <div class="module_item" data-id="1021401" data-current-page="1"> <div class="module_avatar"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0912/66e2b36e87a09.jpeg"/> </div> <div class="group_title user_title"> <div> <div class="user_name">株*社</div> </div> <div class="user_company">株式会社 海事プレス社 </div> </div> <div> <div class="user_friend_btn" data-user-id="1021401" data-friend-applying="0" data-action="0"> <div class="add_friend" > + Friends </div> <div class="cancel_friend" style="display: none;" > <i class="ic_check iconfont"></i> Requested </div> </div> </div> </div> <div class="module_item" data-id="1021400" data-current-page="1"> <div class="module_avatar"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0912/66e2b36aeaf22.jpeg"/> </div> <div class="group_title user_title"> <div> <div class="user_name">株*社</div> </div> <div class="user_company">株式会社 日本海事新聞社 </div> </div> <div> <div class="user_friend_btn" data-user-id="1021400" data-friend-applying="0" data-action="0"> <div class="add_friend" > + Friends </div> <div class="cancel_friend" style="display: none;" > <i class="ic_check iconfont"></i> Requested </div> </div> </div> </div> <div class="module_item" data-id="1021399" data-current-page="1"> <div class="module_avatar"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0912/66e2b36797c7b.jpeg"/> </div> <div class="group_title user_title"> <div> <div class="user_name">有*業</div> </div> <div class="user_company">有限会社 有田牧畜産業 </div> </div> <div> <div class="user_friend_btn" data-user-id="1021399" data-friend-applying="0" data-action="0"> <div class="add_friend" > + Friends </div> <div class="cancel_friend" style="display: none;" > <i class="ic_check iconfont"></i> Requested </div> </div> </div> </div> <div class="module_item" data-id="1021398" data-current-page="1"> <div class="module_avatar"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2024/0912/66e2b3626d25e.jpeg"/> </div> <div class="group_title user_title"> <div> <div class="user_name">J*e</div> </div> <div class="user_company">Ji Pu Tea House </div> </div> <div> <div class="user_friend_btn" data-user-id="1021398" data-friend-applying="0" data-action="0"> <div class="add_friend" > + Friends </div> <div class="cancel_friend" style="display: none;" > <i class="ic_check iconfont"></i> Requested </div> </div> </div> </div> </div> </div> </div> <div class="hot_news_list"> <div class="hot_news_head"> <img src="" lazyload="true" data-original="/assets/image/svg/ic_new.svg"> <span>Latest information</span> </div> <div class="hot_news_body"> <div class="nav_blog_list"> <a class="blog_item" href="https://capi.matchexpo.com/news/central-alliance-carries-out-orkney-ground-investigation.html" target="_self"> <div class="blog_image"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/1225/6588fde5dc1b9.png"> </div> <div class="blog_info"> <div class="blog_title">Central Alliance carries out Orkney ground investigation</div> <div class="blog_desc"> </div> </div> </a> <a class="blog_item" href="https://capi.matchexpo.com/news/kansai-joins-floating-offshore-wind-project-in-norway.html" target="_self"> <div class="blog_image"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/1225/6588fdbb4a334.png"> </div> <div class="blog_info"> <div class="blog_title">Kansai joins floating offshore wind project in Norway</div> <div class="blog_desc"> </div> </div> </a> <a class="blog_item" href="https://capi.matchexpo.com/news/alerion-agrees-35-mw-wind-project-in-wales.html" target="_self"> <div class="blog_image"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/1225/6588fd4d7c367.png"> </div> <div class="blog_info"> <div class="blog_title">Alerion agrees 35 MW wind project in Wales</div> <div class="blog_desc"> </div> </div> </a> <a class="blog_item" href="https://capi.matchexpo.com/news/havfram-wind-signs-contract-with-rwe-for-nordseecluster-offshore-wind-projects.html" target="_self"> <div class="blog_image"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/1225/6588fc63be638.jpg"> </div> <div class="blog_info"> <div class="blog_title">Havfram Wind signs contract with RWE for Nordseecluster offshore wind projects</div> <div class="blog_desc"> </div> </div> </a> <a class="blog_item" href="https://capi.matchexpo.com/news/dla-piper-advises-on-sale-of-nys-ter-wind-farm-cluster.html" target="_self"> <div class="blog_image"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2023/1225/6588fa728d295.png"> </div> <div class="blog_info"> <div class="blog_title">DLA Piper advises on sale of Nysäter wind farm cluster</div> <div class="blog_desc"> </div> </div> </a> </div> </div> </div> <div style="display: none"> 0 </div> <div class="ad_container ad_container_0"> </div> </div> </div> </div> </div> <div class="login_dialog"> <el-dialog :append-to-body="true" v-model="LoginDialogVisible" width="52%" > <div> <login-right :success-url="successUrl" @closepopup="closepopup"></login-right> </div> </el-dialog> </div> </div> </div> <div class="navbar_right" > <div class="right_navbar_container" id="right_navbar_container"> <div class="navbar_list"> <el-popover popper-class="right_nav_item" placement="left" :width="100" trigger="click"> <template #reference> <div class="navbar_item"> <el-tooltip class="item" effect="dark" placement="left-start"> <template #content>Matchexporen service number, scan it</template> <span class="iconfont ic_servise"></span> </el-tooltip> </div> </template> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d815ddd9af.png" src=""> <span style="color: var(--font-color-third); font-size: 12px; display: block; text-align: center">Matchexporen service number, scan it</span> </el-popover> <el-popover popper-class="right_nav_item" placement="left" :width="100" trigger="click"> <template #reference> <div class="navbar_item"> <el-tooltip class="item" effect="dark" placement="left-start"> <template #content>Global exhibition registration: add official account</template> <span class="iconfont ic_Qrcode"></span> </el-tooltip> </div> </template> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d8161532ac.png" src=""> <span style="color: var(--font-color-third); font-size: 12px; display: block; text-align: center">Global exhibition registration: add official account</span> </el-popover> <div class="navbar_item" @click="showFeedback"> <el-tooltip class="item" effect="dark" content="If you find any problems, please let us know." placement="left-start"> <span class="iconfont ic_opinion"></span> </el-tooltip> </div> <div class="navbar_item" @click="scrollToTop"> <span class="iconfont ic_top"></span> </div> </div> <div class="feedback_dialog"> <el-dialog :append-to-body="true" v-model="dialogVisible" title="Feedback" width="40%" > <div class="feedback_dialog_line"> <el-form ref="feedback" :model="feedback" :rules="feedbackRules" label-width="180px"> <el-form-item label="User:"> <el-input v-model="feedback.user_name" :maxlength="50" show-word-limit placeholder="Please enter your name"> </el-input> </el-form-item> <el-form-item label="Corporate name:"> <el-input v-model="feedback.company_name" :maxlength="100" show-word-limit placeholder="Please enter your company name"> </el-input> </el-form-item> <el-form-item label="Email:" prop="email" required> <el-input v-model="feedback.email" placeholder="Please enter your email address"> </el-input> </el-form-item> <el-form-item label="Description:" prop="content" required> <el-input v-model="feedback.content" :rows="4" :maxlength="240" show-word-limit type="textarea" placeholder="Please enter your suggestion"> </el-input> </el-form-item> <el-form-item labe="Image" prop="pic"> <el-upload :class="{disabled:isFeedbackPicMax}" :action="img_upload_url" :headers="upload_params" list-type="picture-card" multiple :limit="3" :on-success="handleSuccess" :before-upload="beforeAvatarUpload" :on-remove="handleRemove" :on-change="handleChange"> <div class="el-upload__text">Upload screenshot</div> </el-upload> </el-form-item> </el-form> </div> <template #footer> <span class="dialog-footer"> <el-button @click="dialogVisible = false" round>Cancel</el-button> <el-button type="primary" @click="submitFeedback()" v-loading="saveLoading" round>Submit</el-button> </span> </template> </el-dialog> </div> </div> <script> let right_navbar_container = initVue({ name:'right_navbar_container', data() { const valiEmail = (rule, value, callback) => { // 邮箱验证 if (!isEmail(value)) { callback(new Error('The email format is incorrect. Please enter the correct email')) } else { callback() } } return { isFeedbackPicMax: false, dialogVisible:false, feedbackPicDialogVisible:false, feedbackValue:'', saveLoading:false, img_upload_url: this.$config.uploadUrl, upload_params: { 'api-token': this.$config.apiToken, }, dialogImageUrl: '', feedback: { content: '', user_name: '', company_name: '', email: '', pic: [] }, feedbackRules :{ content: [ { required: true, message: 'Please enter your suggestion', trigger: 'blur', }, ], email: [ { required: true, message: 'Please enter your email address', trigger: 'blur', }, { validator: valiEmail, trigger: ['blur', 'change'], }, ] }, baseUserInfo: {}, } }, methods:{ scrollToTop() { window.scrollTo(0,1000) }, submitFeedback() { this.$refs.feedback.validate(valid => { if (valid) { let params = this.feedback this.saveLoading = true mtpRequest({ url:'/api/user/feedback', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.saveLoading = false this.$message.success('Feedback submitted successfully') this.dialogVisible = false } }).finally(() => { this.saveLoading = false }) } else { return false } }) }, showFeedback() { if (this.$config.apiToken) { this.dialogVisible = true } else { $('#headBox').trigger('loginDialog','reloadPage') } }, getUserInfo() { this.$nextTick(()=>{ //获取用户信息 getHeadUserInfo((res)=>{ this.baseUserInfo = res this.feedback.user_name = res.nick_name this.feedback.company_name = res.curr_enterprise_name this.feedback.email = res.email }) }) /*mtpRequest({ url: '/api/user/base-account', method: 'post', }).then(res=>{ this.baseUserInfo = res.data this.feedback.user_name = res.data.nick_name this.feedback.company_name = res.data.curr_enterprise_name this.feedback.email = res.data.email })*/ }, CutFeedbackValue(){ this.feedbackValue=this.$utils.cutByte(this.feedbackValue,240,'') }, handleRemove(file, fileList) { const index = this.feedback.pic.indexOf(file.file) this.feedback.pic.splice(index, 1) if (fileList.length < 3) { this.isFeedbackPicMax = false } }, handleSuccess(response) { this.feedback.pic.push(response.file) }, handleChange(file, fileList) { if (fileList.length >= 3) { this.isFeedbackPicMax = true } }, beforeAvatarUpload(file) { const isImage = /^image\/.*$/.test(file.type) const isLt2M = file.size / 1024 / 1024 < 2 if (!isImage) { this.$message.error('Image format error') } if (!isLt2M && isImage) { this.$message.error('Image size cannot exceed 2M') } return isImage && isLt2M } }, mounted() { this.$nextTick(()=>{ //更新token的val getUserEvent((res)=>{ if (res) { this.$config.apiToken = res this.$login.setToken(res) } }) }) this.getUserInfo() }, },"#right_navbar_container"); </script> </div> </div> <div> <div style=""> <div id="bottom_container"> <div class="bottom_head"></div> <div class="bottom" > <div class="bottom_main"> <div class="bottom_left"> <a class="bottom_logo" href="/"> <svg class="icon_en svg-icon" aria-hidden="true"> <use xlink:href="#ic_Matchpages"></use> </svg> </a> <div class="bottom_desc"> Matchexpo is an exhibition community platform for event & fair community in China, serving the essential functions of exhibitions, events, fairs, assisting ticket sales, visitor registration and booth reservation, allowing organizers to create, share, find and participate in activities, creating community space for organizers and exhibitors, finding their partners and helping them expand<br> </div> </div> <div class="bottom_center"> <div class="bottom_list"> <div class="bottom_line"> <a class="bottom_item" href="/contact-us">Contact Us</a> <a class="bottom_item" href="/user-agreement">User Agreement</a> <a class="bottom_item" href="/about-us">About Us</a> <a class="bottom_item" href="/price">Member Price</a> </div> <div class="bottom_line"> <a class="bottom_item" href="/copyright-notice">Copyright notice</a> <a class="bottom_item" href="/privacy-policy">Privacy Policy</a> <a class="bottom_item" href="/our-mission">Our Mission</a> </div> <div class="bottom_line"> <a class="bottom_item" href="/certification-specification">Certification specification</a> <a class="bottom_item" :href="helpUrl">Help Center</a> <a class="bottom_item" href="/advertisement">Advertising cooperation</a> </div> <div class="bottom_line"> <a class="bottom_item" href="/integrity-report">Integrity Report</a> <a class="bottom_item" href="/cooperative-partner">Cooperative partners</a> <a class="bottom_item" href="/link">Links</a> </div> <div class="bottom_line"> <a class="bottom_item" href="/channel">Channel Cooperation</a> <div class="bottom_item" @click="toHomepage('/certification/enterprise')">Enterprise certification</div> <a class="bottom_item" href="/invitation">Invite friends</a> </div> </div> </div> <div class="bottom_right"> <div class="bottom_qrcode_list"> <div class="bottom_qrcode"> <img src="" lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d8161532ac.png"> <span>Follow official account</span> </div> <div class="bottom_qrcode"> <img lazyload="true" data-original="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d815ddd9af.png" src=""> <span>Online support</span> </div> </div> <div class="platform_list"> <div class="platform_item" style="background:#1877F2"> <i class="iconfont ic_facebook1" ></i> </div> <div class="platform_item" style="background:#1DA1F2"> <i class="iconfont ic_twitter1"></i> </div> <div class="platform_item" style="background: #2867B2"> <i class="iconfont ic_linkedin1"></i> </div> <div class="platform_item" style="background: #FF0000"> <i class="iconfont ic_youtube" ></i> </div> <div class="platform_item" style="background: #F00073"> <i class="iconfont ic_instagram"></i> </div> <div class="platform_item" style="background: #E60023"> <i class="iconfont ic_pinterest1" ></i> </div> </div> </div> </div> </div> <div class="bottom_text"> <div> <span>Matchexpo: Event Marketing Platform </span> <span @click="handleLang('overseas', 'en-us')">International</span> - <span @click="handleLang('overseas', 'zh-tw')">Chinese Traditional</span> - <span @click="handleLang('inside', 'zh-cn')">Chinese Simplified</span> </div> | <a href="https://www.matchpages.cn/" target="_blank"> <span>Matchpages Web Builder</span> </a> | <a href="https://www.starify.cn/" target="_blank"> <span>Starify omni-Channel Chatbot</span> </a> </div> <div class="copyright"> 2019-2022。 Matchexpo | Wuhan Matchexpo Technology Co., Ltd. All rights reserved. <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d8153bd984.png" /> <span style="margin-right: 4px">鄂ICP备2022017323号 </span> </a> <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=42018502006493" target="_blank"> <img src="https://matchexpo.obs.cn-north-1.myhuaweicloud.com/common/2022/0830/630d812ede0c6.gif" class="icon_public_security" /> <span>鄂公网安备 42018502006493</span> </a> <div> Room 03, Floor 3, Building 4, Gezhouba Sun City, No. 40, Gaoxin 4th Road, Donghu New Technology Development Zone, Wuhan </div> </div> <script src="https://oss.starify.cn/prod/starigy/w_chat/install/js/5fd0a346-23e4-8052-fd6c-999f94c6f1b4.js" async></script> <div style="display: none"> <el-menu :default-active="activeIndex" :collapse="isCollapse" class="el-menu-vertical-demo"> <el-sub-menu index="Enterprise Certification4"> <template #title> <span>Enterprise Certification</span> </template> <el-menu-item index="Modify certification9" data-route="https://www.matchexpo.com/help/modify-certification.html" @click="routeTo('https://www.matchexpo.com/help/modify-certification.html')"> Modify certification </el-menu-item> <el-menu-item index="Certification fee8" data-route="https://www.matchexpo.com/help/certification-fee.html" @click="routeTo('https://www.matchexpo.com/help/certification-fee.html')"> Certification fee </el-menu-item> <el-menu-item index="Certification method7" data-route="https://www.matchexpo.com/help/certification-method.html" @click="routeTo('https://www.matchexpo.com/help/certification-method.html')"> Certification method </el-menu-item> <el-menu-item index="Certification conditions6" data-route="https://www.matchexpo.com/help/certification-conditions.html" @click="routeTo('https://www.matchexpo.com/help/certification-conditions.html')"> Certification conditions </el-menu-item> <el-menu-item index="Certification naming5" data-route="https://www.matchexpo.com/help/certification-naming.html" @click="routeTo('https://www.matchexpo.com/help/certification-naming.html')"> Certification naming </el-menu-item> <el-menu-item index="Certification introduction4" data-route="https://www.matchexpo.com/help/certification-introduction.html" @click="routeTo('https://www.matchexpo.com/help/certification-introduction.html')"> Certification introduction </el-menu-item> </el-sub-menu> </el-menu> </div> </div> <script> let bottom_container = initVue({ name:'bottomContainer', data() { return { url:'', helpUrl:'' } }, methods: { getHelpUrl() { this.$nextTick(()=>{ let list = document.querySelectorAll('#bottom_container .el-menu-item') let arr = [] list.forEach(item=>{ if (item.getAttribute('data-route')) { arr.push(item.getAttribute('data-route')) } }) if (arr.length > 0) { this.helpUrl = arr[0] } else { this.helpUrl = '/help' } }) }, toBottomPage(url) { window.open('/bottom#' + url,'_self') }, toHomepage(url) { var homeUrl = encodeURIComponent(url) if (this.$config.apiToken) { let centerUrl = this.$config.publishDomain + '/#/auth-login/' + this.$config.apiToken + '?redirect=' + homeUrl window.open(centerUrl, '_blank') } else { let centerUrl = this.$config.publishDomain + '?redirect=' + homeUrl $('#headBox').trigger('loginDialog',centerUrl) } }, handleLang(site, value) { let url = this.$config.siteDomain[site]+ '?lang=' + value this.$i18n.setLocale(value) location.href = url } }, mounted() { this.$nextTick(()=>{ //更新token的val getUserEvent((res)=>{ if (res) { this.$config.apiToken = res this.$login.setToken(res) } }) this.getHelpUrl() }) }, }, "#bottom_container"); </script> </div> </div> </div> <script> //移除loading效果 let loading_box = document.getElementById("loadingBox") function completeLoading() { if (loading_box) { loading_box.style.opacity = '0'; setTimeout(() => { if (document.querySelector('.container_body')) { document.querySelector('.container_body').style.opacity = '1'; } document.getElementById("loadingBox").style.display = "none"; }, 400) } } //初始化loading效果 function initLoading() { document.getElementById("loadingBox").style.display = ""; document.getElementById("loadingBox").style.opacity = '1'; } $(() => { setTimeout(() => { lazyload() }, 100) document.addEventListener('scroll', () => { lazyload() }, {passive: true}) setInterval(() => { lazyload() }, 1000) function lazyload() { var viewHeight = document.body.clientHeight //可视区域的高度 //获取所有要进行懒加载的图片 const lazyloadImg = document.querySelectorAll('img[data-original][lazyload]') lazyloadImg.forEach(item => { let rect = item.getBoundingClientRect()//获取每一个img元素的宽高以及距离视口顶部的距离 if (rect.top <= viewHeight && rect.top > -rect.height) { item.src = item.dataset.original item.removeAttribute('data-original') item.removeAttribute('lazyload') if (!item.onerror) { item.onerror = () => { item.src = '/assets/image/img_default.svg' } } item.style.opacity = 1 } }) } }) function getActiveTag() { let tag = document.querySelector('.active_tag') let tag_index = 0 document.querySelectorAll('.left_nav_list .nav_item').forEach((item, index) => { if (JSON.stringify(item.classList).indexOf('active') > -1) { tag_index = index } }) if (document.querySelector('.left_nav_list .active')) { let top = document.querySelector('.left_nav_list .active').offsetTop tag.style.top = parseInt(top) + 'px' tag.style.opacity = 1 } } /*判断是否禁用cookie*/ if (!(navigator.cookieEnabled && typeof window.localStorage !== 'undefined')) { ElementPlus.ElMessage({ message: 'Please allow all cookies in your browser settings and try again', type: 'warning', }) } /*获取站点*/ function returnSiteName() { window.siteName = 'overseas'; return 'overseas' } returnSiteName() /*数字转中文*/ function NumberToChinese(num) { var chnNumChar = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine']; var chnUnitSection = ['', '0k', 'Billion', 'Trillion', 'Billion'] var chnUnitChar = ['', 'Ten', 'Hundred', 'Thousand'] function SectionToChinese(section) { // 节内转换算法 var strIns = '', chnStr = ''; var unitPos = 0; var zero = true; while (section > 0) { var v = section % 10; if (v === 0) { if (!zero) { zero = true; chnStr = chnNumChar[v] + chnStr; } } else { zero = false; strIns = chnNumChar[v]; strIns += chnUnitChar[unitPos]; chnStr = strIns + chnStr; } unitPos++; section = Math.floor(section / 10); } return chnStr; } // 转换算法主函数 var unitPos = 0; var strIns = '', chnStr = ''; var needZero = false; if (num === 0) { return chnNumChar[0]; } while (num > 0) { var section = num % 10000; if (needZero) { chnStr = chnNumChar[0] + chnStr; } strIns = SectionToChinese(section); strIns += (section !== 0) ? chnUnitSection[unitPos] : chnUnitSection[0]; chnStr = strIns + chnStr; needZero = (section < 1000) && (section > 0); num = Math.floor(num / 10000); unitPos++; } return chnStr; } /*日期转化*/ function getWeekDay(time) { time = new Date(time) var dayarray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") var montharray = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") var year = time.getYear() if (year < 1000) year += 1900 var day = time.getDay() var month = time.getMonth() var daym = time.getDate() if (daym < 10) daym = "0" + daym var hours = time.getHours() var minutes = time.getMinutes() var seconds = time.getSeconds() var dn = "AM" if (hours >= 12) dn = "PM" if (hours > 12) { hours = hours - 12 } if (hours == 0) hours = 12 if (minutes <= 9) minutes = "0" + minutes if (seconds <= 9) seconds = "0" + seconds return dayarray[day] + ", " + montharray[month] + "" + daym + ", " + year + " " + hours + ":" + minutes + ":" + seconds + " " + dn } /*判断单位缩写*/ function formatNumber(number) { let lang = 'en-us'; let length = (number + '').length; //数字长度 let str = number + ''; if (lang === 'en-us') { if (length > 9) { //亿单位 str = (number / 1000000000).toFixed(1) + 'Billion' } else if (length > 6) { //万单位 str = (number / 1000000).toFixed(1) + 'Million' } else if (length > 3) { //千单位 str = (number / 1000).toFixed(1) + 'Thousand' } else { return number; } return str; } else { if (length > 8) { //亿单位 str = (number / 100000000).toFixed(1) + 'Hundred million' } else if (length > 4) { //万单位 str = (number / 10000).toFixed(1) + '0k' } else if (length > 3) { //千单位 str = (number / 1000).toFixed(1) + 'Thousand' } else { return number; } return str; } } /*时间转化*/ function timeTran(theTime) { let nowTime = new Date().getTime(); let dur = (nowTime - new Date(theTime).getTime()) / 1000; if (dur <= 60) { return 'Just'; } else if (dur <= 3600) { let number = parseInt(dur / 60) let s = (number > 1 ? 's' : '') return number + ' Minutes ago'.replace('{s}', s) } else if (dur <= 86400) { let number = parseInt(dur / 3600) let s = (number > 1 ? 's' : '') return number + ' Hours ago'.replace('{s}', s) } else if (dur <= 86400 * 30) { let number = parseInt(dur / 86400) let s = (number > 1 ? 's' : '') return number + ' Days ago'.replace('{s}', s) } else if (dur <= 86400 * 30 * 12) { let number = parseInt(dur / (86400 * 30)) let s = (number > 1 ? 's' : '') return number + ' Months ago'.replace('{s}', s) } else { let number = parseInt(dur / (86400 * 30 * 12)) let s = (number > 1 ? 's' : '') return number + ' Last year'.replace('{s}', s) } } // 记录访问referrer var referrer = document.referrer var user_referrer = window.localStorage.getItem('user_referrer') if (!user_referrer) { user_referrer = [] } else { user_referrer = JSON.parse(user_referrer) } if (typeof referrer === 'string' && user_referrer.length < 20) { var recorded = 0 user_referrer.forEach(item => { if (item == referrer) { recorded = 1 } }) if (recorded === 0) { user_referrer.push(referrer) window.localStorage.setItem('user_referrer', JSON.stringify(user_referrer)) } } </script> <script> let top_ad = initVue({ name: 'topAd', data() { const valiEmail = (rule, value, callback) => { // 邮箱验证 if (!isEmail(value)) { callback(new Error('The email format is incorrect. Please enter the correct email')) } else { callback() } } return { topAdShow: false, dialogVisible: false, saveLoading: false, adNumber: 'NewsDetail000', adForm: { ad_id: 0, content: '', user_name: '', company_name: '', position: '', phone: '', company_email: '', company_website: '', wechat: '' }, adFormRules :{ user_name: [ { required: true, message: 'Please enter your name', trigger: 'blur', }, ], company_name: [ { required: true, message: 'Please enter your company name', trigger: 'blur', }, ], content: [ { required: true, message: 'Please enter your requirements', trigger: 'blur', }, ], company_email: [ { required: true, message: 'Please enter your email address', trigger: 'blur', }, { validator: valiEmail, trigger: ['blur', 'change'], }, ], phone: [ { required: true, message: "Please enter your mobile phone number", trigger: 'blur', } ], position: [ { required: true, message: "Please enter your position", trigger: 'blur', } ], company_website: [ { required: true, message: "Please enter your web address", trigger: 'blur', } ] }, } }, created() { // 距离24点剩余多少天 var dayEndTime = new Date().format("yyyy-MM-dd 23:59:59"); var leftd = new Date(dayEndTime) - new Date(); var d = leftd / 1000; var date = Math.floor(d / 60 / 60 / 24 * 100) / 100; // 30秒后弹出顶部广告 setTimeout(() => { this.topAdShow = true let cookieName = 'topAd_' + this.adNumber let pushNum = 1 if (readCookie(cookieName)) { pushNum = readCookie(cookieName) pushNum = parseInt(pushNum) pushNum = pushNum + 1 } setCookie(cookieName, pushNum, date, '/') }, 30000) }, methods:{ closeAd(className) { if (className && document.querySelector('.' + className)) { document.querySelector('.' + className).parentElement.remove() } }, submitAdForm() { this.$refs.adForm.validate(valid => { if (valid) { let params = this.adForm this.saveLoading = true mtpRequest({ url:'/api/ad/form', method: 'post', data: params }).then(res=>{ if (res.ret === 0) { this.saveLoading = false this.$message.success('Submitted successfully') this.dialogVisible = false } }).finally(() => { this.saveLoading = false }) } else { return false } }) }, showAdForm(adId) { this.adForm.ad_id = adId this.dialogVisible = true }, } }, "#top_ad") </script> <script> let rightAd = initVue({ name: 'rightAd', data() { return { rightAdShow: false } }, created() { // 30秒后弹出顶部广告 setTimeout(() => { this.rightAdShow = true }, 30000) }, }, '#right_ad') </script> <script src="/assets/js/component/comment/comment.js?v=8.8"></script> <script> let blog_detail = initVue({ name:'blogDetail', data() { return { blogId: 0, loading:false, pageId: '16563', preview: '0', loginShow: false, //显示登录 blogDetail: { sponsor: {}, author: {}, }, commentOption: { url:'/api/blog/comment', data_url:'/api/blog/blog-comment-list', getListParams:{ blog_id:5267 }, commentParams:{ blog_id: 5267, } }, shareWechat: false, baseUserInfo: {}, }; }, methods:{ shareUrl(type) { if (type && type === 'facebook') { mpshare_facebook(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) } else if (type && type === 'twitter') { mpshare_twitter(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) } else if (type && type === 'linkedin') { mpshare_linkedin(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) } else if (type && type === 'pinterest') { mpshare_pinterest(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) } else { const input = document.createElement('input'); input.setAttribute('readonly', 'readonly'); // 设置为只读, 防止在 ios 下拉起键盘 // input.setAttribute('value', value); // textarea 不能用此方式赋值, 否则无法复制内容 input.value = window.location.origin+'/news/' + this.blogId; document.body.appendChild(input); input.setSelectionRange(0, 9999); // 防止 ios 下没有全选内容而无法复制 input.select(); document.execCommand('copy'); document.body.removeChild(input); this.$message.success('Share link copied successfully') } }, showShare() { this.shareWechat = true this.$nextTick(()=>{ this.creatQrCode() }) }, initIndexOwl() { this.$nextTick(()=>{ let owl = $('.author_about_user_list') if (owl) { owl.owlCarousel({ margin: 10, items: 4, animateOut: 'fadeOut', // nav: true, loop: false, dots:false, }) } }) }, mpShareQzone() { mpshare_qzone(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) }, mpShareWeibo() { mpshare_weibo(window.location.origin+'/news/' + this.blogDetail.id,this.blogDetail.name) }, creatQrCode() { let url = location.origin + '/mobile' + location.pathname this.$refs['qrcode_we'].innerHTML = '' //生成二维码 new QRCode(this.$refs['qrcode_we'], { text: url, width: 150, height: 150, colorDark: '#000000', colorLight: '#ffffff', correctLevel: QRCode.CorrectLevel.H, }) }, //获取详情 getBlogDetail() { this.loading = true let params if (this.$config.apiToken) { params = { blog_id: this.blogId, } } else { params = { blog_id: this.blogId, is_tourist: 1, } } mtpRequest({ url: '/api/blog/detail', method: 'get', params }).then(res=>{ if (res.ret === 0) { this.loading = false this.allComments = res.data.comments this.blogDetail = res.data } }) }, isBlobThumbsUP(item) { if (!this.$config.apiToken) { $('#headBox').trigger('loginDialog','closeLoginPopup') } else { let params = { record_id: this.blogId, record_type: 2, } var thumbs_up_count = document.getElementById("thumbs_up").innerText; if (isNaN(thumbs_up_count) === false) { thumbs_up_count = parseInt(thumbs_up_count) } if (item.blog_thumbs_up === 0) { mtpRequest({ url: '/api/user/thumbs-up', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.$message.success('Like success'); item.blog_thumbs_up = 1 if (isNaN(thumbs_up_count) === false) { thumbs_up_count = thumbs_up_count + 1 document.getElementById("thumbs_up").innerText = thumbs_up_count } } }) } else { mtpRequest({ url: '/api/user/cancel-thumbs-up', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.$message.success('Like canceled'); item.blog_thumbs_up = 0 if (isNaN(thumbs_up_count) === false) { thumbs_up_count = thumbs_up_count - 1 document.getElementById("thumbs_up").innerText = thumbs_up_count } } }) } } }, //资讯评论点赞 isThumbsUP(item) { if (!this.$config.apiToken) { $('#headBox').trigger('loginDialog','closeLoginPopup') } else { let params = { record_id: item.id, record_type: 3, } if (item.is_thumbs_up === 0) { mtpRequest({ url: '/api/user/thumbs-up', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.$message.success('Like success'); item.is_thumbs_up = 1 item.thumbs_up_count = item.thumbs_up_count + 1 } }) } else { mtpRequest({ url: '/api/user/cancel-thumbs-up', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.$message.success('Like canceled'); item.is_thumbs_up = 0 item.thumbs_up_count = item.thumbs_up_count - 1 } }) } } }, //收藏 isCollection() { if (!this.$config.apiToken) { $('#headBox').trigger('loginDialog','closeLoginPopup') } else { if (this.blogDetail.blog_collection === 0) { this.$message.success('Collection success'); var id if (this.baseUserInfo.enterprise_certified_id === 0 && this.baseUserInfo.enterprise_certified_id === '') { id = this.baseUserInfo.id } else { id = this.baseUserInfo.enterprise_certified_id } let params = { blog_id: this.blogId, enterprise_id: id, } mtpRequest({ url: '/api/blog/collection', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.blogDetail.blog_collection = 1 } }) } else { this.$message.success('Collection cancelled'); let params = { blog_id: this.blogId, } mtpRequest({ url: '/api/blog/cancel-collection', method: 'post', data:params }).then(res=>{ if (res.ret === 0) { this.blogDetail.blog_collection = 0 } }) } } }, enterpriseOptData(cancel, id, userId) { if (!this.$config.apiToken) { $('#headBox').trigger('loginDialog','closeLoginPopup') } else { if (cancel === 0) { this.blogDetail.author.is_account_concern = 1 this.$message.success('Focus on success'); } else { this.blogDetail.author.is_account_concern = 0 this.$message.success('Attention cancelled'); } if (id === 0) { let params = { user_id: userId, cancel: cancel, } mtpRequest({ url: '/api/user/to-subscribe-user', method: 'post', data:params }).then(res=>{ }) } else { let params = { enterprise_id: id, cancel: cancel, } mtpRequest({ url: '/api/network/enterprise-collection-opt', method: 'get', params }).then(res=>{ }) } } }, goAnchor() { var anchor = this.$refs.comment.offsetTop if (anchor > window.pageYOffset) { window.scrollTo(0, anchor - 150) } else { window.scrollTo(0, anchor - 150) } }, getUserInfo() { mtpRequest({ url: '/api/user/base-account', method: 'post', }).then(res=>{ this.baseUserInfo = res.data }) }, scrollToComment() { let scrollHeight = document.getElementById('news_comment_box').offsetTop window.scrollTo(scrollHeight-200,500) }, }, mounted() { this.initIndexOwl() if (document.getElementById('blog_detail') && this.preview != 1) { this.blogId = document.getElementById('blog_detail').getAttribute('data-blog-id') this.getBlogDetail() } if (this.$config.apiToken) { this.getUserInfo() } } },"#blog_detail",['mtpComment']) //页面停留时长 let stayTime let blogId = '5267' window.onload = ()=>{ stayTime = new Date().getTime() } window.onbeforeunload = ()=>{ if (stayTime && stayTime > 0) { let stayTimes = new Date().getTime() - stayTime stayTime = 0 let params = { blog_id: blogId, stay_time: stayTimes } mtpRequest({ url: '/api/timeline/views', method: 'post', data: params }).then(res => { }) } /*let record = localStorage.getItem('data') let data = record && JSON.parse(record) || [] localStorage.setItem('data',JSON.stringify([...data, {blog_id: blogId , stayTime}]))*/ } </script> </body> </html>