1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="utf-8"> 5<title>å享å©å</title> 6<meta name="keywords" content="è¯ç软件è¡ä¸è§£å³æ¹æ¡ 7 8"> 9<meta name="description" content="è¯ç软件è¡ä¸è§£å³æ¹æ¡ 10 11"> 12<link rel="icon" href="https://zj.chengmenghudong.com.cn/storage/2/20221212/4b267f86d702fff8956b9774e853ae06.png" /> 13<!-- Stylesheets --> 14<link href="/resource/css/bootstrap.css" rel="stylesheet"> 15<link href="/resource/css/icons.css" rel="stylesheet"> 16<link href="/resource/css/style.css" rel="stylesheet"> 17<link href="/resource/css/style1.css" rel="stylesheet"> 18<link href="/resource/css/animation.css" rel="stylesheet"> 19<link href="/resource/css/responsive.css" rel="stylesheet"> 20<link href="/resource/css/style-zh.css" rel="stylesheet"> 21<link href="/resource/css/layer.css" rel="stylesheet">
22<script src="/resource/js/jquery.js"></script>
vendor: 1 bytes, line 22
22
23<script src="/resource/js/layer.js"></script>
23 24<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/c/font_2408324_pezmgeu9b9d.css"> 25<meta name="content-protection" content='{"enabled":false,"mode":"disable_all","message":""}'>
26<script src="/resource/js/custom.js"></script>
26 27<meta name="external-link-notice" content='{"enabled":false}'> 28<!-- æ°´å°é ç½®ä¿¡æ¯ --> 29<meta name="watermark" content='{"enabled":false,"type":"text","text":"ç½ç«æ°´å°","color":"#CCCCCC","fontSize":"16","image":"","imageWidth":"100","opacity":"0.3","position":"tile","rotate":"-30","xSpace":"100","ySpace":"100","xOffset":"20","yOffset":"20"}'> 30 31 32<!-- Responsive --> 33<meta http-equiv="X-UA-Compatible" content="IE=edge"> 34<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 35<!--[if lt IE 9]>
35<script src="/resource/js/html5shiv.js"></script>
35<![endif]--> 36<!--[if lt IE 9]>
36<script src="/resource/js/respond.js"></script>
36<![endif]-->
37<script type="text/javascript" src="/resource/js/swiper.min.js"></script>
37 38<style> 39 .theme-color{color:!important;} 40 .theme-bor-color{border-color:!important;} 41 .theme-icon-color{color:!important;} 42 .theme-bg-color{background:!important;} 43 .theme-active-color:active{color:!important;} 44 .theme-actice-bg-color:active{background:!important;} 45 .btn-style-one, .quote-widget .widget-content, .projects-section-five .filters .filter:hover, .blog-cat-three li a:hover, .blog-cat-three li.active a, .blog-cat-three li a:before, .services-block .inner-box .lower-content .category:before, .services-section .owl-dots .owl-dot.active, .services-section .owl-dots .owl-dot:hover, .btn-style-two, .banner-carousel .content-box .btn-style-three:hover::before, .news-block-three .inner-box .image .post-date, .scroll-to-top, .contact-form .form-group .submit-btn:hover, .accordion-box .block .acc-btn.active .icon-outer, .news-block .inner-box .image .post-date, .footer_kf, .main-menu .navigation > li > ul > li > ul > li > a:before, .main-menu .navigation > li > ul > li > 46 a:before, .projects-section-five .filters li.active, .sidebar-title h2, .our-product .single-product:hover, .pagination .pagination .active span, .imgText ul li.active span{background-color: ;} 47 .accordion-box .block .acc-btn.active .icon-outer{border-color: ;} 48 .services-block-two .inner-box .image .overlay-box, .services-block-two .inner-box .image .heading-box 49 {border-color: ;} 50 .text_theme_color{transition:.3s; color: !important;} 51 .bg_theme_color{transition:.3s; background: !important;} 52 .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:focus, .pagination > .active > span:focus{background:!important;border-color:!important;} 53 #think_page_trace_open{display: none;} 54 55 /* æå主é¢é¢è²çRGBå¼ï¼ç¨äºéæåº¦ææ */ 56 :root { 57 --theme-color: #409EFF; 58 --theme-color-rgb: 64, 158, 255; /* é»è®¤èè² */ 59 } 60 61 /* æ°´å°æ ·å¼ */ 62 .watermark { 63 position: fixed; 64 top: 0; 65 left: 0; 66 width: 100%; 67 height: 100%; 68 pointer-events: none; /* ç¡®ä¿æ°´å°ä¸ä¼å½±å页é¢äº¤äº */ 69 z-index: 9999; 70 overflow: hidden; 71 } 72</style> 73<style> 74 .main-menu .navigation > li > a{color:#333333;} 75 .fixed-header .navigation > li > a{color:#333333;} 76 .main-menu .navigation > li .active{padding: 0 15px;border-radius: 30px;border:1px solid #409EFF;color:#ffffff;background:#409EFF;} 77 .iconfont{font-size: 25px;} 78</style> 79<!-- header1 --> 80<header class="main-header clearfix pc-show" style="background:#ffffff;"> 81 <div class="header-upper"> 82 <div class="inner-container"> 83 <div class="auto-container clearfix zh-logo"> 84 <div class="fl flex"> 85 <div class="gf-logo logo55 pad-20 pad-l5"> 86 <a href="/"><img src="https://zj.chengmenghudong.com.cn/storage/2/20260402/1776134117890.png" alt=""></a> 87 </div> 88 <div class="trans_logo logo55 pd-10"> 89 <a href="/"><img src="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761216087.png" alt=""></a> 90 </div> 91
91<script src="/resource/js/vue.min.js"></script>
91 92<link rel="stylesheet" href="/resource/css/city-selector.css"> 93 </div> 94 95 <div class="nav-outer clearfix"> 96 <nav class="main-menu navbar-expand-md navbar-light"> 97 <div class="navbar-header"> 98 <button class="navbar-toggler" type="button" data-toggle="collapse" 99 data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" 100 aria-expanded="false" aria-label="Toggle navigation"> 101 <span class="icon flaticon-menu"></span> 102 </button> 103 </div> 104 105 <div class="collapse navbar-collapse clearfix" id="navbarSupportedContent"> 106 <ul class="navigation clearfix"> 107 <li class="current dropdown"> 108 <a data-translate="true" class="" 109 href="/124" data-field=" "> 110 é¦é¡µ </a> 111 </li> 112 <li class="current dropdown"> 113 <a data-translate="true" class="" 114 href="/128" data-field=" "> 115 è¡ä¸èµè®¯ </a> 116 </li> 117 <li class="current dropdown"> 118 <a data-translate="true" class="" 119 href="/127" data-field=" "> 120 常è§é®é¢ </a> 121 </li> 122 <li class="current dropdown"> 123 <a data-translate="true" class="" 124 href="/126" data-field=" "> 125 æ¡ä¾å±ç¤º </a> 126 </li> 127 <li class="current dropdown"> 128 <a data-translate="true" class="" 129 href="/125" target="_blank" data-field=" "> 130 æä¸äº§å </a> 131 </li> 132 <li class="current dropdown"> 133 <a data-translate="true" class="" 134 href="/130" data-field=" "> 135 å ³äºæä»¬ </a> 136 </li> 137 </ul> 138 <div class="outer-box clearfix"> 139 <!-- 䏻颿 ·å¼ --> 140<style> 141 :root { 142 --theme-color: #409EFF; 143 } 144 145 .user-menu .dropdown-toggle span.name { 146 position: relative; 147 top: 0; 148 left: 0; 149 background: transparent; 150 color: #000; 151 } 152 #think_page_trace_open{display: none;} 153 154 /* ç¨æ·èåæ ·å¼ */ 155 .user-menu { 156 position: relative; 157 display: inline-block; 158 margin: 0 15px; 159 } 160 161 .user-menu .avatar { 162 width: 32px; 163 height: 32px; 164 border-radius: 50%; 165 margin-right: 8px; 166 object-fit: cover; 167 border: 2px solid var(--theme-color); 168 } 169 170 .user-menu .dropdown-toggle { 171 display: flex; 172 align-items: center; 173 color: #333; 174 text-decoration: none; 175 padding: 5px 10px; 176 border-radius: 4px; 177 transition: all 0.3s; 178 } 179 180 .user-menu .dropdown-toggle:hover { 181 background: rgba(0,0,0,0.05); 182 } 183 184 .user-menu .dropdown-toggle span { 185 max-width: 120px; 186 overflow: hidden; 187 text-overflow: ellipsis; 188 white-space: nowrap; 189 } 190 191 .user-menu .dropdown-menu { 192 min-width: 200px; 193 padding: 8px 0; 194 margin-top: 10px; 195 display: none; 196 position: absolute; 197 right: 0; 198 background: #fff; 199 border: 1px solid #ddd; 200 border-radius: 4px; 201 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 202 z-index: 1000; 203 animation: fadeIn 0.2s ease-out; 204 } 205 206 @keyframes fadeIn { 207 from { 208 opacity: 0; 209 transform: translateY(-10px); 210 } 211 to { 212 opacity: 1; 213 transform: translateY(0); 214 } 215 } 216 217 .user-menu .dropdown-menu.show { 218 display: block; 219 } 220 221 .user-menu .dropdown-item { 222 display: flex; 223 align-items: center; 224 padding: 8px 20px; 225 color: #333; 226 text-decoration: none; 227 transition: all 0.3s; 228 } 229 230 .user-menu .dropdown-item i { 231 width: 20px; 232 margin-right: 8px; 233 color: #666; 234 transition: all 0.3s; 235 } 236 237 .user-menu .dropdown-item:hover { 238 background: #f8f9fa; 239 color: var(--theme-color); 240 } 241 242 .user-menu .dropdown-item:hover i { 243 color: var(--theme-color); 244 } 245 246 .user-menu .dropdown-divider { 247 height: 1px; 248 margin: 8px 0; 249 background-color: #e9ecef; 250 } 251 252 .user-menu .login-btns { 253 display: flex; 254 gap: 10px; 255 align-items: center; 256 } 257 258 .user-menu .login-btns .btn { 259 padding: 7px 16px; 260 border-radius: 4px; 261 text-decoration: none; 262 transition: all 0.3s; 263 font-weight: 500; 264 } 265 266 .user-menu .login-btns .btn-outline-primary { 267 border: 1px solid var(--theme-color); 268 color: var(--theme-color); 269 } 270 271 .user-menu .login-btns .btn-outline-primary:hover { 272 background: var(--theme-color); 273 color: #fff; 274 } 275 276 .user-menu .login-btns .btn-primary { 277 background: var(--theme-color); 278 color: #fff; 279 border: 1px solid var(--theme-color); 280 } 281 282 .user-menu .login-btns .btn-primary:hover { 283 opacity: 0.9; 284 transform: translateY(-1px); 285 } 286</style> 287 288<!-- 卿䏻é¢é¢è² -->
289<script> 290document.documentElement.style.setProperty('--theme-color', ''); 291</script>
291 292<!-- ç¨æ·èå --> 293<div class="user-menu"> 294 <div class="login-btns"> 295 <style> 296 /* è¯è¨ä¸æèåæ ·å¼ */ 297 .language-dropdown { 298 position: relative; 299 } 300 301 .language-dropdown .dropdown-toggle { 302 display: flex; 303 align-items: center; 304 text-decoration: none; 305 padding: 5px 10px; 306 border-radius: 4px; 307 transition: all 0.3s; 308 color:#333333; 309 } 310 .fixed-header .language-dropdown .dropdown-toggle { 311 color:#333333; 312 } 313 314 .language-dropdown .dropdown-toggle i { 315 margin-right: 5px; 316 } 317 318 .language-dropdown .dropdown-toggle:hover { 319 background: rgba(0,0,0,0.05); 320 } 321 322 .language-dropdown .dropdown-menu { 323 display: none; /* é»è®¤éèä¸ææ¡ */ 324 position: absolute; 325 top: 100%; 326 left: 0; 327 z-index: 1000; 328 min-width: 150px; 329 background: #fff; 330 border: 1px solid rgba(0,0,0,0.15); 331 border-radius: 4px; 332 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 333 margin-top: 2px; 334 } 335 336 .language-dropdown .dropdown-menu.show { 337 display: block; /* ç¹å»æ¶æ¾ç¤ºä¸ææ¡ */ 338 } 339 340 /* å¤åå±ç¤ºæ ·å¼ - å½è¯è¨è¶ è¿10ç§æ¶ä½¿ç¨ */ 341 .language-dropdown .dropdown-menu.multi-column.show { 342 display: flex; /* åªæå¨showç¶æä¸æä½¿ç¨flexå¸å± */ 343 flex-wrap: wrap; 344 min-width: 235px; 345 padding: 5px; 346 line-height: 1.2; 347 } 348 349 .language-dropdown .dropdown-menu.multi-column .dropdown-item { 350 width: 33.33%; /* ä¸åå¸å± */ 351 box-sizing: border-box; 352 padding: 0 8px; 353 font-size: 13px; 354 white-space: nowrap; 355 overflow: hidden; 356 text-overflow: ellipsis; 357 margin: 0; 358 } 359 360 /* ååºå¼è°æ´ - å½å±å¹è¾å°æ¶æ¹ä¸ºä¸¤å */ 361 @media (max-width: 768px) { 362 .language-dropdown .dropdown-menu.multi-column { 363 min-width: 240px; 364 max-width: 320px; 365 padding: 4px; 366 } 367 368 .language-dropdown .dropdown-menu.multi-column .dropdown-item { 369 width: 50%; /* 两åå¸å± */ 370 padding: 5px 6px; 371 font-size: 12px; 372 } 373 } 374 375 /* è¶ å°å±å¹ä¼å */ 376 @media (max-width: 480px) { 377 .language-dropdown .dropdown-menu.multi-column { 378 min-width: 200px; 379 max-width: 280px; 380 } 381 382 .language-dropdown .dropdown-menu.multi-column .dropdown-item { 383 padding: 4px 5px; 384 } 385 } 386 387 /* è¯è¨éä¸ç¶ææ ·å¼ */ 388 .language-dropdown .dropdown-item.active { 389 background-color: var(--theme-color); 390 color: #fff; 391 } 392 393 .language-dropdown .dropdown-item:hover { 394 background-color: rgba(0,0,0,0.05); 395 } 396 397 .language-dropdown .dropdown-item.active:hover { 398 background-color: var(--theme-color); 399 opacity: 0.9; 400 } 401</style> 402<!-- è¯è¨åæ¢ä¸æèå -->
403<script> 404 // è¯è¨åæ¢å·¥å ·å¯¹è±¡ 405 window.langSwitchUtils = { 406 // 忢䏿èåæ¾ç¤º/éè 407 toggleDropdown: function(element) { 408 if (!element) return; 409 var dropdownMenu = element.nextElementSibling; 410 if (!dropdownMenu) return; 411 dropdownMenu.classList.toggle('show'); 412 413 // å¦ææ¯æ¾ç¤ºç¶æï¼ç¹å»é¡µé¢å ¶ä»åºåæ¶å ³é 414 if (dropdownMenu.classList.contains('show')) { 415 document.addEventListener('click', this.closeDropdownOnOutsideClick); 416 } else { 417 document.removeEventListener('click', this.closeDropdownOnOutsideClick); 418 } 419 }, 420 421 // ç¹å»é¡µé¢å ¶ä»åºåå ³é䏿èå 422 closeDropdownOnOutsideClick: function(event) { 423 const dropdowns = document.querySelectorAll('.dropdown-menu.show'); 424 dropdowns.forEach(function(dropdown) { 425 let targetElement = event.target; 426 let isDropdownClick = false; 427 428 while (targetElement != null) { 429 if (targetElement.classList && targetElement.classList.contains('language-dropdown')) { 430 isDropdownClick = true; 431 break; 432 } 433 targetElement = targetElement.parentElement; 434 } 435 436 if (!isDropdownClick) { 437 dropdown.classList.remove('show'); 438 document.removeEventListener('click', langSwitchUtils.closeDropdownOnOutsideClick); 439 } 440 }); 441 }, 442 443 // 忢è¯è¨ 444 changeLanguage: function(languageCode) { 445 console.log('忢è¯è¨å°:', languageCode); 446 447 // ä¿åç¨æ·è¯è¨å好尿¬å°åå¨ 448 try { 449 localStorage.setItem('preferred_language', languageCode); 450 } catch (e) { 451 console.error('ä¿åè¯è¨å好失败:', e); 452 } 453 454 // æ´æ°è¯è¨æ¾ç¤ºåèåéä¸ç¶æ 455 this.updateLanguageDisplay(languageCode); 456 457 // å·æ°é¡µé¢åºç¨æ°è¯è¨ 458 if (languageCode === 'zh-cn') { 459 window.location.reload(); 460 return; 461 } 462 463 // æ¾ç¤ºå è½½æç¤º 464 const translationLoading = document.querySelector('.translation-loading'); 465 if (translationLoading) { 466 translationLoading.style.display = 'block'; 467 } 468 469 // å°è¯è°ç¨å ¨å±çtranslate彿°è¿è¡ç¿»è¯ 470 if (typeof window.translate === 'object' && typeof window.translate.changeLanguage === 'function') { 471 try { 472 window.translate.changeLanguage(languageCode); 473 } catch (e) { 474 console.error('è°ç¨ç¿»è¯å½æ°å¤±è´¥:', e); 475 // 失败æ¶å·æ°é¡µé¢ 476 window.location.reload(); 477 } 478 } else { 479 // 没æç¿»è¯å½æ°æ¶ç´æ¥å·æ°é¡µé¢ 480 window.location.reload(); 481 } 482 }, 483 484 // æ´æ°è¯è¨æ¾ç¤ºåèåéä¸ç¶æ 485 updateLanguageDisplay: function(languageCode) { 486 // è·åå½åè¯è¨å¯¹åºçåç§° 487 fetch('/index/translate/getLanguages') 488 .then(response => response.json()) 489 .then(data => { 490 if (data.code === 200 && data.data && data.data.languages) { 491 const languages = data.data.languages; 492 const language = languages.find(lang => lang.code === languageCode); 493 494 if (language) { 495 // æ´æ°å½åæ¾ç¤ºçè¯è¨åç§° 496 const currentLanguageElement = document.getElementById('current-language'); 497 if (currentLanguageElement) { 498 currentLanguageElement.textContent = language.name; 499 } 500 501 // æ´æ°ä¸æèåä¸çéä¸ç¶æ 502 const languageMenu = document.getElementById('language-menu'); 503 if (languageMenu) { 504 // ç§»é¤ææé¡¹çéä¸ç¶æ 505 const items = languageMenu.querySelectorAll('.dropdown-item');
506 items.forEach(item => { 507 item.classList.remove('active'); 508 }); 509 510 // 为å½åéä¸çè¯è¨æ·»å éä¸ç¶æ 511 const selectedItem = Array.from(items).find(item => { 512 return item.getAttribute('data-lang-code') === languageCode; 513 }); 514 515 if (selectedItem) { 516 selectedItem.classList.add('active'); 517 } 518 } 519 } 520 } 521 }) 522 .catch(error => { 523 console.error('è·åè¯è¨å称失败:', error); 524 }); 525 } 526 }; 527 528 // 页é¢å è½½å®æåè·åè¯è¨å表 529 document.addEventListener('DOMContentLoaded', function() { 530 // æ£æ¥æ¯å¦å¯ç¨å¤è¯è¨åè½ 531 const enableMultilang = '0' === '1'; 532 if (!enableMultilang) { 533 return; // 妿æªå¯ç¨å¤è¯è¨åè½ï¼åä¸å è½½è¯è¨å表 534 } 535 536 // è·åè¯è¨å表 537 fetch('/index/translate/getLanguages') 538 .then(response => response.json()) 539 .then(data => { 540 if (data.code === 200 && data.data) { 541 const languages = data.data.languages || []; 542 543 // 渲æè¯è¨èå 544 renderLanguageMenu(languages); 545 546 // å¦ææ²¡æè¯è¨é ç½®ï¼ä¿ç"å è½½ä¸"çæ¾ç¤º 547 if (!languages || languages.length === 0) { 548 const languageMenu = document.getElementById('language-menu'); 549 if (languageMenu) { 550 languageMenu.innerHTML = '<div class="dropdown-item loading-text"><span>å è½½ä¸...</span></div>'; 551 } 552 return; 553 } 554 } 555 }) 556 .catch(error => { 557 console.error('è·åè¯è¨å表失败:', error); 558 }); 559 }); 560 561 // 渲æè¯è¨èå 562 function renderLanguageMenu(languages) { 563 const languageMenu = document.getElementById('language-menu'); 564 if (!languageMenu) return; 565 566 // æ¸ ç©ºå è½½æç¤º 567 languageMenu.innerHTML = ''; 568 569 // 夿æ¯å¦éè¦å¤åå±ç¤ºï¼è¯è¨è¶ è¿10ç§ï¼ 570 if (languages && languages.length > 10) { 571 languageMenu.classList.add('multi-column'); 572 } else { 573 languageMenu.classList.remove('multi-column'); 574 } 575 576 // 妿è¯è¨å表为空ï¼ä¿çå è½½ä¸çæ¾ç¤º 577 if (!languages || languages.length === 0) { 578 // ä¿æ"å è½½ä¸"ææ¬æ¾ç¤º 579 languageMenu.innerHTML = '<div class="dropdown-item loading-text"><span>å è½½ä¸...</span></div>'; 580 return; 581 } 582 583 // è·åå½åéä¸çè¯è¨ä»£ç 584 let currentLangCode = ''; 585 try { 586 currentLangCode = localStorage.getItem('preferred_language'); 587 } catch (e) { 588 console.error('è·åè¯è¨å好失败:', e); 589 } 590 591 // 妿æ¬å°åå¨ä¸æ²¡æè¯è¨å好ï¼å°è¯ä»translate.toè·å 592 if (!currentLangCode && window.translate && window.translate.to) { 593 currentLangCode = window.translate.to; 594 } 595 596 // 妿ä»ç¶æ²¡æè¯è¨ä»£ç ï¼ä½¿ç¨ç¬¬ä¸ä¸ªè¯è¨ä½ä¸ºé»è®¤ 597 if (!currentLangCode && languages.length > 0) { 598 currentLangCode = languages[0].code; 599 } 600 601 // åå»ºææ¡£ç段ï¼åå°DOMæä½æ¬¡æ° 602 const fragment = document.createDocumentFragment(); 603 604 // æ·»å è¯è¨é项
605 languages.forEach(lang => { 606 const item = document.createElement('a'); 607 item.className = 'dropdown-item'; 608 609 // 设置data-lang-code屿§ 610 item.setAttribute('data-lang-code', lang.code); 611 item.dataset.langCode = lang.code; 612 613 // æ£æ¥æ¯å¦ä¸ºå½åéä¸çè¯è¨ 614 if (lang.code === currentLangCode) { 615 item.className += ' active'; // æ·»å active类以é«äº®æ¾ç¤ºå½åéä¸çè¯è¨ 616 617 // åæ¶æ´æ°é¡¶é¨æ¾ç¤ºçè¯è¨åç§° 618 const currentLanguageElement = document.getElementById('current-language'); 619 if (currentLanguageElement) { 620 currentLanguageElement.textContent = lang.name; 621 } 622 } 623 624 item.href = 'javascript:void(0);'; 625 626 const span = document.createElement('span'); 627 span.textContent = lang.name; 628 629 item.appendChild(span); 630 fragment.appendChild(item); 631 }); 632 633 // 䏿¬¡æ§æ·»å ææå ç´ å°DOM 634 languageMenu.appendChild(fragment); 635 636 // 使ç¨äºä»¶å§æç»å®ç¹å»äºä»¶ 637 languageMenu.addEventListener('click', function(e) { 638 const target = e.target.closest('.dropdown-item'); 639 if (target && target.dataset.langCode) { 640 const langCode = target.dataset.langCode; 641 console.log('ç¹å»åæ¢è¯è¨:', langCode); 642 643 // è°ç¨è¯è¨åæ¢å·¥å ·å¯¹è±¡çæ¹æ³ 644 langSwitchUtils.changeLanguage(langCode); 645 } 646 }); 647 } 648 649 // è®¾ç½®å ¨å±changeLanguage彿° 650 window.changeLanguage = function(languageCode) { 651 langSwitchUtils.changeLanguage(languageCode); 652 }; 653</script>
653 654 </div> 655 </div> 656
657<script> 658// å¤çéåºç»å½ 659function handleLogout() { 660 const confirmMsg = window.LangUtil ? window.LangUtil.getText('logout_confirm') : 'ç¡®å®è¦éåºç»å½åï¼'; 661 if(!confirm(confirmMsg)) return; 662 663 // æ¸ é¤æ¬å°åå¨ 664 localStorage.clear(); 665 sessionStorage.clear(); 666 667 // æ¸ é¤ææcookie 668 document.cookie.split(';').forEach(function(c) { 669 document.cookie = c.trim().split('=')[0] + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/'; 670 }); 671 672 // åééåºè¯·æ±å¹¶å·æ°å½åé¡µé¢ 673 fetch('/index/login/logout.html', { 674 method: 'GET', 675 credentials: 'same-origin', 676 cache: 'no-cache' 677 }).then(function(response) { 678 return response.json(); 679 }).then(function(data) { 680 if(data.code === 200) { 681 // å·æ°å½åé¡µé¢ 682 window.location.reload(true); 683 } else { 684 // 妿æé误ï¼ä¹å·æ°é¡µé¢ 685 window.location.reload(true); 686 } 687 }).catch(function() { 688 // åçé误æ¶ä¹å·æ°é¡µé¢ 689 window.location.reload(true); 690 }); 691} 692 693// 忢䏿èåæ¾ç¤º/éè 694function toggleDropdown(element) { 695 if (!element) return; 696 var dropdownMenu = element.nextElementSibling; 697 if (!dropdownMenu) return; 698 dropdownMenu.classList.toggle('show'); 699} 700 701// ç¹å»é¡µé¢å ¶ä»å°æ¹å ³é䏿èå 702document.addEventListener('click', function(event) { 703 var dropdowns = document.getElementsByClassName('dropdown-menu'); 704 Array.from(dropdowns).forEach(function(dropdown) { 705 if (dropdown.classList.contains('show')) { 706 var targetElement = event.target; 707 var isDropdownClick = false; 708 while (targetElement != null) { 709 if (targetElement.classList.contains('dropdown')) { 710 isDropdownClick = true; 711 break; 712 } 713 targetElement = targetElement.parentElement; 714 } 715 if (!isDropdownClick) { 716 dropdown.classList.remove('show'); 717 } 718 } 719 }); 720}); 721</script>
721 722 </div> 723 </div> 724 </nav> 725 </div> 726 </div> 727 </div> 728 </div> 729
729<script src="/resource/js/custom.js"></script>
729 730</header> 731<!-- ææºç«¯å¤´é¨å¯¼èª --> 732<header class="mobile-header mobile-show"> 733 <div class="header-container"> 734 <!-- 左侧Logoåºå --> 735 <div class="header-logo"> 736 <a href="/"> 737 <picture class="logo"> 738 <img srcset="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761216087.png" alt="logo"> 739 </picture> 740 </a> 741 </div> 742 <div class="mobile-language-switch-container"> 743 <!-- ç§»å¨ç«¯è¯è¨åæ¢ --> 744 <div class="mobile-language-switch"> 745 </div> 746 <!-- æ±å ¡èåæé® --> 747 <div class="menu-trigger"> 748 <span></span> 749 <span></span> 750 <span></span> 751 </div> 752 </div> 753 754 <!-- 导èªèååºå --> 755 <div class="nav-wrapper"> 756 <nav class="main-nav"> 757 <ul class="nav-list"> 758 <li class="nav-item"> 759 <a href="/124" class="nav-link"> 760 <span>é¦é¡µ</span> 761 </a> 762 </li> 763 <li class="nav-item"> 764 <a href="/128" class="nav-link"> 765 <span>è¡ä¸èµè®¯</span> 766 </a> 767 </li> 768 <li class="nav-item"> 769 <a href="/127" class="nav-link"> 770 <span>常è§é®é¢</span> 771 </a> 772 </li> 773 <li class="nav-item"> 774 <a href="/126" class="nav-link"> 775 <span>æ¡ä¾å±ç¤º</span> 776 </a> 777 </li> 778 <li class="nav-item"> 779 <a href="/125" class="nav-link"> 780 <span>æä¸äº§å</span> 781 </a> 782 </li> 783 <li class="nav-item"> 784 <a href="/130" class="nav-link"> 785 <span>å ³äºæä»¬</span> 786 </a> 787 </li> 788 </ul> 789 </nav> 790 791 <!-- ç»å½æ³¨åæé®åºå --> 792 <div class="auth-buttons"> 793 </div> 794 </div> 795 796 </div> 797 798</header> 799 800<style> 801/* ç§»å¨ç«¯å¤´é¨æ ·å¼ */ 802.mobile-header { 803 position: relative; /* åå§ä¸ºabsoluteå®ä½ */ 804 top: 0; 805 left: 0; 806 width: 100%; 807 background: #fff; 808 box-shadow: 0 2px 10px rgba(0,0,0,0.1); 809 z-index: 1000; 810 transition: all 0.3s ease; /* æ·»å è¿æ¸¡ææ */ 811} 812 813/* æ»å¨ç¶æä¸çæ ·å¼ */ 814.mobile-header.fixed { 815 position: fixed; 816 animation: slideDown 0.3s forwards; /* æ·»å å䏿»å ¥å¨ç» */ 817} 818 819@keyframes slideDown { 820 from { 821 transform: translateY(-100%); 822 } 823 to { 824 transform: translateY(0); 825 } 826} 827 828.header-container { 829 display: flex; 830 align-items: center; 831 justify-content: space-between; 832 padding: 15px; 833 height: 60px; 834} 835 836/* Logoæ ·å¼ */ 837.header-logo { 838 height: 35px; 839} 840 841.header-logo img { 842 height: 100%; 843 width: auto; 844} 845 846/* æ±å ¡èåæé® */ 847.menu-trigger { 848 width: 30px; 849 height: 20px; 850 position: relative; 851 cursor: pointer; 852 z-index: 1001; 853} 854 855.menu-trigger span { 856 display: block; 857 position: absolute; 858 height: 2px; 859 width: 100%; 860 background: #333; 861 border-radius: 2px; 862 transition: all 0.3s ease; 863} 864 865.menu-trigger span:nth-child(1) { top: 0; } 866.menu-trigger span:nth-child(2) { top: 9px; } 867.menu-trigger span:nth-child(3) { top: 18px; } 868 869/* èåæå¼ç¶æ */ 870.menu-active .menu-trigger span:nth-child(1) { 871 transform: rotate(45deg); 872 top: 9px; 873} 874 875.menu-active .menu-trigger span:nth-child(2) { 876 opacity: 0; 877} 878 879.menu-active .menu-trigger span:nth-child(3) { 880 transform: rotate(-45deg); 881 top: 9px; 882} 883 884/* ç§»å¨ç«¯è¯è¨åæ¢æ ·å¼ */ 885.mobile-language-switch { 886 margin-right: 10px; 887 position: relative; 888 z-index: 1001; 889} 890.mobile-language-switch-container{ 891 display: flex; 892 align-items: center; 893 justify-content: center; 894} 895/* ç§»å¨ç«¯è¯è¨ä¸æèåæ ·å¼è¦ç */ 896.mobile-language-switch .language-dropdown { 897 margin-right: 5px; 898} 899 900.mobile-language-switch .language-dropdown .dropdown-toggle { 901 padding: 5px 8px; 902 font-size: 14px; 903 white-space: nowrap; 904 background-color: #f5f5f5; 905 border-radius: 4px; 906 display: flex; 907 align-items: center; 908} 909 910.mobile-language-switch .language-dropdown .dropdown-toggle i { 911 margin-right: 3px; 912} 913 914.mobile-language-switch .language-dropdown .dropdown-menu { 915 position: absolute; 916 top: 100%; 917 right: 0; 918 left: auto; 919 min-width: 120px; 920 background: #fff; 921 border-radius: 4px; 922 box-shadow: 0 2px 10px rgba(0,0,0,0.1); 923 z-index: 1002; 924 padding: 5px 0; 925 margin-top: 5px; 926 display: none; 927} 928 929.mobile-language-switch .language-dropdown .dropdown-menu.show { 930 display: block; 931} 932 933.mobile-language-switch .language-dropdown .dropdown-item { 934 padding: 8px 15px; 935 font-size: 14px; 936 color: #333; 937 text-decoration: none; 938 display: block; 939 white-space: nowrap; 940} 941 942.mobile-language-switch .language-dropdown .dropdown-item:hover { 943 background-color: #f5f5f5; 944} 945 946.mobile-language-switch .language-dropdown .dropdown-item.active { 947 background-color: var(--theme-color); 948 color: #fff; 949} 950 951/* 导èªèååºå */ 952.nav-wrapper { 953 position: fixed; 954 top: 60px; 955 left: 0; 956 width: 100%; 957 height: calc(100vh - 60px); 958 background: #fff; 959 overflow-y: auto; 960 transform: translateX(100%); 961 transition: transform 0.3s ease; 962 z-index: 999; 963} 964 965.menu-active .nav-wrapper { 966 transform: translateX(0); 967} 968 969/* ä¸»å¯¼èªæ ·å¼ */ 970.nav-list { 971 padding: 0; 972 margin: 0; 973 list-style: none; 974} 975 976.nav-item { 977 border-bottom: 1px solid #eee; 978} 979 980.nav-link { 981 display: flex; 982 align-items: center; 983 justify-content: space-between; 984 padding: 15px; 985 color: #333; 986 text-decoration: none; 987 font-size: 16px; 988} 989 990.arrow { 991 width: 10px; 992 height: 10px; 993 border-right: 2px solid #666; 994 border-bottom: 2px solid #666; 995 transform: rotate(45deg); 996 transition: transform 0.3s ease; 997} 998 999.nav-item.active > .nav-link .arrow { 1000 transform: rotate(-135deg); 1001} 1002 1003/* äºçº§èåæ ·å¼ */ 1004.submenu { 1005 display: none; 1006 background: #f8f8f8; 1007} 1008 1009.nav-item.active > .submenu { 1010 display: block; 1011} 1012 1013.submenu-item { 1014 border-bottom: 1px solid #eee; 1015} 1016 1017.submenu-title { 1018 display: flex; 1019 align-items: center; 1020 justify-content: space-between; 1021 padding: 12px 15px 12px 30px; 1022 color: #666; 1023 font-size: 15px; 1024} 1025 1026/* ä¸çº§èåæ ·å¼ */ 1027.third-menu { 1028 display: none; 1029 background: #f1f1f1; 1030 padding: 0; 1031 margin: 0; 1032 list-style: none; 1033} 1034 1035.submenu-item.active > .third-menu { 1036 display: block; 1037} 1038 1039.third-menu li a { 1040 display: block; 1041 padding: 10px 15px 10px 45px; 1042 color: #888; 1043 font-size: 14px; 1044 text-decoration: none; 1045} 1046 1047/* ç»å½æ³¨åæé®æ ·å¼ */ 1048.auth-buttons { 1049 padding: 20px 15px; 1050 display: flex; 1051 gap: 10px; 1052} 1053 1054.auth-btn { 1055 flex: 1; 1056 display: flex; 1057 align-items: center; 1058 justify-content: center; 1059 padding: 12px; 1060 border-radius: 5px; 1061 text-decoration: none; 1062 font-size: 15px; 1063 transition: all 0.3s ease; 1064} 1065 1066.login-btn { 1067 background: #f5f5f5; 1068 color: #333; 1069} 1070 1071.register-btn { 1072 background: #2196F3; 1073 color: #fff; 1074} 1075 1076.auth-btn i { 1077 margin-right: 5px; 1078} 1079</style> 1080
1081<script> 1082$(function() { 1083 // åå§åèåäº¤äº 1084 initMobileMenu(); 1085 1086 // åå§åæ»å¨çå¬ 1087 initScrollHeader(); 1088 1089 // åå§åç§»å¨ç«¯è¯è¨åæ¢ 1090 initMobileLangSwitch(); 1091}); 1092 1093// åå§åç§»å¨ç«¯è¯è¨åæ¢åè½ 1094function initMobileLangSwitch() { 1095 // æ£æ¥æ¯å¦å¯ç¨å¤è¯è¨åè½ 1096 const enableMultilang = '0' === '1'; 1097 if (!enableMultilang) { 1098 return; // 妿æªå¯ç¨å¤è¯è¨åè½ï¼åä¸å è½½è¯è¨å表 1099 } 1100 1101 // è·åè¯è¨å表 1102 fetch('/index/translate/getLanguages') 1103 .then(response => response.json()) 1104 .then(data => { 1105 if (data.code === 200 && data.data) { 1106 const languages = data.data.languages || []; 1107 1108 // 渲æç§»å¨ç«¯è¯è¨èå 1109 renderMobileLanguageMenu(languages); 1110 1111 // å¦ææ²¡æè¯è¨é ç½®ï¼ä¿ç"å è½½ä¸"çæ¾ç¤º 1112 if (!languages || languages.length === 0) { 1113 const languageMenu = document.getElementById('m-language-menu'); 1114 if (languageMenu) { 1115 languageMenu.innerHTML = '<div class="dropdown-item loading-text"><span>å è½½ä¸...</span></div>'; 1116 } 1117 return; 1118 } 1119 } 1120 }) 1121 .catch(error => { 1122 console.error('è·åè¯è¨å表失败:', error); 1123 }); 1124} 1125 1126// 渲æç§»å¨ç«¯è¯è¨èå 1127function renderMobileLanguageMenu(languages) { 1128 const languageMenu = document.getElementById('m-language-menu'); 1129 if (!languageMenu) return; 1130 1131 // æ¸ ç©ºå è½½æç¤º 1132 languageMenu.innerHTML = ''; 1133 1134 // 妿è¯è¨å表为空ï¼ä¿çå è½½ä¸çæ¾ç¤º 1135 if (!languages || languages.length === 0) { 1136 languageMenu.innerHTML = '<div class="dropdown-item loading-text"><span>å è½½ä¸...</span></div>'; 1137 return; 1138 } 1139 1140 // è·åå½åéä¸çè¯è¨ä»£ç 1141 let currentLangCode = ''; 1142 try { 1143 currentLangCode = localStorage.getItem('preferred_language'); 1144 } catch (e) { 1145 console.error('è·åè¯è¨å好失败:', e); 1146 } 1147 1148 // 妿æ¬å°åå¨ä¸æ²¡æè¯è¨å好ï¼å°è¯ä»translate.toè·å 1149 if (!currentLangCode && window.translate && window.translate.to) { 1150 currentLangCode = window.translate.to; 1151 } 1152 1153 // 妿ä»ç¶æ²¡æè¯è¨ä»£ç ï¼ä½¿ç¨ç¬¬ä¸ä¸ªè¯è¨ä½ä¸ºé»è®¤ 1154 if (!currentLangCode && languages.length > 0) { 1155 currentLangCode = languages[0].code; 1156 } 1157 1158 // åå»ºææ¡£ç段ï¼åå°DOMæä½æ¬¡æ° 1159 const fragment = document.createDocumentFragment(); 1160 1161 // æ·»å è¯è¨é项
1162 languages.forEach(lang => { 1163 const item = document.createElement('a'); 1164 item.className = 'dropdown-item'; 1165 1166 // 设置data-lang-code屿§ 1167 item.setAttribute('data-lang-code', lang.code); 1168 item.dataset.langCode = lang.code; 1169 1170 // æ£æ¥æ¯å¦ä¸ºå½åéä¸çè¯è¨ 1171 if (lang.code === currentLangCode) { 1172 item.className += ' active'; // æ·»å active类以é«äº®æ¾ç¤ºå½åéä¸çè¯è¨ 1173 1174 // åæ¶æ´æ°é¡¶é¨æ¾ç¤ºçè¯è¨åç§° 1175 const currentLanguageElement = document.getElementById('m-current-language'); 1176 if (currentLanguageElement) { 1177 currentLanguageElement.textContent = lang.name; 1178 } 1179 } 1180 1181 item.href = 'javascript:void(0);'; 1182 1183 const span = document.createElement('span'); 1184 span.textContent = lang.name; 1185 1186 item.appendChild(span); 1187 fragment.appendChild(item); 1188 }); 1189 1190 // 䏿¬¡æ§æ·»å ææå ç´ å°DOM 1191 languageMenu.appendChild(fragment); 1192 1193 // 使ç¨äºä»¶å§æç»å®ç¹å»äºä»¶ 1194 languageMenu.addEventListener('click', function(e) { 1195 const target = e.target.closest('.dropdown-item'); 1196 if (target && target.dataset.langCode) { 1197 const langCode = target.dataset.langCode; 1198 console.log('ç¹å»åæ¢è¯è¨:', langCode); 1199 1200 // è°ç¨è¯è¨åæ¢æ¹æ³ 1201 if (window.langSwitchUtils && typeof window.langSwitchUtils.changeLanguage === 'function') { 1202 window.langSwitchUtils.changeLanguage(langCode); 1203 } else { 1204 // å¦ææ²¡æå ¨å±æ¹æ³ï¼ä½¿ç¨ç®åçå·æ°æ¹å¼åæ¢ 1205 try { 1206 localStorage.setItem('preferred_language', langCode); 1207 } catch (e) { 1208 console.error('ä¿åè¯è¨å好失败:', e); 1209 } 1210 window.location.reload(); 1211 } 1212 } 1213 }); 1214} 1215 1216// ç§»å¨ç«¯è¯è¨åæ¢å·¥å ·å¯¹è±¡ 1217window.mobileLangSwitchUtils = { 1218 // 忢䏿èåæ¾ç¤º/éè 1219 toggleDropdown: function(element) { 1220 if (!element) return; 1221 var dropdownMenu = document.getElementById('m-language-menu'); 1222 if (!dropdownMenu) return; 1223 dropdownMenu.classList.toggle('show'); 1224 1225 // 黿¢äºä»¶å泡 1226 event.stopPropagation(); 1227 1228 // å¦ææ¯æ¾ç¤ºç¶æï¼ç¹å»é¡µé¢å ¶ä»åºåæ¶å ³é 1229 if (dropdownMenu.classList.contains('show')) { 1230 document.addEventListener('click', this.closeDropdownOnOutsideClick); 1231 } else { 1232 document.removeEventListener('click', this.closeDropdownOnOutsideClick); 1233 } 1234 }, 1235 1236 // ç¹å»é¡µé¢å ¶ä»åºåå ³é䏿èå 1237 closeDropdownOnOutsideClick: function(event) { 1238 const dropdownMenu = document.getElementById('m-language-menu'); 1239 if (!dropdownMenu) return; 1240 1241 let targetElement = event.target; 1242 let isDropdownClick = false; 1243 1244 while (targetElement != null) { 1245 if (targetElement.classList && targetElement.classList.contains('language-dropdown')) { 1246 isDropdownClick = true; 1247 break; 1248 } 1249 targetElement = targetElement.parentElement; 1250 } 1251 1252 if (!isDropdownClick) { 1253 dropdownMenu.classList.remove('show'); 1254 document.removeEventListener('click', mobileLangSwitchUtils.closeDropdownOnOutsideClick); 1255 } 1256 } 1257}; 1258 1259function initMobileMenu() { 1260 // æ±å ¡èåç¹å»äºä»¶ 1261 $('.menu-trigger').on('click', function(e) { 1262 e.stopPropagation(); 1263 $('body').toggleClass('menu-active'); 1264 }); 1265 1266 // ä¸çº§èåç¹å»äºä»¶ 1267 $('.nav-link').on('click', function(e) { 1268 if ($(this).siblings('.submenu').length) { 1269 e.preventDefault(); 1270 const $parent = $(this).parent(); 1271 1272 if ($parent.hasClass('active')) { 1273 $parent.removeClass('active'); 1274 $parent.find('.submenu-item.active').removeClass('active'); 1275 } else { 1276 $('.nav-item.active').removeClass('active'); 1277 $parent.addClass('active'); 1278 } 1279 } 1280 }); 1281 1282 // äºçº§èåç¹å»äºä»¶ 1283 $('.submenu-title').on('click', function(e) { 1284 if ($(this).siblings('.third-menu').length) { 1285 e.preventDefault(); 1286 const $parent = $(this).parent(); 1287 1288 if ($parent.hasClass('active')) { 1289 $parent.removeClass('active'); 1290 } else { 1291 $(this).closest('.submenu').find('.submenu-item.active').removeClass('active'); 1292 $parent.addClass('active'); 1293 } 1294 } 1295 }); 1296 1297 // ç¹å»ç©ºç½å¤å ³éèåï¼ä½ä¸å ³éè¯è¨åæ¢èå 1298 $(document).on('click', function(e) { 1299 // æ£æ¥ç¹å»çå ç´ æ¯å¦å¨è¯è¨åæ¢åºåå 1300 if (!$(e.target).closest('.mobile-language-switch, .language-dropdown, .menu-trigger').length) { 1301 // 䏿¯å¨è¯è¨åæ¢åºåå çç¹å»ï¼å ³é主èå 1302 $('body').removeClass('menu-active'); 1303 } 1304 }); 1305 1306 // 黿¢èåå é¨ç¹å»äºä»¶å泡 1307 $('.nav-wrapper').on('click', function(e) { 1308 e.stopPropagation(); 1309 }); 1310} 1311 1312function initScrollHeader() { 1313 const $header = $('.mobile-header'); 1314 const headerHeight = $header.outerHeight(); 1315 let lastScroll = 0; 1316 const scrollThreshold = 300; // æ»å¨å¤å°åç´ ååºå®å¤´é¨ 1317 1318 // å建ä¸ä¸ªå ä½å ç´ ï¼é²æ¢å 容跳å¨
1319 const $placeholder = $('<div>').css({ 1320 height: headerHeight, 1321 display: 'none' 1322 }).insertAfter($header); 1323 1324 $(window).on('scroll', function() { 1325 const currentScroll = $(this).scrollTop(); 1326 1327 // å䏿»å¨è¶ è¿é弿¶åºå®å¤´é¨ 1328 if (currentScroll > scrollThreshold) { 1329 if (!$header.hasClass('fixed')) { 1330 $header.addClass('fixed'); 1331 $placeholder.show(); 1332 } 1333 } else { 1334 // åå°é¡¶é¨éè¿æ¶æ¢å¤åå§ä½ç½® 1335 $header.removeClass('fixed'); 1336 $placeholder.hide(); 1337 } 1338 1339 lastScroll = currentScroll; 1340 }); 1341} 1342</script>
1342 1343<!-- æ·»å å¿ è¦çJSåº -->
1344<script src="/static/js/layer.min.js"></script>
vendor: 1 bytes, line 1344
1344
1345<script src="/static/js/qrcode.min.js"></script>
1345 1346<section class="page-title zh-w-100 pc-show"> 1347 <img src="/resource/image/inner_img.jpg" alt=""> 1348 </section> 1349<section class="page-title zh-w-100 mobile-show"> 1350 <img src="/resource/image/inner_img.jpg" alt=""> 1351 </section> 1352<!-- img_template1 --> 1353<div class="sidebar-page-container"> 1354 <div class="auto-container"> 1355 <div class="row clearfix flex-row-reverse"> 1356 <!--Content Side--> 1357 <div class="content-side col-lg-9 col-md-12 col-xs-12"> 1358 <div class="services-single"> 1359 <div class="inner-box"> 1360 <h2>å享å©å</h2> 1361 <div class="issue_time"> 1362 <span>åç±»ï¼</span>å项è½å <span class="mar-l20">åå¸äººï¼</span>admin <span class="mar-l20">é 读ï¼</span>35890 </div> 1363 <div class="text w-e-text-container"> 1364 </div> 1365 1366 <!-- 转载说æå社交å享åºå --> 1367 1368 <!-- ç¹èµåå享åºå --> 1369 1370 <!-- éä»¶å表 --> 1371 1372 </div> 1373 </div> 1374 <div class="bottom-page clearfix"> 1375 <div class="left-column"> 1376 <div class="inner-column"> 1377 <a href="/article/757.html"> 1378 <div> 1379 <div class="post"><span>ä¸ä¸ç¯:</span>社åºåå</div> 1380 </div> 1381 </a> 1382 </div> 1383 </div> 1384 <div class="right-column"> 1385 <div class="inner-column"> 1386 <a href="/article/755.html"> 1387 <div> 1388 <div class="post"><span>ä¸ä¸ç¯:</span>社群è¥é</div> 1389 </div> 1390 </a> 1391 </div> 1392 </div> 1393 </div> 1394 </div> 1395 1396 <div class="sidebar-side col-lg-3 col-md-12 col-xs-12"> 1397 <div class="left-sidebar"> 1398 1399 <!-- ç鍿¨è --> 1400 <div class="sidebar-widget categories-widget"> 1401 <div class="sidebar-title"> 1402 <h2>ç鍿¨è</h2> 1403 </div> 1404 <div class="widget-content"> 1405 <ul class="blog-cat"> 1406 <li><a href="/article/757.html">社åºåå</a></li> 1407 <li><a href="/article/756.html">å享å©å</a></li> 1408 <li><a href="/article/755.html">社群è¥é</a></li> 1409 <li><a href="/article/754.html">社åºåå</a></li> 1410 </ul> 1411 </div> 1412 </div> 1413 1414 1415 <!-- èç³» --> 1416 <div class="sidebar-widget quote-widget"> 1417 <div class="sidebar-title"> 1418 <h2>èç³»æä»¬</h2> 1419 </div> 1420 <div class="iconfont icon-dianhua2 theme-color text-center pad-b20 bor-b-1"><p class="theme-color mar-t20 f-siz26"></p></div> 1421 <div class="lower-box pad-20"> 1422 <p>è¯ç软件è¡ä¸è§£å³æ¹æ¡</p> 1423 <p>ææºï¼18523692368</p> 1424 <p>é®ç®±ï¼[email protected]</p> 1425 <p>å°åï¼äºåç丽æ±å¸å¤ååºè¥¿å®è¡é寨é«è·¯å士åå忥¼6å±</p> 1426 </div> 1427 </div> 1428 1429 </div> 1430 </div> 1431 </div> 1432 </div> 1433</div> 1434 1435<style type="text/css"> 1436/* éä»¶åè¡¨æ ·å¼ */ 1437.attachment-section { 1438 margin-top: 30px; 1439 padding: 20px; 1440 background: #f8f9fa; 1441 border-radius: 4px; 1442} 1443 1444.attachment-title { 1445 font-size: 18px; 1446 color: #333; 1447 margin-bottom: 15px; 1448 padding-bottom: 10px; 1449 border-bottom: 1px solid #eee; 1450} 1451 1452.attachment-list { 1453 display: flex; 1454 flex-direction: column; 1455 gap: 15px; 1456} 1457 1458.attachment-item { 1459 display: flex; 1460 justify-content: space-between; 1461 align-items: center; 1462 padding: 15px; 1463 background: #fff; 1464 border-radius: 4px; 1465 box-shadow: 0 2px 4px rgba(0,0,0,0.05); 1466 transition: all 0.3s ease; 1467} 1468 1469.attachment-item:hover { 1470 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 1471} 1472 1473.attachment-info { 1474 flex: 1; 1475 margin-right: 15px; 1476} 1477 1478.attachment-name { 1479 font-size: 16px; 1480 color: #333; 1481 margin-left: 8px; 1482} 1483 1484.attachment-desc { 1485 margin-top: 5px; 1486 font-size: 14px; 1487 color: #666; 1488 padding-left: 24px; 1489} 1490 1491.attachment-download, 1492.attachment-link { 1493 display: inline-flex; 1494 align-items: center; 1495 padding: 8px 15px; 1496 background: #409EFF; 1497 color: #fff; 1498 border-radius: 4px; 1499 text-decoration: none; 1500 transition: all 0.3s ease; 1501} 1502 1503.attachment-download:hover, 1504.attachment-link:hover { 1505 background: #66b1ff; 1506} 1507 1508.attachment-pwd { 1509 margin-left: 10px; 1510 padding: 2px 8px; 1511 background: #f4f4f5; 1512 color: #909399; 1513 border-radius: 2px; 1514 font-size: 12px; 1515} 1516 1517.iconfont { 1518 font-size: 18px; 1519} 1520 1521.icon-attachment, 1522.icon-download, 1523.icon-link { 1524 margin-right: 5px; 1525} 1526 1527/* è½¬è½½è¯´ææ ·å¼ */ 1528.article-copyright { 1529 margin: 30px 0; 1530 padding: 15px 20px; 1531 background: #f8f9fa; 1532 border-left: 4px solid #409EFF; 1533 border-radius: 4px; 1534} 1535 1536.copyright-info { 1537 display: flex; 1538 align-items: center; 1539 color: #666; 1540 font-size: 14px; 1541} 1542 1543.copyright-info i { 1544 margin-right: 8px; 1545} 1546 1547.copyright-info a { 1548 color: #409EFF; 1549 text-decoration: none; 1550 margin-left: 5px; 1551} 1552 1553/* 社交æä½åºåæ ·å¼ */ 1554.social-actions { 1555 margin: 30px 0; 1556 padding: 20px; 1557 border-top: 1px solid #eee; 1558 border-bottom: 1px solid #eee; 1559 display: flex; 1560 align-items: center; 1561 justify-content: center; 1562 gap: 30px; 1563} 1564 1565/* ç¹èµæé®æ ·å¼ */ 1566.like-btn { 1567 display: flex; 1568 align-items: center; 1569 padding: 8px 20px; 1570 border-radius: 20px; 1571 background: #f8f9fa; 1572 cursor: pointer; 1573 transition: all 0.3s ease; 1574} 1575 1576.like-btn:hover { 1577 background: #e8f4ff; 1578} 1579 1580.like-btn i { 1581 margin-right: 5px; 1582} 1583 1584.like-count { 1585 color: #666; 1586} 1587 1588/* èµèµæé®æ ·å¼ */ 1589.reward-btn { 1590 position: relative; 1591 display: flex; 1592 align-items: center; 1593 padding: 8px 20px; 1594 border-radius: 20px; 1595 background: #f8f9fa; 1596 cursor: pointer; 1597 transition: all 0.3s ease; 1598} 1599 1600.reward-btn:hover { 1601 background: #e8f4ff; 1602} 1603 1604.reward-btn i { 1605 margin-right: 5px; 1606} 1607 1608/* å享æé®ç»æ ·å¼ */ 1609.share-btns { 1610 display: flex; 1611 align-items: center; 1612 gap: 10px; 1613} 1614 1615.share-title { 1616 color: #666; 1617 font-size: 14px; 1618} 1619 1620.share-item { 1621 width: 36px; 1622 height: 36px; 1623 border-radius: 50%; 1624 background: #f8f9fa; 1625 display: flex; 1626 align-items: center; 1627 justify-content: center; 1628 text-decoration: none; 1629 transition: all 0.3s ease; 1630 position: relative; 1631} 1632 1633.share-item:hover { 1634 background: #e8f4ff; 1635} 1636 1637.share-item i { 1638 font-size: 20px; 1639} 1640 1641.share-item i.icon-weibo-sina { 1642 color: #e6162d; 1643} 1644 1645.share-item i.icon-tubiao215 { 1646 color: #12b7f5; 1647} 1648 1649.share-item i.icon-xiaoxi-comment {
1650 color: #07c160; 1651} 1652 1653/* äºç»´ç å¼¹çªæ ·å¼ */ 1654.qrcode-popup { 1655 position: absolute; 1656 bottom: 100%; 1657 left: 50%; 1658 transform: translateX(-50%); 1659 background: white; 1660 padding: 10px; 1661 border-radius: 4px; 1662 box-shadow: 0 2px 12px rgba(0,0,0,0.1); 1663 display: none; 1664 z-index: 100; 1665 width: 150px; 1666 text-align: center; 1667} 1668 1669.reward-btn:hover .qrcode-popup, 1670.share-item:hover .qrcode-popup { 1671 display: block; 1672} 1673 1674.qrcode-popup img { 1675 width: 100%; 1676 height: auto; 1677} 1678 1679.qrcode-popup p { 1680 margin: 5px 0 0; 1681 font-size: 12px; 1682 color: #666; 1683} 1684 1685/* åä½å¤§å°æ§å¶æ ·å¼ */ 1686.font-size-control { 1687 display: inline-flex; 1688 align-items: center; 1689 vertical-align: middle; 1690} 1691 1692.font-size-control span { 1693 color: #666; 1694 margin-right: 5px; 1695 font-size: 14px; 1696} 1697 1698.size-btns { 1699 display: inline-flex; 1700 gap: 5px; 1701} 1702 1703.size-btn { 1704 padding: 0 5px; 1705 cursor: pointer; 1706 color: #666; 1707 text-align: center; 1708} 1709 1710.size-btn.active { 1711 color: #409EFF; 1712} 1713 1714/* æç« å å®¹æ ·å¼ - 使ç¨WangEditoræ ·å¼ï¼ä¸è¦çç¼è¾å¨å 容 */ 1715.text { 1716 transition: all 0.3s ease; 1717} 1718 1719/* ç¡®ä¿ç¼è¾å¨å å®¹æ ·å¼ä¸è¢«è¦ç */ 1720.text.w-e-text-container { 1721 /* ç§»é¤å¯è½è¦çç¼è¾å¨æ ·å¼ç屿§ï¼è®©ç¼è¾å¨æ ·å¼å®å ¨çæ */ 1722 font-size: inherit; 1723 line-height: inherit; 1724} 1725
1726/* åä½å¤§å°æ§å¶æ¶ï¼åªå½±ååºç¡åä½å¤§å°ï¼ä¸å½±åç¼è¾å¨å é¨å ç´ çæ ·å¼ */ 1727.text.w-e-text-container[style*="font-size"] * { 1728 /* åä½å¤§å°æ§å¶åªå½±å容å¨ï¼å é¨å ç´ ä¿æç¼è¾å¨æ ·å¼ */ 1729 font-size: inherit; 1730} 1731</style>
1732<script type="text/javascript"> 1733 // ç¹èµåè½ 1734 function handleLike(articleId) { 1735 fetch('/index/article/like', { 1736 method: 'POST', 1737 headers: { 1738 'Content-Type': 'application/json', 1739 }, 1740 body: JSON.stringify({ id: articleId }) 1741 }) 1742 .then(response => response.json()) 1743 .then(data => { 1744 if (data.code === 200) { 1745 let likeCount = document.querySelector('.like-count'); 1746 likeCount.textContent = parseInt(likeCount.textContent) + 1; 1747 layer.msg('ç¹èµæå'); 1748 } else { 1749 layer.msg(data.message || 'æä½å¤±è´¥'); 1750 } 1751 }) 1752 .catch(error => { 1753 console.error('ç¹èµå¤±è´¥:', error); 1754 layer.msg('æä½å¤±è´¥'); 1755 }); 1756 } 1757 1758 // å享å°å¾®å 1759 function shareToWeibo() { 1760 const url = encodeURIComponent(window.location.href); 1761 const title = encodeURIComponent(document.title); 1762 window.open('https://service.weibo.com/share/share.php?url=' + url + '&title=' + title, '_blank', 'width=700,height=500'); 1763 } 1764 1765 // å享å°QQ 1766 function shareToQQ() { 1767 const url = encodeURIComponent(window.location.href); 1768 const title = encodeURIComponent(document.title); 1769 const desc = encodeURIComponent(document.querySelector('meta[name="description"]')?.content || ''); 1770 window.open('https://connect.qq.com/widget/shareqq/index.html?url=' + url + '&title=' + title + '&desc=' + desc, '_blank', 'width=700,height=500'); 1771 } 1772 1773 // å享å°å¾®ä¿¡ 1774 function shareToWechat() { 1775 const qrcodeElement = document.getElementById('wechatQrcode'); 1776 if (!qrcodeElement.hasChildNodes()) { 1777 new QRCode(qrcodeElement, { 1778 text: window.location.href, 1779 width: 128, 1780 height: 128, 1781 colorDark: "#000000", 1782 colorLight: "#ffffff", 1783 correctLevel: QRCode.CorrectLevel.H 1784 }); 1785 } 1786 } 1787 1788 // 页é¢å è½½å®æåæ§è¡ 1789 window.onload = function () { 1790 // åå§å微信äºç»´ç 1791 const qrcodeElement = document.getElementById('wechatQrcode'); 1792 if (qrcodeElement && !qrcodeElement.hasChildNodes()) { 1793 new QRCode(qrcodeElement, { 1794 text: window.location.href, 1795 width: 128, 1796 height: 128, 1797 colorDark: "#000000", 1798 colorLight: "#ffffff", 1799 correctLevel: QRCode.CorrectLevel.H 1800 }); 1801 } 1802 1803 // åå§ååä½å¤§å° 1804 initFontSizeControl(); 1805 }; 1806 1807 // åä½å¤§å°æ§å¶åè½ 1808 function initFontSizeControl() { 1809 // è·åæç« å 容å ç´ 1810 const contentElement = document.querySelector('.text'); 1811 const sizeButtons = document.querySelectorAll('.size-btn'); 1812 1813 if (!contentElement || sizeButtons.length === 0) { 1814 console.error('æ¾ä¸å°æç« å 容å ç´ æåä½å¤§å°æé®'); 1815 return; 1816 } 1817 1818 // åä½å¤§å°æ¯ä¾æ å° - 使ç¨åå°é ç½®çå¼ 1819 const fontSizeRatios = { 1820 'small': parseFloat("0.875"), // é»è®¤0.875 1821 'medium': 1, // åå§å¤§å°100% 1822 'large': parseFloat("1.125") // é»è®¤1.125 1823 }; 1824 1825 // 仿¬å°åå¨ä¸è·åç¨æ·ä¹åçåä½å¤§å°è®¾ç½® 1826 const savedSize = localStorage.getItem('articleFontSize') || 'medium'; 1827 1828 // ç«å³åºç¨ä¿åçåä½å¤§å° 1829 setTimeout(() => { 1830 applyFontSize(contentElement, fontSizeRatios[savedSize]); 1831 1832 // è®¾ç½®å¯¹åºæé®ä¸ºæ¿æ´»ç¶æ 1833 updateActiveButton(sizeButtons, savedSize); 1834 1835 console.log('åå§ååä½å¤§å°:', savedSize); 1836 }, 100); 1837 1838 // 为æé®æ·»å ç¹å»äºä»¶ 1839 sizeButtons.forEach(button => { 1840 button.addEventListener('click', function(event) { 1841 event.preventDefault(); // 黿¢é»è®¤è¡ä¸º 1842 // è·åéä¸çåä½å¤§å° 1843 const selectedSize = this.getAttribute('data-size'); 1844 1845 // 设置åä½å¤§å° 1846 applyFontSize(contentElement, fontSizeRatios[selectedSize]); 1847 1848 // æ´æ°æé®ç¶æ 1849 updateActiveButton(sizeButtons, selectedSize); 1850 1851 // ä¿åå°æ¬å°åå¨ 1852 localStorage.setItem('articleFontSize', selectedSize); 1853 1854 console.log('åä½å¤§å°å·²æ´æ¹ä¸º:', selectedSize); 1855 }); 1856 }); 1857 } 1858 1859 // åºç¨åä½å¤§å° - ä¿®æ¹åçæ¹æ³ä½¿ç¨document.body.styleæ¥è®¾ç½®å ¨å±åä½å¤§å° 1860 function applyFontSize(element, scale) { 1861 try { 1862 // è®¾ç½®ç´æ¥æ ·å¼ 1863 element.style.fontSize = scale + 'em'; 1864 1865 // ç´æ¥ä¿®æ¹å ç´ å é¨ææææ¬èç¹çå¤§å° 1866 const allElements = element.getElementsByTagName('*'); 1867 for (let i = 0; i < allElements.length; i++) { 1868 if (allElements[i].style) { 1869 // 注æï¼è¿éä¸ä½¿ç¨emèæ¯ä½¿ç¨ç¸å¯¹æ¯ä¾ 1870 allElements[i].style.fontSize = scale * 100 + '%'; 1871 } 1872 } 1873 } catch (error) {
1874 console.error('设置åä½å¤§å°æ¶åºé:', error); 1875 } 1876 } 1877 1878 // æ´æ°æ¿æ´»æé® 1879 function updateActiveButton(buttons, activeSize) { 1880 buttons.forEach(btn => { 1881 if (btn.getAttribute('data-size') === activeSize) { 1882 btn.classList.add('active'); 1883 } else { 1884 btn.classList.remove('active'); 1885 } 1886 }); 1887 } 1888</script>
1888 1889 <style> 1890 .suspension{position:fixed;z-index:1000;right: 20px; top: 50%;width:70px;height:240px;transform: translateY(-50%);} 1891 .suspension-box{position:relative;float:right;} 1892 .suspension .a{display:block;width:44px;height:44px;margin-bottom:4px;cursor:pointer;outline:none;line-height: 44px;text-align: center;background-color: #ffffff ;} 1893 .suspension .a.active, 1894 .suspension .a:hover{color:#fff;background:#888;} 1895 .suspension .a, .suspension .a i{font-size: 24px;color: #fff;} 1896 .suspension .a-qrcode .i{background-position:-44px 0;} 1897 .suspension .a-cart .i{background-position:-88px 0;} 1898 .suspension .a-top .i{background-position:-132px 0;} 1899 .suspension .a-top{background:#D2D3D6;display:none;} 1900 .suspension .a-top:hover{background:#c0c1c3;} 1901 .suspension .d{display:none;width:223px;background:#fff;position:absolute;right:67px;min-height:90px;border:1px solid #E0E1E5;border-radius:3px;box-shadow:0px 2px 5px 0px rgba(161, 163, 175, 0.11);} 1902 .suspension .d .arrow-left{position:absolute;width:8px;height:12px;background:url(/resource/image/side_bg_arrow.png) no-repeat;right:-8px;top:31px;} 1903 .suspension .d-service{top:0;} 1904 .suspension .d-service-phone{top:34px;} 1905 .suspension .d-qrcode{top:78px;} 1906 .suspension .d .inner-box{padding:8px 22px 12px;} 1907 .suspension .d-service-item{padding:14px 0;} 1908 .suspension .d-service .d-service-item{border-bottom:none;} 1909 .suspension .d-service-item .circle{width:44px;height:44px;border-radius:50%;overflow:hidden;background:#F1F1F3;display:block;float:left;} 1910 .suspension .d-service-item .i-qq{width:44px;height:44px;background:url(/resource/image/side_con_icon03.png) no-repeat center 15px;display:block;transition:all .2s;border-radius:50%;overflow:hidden;} 1911 .suspension .d-service-item:hover .i-qq{background-position:center 3px;} 1912 .suspension .d-service-item .i-tel{width:44px;height:44px;background:url(/resource/image/side_con_icon02.png) no-repeat center center;display:block;} 1913 .suspension .d-service-item h3{float:left;width:112px;line-height:44px;font-size:15px;margin-left:12px;} 1914 .suspension .d-service-item .text{float:left;width:112px;line-height:22px;font-size:15px;margin-left:12px;} 1915 .suspension .d-service-item .text .number{font-family:Arial,"Microsoft Yahei","HanHei SC",PingHei,"PingFang SC","Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Heiti SC","WenQuanYi Micro Hei",sans-serif;} 1916 .suspension .d-service-intro{padding-top:10px;font-size: 14px;} 1917 .suspension .d-service-intro p{float:left;line-height:27px;font-size:12px;width:50%;white-space:nowrap;color:#888;} 1918 .suspension .d-qrcode{text-align:center;} 1919 .suspension .d-qrcode .inner-box, .suspension .d-ewmcode .inner-box{padding:20px;} 1920 .suspension .d-qrcode p{font-size:14px;color:#93959c;line-height:30px;margin: 0;} 1921 .suspension p{margin: 0;} 1922 .scroll-top{display: none;} 1923 .suspension .d-qrcode img, .suspension .d-ewmcode img{display: inline-block;} 1924 .suspension .d-ewmcode{top: 130px;} 1925 .scroll-to-top{display: none!important;} 1926 .suspension .a{background-color: ;} 1927 .suspension .a.active, .suspension .a:hover{background: ;} 1928</style> 1929<!-- service1 --> 1930<div class="suspension pc_show"> 1931 <div class="suspension-box"> 1932 <a href="javascript:;" class="a a-service tran3s"><i class="iconfont icon-tubiao215"></i></a> 1933 <a href="javascript:;" class="a a-service-phone tran3s"><i class="iconfont icon-dianhua1"></i></a> 1934 <a href="javascript:;" class="a a-qrcode tran3s"><i class="iconfont icon-kefu"></i></a> 1935 <a href="javascript:;" class="a a-ewmcode a-cart"><i class="iconfont icon-weixin"></i></a> 1936 <a href="javascript:;" class="a a-top tran3s"><i class="iconfont icon-huidingbu1"></i></a> 1937 <div class="d d-service" style="display: none;"> 1938 <i class="arrow-left"></i> 1939 <div class="inner-box"> 1940 <div class="d-service-item clearfix"> 1941 <a href="http://wpa.qq.com/msgrd?v=3&uin=877998773&site=qq&menu=yes" target="_blank" 1942 class="clearfix"><span class="circle"><i class="i-qq"></i></span> 1943 <h3>å¨è¯¢å¨çº¿å®¢æ</h3> 1944 </a> 1945 </div> 1946 </div> 1947 </div> 1948 <div class="d d-service-phone" style="display: none;"> 1949 <i class="arrow-left"></i> 1950 <div class="inner-box"> 1951 <div class="d-service-item clearfix">
1952 <span class="circle"><i class="i-tel"></i></span> 1953 <div class="text"> 1954 <p>æå¡ç线</p> 1955 <p class="red number"><a href="tel:18523692368">18523692368</a></p> 1956 </div> 1957 </div> 1958 </div> 1959 </div> 1960 <div class="d d-qrcode" style="display: none;"> 1961 <i class="arrow-left"></i> 1962 <div class="inner-box"> 1963 <div class="qrcode-img"><img src="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761177945.jpg" width="150" height="150" alt=""></div> 1964 <p>å¨çº¿å®¢æ</p> 1965 </div> 1966 </div> 1967 <div class="d d-ewmcode text-center" style="display: none;"> 1968 <i class="arrow-left"></i> 1969 <div class="inner-box"> 1970 <div class="qrcode-img"><img src="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761177945.jpg " width="150" height="150" alt=""></div> 1971 <p>å¾®ä¿¡å ¬ä¼å·</p> 1972 </div> 1973 </div> 1974 </div> 1975</div>
1976<script type="text/javascript"> 1977 $(document).ready(function () { 1978 /* ----- ä¾§è¾¹æ¬æµ® ---- */ 1979 $(document).on("mouseenter", ".suspension .a", function () { 1980 var _this = $(this); 1981 var s = $(".suspension"); 1982 var isService = _this.hasClass("a-service"); 1983 var isServicePhone = _this.hasClass("a-service-phone"); 1984 var isQrcode = _this.hasClass("a-qrcode"); 1985 var isEwmcode = _this.hasClass("a-ewmcode"); 1986 if (isService) { s.find(".d-service").show().siblings(".d").hide(); } 1987 if (isServicePhone) { s.find(".d-service-phone").show().siblings(".d").hide(); } 1988 if (isQrcode) { s.find(".d-qrcode").show().siblings(".d").hide(); } 1989 if (isEwmcode) { s.find(".d-ewmcode").show().siblings(".d").hide(); } 1990 }); 1991 $(document).on("mouseleave", ".suspension, .suspension .a-top", function () { 1992 $(".suspension").find(".d").hide(); 1993 }); 1994 $(document).on("mouseenter", ".suspension .a-top", function () { 1995 $(".suspension").find(".d").hide(); 1996 }); 1997 $(document).on("click", ".suspension .a-top", function () { 1998 $("html,body").animate({ scrollTop: 0 }); 1999 }); 2000 $(window).scroll(function () { 2001 var st = $(document).scrollTop(); 2002 var $top = $(".suspension .a-top"); 2003 if (st > 400) { 2004 $top.css({ display: 'block' }); 2005 } else { 2006 if ($top.is(":visible")) { 2007 $top.hide(); 2008 } 2009 } 2010 }); 2011 }); 2012</script>
2012 2013<style> 2014 .main-footer{background:#2d3047;} 2015 .footer-bottom .copyright span.follow{background: url(/resource/picture/beian.png) no-repeat left top;} 2016 .bottom-img{ background:url("") no-repeat center/cover;} 2017 .bottom-img::before{background:;} 2018 .main-footer .footer-bottom .footer-color, .main-footer .footer-bottom .copyright a, .main-footer .footer-bottom .copyright span{color:#ccc;} 2019 .footer-bottom .copyright span.follow::before, .footer-bottom .copyright .more_link::before {background-color: #ccc;} 2020</style> 2021<!-- footer1 --> 2022<footer class="main-footer"> 2023 <div class="bottom-img"></div> 2024 <div class="auto-container"> 2025 <!-- çæä¿¡æ¯ --> 2026 <div class="footer-bottom"> 2027 <div class="clearfix"> 2028 <div class=""> 2029 <div class="copyright footer-color">äºåè¯çäºå¨ç§ææéè´£ä»»å ¬å¸</div> 2030 <div class="copyright"> 2031 <a href="https://beian.miit.gov.cn" target="_blank">夿¡å·ï¼æ»ICPå¤2021000460å·-6</a> 2032 <span class="follow footer-color"><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=53070202001314" target="_blank">å ¬å®æºå ³å¤æ¡å·ï¼æ»å ¬å®å¤53070202001314</a></span> 2033 </div> 2034 <div class="copyright footer-color">äºåç丽æ±å¸å¤ååºè¥¿å®è¡é寨é«è·¯å士åå忥¼6å±</div> 2035 </div> 2036 </div> 2037 </div> 2038 </div> 2039</footer> 2040</div>
2041<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
vendor: 1 bytes, line 2041
2041
2042<script type="text/javascript"> 2043(function() { 2044 // æ£æ¥æ¯å¦å¨å¾®ä¿¡æµè§å¨ä¸ 2045 var ua = navigator.userAgent.toLowerCase(); 2046 var isWechat = ua.indexOf('micromessenger') !== -1 2047 || ua.indexOf('windowswechat') !== -1 2048 || ua.indexOf('macwechat') !== -1 2049 || ua.indexOf('wxwork') !== -1; 2050 2051 if (!isWechat) { 2052 return; // é微信æµè§å¨ï¼ä¸åå§å微信å享 2053 } 2054 2055 // è·åå½å页é¢URLï¼å»é¤hashååæ°ä¸çcodeãstateçï¼ 2056 var currentUrl = window.location.href.split('#')[0]; 2057 // ç§»é¤å¾®ä¿¡ææç¸å ³åæ° 2058 var urlObj = new URL(currentUrl); 2059 urlObj.searchParams.delete('code'); 2060 urlObj.searchParams.delete('state'); 2061 urlObj.searchParams.delete('trigger_auth'); 2062 urlObj.searchParams.delete('refresh_userinfo'); 2063 currentUrl = urlObj.toString(); 2064 2065 // è·åé ç½®IDï¼ä»configè¡¨ï¼ 2066 var configId = ""; 2067 var userId = "2"; 2068 var shareTitle = "è¯ç软件è¡ä¸è§£å³æ¹æ¡"; 2069 var shareDesc = "è¯ç软件è¡ä¸è§£å³æ¹æ¡ 2070 2071"; 2072 var shareImgUrl = "https://zj.chengmenghudong.com.cn/storage/2/20221212/4b267f86d702fff8956b9774e853ae06.png"; 2073 2074 // å¦ææ²¡æé ç½®IDï¼å°è¯éè¿user_idè·å 2075 if (!configId && userId) { 2076 // éè¿AJAXè·åconfigçid 2077 fetch('/index/api/getConfigId?user_id=' + userId) 2078 .then(function(response) { return response.json(); }) 2079 .then(function(data) { 2080 if (data.code === 200 && data.data && data.data.config_id) { 2081 configId = data.data.config_id; 2082 initWechatShare(); 2083 } 2084 }) 2085 .catch(function(err) { 2086 console.error('è·åé ç½®ID失败:', err); 2087 }); 2088 } else if (configId) { 2089 initWechatShare(); 2090 } 2091 2092 function initWechatShare() { 2093 if (!configId) { 2094 return; 2095 } 2096 2097 // è·å微信JS-SDKé ç½® 2098 fetch('/index/api/getJssdk?uid=' + configId + '&url=' + encodeURIComponent(currentUrl)) 2099 .then(function(response) { return response.json(); }) 2100 .then(function(data) { 2101 if (data.code !== 200 || !data.data || !data.data.appId) { 2102 console.log('微信JS-SDKé ç½®è·åå¤±è´¥ææªé ç½®å¾®ä¿¡åæ°'); 2103 return; 2104 } 2105 2106 var wxConfig = data.data; 2107 2108 // é 置微信JS-SDK 2109 wx.config({ 2110 debug: false, 2111 appId: wxConfig.appId, 2112 timestamp: wxConfig.timestamp, 2113 nonceStr: wxConfig.nonceStr, 2114 signature: wxConfig.signature, 2115 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'] 2116 }); 2117 2118 wx.ready(function () { 2119 // ä¼å 使ç¨åå°é ç½®çåäº«ä¿¡æ¯ 2120 // å¤ç空åç¬¦ä¸²çæ åµï¼å¦æå¼ä¸ºç©ºå符串ï¼ä¹è§ä¸ºæªè®¾ç½® 2121 var apiTitle = (wxConfig.share_title && wxConfig.share_title.trim()) ? wxConfig.share_title.trim() : ''; 2122 var apiDesc = (wxConfig.share_desc && wxConfig.share_desc.trim()) ? wxConfig.share_desc.trim() : ''; 2123 var apiImg = (wxConfig.share_img && wxConfig.share_img.trim()) ? wxConfig.share_img.trim() : ''; 2124 2125 var pageTitle = (shareTitle && shareTitle.trim()) ? shareTitle.trim() : ''; 2126 var pageDesc = (shareDesc && shareDesc.trim()) ? shareDesc.trim() : ''; 2127 var pageImg = (shareImgUrl && shareImgUrl.trim()) ? shareImgUrl.trim() : ''; 2128 2129 // ç¡®å®æç»ä½¿ç¨çå享信æ¯ï¼ä¼å APIè¿åçï¼å ¶æ¬¡é¡µé¢é ç½®ç 2130 // æ é¢ï¼å¿ 须使ç¨åå°é ç½®ï¼å¦æé½ä¸ºç©ºå使ç¨ç«ç¹åç§°ï¼ä»document.titleæåï¼ 2131 var finalTitle = apiTitle || pageTitle; 2132 if (!finalTitle) { 2133 // 妿齿²¡æï¼å°è¯ä»é¡µé¢æ é¢ä¸æåï¼å»é¤"- è£ ä¿®"çåç¼ï¼ 2134 var docTitle = document.title || ''; 2135 finalTitle = docTitle.replace(/\s*[-|]\s*.*$/, '').trim(); 2136 } 2137
2138 var finalDesc = apiDesc || pageDesc || ''; 2139 var finalImgUrl = apiImg || pageImg || ''; 2140 2141 // ç¡®ä¿å¾çURLæ¯å®æ´è·¯å¾ 2142 if (finalImgUrl && finalImgUrl.indexOf('http') !== 0) { 2143 finalImgUrl = window.location.protocol + '//' + window.location.host + finalImgUrl; 2144 } 2145 2146 // å享ç»å¾®ä¿¡å¥½å 2147 wx.onMenuShareAppMessage({ 2148 title: finalTitle, 2149 desc: finalDesc, 2150 link: currentUrl, 2151 imgUrl: finalImgUrl, 2152 success: function () { 2153 console.log('å享ç»å¾®ä¿¡å¥½åæå'); 2154 }, 2155 cancel: function () { 2156 console.log('åæ¶å享ç»å¾®ä¿¡å¥½å'); 2157 } 2158 }); 2159 2160 // åäº«å°æååï¼æåååªæ¾ç¤ºæ é¢ï¼ä¸æ¾ç¤ºæè¿°ï¼ 2161 wx.onMenuShareTimeline({ 2162 title: finalTitle, 2163 link: currentUrl, 2164 imgUrl: finalImgUrl, 2165 success: function () { 2166 console.log('åäº«å°æååæå'); 2167 }, 2168 cancel: function () { 2169 console.log('åæ¶åäº«å°æåå'); 2170 } 2171 }); 2172 }); 2173 2174 wx.error(function(res) { 2175 console.error('微信JS-SDKé 置失败:', res); 2176 }); 2177 }) 2178 .catch(function(err) { 2179 console.error('è·å微信JS-SDKé 置失败:', err); 2180 }); 2181 } 2182})(); 2183</script>
vendor: 1 bytes, line 2183
2183
2184<script src="/resource/js/popper.min.js"></script>
vendor: 1 bytes, line 2184
2184
2185<script src="/resource/js/jquery-ui.js"></script>
vendor: 1 bytes, line 2185
2185
2186<script src="/resource/js/jquery.fancybox.js"></script>
vendor: 1 bytes, line 2186
2186
2187<script src="/resource/js/owl.js"></script>
vendor: 1 bytes, line 2187
2187
2188<script src="/resource/js/validate.js"></script>
vendor: 1 bytes, line 2188
2188
2189<script src="/resource/js/wow.js"></script>
vendor: 1 bytes, line 2189
2189
2190<script src="/resource/js/mixitup.js"></script>
vendor: 1 bytes, line 2190
2190
2191<script src="/resource/js/appear.js"></script>
vendor: 1 bytes, line 2191
2191
2192<script src="/resource/js/script.js"></script>
vendor: 1 bytes, line 2192
2192
2193<script src="/resource/js/jquery.cycle2.js"></script>
vendor: 1 bytes, line 2193
2193
2194<script src="/resource/js/slides.jquery.js"></script>
vendor: 1 bytes, line 2194
2194
2195<script src="/resource/js/main.js"></script>
2195 2196</body>
2197<script src="/resource/js/translate.js"></script>
vendor: 1 bytes, line 2197
2197
2198<script> 2199 $(function () { 2200 // åå§åç¿»è¯åè½ 2201 initTranslate(); 2202 }); 2203 2204 function translateSelectLanguageFunction(value){ 2205 translate.changeLanguage(value); 2206 } 2207 2208 function changeStationTranslationF(obj){ 2209 var value = $(obj).val(); 2210 translate.changeLanguage(value); 2211 } 2212 2213 // å®ä¹changeLanguage彿°ç¨äºåå°åæ¢è¯è¨ 2214 function changeLanguage(languageCode) { 2215 // ä¿åè¯è¨å好尿¬å°åå¨ 2216 try { 2217 localStorage.setItem('preferred_language', languageCode); 2218 } catch (e) { 2219 console.error('ä¿åè¯è¨å好失败:', e); 2220 } 2221 2222 // è°ç¨translateçè¯è¨åæ¢å½æ° 2223 translate.changeLanguage(languageCode); 2224 2225 // æ´æ°è¯è¨æ¾ç¤º 2226 updateLanguageDisplay(languageCode); 2227 2228 // å ³é䏿èå 2229 var dropdowns = document.getElementsByClassName('dropdown-menu'); 2230 Array.from(dropdowns).forEach(function(dropdown) { 2231 dropdown.classList.remove('show'); 2232 }); 2233 } 2234 2235 // æ´æ°è¯è¨æ¾ç¤º 2236 function updateLanguageDisplay(languageCode) { 2237 // è·åå½åè¯è¨å¯¹åºçåç§° 2238 fetch('/index/translate/getLanguages') 2239 .then(response => response.json()) 2240 .then(data => { 2241 if (data.code === 200 && data.data && data.data.languages) { 2242 const languages = data.data.languages; 2243 const language = languages.find(lang => lang.code === languageCode); 2244 2245 if (language) { 2246 // æ´æ°å½åæ¾ç¤ºçè¯è¨åç§° 2247 const currentLanguageElement = document.getElementById('current-language'); 2248 if (currentLanguageElement) { 2249 currentLanguageElement.textContent = language.name; 2250 } 2251 2252 // æ´æ°ä¸æèåä¸çéä¸ç¶æ 2253 const languageMenu = document.getElementById('language-menu'); 2254 if (languageMenu) { 2255 // ç§»é¤ææé¡¹çéä¸ç¶æ 2256 const items = languageMenu.querySelectorAll('.dropdown-item'); 2257 items.forEach(item => { 2258 item.classList.remove('active'); 2259 }); 2260 2261 // 为å½åéä¸çè¯è¨æ·»å éä¸ç¶æ 2262 const selectedItem = Array.from(items).find(item => { 2263 return item.getAttribute('data-lang-code') === languageCode; 2264 }); 2265 2266 if (selectedItem) { 2267 selectedItem.classList.add('active'); 2268 } 2269 } 2270 } 2271 } 2272 }) 2273 .catch(error => { 2274 console.error('è·åè¯è¨å称失败:', error); 2275 }); 2276 } 2277 2278 // ç¡®ä¿nodeuuid对象å¯ç¨ 2279 if (typeof nodeuuid === 'undefined') { 2280 nodeuuid = { 2281 uuid: function(node) { 2282 return node ? (Math.random().toString(36).substring(2, 15)) : ''; 2283 } 2284 }; 2285 } 2286 2287 // ç¦ç¨åå§å请æ±ï¼é¿å é误 2288 if (translate.init) { 2289 translate.init_execute = 'å·²è¿è¡'; 2290 } 2291 2292 // 设置请æ±è¶ æ¶ï¼é¿å è¯·æ±æèµ· 2293 if (translate.request) { 2294 translate.request.timeout = 3000; 2295 } 2296 2297 // åå§åç¿»è¯åè½ 2298 function initTranslate() { 2299 translate.setUseVersion2(); 2300 translate.setAutoDiscriminateLocalLanguage(); // è®¾ç½®ç¨æ·ç¬¬ä¸æ¬¡ç¨æ¶ï¼èªå¨è¯å«å ¶æå¨å½å®¶çè¯ç§è¿è¡åæ¢ 2301 translate.selectLanguageTag.show = false; // 䏿¾ç¤ºselectçéæ©è¯è¨ 2302 2303 // ä»åå°è·åé»è®¤è¯è¨ 2304 fetch('/index/translate/getDefaultLanguage') 2305 .then(response => response.json()) 2306 .then(data => { 2307 if (data.code === 200 && data.data && data.data.language) { 2308 // 设置é»è®¤è¯è¨ 2309 var default_language = data.data.translate_js_code || data.data.language.code; 2310 if (default_language) { 2311 translate.language.setDefaultTo(default_language); 2312 } 2313 2314 // 使ç¨Edgeç¿»è¯æå¡ 2315 translate.service.use('client.edge'); 2316 2317 // å¯å¨çå¬ï¼ç¨äºå¨æå 容çç¿»è¯ 2318 translate.listener.start(); 2319 2320 try { 2321 // æ§è¡ç¿»è¯ 2322 translate.execute(); 2323 } catch (e) { 2324 console.log('ç¿»è¯æ§è¡é误: ' + e.message); 2325 // 妿Edgeç¿»è¯åºéï¼å°è¯ä½¿ç¨æ¬å°ç¿»è¯ 2326 translate.service.use('local'); 2327 translate.execute(); 2328 } 2329 } else { 2330 // 使ç¨é»è®¤å¼ 2331 fallbackTranslate(); 2332 } 2333 }) 2334 .catch(error => { 2335 console.error('è·åé»è®¤è¯è¨å¤±è´¥:', error); 2336 // 使ç¨é»è®¤å¼ 2337 fallbackTranslate(); 2338 }); 2339 } 2340 2341 // åéå°é»è®¤ç¿»è¯è®¾ç½® 2342 function fallbackTranslate() { 2343 var default_language = "chinese_simplified"; 2344 translate.language.setDefaultTo(default_language); 2345 translate.service.use('client.edge'); 2346 translate.listener.start(); 2347 2348 try { 2349 translate.execute(); 2350 } catch (e) { 2351 console.log('ç¿»è¯æ§è¡é误: ' + e.message); 2352 translate.service.use('local'); 2353 translate.execute(); 2354 } 2355 } 2356</script>
2356 2357</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.