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>36350 </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 </div> 1378 </div> 1379 <div class="right-column"> 1380 <div class="inner-column"> 1381 <a href="/article/756.html"> 1382 <div> 1383 <div class="post"><span>ä¸ä¸ç¯:</span>å享å©å</div> 1384 </div> 1385 </a> 1386 </div> 1387 </div> 1388 </div> 1389 </div> 1390 1391 <div class="sidebar-side col-lg-3 col-md-12 col-xs-12"> 1392 <div class="left-sidebar"> 1393 1394 <!-- ç鍿¨è --> 1395 <div class="sidebar-widget categories-widget"> 1396 <div class="sidebar-title"> 1397 <h2>ç鍿¨è</h2> 1398 </div> 1399 <div class="widget-content"> 1400 <ul class="blog-cat"> 1401 <li><a href="/article/757.html">社åºåå</a></li> 1402 <li><a href="/article/756.html">å享å©å</a></li> 1403 <li><a href="/article/755.html">社群è¥é</a></li> 1404 <li><a href="/article/754.html">社åºåå</a></li> 1405 </ul> 1406 </div> 1407 </div> 1408 1409 1410 <!-- èç³» --> 1411 <div class="sidebar-widget quote-widget"> 1412 <div class="sidebar-title"> 1413 <h2>èç³»æä»¬</h2> 1414 </div> 1415 <div class="iconfont icon-dianhua2 theme-color text-center pad-b20 bor-b-1"><p class="theme-color mar-t20 f-siz26"></p></div> 1416 <div class="lower-box pad-20"> 1417 <p>è¯ç软件è¡ä¸è§£å³æ¹æ¡</p> 1418 <p>ææºï¼18523692368</p> 1419 <p>é®ç®±ï¼[email protected]</p> 1420 <p>å°åï¼äºåç丽æ±å¸å¤ååºè¥¿å®è¡é寨é«è·¯å士åå忥¼6å±</p> 1421 </div> 1422 </div> 1423 1424 </div> 1425 </div> 1426 </div> 1427 </div> 1428</div> 1429 1430<style type="text/css"> 1431/* éä»¶åè¡¨æ ·å¼ */ 1432.attachment-section { 1433 margin-top: 30px; 1434 padding: 20px; 1435 background: #f8f9fa; 1436 border-radius: 4px; 1437} 1438 1439.attachment-title { 1440 font-size: 18px; 1441 color: #333; 1442 margin-bottom: 15px; 1443 padding-bottom: 10px; 1444 border-bottom: 1px solid #eee; 1445} 1446 1447.attachment-list { 1448 display: flex; 1449 flex-direction: column; 1450 gap: 15px; 1451} 1452 1453.attachment-item { 1454 display: flex; 1455 justify-content: space-between; 1456 align-items: center; 1457 padding: 15px; 1458 background: #fff; 1459 border-radius: 4px; 1460 box-shadow: 0 2px 4px rgba(0,0,0,0.05); 1461 transition: all 0.3s ease; 1462} 1463 1464.attachment-item:hover { 1465 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 1466} 1467 1468.attachment-info { 1469 flex: 1; 1470 margin-right: 15px; 1471} 1472 1473.attachment-name { 1474 font-size: 16px; 1475 color: #333; 1476 margin-left: 8px; 1477} 1478 1479.attachment-desc { 1480 margin-top: 5px; 1481 font-size: 14px; 1482 color: #666; 1483 padding-left: 24px; 1484} 1485 1486.attachment-download, 1487.attachment-link { 1488 display: inline-flex; 1489 align-items: center; 1490 padding: 8px 15px; 1491 background: #409EFF; 1492 color: #fff; 1493 border-radius: 4px; 1494 text-decoration: none; 1495 transition: all 0.3s ease; 1496} 1497 1498.attachment-download:hover, 1499.attachment-link:hover { 1500 background: #66b1ff; 1501} 1502 1503.attachment-pwd { 1504 margin-left: 10px; 1505 padding: 2px 8px; 1506 background: #f4f4f5; 1507 color: #909399; 1508 border-radius: 2px; 1509 font-size: 12px; 1510} 1511 1512.iconfont { 1513 font-size: 18px; 1514} 1515 1516.icon-attachment, 1517.icon-download, 1518.icon-link { 1519 margin-right: 5px; 1520} 1521 1522/* è½¬è½½è¯´ææ ·å¼ */ 1523.article-copyright { 1524 margin: 30px 0; 1525 padding: 15px 20px; 1526 background: #f8f9fa; 1527 border-left: 4px solid #409EFF; 1528 border-radius: 4px; 1529} 1530 1531.copyright-info { 1532 display: flex; 1533 align-items: center; 1534 color: #666; 1535 font-size: 14px; 1536} 1537 1538.copyright-info i { 1539 margin-right: 8px; 1540} 1541 1542.copyright-info a { 1543 color: #409EFF; 1544 text-decoration: none; 1545 margin-left: 5px; 1546} 1547 1548/* 社交æä½åºåæ ·å¼ */ 1549.social-actions { 1550 margin: 30px 0; 1551 padding: 20px; 1552 border-top: 1px solid #eee; 1553 border-bottom: 1px solid #eee; 1554 display: flex; 1555 align-items: center; 1556 justify-content: center; 1557 gap: 30px; 1558} 1559 1560/* ç¹èµæé®æ ·å¼ */ 1561.like-btn { 1562 display: flex; 1563 align-items: center; 1564 padding: 8px 20px; 1565 border-radius: 20px; 1566 background: #f8f9fa; 1567 cursor: pointer; 1568 transition: all 0.3s ease; 1569} 1570 1571.like-btn:hover { 1572 background: #e8f4ff; 1573} 1574 1575.like-btn i { 1576 margin-right: 5px; 1577} 1578 1579.like-count { 1580 color: #666; 1581} 1582 1583/* èµèµæé®æ ·å¼ */ 1584.reward-btn { 1585 position: relative; 1586 display: flex; 1587 align-items: center; 1588 padding: 8px 20px; 1589 border-radius: 20px; 1590 background: #f8f9fa; 1591 cursor: pointer; 1592 transition: all 0.3s ease; 1593} 1594 1595.reward-btn:hover { 1596 background: #e8f4ff; 1597} 1598 1599.reward-btn i { 1600 margin-right: 5px; 1601} 1602 1603/* å享æé®ç»æ ·å¼ */ 1604.share-btns { 1605 display: flex; 1606 align-items: center; 1607 gap: 10px; 1608} 1609 1610.share-title { 1611 color: #666; 1612 font-size: 14px; 1613} 1614 1615.share-item { 1616 width: 36px; 1617 height: 36px; 1618 border-radius: 50%; 1619 background: #f8f9fa; 1620 display: flex; 1621 align-items: center; 1622 justify-content: center; 1623 text-decoration: none; 1624 transition: all 0.3s ease; 1625 position: relative; 1626} 1627 1628.share-item:hover { 1629 background: #e8f4ff; 1630} 1631 1632.share-item i { 1633 font-size: 20px; 1634} 1635 1636.share-item i.icon-weibo-sina { 1637 color: #e6162d; 1638} 1639 1640.share-item i.icon-tubiao215 { 1641 color: #12b7f5; 1642} 1643 1644.share-item i.icon-xiaoxi-comment {
1645 color: #07c160; 1646} 1647 1648/* äºç»´ç å¼¹çªæ ·å¼ */ 1649.qrcode-popup { 1650 position: absolute; 1651 bottom: 100%; 1652 left: 50%; 1653 transform: translateX(-50%); 1654 background: white; 1655 padding: 10px; 1656 border-radius: 4px; 1657 box-shadow: 0 2px 12px rgba(0,0,0,0.1); 1658 display: none; 1659 z-index: 100; 1660 width: 150px; 1661 text-align: center; 1662} 1663 1664.reward-btn:hover .qrcode-popup, 1665.share-item:hover .qrcode-popup { 1666 display: block; 1667} 1668 1669.qrcode-popup img { 1670 width: 100%; 1671 height: auto; 1672} 1673 1674.qrcode-popup p { 1675 margin: 5px 0 0; 1676 font-size: 12px; 1677 color: #666; 1678} 1679 1680/* åä½å¤§å°æ§å¶æ ·å¼ */ 1681.font-size-control { 1682 display: inline-flex; 1683 align-items: center; 1684 vertical-align: middle; 1685} 1686 1687.font-size-control span { 1688 color: #666; 1689 margin-right: 5px; 1690 font-size: 14px; 1691} 1692 1693.size-btns { 1694 display: inline-flex; 1695 gap: 5px; 1696} 1697 1698.size-btn { 1699 padding: 0 5px; 1700 cursor: pointer; 1701 color: #666; 1702 text-align: center; 1703} 1704 1705.size-btn.active { 1706 color: #409EFF; 1707} 1708 1709/* æç« å å®¹æ ·å¼ - 使ç¨WangEditoræ ·å¼ï¼ä¸è¦çç¼è¾å¨å 容 */ 1710.text { 1711 transition: all 0.3s ease; 1712} 1713 1714/* ç¡®ä¿ç¼è¾å¨å å®¹æ ·å¼ä¸è¢«è¦ç */ 1715.text.w-e-text-container { 1716 /* ç§»é¤å¯è½è¦çç¼è¾å¨æ ·å¼ç屿§ï¼è®©ç¼è¾å¨æ ·å¼å®å ¨çæ */ 1717 font-size: inherit; 1718 line-height: inherit; 1719} 1720
1721/* åä½å¤§å°æ§å¶æ¶ï¼åªå½±ååºç¡åä½å¤§å°ï¼ä¸å½±åç¼è¾å¨å é¨å ç´ çæ ·å¼ */ 1722.text.w-e-text-container[style*="font-size"] * { 1723 /* åä½å¤§å°æ§å¶åªå½±å容å¨ï¼å é¨å ç´ ä¿æç¼è¾å¨æ ·å¼ */ 1724 font-size: inherit; 1725} 1726</style>
1727<script type="text/javascript"> 1728 // ç¹èµåè½ 1729 function handleLike(articleId) { 1730 fetch('/index/article/like', { 1731 method: 'POST', 1732 headers: { 1733 'Content-Type': 'application/json', 1734 }, 1735 body: JSON.stringify({ id: articleId }) 1736 }) 1737 .then(response => response.json()) 1738 .then(data => { 1739 if (data.code === 200) { 1740 let likeCount = document.querySelector('.like-count'); 1741 likeCount.textContent = parseInt(likeCount.textContent) + 1; 1742 layer.msg('ç¹èµæå'); 1743 } else { 1744 layer.msg(data.message || 'æä½å¤±è´¥'); 1745 } 1746 }) 1747 .catch(error => { 1748 console.error('ç¹èµå¤±è´¥:', error); 1749 layer.msg('æä½å¤±è´¥'); 1750 }); 1751 } 1752 1753 // å享å°å¾®å 1754 function shareToWeibo() { 1755 const url = encodeURIComponent(window.location.href); 1756 const title = encodeURIComponent(document.title); 1757 window.open('https://service.weibo.com/share/share.php?url=' + url + '&title=' + title, '_blank', 'width=700,height=500'); 1758 } 1759 1760 // å享å°QQ 1761 function shareToQQ() { 1762 const url = encodeURIComponent(window.location.href); 1763 const title = encodeURIComponent(document.title); 1764 const desc = encodeURIComponent(document.querySelector('meta[name="description"]')?.content || ''); 1765 window.open('https://connect.qq.com/widget/shareqq/index.html?url=' + url + '&title=' + title + '&desc=' + desc, '_blank', 'width=700,height=500'); 1766 } 1767 1768 // å享å°å¾®ä¿¡ 1769 function shareToWechat() { 1770 const qrcodeElement = document.getElementById('wechatQrcode'); 1771 if (!qrcodeElement.hasChildNodes()) { 1772 new QRCode(qrcodeElement, { 1773 text: window.location.href, 1774 width: 128, 1775 height: 128, 1776 colorDark: "#000000", 1777 colorLight: "#ffffff", 1778 correctLevel: QRCode.CorrectLevel.H 1779 }); 1780 } 1781 } 1782 1783 // 页é¢å è½½å®æåæ§è¡ 1784 window.onload = function () { 1785 // åå§å微信äºç»´ç 1786 const qrcodeElement = document.getElementById('wechatQrcode'); 1787 if (qrcodeElement && !qrcodeElement.hasChildNodes()) { 1788 new QRCode(qrcodeElement, { 1789 text: window.location.href, 1790 width: 128, 1791 height: 128, 1792 colorDark: "#000000", 1793 colorLight: "#ffffff", 1794 correctLevel: QRCode.CorrectLevel.H 1795 }); 1796 } 1797 1798 // åå§ååä½å¤§å° 1799 initFontSizeControl(); 1800 }; 1801 1802 // åä½å¤§å°æ§å¶åè½ 1803 function initFontSizeControl() { 1804 // è·åæç« å 容å ç´ 1805 const contentElement = document.querySelector('.text'); 1806 const sizeButtons = document.querySelectorAll('.size-btn'); 1807 1808 if (!contentElement || sizeButtons.length === 0) { 1809 console.error('æ¾ä¸å°æç« å 容å ç´ æåä½å¤§å°æé®'); 1810 return; 1811 } 1812 1813 // åä½å¤§å°æ¯ä¾æ å° - 使ç¨åå°é ç½®çå¼ 1814 const fontSizeRatios = { 1815 'small': parseFloat("0.875"), // é»è®¤0.875 1816 'medium': 1, // åå§å¤§å°100% 1817 'large': parseFloat("1.125") // é»è®¤1.125 1818 }; 1819 1820 // 仿¬å°åå¨ä¸è·åç¨æ·ä¹åçåä½å¤§å°è®¾ç½® 1821 const savedSize = localStorage.getItem('articleFontSize') || 'medium'; 1822 1823 // ç«å³åºç¨ä¿åçåä½å¤§å° 1824 setTimeout(() => { 1825 applyFontSize(contentElement, fontSizeRatios[savedSize]); 1826 1827 // è®¾ç½®å¯¹åºæé®ä¸ºæ¿æ´»ç¶æ 1828 updateActiveButton(sizeButtons, savedSize); 1829 1830 console.log('åå§ååä½å¤§å°:', savedSize); 1831 }, 100); 1832 1833 // 为æé®æ·»å ç¹å»äºä»¶ 1834 sizeButtons.forEach(button => { 1835 button.addEventListener('click', function(event) { 1836 event.preventDefault(); // 黿¢é»è®¤è¡ä¸º 1837 // è·åéä¸çåä½å¤§å° 1838 const selectedSize = this.getAttribute('data-size'); 1839 1840 // 设置åä½å¤§å° 1841 applyFontSize(contentElement, fontSizeRatios[selectedSize]); 1842 1843 // æ´æ°æé®ç¶æ 1844 updateActiveButton(sizeButtons, selectedSize); 1845 1846 // ä¿åå°æ¬å°åå¨ 1847 localStorage.setItem('articleFontSize', selectedSize); 1848 1849 console.log('åä½å¤§å°å·²æ´æ¹ä¸º:', selectedSize); 1850 }); 1851 }); 1852 } 1853 1854 // åºç¨åä½å¤§å° - ä¿®æ¹åçæ¹æ³ä½¿ç¨document.body.styleæ¥è®¾ç½®å ¨å±åä½å¤§å° 1855 function applyFontSize(element, scale) { 1856 try { 1857 // è®¾ç½®ç´æ¥æ ·å¼ 1858 element.style.fontSize = scale + 'em'; 1859 1860 // ç´æ¥ä¿®æ¹å ç´ å é¨ææææ¬èç¹çå¤§å° 1861 const allElements = element.getElementsByTagName('*'); 1862 for (let i = 0; i < allElements.length; i++) { 1863 if (allElements[i].style) { 1864 // 注æï¼è¿éä¸ä½¿ç¨emèæ¯ä½¿ç¨ç¸å¯¹æ¯ä¾ 1865 allElements[i].style.fontSize = scale * 100 + '%'; 1866 } 1867 } 1868 } catch (error) {
1869 console.error('设置åä½å¤§å°æ¶åºé:', error); 1870 } 1871 } 1872 1873 // æ´æ°æ¿æ´»æé® 1874 function updateActiveButton(buttons, activeSize) { 1875 buttons.forEach(btn => { 1876 if (btn.getAttribute('data-size') === activeSize) { 1877 btn.classList.add('active'); 1878 } else { 1879 btn.classList.remove('active'); 1880 } 1881 }); 1882 } 1883</script>
1883 1884 <style> 1885 .suspension{position:fixed;z-index:1000;right: 20px; top: 50%;width:70px;height:240px;transform: translateY(-50%);} 1886 .suspension-box{position:relative;float:right;} 1887 .suspension .a{display:block;width:44px;height:44px;margin-bottom:4px;cursor:pointer;outline:none;line-height: 44px;text-align: center;background-color: #ffffff ;} 1888 .suspension .a.active, 1889 .suspension .a:hover{color:#fff;background:#888;} 1890 .suspension .a, .suspension .a i{font-size: 24px;color: #fff;} 1891 .suspension .a-qrcode .i{background-position:-44px 0;} 1892 .suspension .a-cart .i{background-position:-88px 0;} 1893 .suspension .a-top .i{background-position:-132px 0;} 1894 .suspension .a-top{background:#D2D3D6;display:none;} 1895 .suspension .a-top:hover{background:#c0c1c3;} 1896 .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);} 1897 .suspension .d .arrow-left{position:absolute;width:8px;height:12px;background:url(/resource/image/side_bg_arrow.png) no-repeat;right:-8px;top:31px;} 1898 .suspension .d-service{top:0;} 1899 .suspension .d-service-phone{top:34px;} 1900 .suspension .d-qrcode{top:78px;} 1901 .suspension .d .inner-box{padding:8px 22px 12px;} 1902 .suspension .d-service-item{padding:14px 0;} 1903 .suspension .d-service .d-service-item{border-bottom:none;} 1904 .suspension .d-service-item .circle{width:44px;height:44px;border-radius:50%;overflow:hidden;background:#F1F1F3;display:block;float:left;} 1905 .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;} 1906 .suspension .d-service-item:hover .i-qq{background-position:center 3px;} 1907 .suspension .d-service-item .i-tel{width:44px;height:44px;background:url(/resource/image/side_con_icon02.png) no-repeat center center;display:block;} 1908 .suspension .d-service-item h3{float:left;width:112px;line-height:44px;font-size:15px;margin-left:12px;} 1909 .suspension .d-service-item .text{float:left;width:112px;line-height:22px;font-size:15px;margin-left:12px;} 1910 .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;} 1911 .suspension .d-service-intro{padding-top:10px;font-size: 14px;} 1912 .suspension .d-service-intro p{float:left;line-height:27px;font-size:12px;width:50%;white-space:nowrap;color:#888;} 1913 .suspension .d-qrcode{text-align:center;} 1914 .suspension .d-qrcode .inner-box, .suspension .d-ewmcode .inner-box{padding:20px;} 1915 .suspension .d-qrcode p{font-size:14px;color:#93959c;line-height:30px;margin: 0;} 1916 .suspension p{margin: 0;} 1917 .scroll-top{display: none;} 1918 .suspension .d-qrcode img, .suspension .d-ewmcode img{display: inline-block;} 1919 .suspension .d-ewmcode{top: 130px;} 1920 .scroll-to-top{display: none!important;} 1921 .suspension .a{background-color: ;} 1922 .suspension .a.active, .suspension .a:hover{background: ;} 1923</style> 1924<!-- service1 --> 1925<div class="suspension pc_show"> 1926 <div class="suspension-box"> 1927 <a href="javascript:;" class="a a-service tran3s"><i class="iconfont icon-tubiao215"></i></a> 1928 <a href="javascript:;" class="a a-service-phone tran3s"><i class="iconfont icon-dianhua1"></i></a> 1929 <a href="javascript:;" class="a a-qrcode tran3s"><i class="iconfont icon-kefu"></i></a> 1930 <a href="javascript:;" class="a a-ewmcode a-cart"><i class="iconfont icon-weixin"></i></a> 1931 <a href="javascript:;" class="a a-top tran3s"><i class="iconfont icon-huidingbu1"></i></a> 1932 <div class="d d-service" style="display: none;"> 1933 <i class="arrow-left"></i> 1934 <div class="inner-box"> 1935 <div class="d-service-item clearfix"> 1936 <a href="http://wpa.qq.com/msgrd?v=3&uin=877998773&site=qq&menu=yes" target="_blank" 1937 class="clearfix"><span class="circle"><i class="i-qq"></i></span> 1938 <h3>å¨è¯¢å¨çº¿å®¢æ</h3> 1939 </a> 1940 </div> 1941 </div> 1942 </div> 1943 <div class="d d-service-phone" style="display: none;"> 1944 <i class="arrow-left"></i> 1945 <div class="inner-box"> 1946 <div class="d-service-item clearfix">
1947 <span class="circle"><i class="i-tel"></i></span> 1948 <div class="text"> 1949 <p>æå¡ç线</p> 1950 <p class="red number"><a href="tel:18523692368">18523692368</a></p> 1951 </div> 1952 </div> 1953 </div> 1954 </div> 1955 <div class="d d-qrcode" style="display: none;"> 1956 <i class="arrow-left"></i> 1957 <div class="inner-box"> 1958 <div class="qrcode-img"><img src="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761177945.jpg" width="150" height="150" alt=""></div> 1959 <p>å¨çº¿å®¢æ</p> 1960 </div> 1961 </div> 1962 <div class="d d-ewmcode text-center" style="display: none;"> 1963 <i class="arrow-left"></i> 1964 <div class="inner-box"> 1965 <div class="qrcode-img"><img src="https://zj.chengmenghudong.com.cn/storage/2/20251101/1762761177945.jpg " width="150" height="150" alt=""></div> 1966 <p>å¾®ä¿¡å ¬ä¼å·</p> 1967 </div> 1968 </div> 1969 </div> 1970</div>
1971<script type="text/javascript"> 1972 $(document).ready(function () { 1973 /* ----- ä¾§è¾¹æ¬æµ® ---- */ 1974 $(document).on("mouseenter", ".suspension .a", function () { 1975 var _this = $(this); 1976 var s = $(".suspension"); 1977 var isService = _this.hasClass("a-service"); 1978 var isServicePhone = _this.hasClass("a-service-phone"); 1979 var isQrcode = _this.hasClass("a-qrcode"); 1980 var isEwmcode = _this.hasClass("a-ewmcode"); 1981 if (isService) { s.find(".d-service").show().siblings(".d").hide(); } 1982 if (isServicePhone) { s.find(".d-service-phone").show().siblings(".d").hide(); } 1983 if (isQrcode) { s.find(".d-qrcode").show().siblings(".d").hide(); } 1984 if (isEwmcode) { s.find(".d-ewmcode").show().siblings(".d").hide(); } 1985 }); 1986 $(document).on("mouseleave", ".suspension, .suspension .a-top", function () { 1987 $(".suspension").find(".d").hide(); 1988 }); 1989 $(document).on("mouseenter", ".suspension .a-top", function () { 1990 $(".suspension").find(".d").hide(); 1991 }); 1992 $(document).on("click", ".suspension .a-top", function () { 1993 $("html,body").animate({ scrollTop: 0 }); 1994 }); 1995 $(window).scroll(function () { 1996 var st = $(document).scrollTop(); 1997 var $top = $(".suspension .a-top"); 1998 if (st > 400) { 1999 $top.css({ display: 'block' }); 2000 } else { 2001 if ($top.is(":visible")) { 2002 $top.hide(); 2003 } 2004 } 2005 }); 2006 }); 2007</script>
2007 2008<style> 2009 .main-footer{background:#2d3047;} 2010 .footer-bottom .copyright span.follow{background: url(/resource/picture/beian.png) no-repeat left top;} 2011 .bottom-img{ background:url("") no-repeat center/cover;} 2012 .bottom-img::before{background:;} 2013 .main-footer .footer-bottom .footer-color, .main-footer .footer-bottom .copyright a, .main-footer .footer-bottom .copyright span{color:#ccc;} 2014 .footer-bottom .copyright span.follow::before, .footer-bottom .copyright .more_link::before {background-color: #ccc;} 2015</style> 2016<!-- footer1 --> 2017<footer class="main-footer"> 2018 <div class="bottom-img"></div> 2019 <div class="auto-container"> 2020 <!-- çæä¿¡æ¯ --> 2021 <div class="footer-bottom"> 2022 <div class="clearfix"> 2023 <div class=""> 2024 <div class="copyright footer-color">äºåè¯çäºå¨ç§ææéè´£ä»»å ¬å¸</div> 2025 <div class="copyright"> 2026 <a href="https://beian.miit.gov.cn" target="_blank">夿¡å·ï¼æ»ICPå¤2021000460å·-6</a> 2027 <span class="follow footer-color"><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=53070202001314" target="_blank">å ¬å®æºå ³å¤æ¡å·ï¼æ»å ¬å®å¤53070202001314</a></span> 2028 </div> 2029 <div class="copyright footer-color">äºåç丽æ±å¸å¤ååºè¥¿å®è¡é寨é«è·¯å士åå忥¼6å±</div> 2030 </div> 2031 </div> 2032 </div> 2033 </div> 2034</footer> 2035</div>
2036<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
vendor: 1 bytes, line 2036
2036
2037<script type="text/javascript"> 2038(function() { 2039 // æ£æ¥æ¯å¦å¨å¾®ä¿¡æµè§å¨ä¸ 2040 var ua = navigator.userAgent.toLowerCase(); 2041 var isWechat = ua.indexOf('micromessenger') !== -1 2042 || ua.indexOf('windowswechat') !== -1 2043 || ua.indexOf('macwechat') !== -1 2044 || ua.indexOf('wxwork') !== -1; 2045 2046 if (!isWechat) { 2047 return; // é微信æµè§å¨ï¼ä¸åå§å微信å享 2048 } 2049 2050 // è·åå½å页é¢URLï¼å»é¤hashååæ°ä¸çcodeãstateçï¼ 2051 var currentUrl = window.location.href.split('#')[0]; 2052 // ç§»é¤å¾®ä¿¡ææç¸å ³åæ° 2053 var urlObj = new URL(currentUrl); 2054 urlObj.searchParams.delete('code'); 2055 urlObj.searchParams.delete('state'); 2056 urlObj.searchParams.delete('trigger_auth'); 2057 urlObj.searchParams.delete('refresh_userinfo'); 2058 currentUrl = urlObj.toString(); 2059 2060 // è·åé ç½®IDï¼ä»configè¡¨ï¼ 2061 var configId = ""; 2062 var userId = "2"; 2063 var shareTitle = "è¯ç软件è¡ä¸è§£å³æ¹æ¡"; 2064 var shareDesc = "è¯ç软件è¡ä¸è§£å³æ¹æ¡ 2065 2066"; 2067 var shareImgUrl = "https://zj.chengmenghudong.com.cn/storage/2/20221212/4b267f86d702fff8956b9774e853ae06.png"; 2068 2069 // å¦ææ²¡æé ç½®IDï¼å°è¯éè¿user_idè·å 2070 if (!configId && userId) { 2071 // éè¿AJAXè·åconfigçid 2072 fetch('/index/api/getConfigId?user_id=' + userId) 2073 .then(function(response) { return response.json(); }) 2074 .then(function(data) { 2075 if (data.code === 200 && data.data && data.data.config_id) { 2076 configId = data.data.config_id; 2077 initWechatShare(); 2078 } 2079 }) 2080 .catch(function(err) { 2081 console.error('è·åé ç½®ID失败:', err); 2082 }); 2083 } else if (configId) { 2084 initWechatShare(); 2085 } 2086 2087 function initWechatShare() { 2088 if (!configId) { 2089 return; 2090 } 2091 2092 // è·å微信JS-SDKé ç½® 2093 fetch('/index/api/getJssdk?uid=' + configId + '&url=' + encodeURIComponent(currentUrl)) 2094 .then(function(response) { return response.json(); }) 2095 .then(function(data) { 2096 if (data.code !== 200 || !data.data || !data.data.appId) { 2097 console.log('微信JS-SDKé ç½®è·åå¤±è´¥ææªé ç½®å¾®ä¿¡åæ°'); 2098 return; 2099 } 2100 2101 var wxConfig = data.data; 2102 2103 // é 置微信JS-SDK 2104 wx.config({ 2105 debug: false, 2106 appId: wxConfig.appId, 2107 timestamp: wxConfig.timestamp, 2108 nonceStr: wxConfig.nonceStr, 2109 signature: wxConfig.signature, 2110 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'] 2111 }); 2112 2113 wx.ready(function () { 2114 // ä¼å 使ç¨åå°é ç½®çåäº«ä¿¡æ¯ 2115 // å¤ç空åç¬¦ä¸²çæ åµï¼å¦æå¼ä¸ºç©ºå符串ï¼ä¹è§ä¸ºæªè®¾ç½® 2116 var apiTitle = (wxConfig.share_title && wxConfig.share_title.trim()) ? wxConfig.share_title.trim() : ''; 2117 var apiDesc = (wxConfig.share_desc && wxConfig.share_desc.trim()) ? wxConfig.share_desc.trim() : ''; 2118 var apiImg = (wxConfig.share_img && wxConfig.share_img.trim()) ? wxConfig.share_img.trim() : ''; 2119 2120 var pageTitle = (shareTitle && shareTitle.trim()) ? shareTitle.trim() : ''; 2121 var pageDesc = (shareDesc && shareDesc.trim()) ? shareDesc.trim() : ''; 2122 var pageImg = (shareImgUrl && shareImgUrl.trim()) ? shareImgUrl.trim() : ''; 2123 2124 // ç¡®å®æç»ä½¿ç¨çå享信æ¯ï¼ä¼å APIè¿åçï¼å ¶æ¬¡é¡µé¢é ç½®ç 2125 // æ é¢ï¼å¿ 须使ç¨åå°é ç½®ï¼å¦æé½ä¸ºç©ºå使ç¨ç«ç¹åç§°ï¼ä»document.titleæåï¼ 2126 var finalTitle = apiTitle || pageTitle; 2127 if (!finalTitle) { 2128 // 妿齿²¡æï¼å°è¯ä»é¡µé¢æ é¢ä¸æåï¼å»é¤"- è£ ä¿®"çåç¼ï¼ 2129 var docTitle = document.title || ''; 2130 finalTitle = docTitle.replace(/\s*[-|]\s*.*$/, '').trim(); 2131 } 2132
2133 var finalDesc = apiDesc || pageDesc || ''; 2134 var finalImgUrl = apiImg || pageImg || ''; 2135 2136 // ç¡®ä¿å¾çURLæ¯å®æ´è·¯å¾ 2137 if (finalImgUrl && finalImgUrl.indexOf('http') !== 0) { 2138 finalImgUrl = window.location.protocol + '//' + window.location.host + finalImgUrl; 2139 } 2140 2141 // å享ç»å¾®ä¿¡å¥½å 2142 wx.onMenuShareAppMessage({ 2143 title: finalTitle, 2144 desc: finalDesc, 2145 link: currentUrl, 2146 imgUrl: finalImgUrl, 2147 success: function () { 2148 console.log('å享ç»å¾®ä¿¡å¥½åæå'); 2149 }, 2150 cancel: function () { 2151 console.log('åæ¶å享ç»å¾®ä¿¡å¥½å'); 2152 } 2153 }); 2154 2155 // åäº«å°æååï¼æåååªæ¾ç¤ºæ é¢ï¼ä¸æ¾ç¤ºæè¿°ï¼ 2156 wx.onMenuShareTimeline({ 2157 title: finalTitle, 2158 link: currentUrl, 2159 imgUrl: finalImgUrl, 2160 success: function () { 2161 console.log('åäº«å°æååæå'); 2162 }, 2163 cancel: function () { 2164 console.log('åæ¶åäº«å°æåå'); 2165 } 2166 }); 2167 }); 2168 2169 wx.error(function(res) { 2170 console.error('微信JS-SDKé 置失败:', res); 2171 }); 2172 }) 2173 .catch(function(err) { 2174 console.error('è·å微信JS-SDKé 置失败:', err); 2175 }); 2176 } 2177})(); 2178</script>
vendor: 1 bytes, line 2178
2178
2179<script src="/resource/js/popper.min.js"></script>
vendor: 1 bytes, line 2179
2179
2180<script src="/resource/js/jquery-ui.js"></script>
vendor: 1 bytes, line 2180
2180
2181<script src="/resource/js/jquery.fancybox.js"></script>
vendor: 1 bytes, line 2181
2181
2182<script src="/resource/js/owl.js"></script>
vendor: 1 bytes, line 2182
2182
2183<script src="/resource/js/validate.js"></script>
vendor: 1 bytes, line 2183
2183
2184<script src="/resource/js/wow.js"></script>
vendor: 1 bytes, line 2184
2184
2185<script src="/resource/js/mixitup.js"></script>
vendor: 1 bytes, line 2185
2185
2186<script src="/resource/js/appear.js"></script>
vendor: 1 bytes, line 2186
2186
2187<script src="/resource/js/script.js"></script>
vendor: 1 bytes, line 2187
2187
2188<script src="/resource/js/jquery.cycle2.js"></script>
vendor: 1 bytes, line 2188
2188
2189<script src="/resource/js/slides.jquery.js"></script>
vendor: 1 bytes, line 2189
2189
2190<script src="/resource/js/main.js"></script>
2190 2191</body>
2192<script src="/resource/js/translate.js"></script>
vendor: 1 bytes, line 2192
2192
2193<script> 2194 $(function () { 2195 // åå§åç¿»è¯åè½ 2196 initTranslate(); 2197 }); 2198 2199 function translateSelectLanguageFunction(value){ 2200 translate.changeLanguage(value); 2201 } 2202 2203 function changeStationTranslationF(obj){ 2204 var value = $(obj).val(); 2205 translate.changeLanguage(value); 2206 } 2207 2208 // å®ä¹changeLanguage彿°ç¨äºåå°åæ¢è¯è¨ 2209 function changeLanguage(languageCode) { 2210 // ä¿åè¯è¨å好尿¬å°åå¨ 2211 try { 2212 localStorage.setItem('preferred_language', languageCode); 2213 } catch (e) { 2214 console.error('ä¿åè¯è¨å好失败:', e); 2215 } 2216 2217 // è°ç¨translateçè¯è¨åæ¢å½æ° 2218 translate.changeLanguage(languageCode); 2219 2220 // æ´æ°è¯è¨æ¾ç¤º 2221 updateLanguageDisplay(languageCode); 2222 2223 // å ³é䏿èå 2224 var dropdowns = document.getElementsByClassName('dropdown-menu'); 2225 Array.from(dropdowns).forEach(function(dropdown) { 2226 dropdown.classList.remove('show'); 2227 }); 2228 } 2229 2230 // æ´æ°è¯è¨æ¾ç¤º 2231 function updateLanguageDisplay(languageCode) { 2232 // è·åå½åè¯è¨å¯¹åºçåç§° 2233 fetch('/index/translate/getLanguages') 2234 .then(response => response.json()) 2235 .then(data => { 2236 if (data.code === 200 && data.data && data.data.languages) { 2237 const languages = data.data.languages; 2238 const language = languages.find(lang => lang.code === languageCode); 2239 2240 if (language) { 2241 // æ´æ°å½åæ¾ç¤ºçè¯è¨åç§° 2242 const currentLanguageElement = document.getElementById('current-language'); 2243 if (currentLanguageElement) { 2244 currentLanguageElement.textContent = language.name; 2245 } 2246 2247 // æ´æ°ä¸æèåä¸çéä¸ç¶æ 2248 const languageMenu = document.getElementById('language-menu'); 2249 if (languageMenu) { 2250 // ç§»é¤ææé¡¹çéä¸ç¶æ 2251 const items = languageMenu.querySelectorAll('.dropdown-item'); 2252 items.forEach(item => { 2253 item.classList.remove('active'); 2254 }); 2255 2256 // 为å½åéä¸çè¯è¨æ·»å éä¸ç¶æ 2257 const selectedItem = Array.from(items).find(item => { 2258 return item.getAttribute('data-lang-code') === languageCode; 2259 }); 2260 2261 if (selectedItem) { 2262 selectedItem.classList.add('active'); 2263 } 2264 } 2265 } 2266 } 2267 }) 2268 .catch(error => { 2269 console.error('è·åè¯è¨å称失败:', error); 2270 }); 2271 } 2272 2273 // ç¡®ä¿nodeuuid对象å¯ç¨ 2274 if (typeof nodeuuid === 'undefined') { 2275 nodeuuid = { 2276 uuid: function(node) { 2277 return node ? (Math.random().toString(36).substring(2, 15)) : ''; 2278 } 2279 }; 2280 } 2281 2282 // ç¦ç¨åå§å请æ±ï¼é¿å é误 2283 if (translate.init) { 2284 translate.init_execute = 'å·²è¿è¡'; 2285 } 2286 2287 // 设置请æ±è¶ æ¶ï¼é¿å è¯·æ±æèµ· 2288 if (translate.request) { 2289 translate.request.timeout = 3000; 2290 } 2291 2292 // åå§åç¿»è¯åè½ 2293 function initTranslate() { 2294 translate.setUseVersion2(); 2295 translate.setAutoDiscriminateLocalLanguage(); // è®¾ç½®ç¨æ·ç¬¬ä¸æ¬¡ç¨æ¶ï¼èªå¨è¯å«å ¶æå¨å½å®¶çè¯ç§è¿è¡åæ¢ 2296 translate.selectLanguageTag.show = false; // 䏿¾ç¤ºselectçéæ©è¯è¨ 2297 2298 // ä»åå°è·åé»è®¤è¯è¨ 2299 fetch('/index/translate/getDefaultLanguage') 2300 .then(response => response.json()) 2301 .then(data => { 2302 if (data.code === 200 && data.data && data.data.language) { 2303 // 设置é»è®¤è¯è¨ 2304 var default_language = data.data.translate_js_code || data.data.language.code; 2305 if (default_language) { 2306 translate.language.setDefaultTo(default_language); 2307 } 2308 2309 // 使ç¨Edgeç¿»è¯æå¡ 2310 translate.service.use('client.edge'); 2311 2312 // å¯å¨çå¬ï¼ç¨äºå¨æå 容çç¿»è¯ 2313 translate.listener.start(); 2314 2315 try { 2316 // æ§è¡ç¿»è¯ 2317 translate.execute(); 2318 } catch (e) { 2319 console.log('ç¿»è¯æ§è¡é误: ' + e.message); 2320 // 妿Edgeç¿»è¯åºéï¼å°è¯ä½¿ç¨æ¬å°ç¿»è¯ 2321 translate.service.use('local'); 2322 translate.execute(); 2323 } 2324 } else { 2325 // 使ç¨é»è®¤å¼ 2326 fallbackTranslate(); 2327 } 2328 }) 2329 .catch(error => { 2330 console.error('è·åé»è®¤è¯è¨å¤±è´¥:', error); 2331 // 使ç¨é»è®¤å¼ 2332 fallbackTranslate(); 2333 }); 2334 } 2335 2336 // åéå°é»è®¤ç¿»è¯è®¾ç½® 2337 function fallbackTranslate() { 2338 var default_language = "chinese_simplified"; 2339 translate.language.setDefaultTo(default_language); 2340 translate.service.use('client.edge'); 2341 translate.listener.start(); 2342 2343 try { 2344 translate.execute(); 2345 } catch (e) { 2346 console.log('ç¿»è¯æ§è¡é误: ' + e.message); 2347 translate.service.use('local'); 2348 translate.execute(); 2349 } 2350 } 2351</script>
2351 2352</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.