Quellcode durchsuchen

社会责任页面

zjm
suomingxiang vor 4 Monaten
Ursprung
Commit
2f5e3d919a
69 geänderte Dateien mit 1067 neuen und 3025 gelöschten Zeilen
  1. BIN
      dev/static/font/FOTONTYPE-BOLD.TTF
  2. BIN
      dev/static/font/FOTONTYPE-LIGHT.TTF
  3. BIN
      dev/static/font/FZLTHJW.TTF
  4. 0
    9
      dev/static/font/cavan.css
  5. BIN
      dev/static/images/news/01.png
  6. BIN
      dev/static/images/news/02.png
  7. BIN
      dev/static/images/news/03.png
  8. BIN
      dev/static/images/news/news1.png
  9. BIN
      dev/static/images/partyBuilding/01.png
  10. BIN
      dev/static/images/partyBuilding/03.png
  11. BIN
      dev/static/images/partyBuilding/04.png
  12. BIN
      dev/static/images/partyBuilding/05.png
  13. BIN
      dev/static/images/partyBuilding/06.png
  14. BIN
      dev/static/images/partyBuilding/07.png
  15. BIN
      dev/static/images/partyBuilding/08.png
  16. BIN
      dev/static/images/partyBuilding/09.png
  17. BIN
      dev/static/images/partyBuilding/10.png
  18. BIN
      dev/static/images/partyBuilding/11.png
  19. BIN
      dev/static/images/partyBuilding/default.png
  20. BIN
      dev/static/images/product/product1.png
  21. BIN
      dev/static/images/product/product2.png
  22. BIN
      dev/static/images/product/product3.png
  23. BIN
      dev/static/images/product/product4.png
  24. BIN
      dev/static/images/product/product5.png
  25. BIN
      dev/static/images/product/product6.png
  26. BIN
      dev/static/images/product/product_banner1.png
  27. BIN
      dev/static/images/serve/five.jpg
  28. BIN
      dev/static/images/serve/servebk.jpg
  29. BIN
      dev/static/images/serve/servebkm.jpg
  30. BIN
      dev/static/images/serve/two1.jpg
  31. BIN
      dev/static/images/serve/two2.jpg
  32. BIN
      dev/static/images/serve/twos1.jpg
  33. 0
    2
      src/pages/common/css/common.less
  34. 1
    1
      src/pages/common/js/Common.js
  35. 45
    1
      src/pages/common/js/utils.js
  36. 1
    18
      src/pages/common/tpl/footer.tpl
  37. 2
    44
      src/pages/common/tpl/header.tpl
  38. 4
    4
      src/pages/enterprisePartyBuilding/App.js
  39. 18
    33
      src/pages/enterprisePartyBuilding/index.html
  40. 3
    63
      src/pages/enterprisePartyBuilding/index.less
  41. 1
    21
      src/pages/index/index.html
  42. 1
    1
      src/pages/news/App.js
  43. 4
    4
      src/pages/news/index.html
  44. 13
    1
      src/pages/news/index.less
  45. 4
    4
      src/pages/partyBuilding/App.js
  46. 26
    14
      src/pages/partyBuilding/index.html
  47. 0
    1
      src/pages/partyBuilding/index.less
  48. 0
    66
      src/pages/product/App.js
  49. 0
    227
      src/pages/product/index.html
  50. 0
    243
      src/pages/product/index.less
  51. 0
    263
      src/pages/serve/App.js
  52. BIN
      src/pages/serve/images/sixIcon.jpg
  53. 0
    233
      src/pages/serve/index.html
  54. 0
    15
      src/pages/serve/index.js
  55. 0
    717
      src/pages/serve/index.less
  56. 0
    225
      src/pages/serveBooking/App.js
  57. BIN
      src/pages/serveBooking/images/sixIcon.jpg
  58. 0
    64
      src/pages/serveBooking/index.html
  59. 0
    15
      src/pages/serveBooking/index.js
  60. 0
    303
      src/pages/serveBooking/index.less
  61. 0
    135
      src/pages/serveMap/App.js
  62. 0
    1
      src/pages/serveMap/images/pos.svg
  63. 0
    91
      src/pages/serveMap/index.html
  64. 0
    15
      src/pages/serveMap/index.js
  65. 0
    191
      src/pages/serveMap/index.less
  66. 188
    0
      src/pages/socialResponsibility/App.js
  67. 144
    0
      src/pages/socialResponsibility/index.html
  68. 0
    0
      src/pages/socialResponsibility/index.js
  69. 612
    0
      src/pages/socialResponsibility/index.less

BIN
dev/static/font/FOTONTYPE-BOLD.TTF Datei anzeigen


BIN
dev/static/font/FOTONTYPE-LIGHT.TTF Datei anzeigen


BIN
dev/static/font/FZLTHJW.TTF Datei anzeigen


+ 0
- 9
dev/static/font/cavan.css Datei anzeigen

@@ -1,9 +0,0 @@
1
-@font-face {
2
-    font-family: 'MyFont1'; /* 自定义字体名称 */
3
-    src: url('./FOTONTYPE-BOLD.TTF') format('truetype');
4
-}
5
-
6
-@font-face {
7
-    font-family: 'MyFont2';
8
-    src: url('./FOTONTYPE-LIGHT.TTF') format('truetype');
9
-}

BIN
dev/static/images/news/01.png Datei anzeigen


BIN
dev/static/images/news/02.png Datei anzeigen


BIN
dev/static/images/news/03.png Datei anzeigen


BIN
dev/static/images/news/news1.png Datei anzeigen


BIN
dev/static/images/partyBuilding/01.png Datei anzeigen


BIN
dev/static/images/partyBuilding/03.png Datei anzeigen


BIN
dev/static/images/partyBuilding/04.png Datei anzeigen


BIN
dev/static/images/partyBuilding/05.png Datei anzeigen


BIN
dev/static/images/partyBuilding/06.png Datei anzeigen


BIN
dev/static/images/partyBuilding/07.png Datei anzeigen


BIN
dev/static/images/partyBuilding/08.png Datei anzeigen


BIN
dev/static/images/partyBuilding/09.png Datei anzeigen


BIN
dev/static/images/partyBuilding/10.png Datei anzeigen


BIN
dev/static/images/partyBuilding/11.png Datei anzeigen


BIN
dev/static/images/partyBuilding/default.png Datei anzeigen


BIN
dev/static/images/product/product1.png Datei anzeigen


BIN
dev/static/images/product/product2.png Datei anzeigen


BIN
dev/static/images/product/product3.png Datei anzeigen


BIN
dev/static/images/product/product4.png Datei anzeigen


BIN
dev/static/images/product/product5.png Datei anzeigen


BIN
dev/static/images/product/product6.png Datei anzeigen


BIN
dev/static/images/product/product_banner1.png Datei anzeigen


BIN
dev/static/images/serve/five.jpg Datei anzeigen


BIN
dev/static/images/serve/servebk.jpg Datei anzeigen


BIN
dev/static/images/serve/servebkm.jpg Datei anzeigen


BIN
dev/static/images/serve/two1.jpg Datei anzeigen


BIN
dev/static/images/serve/two2.jpg Datei anzeigen


BIN
dev/static/images/serve/twos1.jpg Datei anzeigen


+ 0
- 2
src/pages/common/css/common.less Datei anzeigen

@@ -14,7 +14,6 @@ pc端:
14 14
 
15 15
 */
16 16
 @import "/dev/static/font/iconfont.css";
17
-@import "/dev/static/font/cavan.css";
18 17
 
19 18
 html,
20 19
 body,
@@ -40,7 +39,6 @@ html,
40 39
 body {
41 40
     width: 100%;
42 41
     height: 100%;
43
-    font-family: 'MyFont2',sans-serif;
44 42
     font-size: 16px;
45 43
     color: #231f20;
46 44
 }

+ 1
- 1
src/pages/common/js/Common.js Datei anzeigen

@@ -93,7 +93,7 @@ export default class Common {
93 93
 
94 94
     let logo = document.querySelector(".headerPC .logo");
95 95
     logo.addEventListener("click", (e) => {
96
-      window.location.href ="/index.html"
96
+      window.location.href ="./index.html"
97 97
     });
98 98
     
99 99
     //设置一级菜单高亮

+ 45
- 1
src/pages/common/js/utils.js Datei anzeigen

@@ -1,3 +1,34 @@
1
+const BASEURL = '/api';
2
+
3
+async function fetchRequest(url, method = 'GET', data = null) {
4
+    const options = {
5
+        method: method,
6
+        headers: {
7
+            'Content-Type': 'application/json',
8
+        },
9
+    };
10
+
11
+    // 如果是 POST 请求,并且有数据要发送
12
+    if (method.toUpperCase() === 'POST' && data) {
13
+        options.body = JSON.stringify(data);
14
+    }
15
+
16
+    try {
17
+        const response = await fetch(BASEURL + url, options);
18
+
19
+        // 检查响应是否正常
20
+        if (!response.ok) {
21
+            throw new Error(`网络响应不是 OK: ${response.status}`);
22
+        }
23
+
24
+        // 尝试解析 JSON 数据
25
+        const responseData = await response.json();
26
+        return responseData;
27
+    } catch (error) {
28
+        console.error('请求失败:', error);
29
+        throw error; // 重新抛出错误以便调用者处理
30
+    }
31
+}
1 32
 function isMobile() {
2 33
     
3 34
     let isMobile =  /Android|webOS|iPhone|iPad|iPod|BlackBerry|opera mini|opera mobile|appleWebkit.*mobile|mobile/i.test(
@@ -110,4 +141,17 @@ function debounce(fn, wait) {
110 141
     }
111 142
 }
112 143
 
113
-export { isMobile, scrollFun, scrollFun2 }
144
+// 节流函数定义
145
+function throttle(func, wait) {
146
+    let timeout = null;
147
+    return function () {
148
+        if (!timeout) {
149
+            timeout = setTimeout(() => {
150
+                func.apply(this, arguments);
151
+                timeout = null;
152
+            }, wait);
153
+        }
154
+    };
155
+}
156
+
157
+export { isMobile, scrollFun, scrollFun2,throttle,fetchRequest }

+ 1
- 18
src/pages/common/tpl/footer.tpl Datei anzeigen

@@ -95,21 +95,4 @@
95 95
         </div>
96 96
     </div>
97 97
     <div class="footerText"><a href="">法律声明</a><span></span><a href="">隐私政策</a><br>中泽集团版权所有 ZHONGZE GROUP COPYRIGHT <br>@ 2014-2024 <a href="https://beian.miit.gov.cn/#/Integrated/index">辽ICP备14015583号</a></div>
98
-    <!--<div class="goTop">
99
-        <div class="btn goTopBtn">
100
-                  <a href="javascript:void(0);">
101
-                    <div class="btnShow">
102
-                          <div class="btnMove">
103
-                            <div class="btnIcon"></div>
104
-                            <div class="btnIcon"></div>
105
-                          </div>
106
-                        </div>
107
-                  </a>
108
-                </div>
109
-    </div> -->
110
-</footer>
111
-<!--<div class="chooseM">
112
-    <a href="">购车咨询</a>
113
-    <span></span>
114
-    <a href="./serveBooking.html">门店预约体验</a>
115
-</div> -->
98
+</footer>

+ 2
- 44
src/pages/common/tpl/header.tpl Datei anzeigen

@@ -4,67 +4,25 @@
4 4
         <div class="menu">
5 5
             <div class="menuOne">
6 6
                 <a href="">走进中泽</a>
7
-                <!--<div class="menuSon">
8
-                    <div class="menuUp"></div>
9
-                    <a href=""><span>集团简介</span></a>
10
-                    <a href=""><span>发展历程</span></a>
11
-                    <a href=""><span>企业架构</span></a>
12
-                    <a href=""><span>企业文化</span></a>
13
-                    <a href=""><span>资质荣誉</span></a>
14
-                </div>-->
15 7
             </div>
16 8
             <div class="menuOne">
17 9
                 <a href="">产业布局</a>
18
-                <!--<div class="menuSon">
19
-                    <div class="menuUp"></div>
20
-                    <a href="./aboutUs.html#introduction">能源管理方案</a>
21
-                    <a href="./aboutUs.html#structure">智慧能源管理体系</a>
22
-                    <a href="./aboutUs.html#structure">租贸业务管理方案</a>
23
-                    <a href="./aboutUs.html#structure">二手车解决方案</a>
24
-                </div>-->
25 10
             </div>
26 11
             <div class="menuOne">
27 12
                 <a href="./news.html">新闻中心</a>
28
-                <!--<div class="menuSon">
29
-                    <div class="menuUp"></div>
30
-                    <a href="./serve.html">购车流程</a>
31
-                    <a href="./serve.html#serve2">门店地图</a>
32
-                    <a href="./serve.html#serve3">门店预约体验</a>
33
-                    <a href="./serve.html#serve4">服务体系</a>
34
-                    <a href="./serve.html#serve5">用户留言</a>
35
-                </div>-->
36 13
             </div>
37 14
             <div class="menuOne">
38
-                <a href="">党建工作</a>
39
-                <!--<div class="menuSon">
40
-                    <div class="menuUp"></div>
41
-                    <a href="./news.html">公司新闻</a>
42
-                    <a href="./news.html">行业新闻</a>
43
-                </div>-->
15
+                <a href="./partyBuilding.html">党建工作</a>
44 16
             </div>
45 17
             <div class="menuOne">
46 18
                 <a href="">社会责任</a>
47
-                <!--<div class="menuSon">
48
-                    <div class="menuUp"></div>
49
-                    <a href="./about.html#about1">品牌故事</a>
50
-                    <a href="./about.html#about2">可持续发展</a>
51
-                    <a href="./about.html#about3">经销商加盟</a>
52
-                    <a href="./about.html#about4">联系我们</a>
53
-                </div>-->
54 19
             </div>
55 20
             <div class="menuOne">
56 21
                 <a href="">加入中泽</a>
57
-                <!--<div class="menuSon">
58
-                    <div class="menuUp"></div>
59
-                    <a href="./about.html#about1">品牌故事</a>
60
-                    <a href="./about.html#about2">可持续发展</a>
61
-                    <a href="./about.html#about3">经销商加盟</a>
62
-                    <a href="./about.html#about4">联系我们</a>
63
-                </div>-->
64 22
             </div>
65 23
         </div>
66 24
         <div class="language menuOne">
67
-            <a href="./serveMap.html" class="btn2 btnW"><span class="iconfont icon-search"></span></a>
25
+            <a class="btn2 btnW"><span class="iconfont icon-search"></span></a>
68 26
             <span class="line"></span>
69 27
             <a href="./serveBooking.html" class="aborder">联系我们</a>
70 28
         </div>

+ 4
- 4
src/pages/enterprisePartyBuilding/App.js Datei anzeigen

@@ -10,7 +10,7 @@ const pageSize = 5;
10 10
 
11 11
 export default class App {
12 12
     constructor() {
13
-        let common = new Common(document.querySelector('.main'),4)   //导航菜单高亮,0是首页,后面的按顺序添加
13
+        let common = new Common(document.querySelector('.main'),3)   //导航菜单高亮,0是首页,后面的按顺序添加
14 14
         this.isMobile = isMobile()
15 15
         let lazyDoms = document.querySelectorAll(".lazy");
16 16
         let Time = null;
@@ -39,7 +39,7 @@ export default class App {
39 39
         
40 40
             let menuChange=true;
41 41
             let menuType = document.querySelector(".headCon");
42
-            menuType.classList.add("menuType");
42
+            // menuType.classList.add("menuType");
43 43
             let mySwiper = new Swiper('.bannerSwiper1', {
44 44
                 autoplay: true,//可选选项,自动滑动
45 45
                 // 如果需要分页器
@@ -112,9 +112,9 @@ export default class App {
112 112
             
113 113
                 
114 114
             // 添加滚动事件监听器
115
-            window.addEventListener('scroll', updateScrollInfo);
115
+            // window.addEventListener('scroll', updateScrollInfo);
116 116
             // 初始化显示
117
-            updateScrollInfo();
117
+            // updateScrollInfo();
118 118
             
119 119
         }
120 120
 

+ 18
- 33
src/pages/enterprisePartyBuilding/index.html Datei anzeigen

@@ -26,37 +26,47 @@
26 26
             </div>
27 27
             <div class="article_list">
28 28
                 <a class="article_li">
29
-                    <img src="./static/images/index/twor4.jpg" alt="">
29
+                    <img src="./static/images/partyBuilding/default.png" alt="">
30 30
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
31 31
                     <div class="txt2">2024-12-13</div>
32 32
                 </a>
33 33
                 <a class="article_li">
34
-                    <img src="./static/images/index/twor4.jpg" alt="">
34
+                    <img src="./static/images/partyBuilding/03.png" alt="">
35 35
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
36 36
                     <div class="txt2">2024-12-13</div>
37 37
                 </a>
38 38
                 <a class="article_li">
39
-                    <img src="./static/images/index/twor4.jpg" alt="">
39
+                    <img src="./static/images/partyBuilding/04.png" alt="">
40 40
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
41 41
                     <div class="txt2">2024-12-13</div>
42 42
                 </a>
43 43
                 <a class="article_li">
44
-                    <img src="./static/images/index/twor4.jpg" alt="">
44
+                    <img src="./static/images/partyBuilding/05.png" alt="">
45 45
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
46 46
                     <div class="txt2">2024-12-13</div>
47 47
                 </a>
48 48
                 <a class="article_li">
49
-                    <img src="./static/images/index/twor4.jpg" alt="">
49
+                    <img src="./static/images/partyBuilding/06.png" alt="">
50 50
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
51 51
                     <div class="txt2">2024-12-13</div>
52 52
                 </a>
53 53
                 <a class="article_li">
54
-                    <img src="./static/images/index/twor4.jpg" alt="">
54
+                    <img src="./static/images/partyBuilding/07.png" alt="">
55 55
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
56 56
                     <div class="txt2">2024-12-13</div>
57 57
                 </a>
58 58
                 <a class="article_li">
59
-                    <img src="./static/images/index/twor4.jpg" alt="">
59
+                    <img src="./static/images/partyBuilding/08.png" alt="">
60
+                    <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
61
+                    <div class="txt2">2024-12-13</div>
62
+                </a>
63
+                <a class="article_li">
64
+                    <img src="./static/images/partyBuilding/09.png" alt="">
65
+                    <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
66
+                    <div class="txt2">2024-12-13</div>
67
+                </a>
68
+                <a class="article_li">
69
+                    <img src="./static/images/partyBuilding/10.png" alt="">
60 70
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
61 71
                     <div class="txt2">2024-12-13</div>
62 72
                 </a>
@@ -76,32 +86,7 @@
76 86
                     <span class="icon iconfont icon-jiantou"></span>
77 87
                 </a>
78 88
             </div>
79
-            <div class="study_box">
80
-                <div class="study_head">
81
-                    <div class="txt">学习文件</div>
82
-                    <a href="">查看学习文件</a>
83
-                </div>
84
-                <div class="wow domInUp banner">
85
-                    <div class="swiper bannerSwiper bannerSwiper2">
86
-                      <div class="swiper-wrapper">
87
-                        <div class="swiper-slide">
88
-                          <img
89
-                            class="lazy"
90
-                            data-src="./static/images/index/banner1.jpg"
91
-                            data-srcM="./static/images/index/banner1.jpg"
92
-                            alt=""
93
-                          />
94
-                        </div>
95
-                      </div>
96
-                      <!-- 如果需要分页器 -->
97
-                      <div class="swiper-pagination"></div>
98
-                      
99
-                      <!-- 如果需要导航按钮 -->
100
-                      <div class="btn-prev btn-prevB"><span class="icon iconfont icon-jiantou"></span></div>
101
-                      <div class="btn-next btn-nextB"><span class="icon iconfont icon-jiantou"></span></div>
102
-                    </div>
103
-                </div>
104
-            </div>
89
+          
105 90
         </div>
106 91
         <%= require('../common/tpl/footer.tpl') %>
107 92
             <%= require('../common/tpl/bottomBar.tpl') %>

+ 3
- 63
src/pages/enterprisePartyBuilding/index.less Datei anzeigen

@@ -198,7 +198,7 @@
198 198
         display: flex;
199 199
         align-items: center;
200 200
         justify-content: center;
201
-        padding: 100px 0 120p x;
201
+        padding: 100px 0 120px;
202 202
         .previousPage{
203 203
             width: 40px;
204 204
             height: 40px;
@@ -283,42 +283,7 @@
283 283
             // }
284 284
         }
285 285
     }
286
-    .study_box{
287
-        width: 100%;
288
-        background-color: #F6F6F6;
289
-        padding-top: 122px;
290
-        padding-bottom: 130px;
291
-
292
-        .study_head{
293
-            width: 1498px;
294
-            margin: 0 auto;
295
-            display: flex;
296
-            align-items: center;
297
-            justify-content: space-between;
298
-            margin-bottom: 81px;
299
-            .txt{
300
-                font-weight: bold;
301
-                font-size: 48px;
302
-                color: #231F20;
303
-                margin-left: 100px;
304
-            }
305
-            a{
306
-                width: 200px;
307
-                height: 45px;
308
-                background: #B81C25;
309
-                border-radius: 8px;
310
-                font-size: 14px;
311
-                color: #FFFFFF;
312
-                text-align: center;
313
-                line-height: 45px;
314
-                margin-right: 100px;
315
-            }
316
-        }
317
-        .bannerSwiper2{
318
-            width: 1498px;
319
-            margin: 0 auto;
320
-        }
321
-    }
286
+    
322 287
 }
323 288
 a{
324 289
     display: inline-block;
@@ -523,31 +488,6 @@ a{
523 488
                 // }
524 489
             }
525 490
         }
526
-        .study_box{
527
-            padding-top: 13.75vw;
528
-            padding-bottom: 35.875vw;
529
-            position: relative;
530
-
531
-            .study_head{
532
-                width: 92.125vw;
533
-                margin-bottom: 10.5vw;
534
-                .txt{
535
-                    width: 100%;
536
-                    font-size: 4.75vw;
537
-                    margin-left: 0;
538
-                    text-align: center;
539
-                }
540
-                a{
541
-                    position: absolute;
542
-                    bottom:15vw;
543
-                    left: 50%;
544
-                    margin-left: -25%;
545
-                }
546
-            }
547
-            .bannerSwiper2{
548
-                width: 92.125vw;
549
-                margin: 0 auto;
550
-            }
551
-        }
491
+        
552 492
     }
553 493
 }

+ 1
- 21
src/pages/index/index.html Datei anzeigen

@@ -478,25 +478,6 @@
478 478
                   </div>
479 479
                 </a>
480 480
               </div>
481
-<<<<<<< HEAD
482
-              <!-- 如果需要导航按钮 -->
483
-              <div class="btn-prev btn-prevP2"><span class="icon iconfont icon-jiantou"></span></div>
484
-              <div class="btn-next btn-nextP2"><span class="icon iconfont icon-jiantou"></span></div>
485
-            </div>
486
-            <a href="" class="btn btnBlack">查看更多</a>
487
-          </div>
488
-          <div class="masterDiv">
489
-            <div class="swiper masterSwiper3">
490
-              <div class="swiper-wrapper">
491
-                <div class="swiper-slide"> 
492
-                  <img class="lazy" data-src="./static/images/index/car1.png" data-srcM="./static/images/index/car1.png" alt="" />
493
-                </div>
494
-                <!-- 多个直接复制添加swiper-slide -->
495
-                <div class="swiper-slide">
496
-                  <img class="lazy"
497
-                    data-src="./static/images/index/car1.png" data-srcM="./static/images/index/car1.png" alt="" />
498
-                </div>
499
-=======
500 481
               <div class="swiper-slide">
501 482
                 <img
502 483
                   class="lazy"
@@ -511,7 +492,6 @@
511 492
                       <div class="more">了解更多</div>
512 493
                   </div>
513 494
                 </a>
514
->>>>>>> f443212389e95f663b807c016a02212b36406cfb
515 495
               </div>
516 496
               <div class="swiper-slide">
517 497
                 <img
@@ -1065,6 +1045,6 @@
1065 1045
       </div>
1066 1046
     </div>
1067 1047
     <%= require('../common/tpl/footer.tpl') %>
1068
-    <%= require('../common/tpl/bottomBar.tpl') %>
1048
+    <!-- <%= require('../common/tpl/bottomBar.tpl') %> -->
1069 1049
   </body>
1070 1050
 </html>

+ 1
- 1
src/pages/news/App.js Datei anzeigen

@@ -10,7 +10,7 @@ const pageSize = 5;
10 10
 
11 11
 export default class App {
12 12
     constructor() {
13
-        let common = new Common(document.querySelector('.main'),4)   //导航菜单高亮,0是首页,后面的按顺序添加
13
+        let common = new Common(document.querySelector('.main'),2)   //导航菜单高亮,0是首页,后面的按顺序添加
14 14
         this.isMobile = isMobile()
15 15
         
16 16
         bindDom();

+ 4
- 4
src/pages/news/index.html Datei anzeigen

@@ -23,7 +23,7 @@
23 23
 
24 24
                     <div class="news_banner">
25 25
                         <img
26
-                        src="./static/images/news/news1.png"
26
+                        src="./static/images/news/01.png"
27 27
                         alt=""
28 28
                         />
29 29
                         <a class="news_content" href="../articleDetails.html">
@@ -32,7 +32,7 @@
32 32
                         </a> 
33 33
                     </div>
34 34
                     <div class="news_banner2">
35
-                        <img src="./static/images/news/news1.png" alt="">
35
+                        <img src="./static/images/news/02.png" alt="">
36 36
                         <div class="banner2_cont">
37 37
                             <div class="txt1">交通运输部、国家发展改革委联合印发
38 38
                                 《交通物流降本提质增效行动计化》</div>
@@ -45,7 +45,7 @@
45 45
                         </div>
46 46
                     </div>
47 47
                     <div class="news_banner2">
48
-                        <img src="./static/images/news/news1.png" alt="">
48
+                        <img src="./static/images/news/03.png" alt="">
49 49
                         <div class="banner2_cont">
50 50
                             <div class="txt1">交通运输部、国家发展改革委联合印发
51 51
                                 《交通物流降本提质增效行动计化》</div>
@@ -99,9 +99,9 @@
99 99
                         </a>
100 100
                     </div>
101 101
                 </div>
102
+                
102 103
             </div>
103 104
             <div class="news_paging">
104
-                <!-- 锚点:#tab -->
105 105
                 <a id="previousPage" class="previousPage">
106 106
                    <span class="icon iconfont icon-jiantou"></span>
107 107
                 </a>

+ 13
- 1
src/pages/news/index.less Datei anzeigen

@@ -188,7 +188,17 @@
188 188
                         font-family: Source Han Sans CN;
189 189
                         font-weight: 500;
190 190
                         font-size: 13px;
191
-                        color: #231F20
191
+                        color: #231F20;
192
+                        position: relative;
193
+                        &::after{
194
+                            content: '';
195
+                            position: absolute;
196
+                            top: -1px;
197
+                            left: -8%;
198
+                            height: 1px;
199
+                            width: 120%;
200
+                            background-color: #B81C25;
201
+                        }
192 202
                     }
193 203
                     a{
194 204
                         cursor: pointer;
@@ -232,6 +242,8 @@
232 242
             }
233 243
         }
234 244
     }
245
+    .btn{
246
+    }
235 247
     .news_paging{
236 248
         display: flex;
237 249
         align-items: center;

+ 4
- 4
src/pages/partyBuilding/App.js Datei anzeigen

@@ -10,7 +10,7 @@ const pageSize = 5;
10 10
 
11 11
 export default class App {
12 12
     constructor() {
13
-        let common = new Common(document.querySelector('.main'),4)   //导航菜单高亮,0是首页,后面的按顺序添加
13
+        let common = new Common(document.querySelector('.main'),3)   //导航菜单高亮,0是首页,后面的按顺序添加
14 14
         this.isMobile = isMobile()
15 15
         let lazyDoms = document.querySelectorAll(".lazy");
16 16
         let Time = null;
@@ -39,7 +39,7 @@ export default class App {
39 39
         
40 40
             let menuChange=true;
41 41
             let menuType = document.querySelector(".headCon");
42
-            menuType.classList.add("menuType");
42
+            // menuType.classList.add("menuType");
43 43
             let mySwiper = new Swiper('.bannerSwiper1', {
44 44
                 autoplay: true,//可选选项,自动滑动
45 45
                 // 如果需要分页器
@@ -112,9 +112,9 @@ export default class App {
112 112
             
113 113
                 
114 114
             // 添加滚动事件监听器
115
-            window.addEventListener('scroll', updateScrollInfo);
115
+            // window.addEventListener('scroll', updateScrollInfo);
116 116
             // 初始化显示
117
-            updateScrollInfo();
117
+            // updateScrollInfo();
118 118
             
119 119
         }
120 120
 

+ 26
- 14
src/pages/partyBuilding/index.html Datei anzeigen

@@ -24,8 +24,8 @@
24 24
                     <div class="swiper-slide">
25 25
                       <img
26 26
                         class="lazy"
27
-                        data-src="./static/images/index/banner1.jpg"
28
-                        data-srcM="./static/images/index/banner1.jpg"
27
+                        data-src="./static/images/partyBuilding/01.png"
28
+                        data-srcM="./static/images/partyBuilding/01.png"
29 29
                         alt=""
30 30
                       />
31 31
                     </div>
@@ -49,43 +49,55 @@
49 49
             </div>
50 50
             <div class="article_list">
51 51
                 <a class="article_li">
52
-                    <img src="./static/images/index/twor4.jpg" alt="">
52
+                    <img src="./static/images/partyBuilding/default.png" alt="">
53 53
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
54 54
                     <div class="txt2">2024-12-13</div>
55 55
                 </a>
56 56
                 <a class="article_li">
57
-                    <img src="./static/images/index/twor4.jpg" alt="">
57
+                    <img src="./static/images/partyBuilding/03.png" alt="">
58 58
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
59 59
                     <div class="txt2">2024-12-13</div>
60 60
                 </a>
61 61
                 <a class="article_li">
62
-                    <img src="./static/images/index/twor4.jpg" alt="">
62
+                    <img src="./static/images/partyBuilding/04.png" alt="">
63 63
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
64 64
                     <div class="txt2">2024-12-13</div>
65 65
                 </a>
66 66
                 <a class="article_li">
67
-                    <img src="./static/images/index/twor4.jpg" alt="">
67
+                    <img src="./static/images/partyBuilding/05.png" alt="">
68 68
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
69 69
                     <div class="txt2">2024-12-13</div>
70 70
                 </a>
71 71
                 <a class="article_li">
72
-                    <img src="./static/images/index/twor4.jpg" alt="">
72
+                    <img src="./static/images/partyBuilding/06.png" alt="">
73 73
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
74 74
                     <div class="txt2">2024-12-13</div>
75 75
                 </a>
76 76
                 <a class="article_li">
77
-                    <img src="./static/images/index/twor4.jpg" alt="">
77
+                    <img src="./static/images/partyBuilding/07.png" alt="">
78 78
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
79 79
                     <div class="txt2">2024-12-13</div>
80 80
                 </a>
81 81
                 <a class="article_li">
82
-                    <img src="./static/images/index/twor4.jpg" alt="">
82
+                    <img src="./static/images/partyBuilding/08.png" alt="">
83
+                    <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
84
+                    <div class="txt2">2024-12-13</div>
85
+                </a>
86
+                <a class="article_li">
87
+                    <img src="./static/images/partyBuilding/09.png" alt="">
88
+                    <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
89
+                    <div class="txt2">2024-12-13</div>
90
+                </a>
91
+                <a class="article_li">
92
+                    <img src="./static/images/partyBuilding/10.png" alt="">
83 93
                     <div class="txt1">中泽集团36人次当选党代表、人大代表、政协委员</div>
84 94
                     <div class="txt2">2024-12-13</div>
85 95
                 </a>
86 96
             </div> 
87
-            <div class="news_paging">
88
-                <!-- 锚点:#tab -->
97
+            <div style="width: 100%;display: flex;justify-content: center;padding: 30px 0 50px;">
98
+                    <a href="./enterprisePartyBuilding.html" class="btn newsHref">查看更多</a>
99
+                </div>
100
+            <!-- <div class="news_paging">
89 101
                 <a id="previousPage" class="previousPage">
90 102
                    <span class="icon iconfont icon-jiantou"></span>
91 103
                 </a>
@@ -98,7 +110,7 @@
98 110
                 <a id="nextPage" class="nextPage">
99 111
                     <span class="icon iconfont icon-jiantou"></span>
100 112
                 </a>
101
-            </div>
113
+            </div> -->
102 114
             <div class="study_box">
103 115
                 <div class="study_head">
104 116
                     <div class="txt">学习文件</div>
@@ -110,8 +122,8 @@
110 122
                         <div class="swiper-slide">
111 123
                           <img
112 124
                             class="lazy"
113
-                            data-src="./static/images/index/banner1.jpg"
114
-                            data-srcM="./static/images/index/banner1.jpg"
125
+                            data-src="./static/images/partyBuilding/11.png"
126
+                            data-srcM="./static/images/partyBuilding/11.png"
115 127
                             alt=""
116 128
                           />
117 129
                         </div>

+ 0
- 1
src/pages/partyBuilding/index.less Datei anzeigen

@@ -37,7 +37,6 @@
37 37
           height: 100%;
38 38
           img{
39 39
             width: 100%;
40
-              height: 100%;
41 40
               object-fit: cover;
42 41
           }
43 42
           .btn-prev,.btn-next{

+ 0
- 66
src/pages/product/App.js Datei anzeigen

@@ -1,66 +0,0 @@
1
-import Swiper from 'swiper/bundle'
2
-import gsap from 'gsap'
3
-import LocomotiveScroll from 'locomotive-scroll';
4
-import Common from '../common/js/Common'
5
-import {
6
-    isMobile
7
-} from '../common/js/utils'
8
-
9
-export default class App {
10
-    constructor() {
11
-        let common = new Common(document.querySelector('.main'),1)   //导航菜单高亮,0是首页,后面的按顺序添加
12
-        this.isMobile = isMobile()
13
-        // this.tabChange()
14
-        // this.scroll = new LocomotiveScroll();
15
-
16
-        // 图片及视频资源懒加载。防止阻塞js执行
17
-        let lazyDoms = document.querySelectorAll(".lazy");
18
-        let Time = null;
19
-        let isMob=this.isMobile;
20
-        lazyDoms.forEach((item) => {
21
-            if (item.nodeName == "PICTURE") {
22
-                item.children[0].setAttribute("srcset", item.children[0].dataset.srcset);
23
-                item.children[1].setAttribute("src", item.children[1].dataset.src);
24
-            }
25
-            if (item.nodeName == "IMG") {
26
-                if(isMob){item.setAttribute("src", item.dataset.srcm);}
27
-                else{
28
-                    item.setAttribute("src", item.dataset.src);
29
-                }
30
-                
31
-            }
32
-            if (item.nodeName == "VIDEO") {
33
-                item.setAttribute("src", item.dataset.src);
34
-                // item.load();
35
-            }
36
-        });
37
-        //横屏滚动数组值
38
-        this.busGrouds=[];
39
-        this.banner();
40
-    
41
-    }
42
-    banner() {
43
-        const classification_list = document.querySelectorAll(".classification_li");
44
-        const truck_box = document.querySelectorAll(".truck_box");
45
-
46
-        classification_list.forEach((item,index)=>{
47
-            
48
-            item.addEventListener('click',()=>{
49
-                classification_list.forEach((li) => {
50
-                    li.classList.remove('classification_li_active');
51
-                });
52
-                truck_box.forEach((li) => {
53
-                    li.style.display = 'none';
54
-                });
55
-        
56
-                // 给当前点击的元素添加 classification_li_active 类名
57
-                item.classList.add('classification_li_active');
58
-                truck_box[index].style.display = 'block';
59
-            })
60
-        })
61
-        
62
-    }
63
-
64
-
65
-   
66
-}

+ 0
- 227
src/pages/product/index.html Datei anzeigen

@@ -1,227 +0,0 @@
1
-<!DOCTYPE html>
2
-<html lang="cn">
3
-
4
-<head>
5
-    <meta charset="utf-8" />
6
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
7
-    <title>产品</title>
8
-    <meta name="description" content="" />
9
-    <meta name="Keywords" content="" />
10
-    <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport" />
11
-    <link href="./static/css/swiper-bundle.min.css" rel="stylesheet" type="text/css" />
12
-    <%= require('../common/tpl/headerLink.tpl') %>
13
-</head>
14
-
15
-<body>
16
-    <%= require('../common/tpl/header.tpl') %>
17
-        <div class="main">
18
-            <div class="content">
19
-                <div class="product_title">新能源整车</div>
20
-               
21
-                <div class="product_classification">
22
-                    <div class="classification_li classification_li_active">Master-V</div>
23
-                    <span class="dividingLine">/</span>
24
-                    <div class="classification_li">Master-L</div>
25
-                    <span class="dividingLine">/</span>
26
-                    <div class="classification_li">Master-H</div>
27
-                </div>  
28
-            </div>
29
-            <div class="truck_box">
30
-              <div class="truck_li">
31
-                <div class="li_left">
32
-                  <div class="li_tit">科委 氢 FQ45</div>
33
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
34
-                  <div class="li_parameter">
35
-                    <div>
36
-                      <div class="txt1">重量</div>
37
-                      <div class="txt2">4495kg</div>
38
-                    </div>
39
-                    <div class="line"></div>
40
-                    <div>
41
-                      <div class="txt1">续航</div>
42
-                      <div class="txt2">200km</div>
43
-                    </div>
44
-                    <div class="line"></div>
45
-                    <div> 
46
-                      <div class="txt1">电池容量</div>
47
-                      <div class="txt2">100kwh</div>
48
-                    </div>
49
-                    <div class="line"></div> 
50
-                    <div>
51
-                      <div class="txt1">模式</div>
52
-                      <div class="txt2">纯电动</div>
53
-                    </div>
54
-                  </div>
55
-                  <a class="view_more" href="../truckDetail.html">查看更多</a>
56
-                </div>
57
-                <div class="li_banner">
58
-                  <img src="" alt="">
59
-                </div>
60
-              </div>
61
-              <div class="truck_li">
62
-                <div class="li_left">
63
-                  <div class="li_tit">科委2 氢 FR</div>
64
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
65
-                  <div class="li_parameter">
66
-                    <div>
67
-                      <div class="txt1">重量</div>
68
-                      <div class="txt2">4495kg</div>
69
-                    </div>
70
-                    <div class="line"></div>
71
-                    <div>
72
-                      <div class="txt1">续航</div>
73
-                      <div class="txt2">200km</div>
74
-                    </div>
75
-                    <div class="line"></div>
76
-                    <div> 
77
-                      <div class="txt1">电池容量</div>
78
-                      <div class="txt2">100kwh</div>
79
-                    </div>
80
-                    <div class="line"></div> 
81
-                    <div>
82
-                      <div class="txt1">模式</div>
83
-                      <div class="txt2">纯电动</div>
84
-                    </div>
85
-                  </div>
86
-                  <div class="view_more">查看更多</div>
87
-                </div>
88
-                <div class="li_banner">
89
-                  <img src="" alt="">
90
-                </div>
91
-              </div>
92
-              <div class="truck_li">
93
-                <div class="li_left">
94
-                  <div class="li_tit">科委2 氢 FR</div>
95
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
96
-                  <div class="li_parameter">
97
-                    <div>
98
-                      <div class="txt1">重量</div>
99
-                      <div class="txt2">4495kg</div>
100
-                    </div>
101
-                    <div class="line"></div>
102
-                    <div>
103
-                      <div class="txt1">续航</div>
104
-                      <div class="txt2">200km</div>
105
-                    </div>
106
-                    <div class="line"></div>
107
-                    <div> 
108
-                      <div class="txt1">电池容量</div>
109
-                      <div class="txt2">100kwh</div>
110
-                    </div>
111
-                    <div class="line"></div> 
112
-                    <div>
113
-                      <div class="txt1">模式</div>
114
-                      <div class="txt2">纯电动</div>
115
-                    </div>
116
-                  </div>
117
-                  <div class="view_more">查看更多</div>
118
-                </div>
119
-                <div class="li_banner">
120
-                  <img src="" alt="">
121
-                </div>
122
-              </div>
123
-              <div class="truck_li">
124
-                <div class="li_left">
125
-                  <div class="li_tit">科委 氢 FQ45 BOX</div>
126
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
127
-                  <div class="li_parameter">
128
-                    <div>
129
-                      <div class="txt1">重量</div>
130
-                      <div class="txt2">4495kg</div>
131
-                    </div>
132
-                    <div class="line"></div>
133
-                    <div>
134
-                      <div class="txt1">续航</div>
135
-                      <div class="txt2">200km</div>
136
-                    </div>
137
-                    <div class="line"></div>
138
-                    <div> 
139
-                      <div class="txt1">电池容量</div>
140
-                      <div class="txt2">100kwh</div>
141
-                    </div>
142
-                    <div class="line"></div> 
143
-                    <div>
144
-                      <div class="txt1">模式</div>
145
-                      <div class="txt2">纯电动</div>
146
-                    </div>
147
-                  </div>
148
-                  <div class="view_more">查看更多</div>
149
-                </div>
150
-                <div class="li_banner">
151
-                  <img src="" alt="">
152
-                </div>
153
-              </div>
154
-            </div>
155
-            <div class="truck_box">
156
-              <div class="truck_li">
157
-                <div class="li_left">
158
-                  <div class="li_tit">科委 氢 FQ45222</div>
159
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
160
-                  <div class="li_parameter">
161
-                    <div>
162
-                      <div class="txt1">重量</div>
163
-                      <div class="txt2">4495kg</div>
164
-                    </div>
165
-                    <div class="line"></div>
166
-                    <div>
167
-                      <div class="txt1">续航</div>
168
-                      <div class="txt2">200km</div>
169
-                    </div>
170
-                    <div class="line"></div>
171
-                    <div> 
172
-                      <div class="txt1">电池容量</div>
173
-                      <div class="txt2">100kwh</div>
174
-                    </div>
175
-                    <div class="line"></div> 
176
-                    <div>
177
-                      <div class="txt1">模式</div>
178
-                      <div class="txt2">纯电动</div>
179
-                    </div>
180
-                  </div>
181
-                  <div class="view_more">查看更多</div>
182
-                </div>
183
-                <div class="li_banner">
184
-                  <img src="" alt="">
185
-                </div>
186
-              </div>
187
-            </div>
188
-            <div class="truck_box">
189
-              <div class="truck_li">
190
-                <div class="li_left">
191
-                  <div class="li_tit">科委 氢 333333</div>
192
-                  <div class="li_cont">新能源重卡的电机动力输出特性使得其在爬坡、起步等需要较大动力的场景下表现出色,加速性能优异</div>
193
-                  <div class="li_parameter">
194
-                    <div>
195
-                      <div class="txt1">重量</div>
196
-                      <div class="txt2">4495kg</div>
197
-                    </div>
198
-                    <div class="line"></div>
199
-                    <div>
200
-                      <div class="txt1">续航</div>
201
-                      <div class="txt2">200km</div>
202
-                    </div>
203
-                    <div class="line"></div>
204
-                    <div> 
205
-                      <div class="txt1">电池容量</div>
206
-                      <div class="txt2">100kwh</div>
207
-                    </div>
208
-                    <div class="line"></div> 
209
-                    <div>
210
-                      <div class="txt1">模式</div>
211
-                      <div class="txt2">纯电动</div>
212
-                    </div>
213
-                  </div>
214
-                  <div class="view_more">查看更多</div>
215
-                </div>
216
-                <div class="li_banner">
217
-                  <img src="" alt="">
218
-                </div>
219
-              </div>
220
-            </div>
221
-
222
-        </div>
223
-        <%= require('../common/tpl/footer.tpl') %>
224
-            <%= require('../common/tpl/bottomBar.tpl') %>
225
-</body>
226
-
227
-</html>

+ 0
- 243
src/pages/product/index.less Datei anzeigen

@@ -1,243 +0,0 @@
1
-// pc端:
2
-// 设计稿1440*900 所有尺寸基本按px来即可;
3
-// 正文 16px;
4
-
5
-
6
-// 移动端:
7
-// 设计稿宽800px,按逻辑尺寸的两倍制作。因此真实尺寸需要除2;
8
-// 如设计稿字体大小28px,则实真字体大小为28px/2=14px;
9
-// 或使用vw 字体大小:28/800*10 = 3.5vw 
10
-// 正文 14px 或 3.5vw
11
-
12
-//pc端样式
13
-.main {
14
-    width: 100%;
15
-    max-width: 1920px;
16
-    margin: 0 auto;
17
-    padding-top: 70px;
18
-    padding-bottom: 110px;
19
-    .content{
20
-        width: 1300px;
21
-        margin: 0 auto;
22
-        .product_title{
23
-            font-family: Source Han Sans CN;
24
-            font-weight: bold;
25
-            font-size: 40px;
26
-            color: #333333;
27
-            text-align: center;
28
-            padding-top: 120px;
29
-            margin-bottom: 50px;
30
-        }
31
-        .product_classification{
32
-            font-family: Source Han Sans CN;
33
-            font-size: 18px;
34
-            color: #333333;
35
-            display: flex;
36
-            align-items: center;
37
-            justify-content: center;
38
-            margin-bottom: 40px;
39
-            .classification_li{
40
-                cursor: pointer;
41
-                transition: all .2s;
42
-                &:hover{
43
-                    color: #48A038;
44
-                }
45
-            }
46
-            .classification_li_active{
47
-                color: #48A038;
48
-            }
49
-            .dividingLine{
50
-                margin: 0 38px;
51
-                display: inline-block;
52
-            }
53
-        }
54
-    }
55
-    .truck_li{
56
-        width: 1720px;
57
-        height: 306px;
58
-        margin: 0 auto 180px;
59
-        box-sizing: border-box;
60
-        background: rgb(249, 249, 249);
61
-        padding:0 0 0 210px;
62
-        display: flex;
63
-        justify-content: space-between;
64
-        position: relative;
65
-        font-family: Source Han Sans CN;
66
-        cursor: default;
67
-
68
-        .li_tit{
69
-            padding-top: 50px;
70
-            font-weight: bold;
71
-            font-size: 24px;
72
-            color: #333333;
73
-            margin-bottom: 20px;
74
-            transition: all .2s;
75
-        }
76
-        
77
-        .li_cont{
78
-            font-size: 14px;
79
-            color: #333333;
80
-            margin-bottom: 30px;
81
-            transition: all .2s;
82
-        }
83
-
84
-        .li_parameter{
85
-            display: flex;
86
-            align-items: center;
87
-            color: #333333;
88
-            transition: all .2s;
89
-
90
-            .txt1{
91
-                font-size: 14px;
92
-                margin-bottom: 10px;
93
-            }
94
-            .txt2{
95
-                font-weight: bold;
96
-                font-size: 18px;
97
-            }
98
-            .line{
99
-                width: 1px;
100
-                height: 45px;
101
-                background: #C9C9C9;
102
-                margin:0 45px;
103
-                transition: all .2s;
104
-            }
105
-        }
106
-
107
-        .view_more{ 
108
-            width: 200px;
109
-            height: 40px;
110
-            border: 1px solid #333333;
111
-            font-size: 14px;
112
-            color: #333333;
113
-            text-align: center;
114
-            line-height: 40px;
115
-            margin-top: 40px;
116
-            cursor: pointer;
117
-            transition: all .2s;
118
-            img{
119
-                width: 100%;
120
-                height: 100%;
121
-            }
122
-        }
123
-        &:hover{
124
-            .li_tit,.li_cont,.li_parameter{
125
-                color: #48A038;
126
-            }
127
-            .line{
128
-                background-color: #48A038;
129
-            }
130
-            .view_more{
131
-                color: #fff;
132
-                background: #48A038;
133
-                border: 1px solid #48A038;
134
-            }
135
-        }
136
-
137
-        .li_banner{
138
-            width: 520px;
139
-            height: 390px;
140
-            background-color: aqua;
141
-            position: absolute;
142
-            right: 125px;
143
-            top: 30px;
144
-        }
145
-    }
146
-}
147
-a{
148
-    display: inline-block;
149
-}
150
-
151
-@media screen and (min-width: 801px) and (max-width: 1400px) {
152
-    .main{
153
-        
154
-    }
155
-}
156
-
157
-//移动端样式
158
-@media screen and (max-width:800px) {
159
-   
160
-    .main {
161
-        width: 100%;
162
-        padding-top: 11vw;
163
-        padding-bottom: 16vw;
164
-        .content{
165
-            width: 92vw;
166
-            margin: 0 auto;
167
-            .product_title{
168
-                font-family: Source Han Sans CN;
169
-                font-weight: bold;
170
-                font-size: 6.375vw;
171
-                color: #333333;
172
-                text-align: center;
173
-                padding-top: 15vw;
174
-            }
175
-
176
-            .product_classification{
177
-                font-size: 3.75vw;
178
-                .dividingLine{
179
-                    margin: 0 5.5vw;
180
-                    display: inline-block;
181
-                }
182
-            }
183
-
184
-            
185
-
186
-        }
187
-        .truck_li{
188
-            width: 92vw;
189
-            height: 91.5vw;
190
-            margin: 0 auto;
191
-            padding:0 5.25vw;
192
-            box-sizing: border-box;
193
-            margin-bottom: 51.125vw;
194
-            display: block;
195
-
196
-            .li_tit{
197
-                padding-top: 10.625vw;
198
-                font-size: 4.75vw;
199
-                margin-bottom: 5.25vw;
200
-            }
201
-            .li_cont{
202
-                font-size: 3.75vw;
203
-                line-height: 6.375vw;
204
-                margin-bottom: 7.5vw;
205
-            }
206
-            .li_parameter{
207
-                flex-wrap: wrap;
208
-                .txt1{
209
-                    font-size: 3.75vw;
210
-                    margin-bottom: 10px;
211
-                }
212
-                .txt2{
213
-                    font-weight: bold;
214
-                    font-size: 3.75vw;
215
-                }
216
-                .line{
217
-                    margin: 0 9.5vw;
218
-                }
219
-                .line:nth-last-child(2){
220
-                    display: none;
221
-                }
222
-
223
-                > div:last-child {
224
-                    margin-top: 10vw;
225
-                }
226
-            }
227
-            .view_more{
228
-                width: 92vw;
229
-                position: absolute;
230
-                bottom: -27.125vw;
231
-                left: 0;
232
-            }
233
-            .li_banner{
234
-                width: 62.625vw;
235
-                height: 40.125vw;
236
-                position: absolute;
237
-                top: inherit;
238
-                right: 3.125vw;
239
-                bottom: -12.5vw;
240
-            }
241
-        }
242
-    }
243
-}

+ 0
- 263
src/pages/serve/App.js Datei anzeigen

@@ -1,263 +0,0 @@
1
-import Swiper from 'swiper/bundle'
2
-import gsap from 'gsap'
3
-import LocomotiveScroll from 'locomotive-scroll';
4
-import Common from '../common/js/Common'
5
-import {
6
-    isMobile
7
-} from '../common/js/utils'
8
-
9
-export default class App {
10
-    constructor() {
11
-        let common = new Common(document.querySelector('.main'),3)   //导航菜单高亮,0是首页,后面的按顺序添加
12
-        this.isMobile = isMobile()
13
-        
14
-        this.scroll = new LocomotiveScroll();
15
-
16
-        // 图片及视频资源懒加载。防止阻塞js执行
17
-        let lazyDoms = document.querySelectorAll(".lazy");
18
-        let isMob=this.isMobile;
19
-        lazyDoms.forEach((item) => {
20
-            if (item.nodeName == "PICTURE") {
21
-                item.children[0].setAttribute("srcset", item.children[0].dataset.srcset);
22
-                item.children[1].setAttribute("src", item.children[1].dataset.src);
23
-            }
24
-            if (item.nodeName == "IMG") {
25
-                if(isMob){item.setAttribute("src", item.dataset.srcm);}
26
-                else{
27
-                    item.setAttribute("src", item.dataset.src);
28
-                }
29
-                
30
-            }
31
-            if (item.nodeName == "VIDEO") {
32
-                console.log(item, 'item---2')
33
-                item.setAttribute("src", item.dataset.src);
34
-                // item.load();
35
-            }
36
-        });
37
-        this.init();
38
-        
39
-    }
40
-    init() {
41
-        let isMob=this.isMobile;
42
-        if(!isMob){
43
-            let fourCon = document.querySelector(".fourCon");
44
-            let fourSons = document.querySelectorAll(".fourSon");
45
-            let fourR = document.querySelector(".fourR");
46
-            let fourRsons = document.querySelectorAll(".fourRson");
47
-            
48
-            let sonArr = [];
49
-            fourSons.forEach((item,index)=>{
50
-                let childHeight = item.offsetHeight;
51
-                if(index==3)childHeight=childHeight*0.5;
52
-                sonArr.push([childHeight,index]);
53
-            });
54
-            fourRsons.forEach((item,index)=>{
55
-                item.style.width =fourR.offsetWidth+'px';
56
-                item.style.height =fourR.offsetWidth+'px';
57
-                item.style.zIndex =fourRsons.length-index;
58
-            });
59
-            function changeDiv(num,val){
60
-                fourSons.forEach((item,index)=>{
61
-                    if(index==num){
62
-                        let nvl=val*100;
63
-                        nvl=nvl>97?100:nvl<3?0:nvl;
64
-                        nvl=nvl.toFixed(2);
65
-                        if(index<fourSons.length-1)fourRsons[index].style.clipPath ='inset(0px 0px '+nvl+'%)';
66
-                        if(index<fourSons.length)fourSons[index+1].style.opacity  =0.3+(val>0.7?0.7:val);
67
-                    }
68
-                })
69
-            }
70
-            
71
-            
72
-            // 获取元素的滚动条高度
73
-            let scrollHeight = fourCon.scrollHeight;
74
-            let conStart=0;
75
-            let conEnd=0;
76
-            function updateScrollChange1() {
77
-                try {
78
-                    let hh=fourCon.getBoundingClientRect();
79
-                    let scrollTop = hh.top;
80
-                    let scrollBottom = hh.bottom;
81
-                let scrollY = window.scrollY;
82
-
83
-                
84
-                if (scrollTop<0&conStart==0) {
85
-                    conStart=scrollY;
86
-                    conEnd=scrollY+scrollHeight;
87
-                    let startH=0;
88
-                    sonArr.forEach((item,index)=>{
89
-                        let childH = scrollY+startH+item[0];
90
-                        let childHs = scrollY+startH;
91
-                        startH+=item[0];
92
-                        item.push(childH)
93
-                        item.push(childHs)
94
-                    });
95
-                }else if(scrollTop<0&&scrollY>conStart&&scrollY<conEnd){
96
-                    
97
-                    
98
-                    
99
-                    sonArr.forEach((item,index)=>{
100
-                        let chazhi=item[2]-scrollY;
101
-                        if(chazhi>0&&scrollY<item[2]&&scrollY>item[3]){
102
-                            let bili=chazhi/item[0];
103
-                            bili=bili.toFixed(4);
104
-                            bili=parseFloat(bili);
105
-                            bili=1-bili;
106
-                            bili=bili.toFixed(4);
107
-                            bili=parseFloat(bili);
108
-                            changeDiv(index,bili)
109
-                        }
110
-                    });
111
-                }
112
-                } catch (error) {}
113
-            }
114
-            
115
-                
116
-            // 添加滚动事件监听器
117
-            window.addEventListener('scroll', updateScrollChange1);
118
-        }
119
-        
120
-        let twoSwiper = new Swiper('.twoSwiper', {
121
-            autoplay: false,//可选选项,自动滑动
122
-            // 如果需要前进后退按钮
123
-            navigation: {
124
-                nextEl: '.btn-nextP4',
125
-                prevEl: '.btn-prevP4',
126
-            }
127
-        });
128
-        //留言提交
129
-        let messCk = document.querySelector(".chooseBuy");
130
-        let messCks = document.querySelectorAll(".chooseTDiv div");
131
-
132
-        let buyType = document.querySelector('input[name="buyType"]');
133
-
134
-        messCk.addEventListener("click", (e) => {
135
-                
136
-            if(messCk.classList.contains("showChooseTDiv")){
137
-                messCk.classList.remove("showChooseTDiv");
138
-            }else{
139
-                messCk.classList.add("showChooseTDiv");
140
-            }
141
-            
142
-        });
143
-        messCks.forEach((item,index)=>{
144
-            item.addEventListener("click", (e) => {
145
-                let typeVal = item.getAttribute('data-type');
146
-                buyType.value = typeVal;
147
-                let txtShow=e.target.innerText;
148
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
149
-                if(item.parentNode.parentNode.querySelector(".chooseTshow").classList.contains("errorMessage")){
150
-                    item.parentNode.parentNode.querySelector(".chooseTshow").classList.remove("errorMessage");
151
-                }
152
-            });
153
-        })
154
-        //表单提交
155
-        // 获取表单元素
156
-        this.form = document.querySelector('.messageCon');
157
-        if (this.form) {
158
-            this.form.addEventListener('submit', this.handleFormSubmit.bind(this));
159
-        }
160
-    }
161
-    handleFormSubmit(event) {
162
-        event.preventDefault(); // 阻止默认的表单提交行为
163
-
164
-        // 获取所有必填输入字段
165
-        let nameInput = document.querySelector('input[name="name"]');
166
-        let phoneInput = document.querySelector('input[name="phone"]');
167
-        let mailInput = document.querySelector('input[name="mail"]');
168
-        let buyTypeInput = document.querySelector('input[name="buyType"]');
169
-        // 获取 textarea 元素
170
-        let textarea = this.form.querySelector('.searchInput');
171
-        if (!textarea) {
172
-            console.error('textarea 元素未找到');
173
-            return;
174
-        }
175
-
176
-        // 获取 textarea 的值
177
-        let message = textarea.value.trim();
178
-        if (message === '') {
179
-            textarea.classList.add("errorMessage");
180
-            alert('请输入留言');
181
-            return;
182
-        }else{
183
-            textarea.classList.remove("errorMessage");
184
-        }
185
-
186
-        // 校验逻辑
187
-        if (!this.validateInput(nameInput)) {
188
-            nameInput.classList.add("errorMessage");
189
-            alert('请输入名字');
190
-            return;
191
-        }else{
192
-            nameInput.classList.remove("errorMessage");
193
-        }
194
-        if (!this.validatePhone(phoneInput)) {
195
-            phoneInput.classList.add("errorMessage");
196
-            alert('请输入有效的电话号码');
197
-            return;
198
-        }else{
199
-            phoneInput.classList.remove("errorMessage");
200
-        }
201
-        if (!this.validateEmail(mailInput)) {
202
-            mailInput.classList.add("errorMessage");
203
-            alert('请输入有效的邮箱地址');
204
-            return;
205
-        }else{
206
-            mailInput.classList.remove("errorMessage");
207
-        }
208
-        if (!this.validateInput(buyTypeInput)) {
209
-            buyTypeInput.classList.add("errorMessage");
210
-            alert('请选择购买类型');
211
-            return;
212
-        }else{
213
-            buyTypeInput.classList.remove("errorMessage");
214
-        }
215
-        
216
-        // 如果校验通过,可以继续提交表单或执行其他操作
217
-        // 例如,使用 AJAX 提交表单数据
218
-        this.submitFormData(this.form);
219
-    }
220
-
221
-    validateInput(input) {
222
-        // 检查输入字段是否为空
223
-        return input && input.value.trim() !== '';
224
-    }
225
-    validatePhone(input) {
226
-        // 定义电话号码的正则表达式
227
-        let phoneRegex = /^(\+?\d{1,3}[-.\s]?)?(\(?\d{1,4}\)?[-.\s]?)?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}$/;
228
-        return phoneRegex.test(input.value.trim());
229
-    }
230
-
231
-    validateEmail(input) {
232
-        // 定义邮箱地址的正则表达式
233
-        let emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
234
-        return emailRegex.test(input.value.trim());
235
-    }
236
-
237
-    submitFormData(form) {
238
-        // 使用 AJAX 提交表单数据
239
-        let isMobile = this.isMobile;
240
-        let formData = new FormData(form);
241
-        let nameInput = isMobile?document.querySelector('.messSubM'):document.querySelector('.messSubPc');
242
-        nameInput.classList.add("messSuccess");
243
-        fetch(form.action, {
244
-            method: form.method,
245
-            body: formData
246
-        })
247
-        .then(response => response.json())
248
-        .then(data => {
249
-            console.log('Success:', data);
250
-            nameInput.classList.add("messSuccess");
251
-            // 处理成功响应
252
-            alert('提交成功');
253
-            form.reset(); // 重置表单
254
-        })
255
-        .catch((error) => {
256
-            console.error('Error:', error);
257
-            // 处理错误
258
-            alert('提交失败,请稍后再试');
259
-        });
260
-    }
261
-
262
-
263
-}

BIN
src/pages/serve/images/sixIcon.jpg Datei anzeigen


+ 0
- 233
src/pages/serve/index.html Datei anzeigen

@@ -1,233 +0,0 @@
1
-<!DOCTYPE html>
2
-<html lang="en">
3
-  <head>
4
-    <meta charset="utf-8" />
5
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
-    <title>服务</title>
7
-    <meta name="description" content=""/>
8
-    <meta name="Keywords" content=""/>
9
-    <meta
10
-      content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width"
11
-      name="viewport"
12
-    />
13
-    <link
14
-      href="./static/css/swiper-bundle.min.css"
15
-      rel="stylesheet"
16
-      type="text/css"
17
-    />
18
-    <%= require('../common/tpl/headerLink.tpl') %>
19
-  </head>
20
-
21
-  <body>
22
-    <%= require('../common/tpl/header.tpl') %>
23
-    
24
-    <div class="main">
25
-      <div class="four">
26
-        <div class="h3">购车流程</div>
27
-        <div class="fourCon">
28
-          <div class="fourL">
29
-            <div>
30
-              <div class="fourHide">
31
-                <div class="fourSon">
32
-                  <div class="fourLine"></div>
33
-                  <div class="fourIcon">
34
-                    <div class="fourdiv"></div>
35
-                  </div>
36
-                  <div class="fourText">
37
-                    <div class="h6">01</div>
38
-                    <div class="h4">预约试驾</div>
39
-                    <div class="h6R">
40
-                      在官网找到预约试驾入口,填写相关信息,提交申请后,等待工作人员与您联系,确认试驾时间和地点。
41
-                    </div>
42
-                    <div class="fourLimg"><img src="./static/images/index/four1.jpg" alt=""></div>
43
-                    <a class="btn btnBlack" href="">查看更多</a>
44
-                  </div>
45
-                </div>
46
-                <div class="fourSon">
47
-                  <div class="fourLine"></div>
48
-                  <div class="fourIcon">
49
-                    <div class="fourdiv"></div>
50
-                  </div>
51
-                  <div class="fourText">
52
-                    <div class="h6">02</div>
53
-                    <div class="h4">销售回访</div>
54
-                    <div class="h6R">
55
-                      我们将安排销售经理与您接洽,以电话访问的方式进一步确认您的购车需求,为您推荐适合的产品与方。
56
-                    </div>
57
-                    <div class="fourLimg"><img src="./static/images/index/four2.jpg" alt=""></div>
58
-                    <a class="btn btnBlack" href="">查看更多</a>
59
-                  </div>
60
-                </div>
61
-                <div class="fourSon">
62
-                  <div class="fourLine"></div>
63
-                  <div class="fourIcon">
64
-                    <div class="fourdiv"></div>
65
-                  </div>
66
-                  <div class="fourText">
67
-                    <div class="h6">03</div>
68
-                    <div class="h4">签订合同</div>
69
-                    <div class="h6R">
70
-                      在官网找到预约试驾入口,填写相关信息,提交申请后,等待工作人员与您联系,确认试驾时间和地点。
71
-                    </div>
72
-                    <div class="fourLimg"><img src="./static/images/index/four3.jpg" alt=""></div>
73
-                    <a class="btn btnBlack" href="">查看更多</a>
74
-                  </div>
75
-                </div>
76
-                <div class="fourSon">
77
-                  <div class="fourLine"></div>
78
-                  <div class="fourIcon">
79
-                    <div class="fourdiv"></div>
80
-                  </div>
81
-                  <div class="fourText">
82
-                    <div class="h6">04</div>
83
-                    <div class="h4">厂家生产</div>
84
-                    <div class="h6R">
85
-                      合同签订后,我们将开始为您打造高品质的产品,保质、保量、按时完成产品生产。
86
-                    </div>
87
-                    <div class="fourLimg"><img src="./static/images/index/four4.jpg" alt=""></div>
88
-                    <a class="btn btnBlack" href="">查看更多</a>
89
-                  </div>
90
-                </div>
91
-              </div>
92
-              <!-- <div class="fourZ"></div> -->
93
-            </div>
94
-          </div>
95
-          <div class="fourR">
96
-            <div class="fourRson"><img src="./static/images/index/four1.jpg" alt=""></div>
97
-            <div class="fourRson"><img src="./static/images/index/four2.jpg" alt=""></div>
98
-            <div class="fourRson"><img src="./static/images/index/four3.jpg" alt=""></div>
99
-            <div class="fourRson"><img src="./static/images/index/four4.jpg" alt=""></div>
100
-            <div class="fourRson"><img src="./static/images/index/four5.jpg" alt=""></div>
101
-          </div>
102
-        </div>
103
-      </div>
104
-      <div class="three" id="serve2">
105
-        <div class="threeTit">
106
-          <div class="h3">无论您在何方,皆可轻松踏入,<br class="mTxt">领略同质优享</div>
107
-          <a class="btn btnBlack" href="./serveMap.html">查看全国门店分布</a>
108
-        </div>
109
-        <div class="threeDiv">
110
-          <div>
111
-            <img src="./static/images/serve/two1.jpg" alt="">
112
-            <div class="h4">门店名称</div>
113
-            <div class="h6R">在官网找到预约试驾入口,填写相关信息,提交申请后,等待工作人员与您联系,确认试驾时间和地点。</div>
114
-          </div>
115
-          <div>
116
-            <img src="./static/images/serve/two2.jpg" alt="">
117
-            <div class="h4">门店名称</div>
118
-            <div class="h6R">在官网找到预约试驾入口,填写相关信息,提交申请后,等待工作人员与您联系,确认试驾时间和地点。</div>
119
-          </div>
120
-          <div>
121
-            <img src="./static/images/serve/two2.jpg" alt="">
122
-            <div class="h4">门店名称</div>
123
-            <div class="h6R">在官网找到预约试驾入口,填写相关信息,提交申请后,等待工作人员与您联系,确认试驾时间和地点。</div>
124
-          </div>
125
-        </div>
126
-      </div>
127
-      <div class="three" id="serve3">
128
-        <div class="threeTit">
129
-          <div class="h3">在这里,<br>每一刻都是独特体验</div>
130
-          <a class="btn btnBlack" href="./serveBooking.html">门店预约体验</a>
131
-        </div>
132
-        <img src="./static/images/index/three.jpg" alt="">
133
-      </div>
134
-      <div class="six" id="serve4">
135
-        <div class="h3">服务体系</div>
136
-        <div class="h6R">时刻守护您的每一次出行,让您尽享无忧驾驶之旅</div>
137
-        <div class="sixCon">
138
-          <div>
139
-            <div class="sixIcon"><span class="iconfont icon-dianhua"></span></div>
140
-            <div class="h5">全球物流配件中心</div>
141
-            <div class="h6R">福田汽车2010年于北京建立服务培训中心,培训中心设置了发动机实训区、整车电器实训区、整车底盘实训区和集理论教学、模拟演示为一体的电教教室等,为服务商提供技术培训,为客户服务提供坚实的技术保障。</div>
142
-          </div>
143
-          <div>
144
-            <div class="sixIcon"><span class="iconfont icon-dianhua"></span></div>
145
-            <div class="h5">全球客户互动中心</div>
146
-            <div class="h6R">福田汽车在华北、华中地区建立了两大配件物流中心,占地近400亩,投资总额超过15亿元。通过采用国际先进的仓储管理信息系统,条形码读取技术结合PDA移动终端等,实现仓储作业的高度信息化管理,形成了配件总库、代理库、服务站(专卖店)三级配件供应体系。</div>
147
-          </div>
148
-          <div>
149
-            <div class="sixIcon"><span class="iconfont icon-dianhua"></span></div>
150
-            <div class="h5">全球服务培训中心</div>
151
-            <div class="h6R">福田汽车客户互动中心成立于2002年,业务团队达240人,年信息处理能力达600万条以上。通过微信、官网、WEB等多媒体渠道、7*24小时面向客户提供汽车专业知识、服务政策咨询、维修与保养预约、车辆救援、故障预警等服务项目,努力践行提升客户满意度与客户体验。</div>
152
-          </div>
153
-        </div>
154
-      </div>
155
-      <div class="two">
156
-        <div class="h4">为您的安心出行保驾护航</div>
157
-        <div class="swiper twoSwiper">
158
-          <div class="swiper-wrapper">
159
-            <div class="swiper-slide">
160
-              <img class="lazy" data-src="./static/images/serve/twos1.jpg" data-srcM="./static/images/serve/twos1.jpg" alt="" />
161
-              <div class="swTxt">
162
-                <div class="h5">质量保证</div>
163
-                <div class="h6R">福田新能源汽车承诺依据国家有关要求,针对动力电池拆装、贮存、包装、运输及梯度利用、报废建立完整的管理流程,并进行动力电池溯源信息实时上传国家监测与管理平台,承诺所有动力电池最终能够在相关法律、法规框架下进行无害化处理。新能源商用车质保标准 5年或20万公里,以先到达为准;新能源乘用车质保标准 8年</div>
164
-              </div>
165
-            </div>
166
-            <div class="swiper-slide">
167
-              <img class="lazy" data-src="./static/images/serve/twos1.jpg" data-srcM="./static/images/serve/twos1.jpg" alt="" />
168
-              <div class="swTxt">
169
-                <div class="h5">科技卡文</div>
170
-                <div class="h6R">福田新能源汽车承诺依据国家有关要求,针对动力电池拆装、贮存、包装、运输及梯度利用、报废建立完整的管理流程,并进行动力电池溯源信息实时上传国家监测与管理平台,承诺所有动力电池最终能够在相关法律、法规框架下进行无害化处理。新能源商用车质保标准 5年或20万公里,以先到达为准;新能源乘用车质保标准 8年</div>
171
-              </div>
172
-            </div>
173
-            <div class="swiper-slide">
174
-              <img class="lazy" data-src="./static/images/serve/twos1.jpg" data-srcM="./static/images/serve/twos1.jpg" alt="" />
175
-              <div class="swTxt">
176
-                <div class="h5">生态卡文</div>
177
-                <div class="h6R">我们与合作伙伴是一体,共同打造具有革新意义的商业模式。</div>
178
-              </div>
179
-            </div>
180
-            <div class="swiper-slide">
181
-              <img class="lazy" data-src="./static/images/serve/twos1.jpg" data-srcM="./static/images/serve/twos1.jpg" alt="" />
182
-              <div class="swTxt">
183
-                <div class="h5">零碳卡文</div>
184
-                <div class="h6R">我们专注打造零碳产品和方案,让低碳惠及每一个人。</div>
185
-              </div>
186
-            </div>
187
-          </div>
188
-          <!-- 如果需要导航按钮 -->
189
-          <div class="btn-prev btn-prevP4"><span class="icon iconfont icon-jiantou"></span></div>
190
-          <div class="btn-next btn-nextP4"><span class="icon iconfont icon-jiantou"></span></div>
191
-        </div>
192
-      </div>
193
-      <div class="five">
194
-        <div class="fiveText">
195
-          <div class="h4">构建便捷的服务网络</div>
196
-          <div class="h6R">专业守候,全方位服务,为爱车保驾护航</div>
197
-          <div class="btn">查看售后服务网点地图</div>
198
-        </div>
199
-        <img class="lazy" data-src="./static/images/serve/five.jpg" data-srcM="./static/images/serve/five.jpg" alt="" />
200
-        
201
-      </div>
202
-      <div class="message" id="serve5">
203
-        <div class="h3">用户留言</div>
204
-        <div class="h6R">欢迎来到我们的网站留言区!这里是一个开放、包容的交流空间,您的声音对我们至关重要。</div>
205
-          <form class="messageCon" action="/webback/bottom/search" method="post">
206
-            <div class="messL">
207
-              <input type="text" value="" name="name" placeholder="名字*" />
208
-              <input type="text" value="" name="phone" placeholder="电话*" />
209
-              <input type="text" value="" name="mail" placeholder="邮箱*" />
210
-              <div class="chooseBuy">
211
-                <input type="text" value="1" name="buyType" />
212
-                <div class="chooseTshow"><span class="showTxt">购车</span><span class="iconfont icon-arrow-right"></span></div>
213
-                <div class="chooseTDiv">
214
-                  <div data-type="1">购车</div>
215
-                  <div data-type="2">咨询</div>
216
-                  <div data-type="3">售后</div>
217
-                </div>
218
-              </div>
219
-              
220
-            </div>
221
-            <div class="messR">
222
-              <textarea class="searchInput" name="text" placeholder="留言*"></textarea>
223
-              <div class="h7R messSubM">已收到您的留言,此问题正在解决中</div>
224
-              <div class="submitDiv"><input type="submit" class="submit" value="确认提交" /></div>
225
-            </div>
226
-					</form>
227
-          <div class="h7R messSubPc">已收到您的留言,此问题正在解决中</div>
228
-      </div>
229
-    </div>
230
-    <%= require('../common/tpl/footer.tpl') %>
231
-    <%= require('../common/tpl/bottomBar.tpl') %>
232
-  </body>
233
-</html>

+ 0
- 15
src/pages/serve/index.js Datei anzeigen

@@ -1,15 +0,0 @@
1
-import "./../common/css/common.less";
2
-import "./index.less";
3
-import vhCheck from "vh-check"; //移动端浏览器100vh高度不一致
4
-import App from './App.js';
5
-
6
-// swiper的css目前环境解析不出来,放static下,不走webpack 
7
-//import 'swiper/swiper-bundle.css';
8
-
9
-vhCheck();
10
-//禁止浏览器刷新后回到上一个页面滚动位置
11
-if ('scrollRestoration' in history) {
12
-    history.scrollRestoration = 'manual';
13
-}
14
-
15
-new App();

+ 0
- 717
src/pages/serve/index.less Datei anzeigen

@@ -1,717 +0,0 @@
1
-//pc端样式
2
-.main {
3
-  width: 100%;
4
-  max-width: 1920px;
5
-  margin: 0 auto;
6
-}
7
-
8
-.three{
9
-  width: 100%;
10
-  padding-top: 120px;
11
-  .threeTit{
12
-    width: 100%;
13
-    max-width: 1300px;
14
-    margin: 0 auto;
15
-    display: flex;
16
-    justify-content: space-between;
17
-    br{
18
-      display: none;
19
-    }
20
-  }
21
-  &>img{
22
-    width: 100%;
23
-    display: block;
24
-    margin-top: 60px;
25
-  }
26
-  .threeDiv{
27
-    width: 100%;
28
-    max-width: 1300px;
29
-    display: flex;
30
-    margin: 0 auto;
31
-    margin-top: 50px;
32
-    justify-content: space-between;
33
-    &>div{
34
-      width: 406px;
35
-      .h4{
36
-        margin-top: 30px;
37
-        margin-bottom: 10px;
38
-      }
39
-    }
40
-  }
41
-}
42
-.four{
43
-  width: 100%;
44
-  max-width: 1300px;
45
-  margin: 0 auto;
46
-  padding-top: 190px;
47
-  box-sizing: border-box;
48
-  .h3{
49
-    text-align: center;
50
-    margin-bottom: 50px;
51
-  }
52
-  .fourCon{
53
-    display: flex;
54
-    width: 100%;
55
-    &>div{
56
-      width: 50%;
57
-    }
58
-    .fourL{
59
-      box-sizing: border-box;
60
-      &>div{
61
-        width: 100%;
62
-        // height: 100%;
63
-        position: relative;
64
-        .fourHide{
65
-          // position: absolute;
66
-          width: 100%;
67
-          // height: 100%;
68
-          // top: 0px;
69
-          // left: 0px;
70
-          // overflow-y: auto;
71
-          .fourSon{
72
-            opacity: 0.3;
73
-            &:first-child{
74
-              opacity: 1;
75
-            }
76
-            
77
-          }
78
-          &>div{
79
-            width: 100%;
80
-            height: 88%;
81
-            display: flex;
82
-            position: relative;
83
-            .fourLine{
84
-              width: 1px;
85
-              height: 100%;
86
-              background: #48a038;
87
-              position: absolute;
88
-              top: 0;
89
-              left: 15px;
90
-              // transform: translateX(-50%);
91
-            }
92
-            .fourIcon{
93
-              width: 30px;
94
-              height: 30px;
95
-              position: relative;
96
-              
97
-              .fourdiv{
98
-                width: 30px;
99
-                height: 30px;
100
-                background: #48a038;
101
-                position: absolute;
102
-                top: 0;
103
-                left: 0;
104
-                &::before{
105
-                  content: '';
106
-                  position: absolute;
107
-                  left: 50%;
108
-                  top: 50%;
109
-                  transform: translate(-50%,-5px);
110
-                  width: 10px;
111
-                  height: 10px;
112
-                  background: #ffffff;
113
-                  border-radius: 50%;
114
-                }
115
-              }
116
-            }
117
-            .fourText{
118
-              width: calc(100% - 30px);
119
-              box-sizing: border-box;
120
-              padding: 0 18% 270px 40px;
121
-              .h4{
122
-                margin-top: 10px;
123
-                margin-bottom: 10px;
124
-              }
125
-              .h6R{
126
-                margin-bottom: 36px;
127
-              }
128
-              .fourLimg{
129
-                width: 100%;
130
-                display: none;
131
-                img{
132
-                  width: 100%;
133
-                }
134
-              }
135
-            }
136
-            &:last-child{
137
-              .fourText{
138
-                padding: 0 18% 100px 40px;
139
-              }
140
-            }
141
-          }
142
-        }
143
-        .fourZ{
144
-          width: 100%;
145
-          height: 12.2%;
146
-          position: absolute;
147
-          bottom: 0;
148
-          left: 0;
149
-          background: #ffffff;
150
-          opacity: 0.8;
151
-        }
152
-      }
153
-    }
154
-    .fourR{
155
-      box-sizing: border-box;
156
-      position: -webkit-sticky;
157
-      position: sticky;
158
-      top: 80px;
159
-      overflow: hidden;
160
-      max-height: 650px;
161
-      .fourRson{
162
-        position: absolute;
163
-        width: 100%;
164
-        height: 100%;
165
-        img{
166
-          object-fit: cover;
167
-          display: block;
168
-        }
169
-      }
170
-    }
171
-    
172
-  }
173
-  
174
-}
175
-.five{
176
-  width: 100%;
177
-  text-align: center;
178
-  position: relative;
179
-  color: #ffffff;
180
-  img{
181
-    width: 100%;
182
-    display: block;
183
-  }
184
-  .fiveText{
185
-    position: absolute;
186
-    width: 100%;
187
-    top: 0px;
188
-    left: 0px;
189
-    padding-top: 142px;
190
-    .h6R{
191
-      margin-top: 20px;
192
-      margin-bottom: 49px;
193
-      br{
194
-        display: none;
195
-      }
196
-    }
197
-    .h4R{
198
-      span{
199
-        font-size: 24px;
200
-        margin-right: 10px;
201
-      }
202
-    }
203
-    
204
-  }
205
-}
206
-.six{
207
-  width: 100%;
208
-  max-width: 1300px;
209
-  margin: 0 auto;
210
-  text-align: center;
211
-  padding-top: 120px;
212
-  .h3{
213
-    margin-bottom: 30px;
214
-  }
215
-  .h5{
216
-    margin-top: 50px;
217
-    margin-bottom: 30px;
218
-  }
219
-  
220
-  .sixCon{
221
-    display: flex;
222
-    width: 100%;
223
-    justify-content: space-around;
224
-    margin-top: 60px;
225
-    &>div{
226
-      width: 350px;
227
-    }
228
-    .sixIcon{
229
-      width: 116px;
230
-      height: 116px;
231
-      background: #FAFAFA url(./images/sixIcon.jpg) no-repeat;
232
-      background-size: contain;
233
-      border-radius: 50%;
234
-      text-align: center;
235
-      line-height: 116px;
236
-      margin: 0 auto;
237
-    }
238
-    .h6R{
239
-      text-align: left;
240
-    }
241
-    
242
-  }
243
-}
244
-.two{
245
-  width: 100%;
246
-  max-width: 1300px;
247
-  margin: 0 auto;
248
-  text-align: center;
249
-  padding-top: 110px;
250
-  padding-bottom: 180px;
251
-  .swiper{
252
-    margin-top: 30px;
253
-  }
254
-  .swiper-slide{
255
-    
256
-    img{
257
-      width: 100%;
258
-      display: block;
259
-    }
260
-    .swTxt{
261
-      position: absolute;
262
-      bottom: 0px;
263
-      left: 0px;
264
-      width: 100%;
265
-      padding: 18px 88px;
266
-      width: 100%;
267
-      box-sizing: border-box;
268
-      text-align: left;
269
-      color: #fff;
270
-      .h5{
271
-        margin-bottom: 12px;
272
-      }
273
-    }
274
-  }
275
-  .btn-prev,.btn-next{
276
-    position: absolute;
277
-    top: 50%;
278
-    margin-top: -22px;
279
-    width: 44px;
280
-    height: 44px;
281
-    border: 1px solid #fff;
282
-    z-index: 2;
283
-    text-align: center;
284
-    color: #fff;
285
-    background: transparent;
286
-    transition: all .3s ease-in-out;
287
-    cursor: pointer;
288
-    span{
289
-      font-size: 36px;
290
-      display: inline-block;
291
-      transform: rotate(90deg);
292
-      line-height: 44px;
293
-
294
-    }
295
-    &:hover{
296
-      background: #48a038;
297
-      border-color: #48a038;
298
-      color: #fff;
299
-    }
300
-  }
301
-  .btn-prev{
302
-    left: 40px;
303
-    transform: rotate(-180deg);
304
-  }
305
-  .btn-next{
306
-    right: 40px;
307
-  }
308
-  .swiper-button-disabled{
309
-    cursor: no-drop;
310
-    background: transparent;
311
-    color: #979292;
312
-    border-color: #979292;
313
-    &:hover{
314
-      background: transparent;
315
-      border-color: #979292;
316
-      color: #979292;
317
-    }
318
-  }
319
-}
320
-
321
-.message{
322
-  width: 100%;
323
-  max-width: 1300px;
324
-  margin: 0 auto;
325
-  padding-top: 120px;
326
-  padding-bottom: 120px;
327
-  text-align: center;
328
-  .h6R{
329
-    margin-top: 30px;
330
-    margin-bottom: 40px;
331
-  }
332
-  .messageCon{
333
-    display: flex;
334
-    justify-content: space-between;
335
-    text-align: left;
336
-    color: #979292;
337
-    .messL{
338
-      width: 300px;
339
-      &>input{
340
-        width: 100%;
341
-        border: 1px solid #BBBEC0;
342
-        box-sizing: border-box;
343
-        height: 50px;
344
-        line-height: 50px;
345
-        font-size: 14px;
346
-        padding: 0px 20px;
347
-        margin-top: 15px;
348
-        &:first-child{
349
-          margin-top: 0px;
350
-        }
351
-      }
352
-      .chooseBuy{
353
-        width: 100%;
354
-        height: 50px;
355
-        position: relative;
356
-        border: 1px solid #BBBEC0;
357
-        box-sizing: border-box;
358
-        margin-top: 15px;
359
-        color: #333333;
360
-        &>input{
361
-          display: none;
362
-        }
363
-        .chooseTshow{
364
-          width: 100%;
365
-          height: 100%;
366
-          line-height: 50px;
367
-          box-sizing: border-box;
368
-          padding: 0px 17px 0px 20px;
369
-          cursor: pointer;
370
-          .iconfont{
371
-            font-size: 18px;
372
-            float: right;
373
-            transform: rotate(90deg);
374
-          }
375
-        }
376
-        .chooseTDiv{
377
-          width: 100%;
378
-          position: absolute;
379
-          top: 50px;
380
-          left: 0px;
381
-          background: #F5F5F5;
382
-          box-shadow: 0px 9px 34px 9px rgba(0, 0, 0, 0.1);
383
-          box-sizing: border-box;
384
-          padding: 10px 20px;
385
-          font-size: 14px;
386
-          z-index: 2;
387
-          clip-path: inset(0px 0px 100% 0px);
388
-          // display: none;
389
-          transition: all 0.6s ease-in-out;
390
-          &>div{
391
-            padding: 10px 0px;
392
-            cursor: pointer;
393
-            transition: all .3s ease-in-out;
394
-            &:hover{
395
-              color: #48a038;
396
-            }
397
-          }
398
-        }
399
-      }
400
-      .showChooseTDiv{
401
-        .chooseTDiv{
402
-          clip-path: inset(0px 0px 0% 0px);
403
-        }
404
-      }
405
-    }
406
-    .messR{
407
-      width: calc(100% - 315px);
408
-      height: 245px;
409
-      position: relative;
410
-      textarea{
411
-        width: 100%;
412
-        height: 100%;
413
-        border: 1px solid #BBBEC0;
414
-        box-sizing: border-box;
415
-        padding: 18px 20px;
416
-      }
417
-      .submitDiv{
418
-        position: absolute;
419
-        bottom: 20px;
420
-        right: 20px;
421
-        input{
422
-          cursor: pointer;
423
-          font-size: 14px;
424
-          color: #333333;
425
-          font-weight: bold;
426
-          padding: 10px;
427
-          background: transparent;
428
-          border: 0px;
429
-          position: relative;
430
-          z-index: 2;
431
-          transition: all .3s ease-in-out;
432
-        }
433
-        &::before{
434
-          content: '';
435
-          position: absolute;
436
-          left: 0px;
437
-          top: 0px;
438
-          width: 100%;
439
-          height: 100%;
440
-          background: #48a038;
441
-          clip-path: inset(0px 0px 0px 100%);
442
-          transition: all .3s ease-in-out;
443
-          opacity: 0;
444
-        }
445
-        &:hover{
446
-          input{color: #ffffff;}
447
-          &::before{
448
-            clip-path: inset(0px 0px 0px 0px);
449
-            opacity: 1;
450
-          }
451
-        }
452
-      }
453
-      .h7R{
454
-        display: none;
455
-      }
456
-    }
457
-    &>div{.errorMessage{
458
-      border-color: red;
459
-    }}
460
-  }
461
-  .h7R{
462
-    text-align: right;
463
-    margin-top: 20px;
464
-    color: #48a038;
465
-    display: none;
466
-  }
467
-  .messSuccess{
468
-    display: block;
469
-  }
470
-}
471
-
472
-.pcTxt{
473
-  display: block;
474
-}
475
-.mTxt{
476
-  display: none;
477
-}
478
-@media screen and (min-width: 801px) and (max-width: 1400px) {
479
-  .main{
480
-    padding: 0px 20px;
481
-    box-sizing: border-box;
482
-  }
483
-}
484
-
485
-//移动端样式
486
-@media screen and (max-width:800px) {
487
-  .pcTxt{
488
-    display: none;
489
-  }
490
-  .mTxt{
491
-    display: block;
492
-  }
493
-  .three{
494
-    padding: 0 15px;
495
-    padding-top: 110px;
496
-    box-sizing: border-box;
497
-    .threeTit{
498
-      flex-wrap: wrap;
499
-      justify-content: center;
500
-      text-align: center;
501
-      br{
502
-        display: block;
503
-      }
504
-      .btn{
505
-        margin-top: 30px;
506
-      }
507
-    }
508
-    .threeDiv{
509
-      margin-top: 40px;
510
-      flex-wrap: wrap;
511
-      &>div{
512
-        width: 100%;
513
-        margin-bottom: 40px;
514
-        &:last-child{margin-bottom: 0px;}
515
-        .h4{
516
-          margin-top: 30px;
517
-        }
518
-      }
519
-    }
520
-  }
521
-  .four{
522
-    padding: 110px 15px 0px;
523
-    .h3{
524
-      margin-bottom: 40px;
525
-    }
526
-    .fourCon{
527
-      flex-wrap: wrap;
528
-      &>div{
529
-        width: 100%;
530
-      }
531
-      .fourL{
532
-        padding-left: 0;
533
-        &>div{
534
-          .fourHide{
535
-            position: relative;
536
-            overflow-y: inherit;
537
-            
538
-            &>div{
539
-              height: auto;
540
-              margin-bottom: 50px;
541
-              .fourLine{
542
-                display: none;
543
-              }
544
-              .fourIcon{
545
-                display: none;
546
-              }
547
-              .fourText{
548
-                width: 100%;
549
-                padding: 0px;
550
-                .fourLimg{
551
-                  display: block;
552
-                  margin-bottom: 40px;
553
-                }
554
-                .btn{
555
-                  position: relative;
556
-                  left: 50%;
557
-                  transform: translateX(-50%);
558
-                }
559
-              }
560
-              &:last-child{
561
-                margin-bottom: 0px;
562
-                .fourText{
563
-                  padding: 0px;
564
-                }
565
-              }
566
-            }
567
-            .fourSon{
568
-              opacity: 1;
569
-            }
570
-          }
571
-        }
572
-      }
573
-      .fourR{
574
-        padding-right: 0;
575
-      }
576
-    }
577
-  }
578
-  .five{
579
-    color: #333333;
580
-    padding: 0px 15px;
581
-    box-sizing: border-box;
582
-    .fiveText{
583
-      padding-top: 0px;
584
-      position: relative;
585
-      margin-bottom: 40px;
586
-      .h6R{
587
-        margin-top: 9px;
588
-        margin-bottom: 30px;
589
-        line-height: 27px;
590
-      }
591
-      .h4{
592
-        font-size: 24px;
593
-        line-height: 48px;
594
-      }
595
-      .btn {
596
-        color: #003A40;
597
-        border-color: #003A40;
598
-    }
599
-    }
600
-  }
601
-  .six{
602
-    padding: 110px 15px;
603
-    box-sizing: border-box;
604
-    .h3{
605
-      margin-bottom: 20px;
606
-    }
607
-    .sixCon{
608
-      justify-content: flex-start;
609
-      flex-wrap: wrap;
610
-      flex-direction: column;
611
-      align-items: center;
612
-      margin-top: 50px;
613
-      &>div{
614
-        margin-top: 75px;
615
-        width: 100%;
616
-        &:first-child{margin-top: 0px;}
617
-      }
618
-      span{
619
-        font-size: 19px;
620
-      }
621
-      .sixIcon{
622
-        width: 58px;
623
-        height: 58px;
624
-        line-height: 58px;
625
-      }
626
-      .h5{
627
-        margin-top: 10px;
628
-        margin-bottom: 10px;
629
-      }
630
-    }
631
-  }
632
-  .two{
633
-    padding: 0px 15px 110px;
634
-    box-sizing: border-box;
635
-    .swiper{
636
-      margin-top: 10px;
637
-      padding-bottom: 80px;
638
-      .swiper-slide{
639
-        .swTxt{
640
-          position: relative;
641
-          padding: 20px 0px 0px;
642
-          color: #333333;
643
-          .h5{
644
-            margin-bottom: 5px;
645
-          }
646
-        }
647
-      }
648
-    }
649
-    .btn-prev,.btn-next{
650
-      margin-top: -26px;
651
-      top: 100%;
652
-      width: 24px;
653
-      height: 24px;
654
-      border: 1px solid #000;
655
-      color: #333333;
656
-      span{
657
-        font-size: 22px;
658
-        line-height: 24px;
659
-      }
660
-    }
661
-    .btn-prev{
662
-      left: 100px;
663
-    }
664
-    .btn-next{
665
-      right: 100px;
666
-    }
667
-  }
668
-  .message{
669
-    padding: 110px 15px 60px;
670
-    box-sizing: border-box;
671
-    &>.h6R{
672
-      text-align: left;
673
-    }
674
-    .messageCon{
675
-      flex-wrap: wrap;
676
-      flex-direction: column;
677
-      .messL{
678
-        width: 100%;
679
-        margin-bottom: 15px;
680
-      }
681
-      .messR{
682
-        width: 100%;
683
-        height: auto;
684
-        .submitDiv{
685
-          position: relative;
686
-          bottom: 0px;
687
-          right: 0px;
688
-          width: 175px;
689
-          height: 35px;
690
-          border: 1px solid #003A40;
691
-          margin: 0 auto;
692
-          text-align: center;
693
-          line-height: 35px;
694
-          margin-top: 37px;
695
-          input{
696
-            font-size: 11px;
697
-            color: #003A40;
698
-            font-weight: bold;
699
-            padding: 0px;
700
-          }
701
-          &:hover{
702
-            border-color: #48a038;
703
-          }
704
-        }
705
-        .messSuccess{
706
-          display: block;
707
-        }
708
-      }
709
-    }
710
-    .h7R{
711
-      text-align: left;
712
-    }
713
-    .messSuccess{
714
-      display: none;
715
-    }
716
-  }
717
-}

+ 0
- 225
src/pages/serveBooking/App.js Datei anzeigen

@@ -1,225 +0,0 @@
1
-import Swiper from 'swiper/bundle'
2
-import gsap from 'gsap'
3
-import LocomotiveScroll from 'locomotive-scroll';
4
-import Common from '../common/js/Common'
5
-import {
6
-    isMobile
7
-} from '../common/js/utils'
8
-
9
-export default class App {
10
-    constructor() {
11
-        let common = new Common(document.querySelector('.main'),3)   //导航菜单高亮,0是首页,后面的按顺序添加
12
-        this.isMobile = isMobile()
13
-        
14
-        this.scroll = new LocomotiveScroll();
15
-
16
-        // 图片及视频资源懒加载。防止阻塞js执行
17
-        let lazyDoms = document.querySelectorAll(".lazy");
18
-        let isMob=this.isMobile;
19
-        lazyDoms.forEach((item) => {
20
-            if (item.nodeName == "PICTURE") {
21
-                item.children[0].setAttribute("srcset", item.children[0].dataset.srcset);
22
-                item.children[1].setAttribute("src", item.children[1].dataset.src);
23
-            }
24
-            if (item.nodeName == "IMG") {
25
-                if(isMob){item.setAttribute("src", item.dataset.srcm);}
26
-                else{
27
-                    item.setAttribute("src", item.dataset.src);
28
-                }
29
-                
30
-            }
31
-            if (item.nodeName == "VIDEO") {
32
-                console.log(item, 'item---2')
33
-                item.setAttribute("src", item.dataset.src);
34
-                // item.load();
35
-            }
36
-        });
37
-        this.init();
38
-        
39
-    }
40
-    init() {
41
-        let isMob=this.isMobile;
42
-        
43
-        //留言提交
44
-        let messCkTs = document.querySelectorAll(".chooseBuy");
45
-        let messCks1 = document.querySelectorAll(".chooseTDiv1 div");
46
-        let messCks2 = document.querySelectorAll(".chooseTDiv2 div");
47
-
48
-        let buyType1 = document.querySelector('input[name="buyType1"]');
49
-        let buyType2 = document.querySelector('input[name="buyType2"]');
50
-
51
-        messCkTs.forEach((item,index)=>{
52
-            item.addEventListener("click", (e) => {
53
-                
54
-                if(item.classList.contains("showChooseTDiv")){
55
-                    item.classList.remove("showChooseTDiv");
56
-                }else{
57
-                    item.classList.add("showChooseTDiv");
58
-                }
59
-                
60
-            });
61
-        })
62
-        
63
-        messCks1.forEach((item,index)=>{
64
-            item.addEventListener("click", (e) => {
65
-                let typeVal = item.getAttribute('data-type');
66
-                buyType1.value = typeVal;
67
-                let txtShow=e.target.innerText;
68
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
69
-                if(item.parentNode.parentNode.querySelector(".chooseTshow").classList.contains("errorMessage")){
70
-                    item.parentNode.parentNode.querySelector(".chooseTshow").classList.remove("errorMessage");
71
-                }
72
-            });
73
-        })
74
-        messCks2.forEach((item,index)=>{
75
-            item.addEventListener("click", (e) => {
76
-                let typeVal = item.getAttribute('data-type');
77
-                buyType2.value = typeVal;
78
-                let txtShow=e.target.innerText;
79
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
80
-                if(item.parentNode.parentNode.querySelector(".chooseTshow").classList.contains("errorMessage")){
81
-                    item.parentNode.parentNode.querySelector(".chooseTshow").classList.remove("errorMessage");
82
-                }
83
-            });
84
-        })
85
-        
86
-        let kuang = document.querySelector(".kuang");
87
-        kuang.addEventListener("click", (e) => {
88
-            if(kuang.classList.contains("isOk")){
89
-                kuang.classList.remove("isOk");
90
-            }else{
91
-                kuang.classList.add("isOk");
92
-            }
93
-        });
94
-        let getCode = document.querySelector(".getCodeck");
95
-        getCode.addEventListener("click", (e) => {
96
-            if(getCode.classList.contains("getC")){
97
-                return;
98
-            }else{
99
-                
100
-                fetch("/webback/bottom/search", {
101
-                    method: "get",
102
-                })
103
-                .then(data => {
104
-                    console.log('Success:', data);
105
-                    // 处理成功响应
106
-                    getCode.classList.add("getC");
107
-                    alert('验证码已发送,请填写验证码!');
108
-                    setTimeout(function(){
109
-                        getCode.classList.remove("getC");
110
-                    },60000);
111
-                })
112
-                .catch((error) => {
113
-                    console.error('Error:', error);
114
-                    // 处理错误
115
-                    alert('提交失败,请稍后再试');
116
-                });
117
-            }
118
-        });
119
-        
120
-        //表单提交
121
-        // 获取表单元素
122
-        this.form = document.querySelector('.messageCon');
123
-        if (this.form) {
124
-            this.form.addEventListener('submit', this.handleFormSubmit.bind(this));
125
-        }
126
-    }
127
-    handleFormSubmit(event) {
128
-        event.preventDefault(); // 阻止默认的表单提交行为
129
-        let kuang = document.querySelector(".kuang");
130
-        if(!kuang.classList.contains("isOk")){
131
-            alert('请先同意隐私政策!');
132
-            return;
133
-        }
134
-
135
-        // 获取所有必填输入字段
136
-        let nameInput = document.querySelector('input[name="name"]');
137
-        let phoneInput = document.querySelector('input[name="phone"]');
138
-        let mailInput = document.querySelector('input[name="mail"]');
139
-        let buyTypeInput1 = document.querySelector('input[name="buyType1"]');
140
-        let buyTypeInput2 = document.querySelector('input[name="buyType2"]');
141
-        
142
-        // 校验逻辑
143
-        if (!this.validateInput(buyTypeInput1)) {
144
-            buyTypeInput1.parentNode.querySelector(".chooseTshow").classList.add("errorMessage");
145
-            alert('请选择购买类型');
146
-            return;
147
-        }else{
148
-            buyTypeInput1.classList.remove("errorMessage");
149
-        }
150
-        if (!this.validateInput(buyTypeInput2)) {
151
-            buyTypeInput2.parentNode.querySelector(".chooseTshow").classList.add("errorMessage");
152
-            alert('请选择购买类型');
153
-            return;
154
-        }else{
155
-            buyTypeInput2.classList.remove("errorMessage");
156
-        }
157
-        if (!this.validateInput(nameInput)) {
158
-            nameInput.classList.add("errorMessage");
159
-            alert('请填写您的姓名');
160
-            return;
161
-        }else{
162
-            nameInput.classList.remove("errorMessage");
163
-        }
164
-        if (!this.validatePhone(phoneInput)) {
165
-            phoneInput.classList.add("errorMessage");
166
-            alert('请输入有效的电话号码');
167
-            return;
168
-        }else{
169
-            phoneInput.classList.remove("errorMessage");
170
-        }
171
-        if (!this.validateEmail(mailInput)) {
172
-            mailInput.classList.add("errorMessage");
173
-            alert('请输入验证码');
174
-            return;
175
-        }else{
176
-            mailInput.classList.remove("errorMessage");
177
-        }
178
-        
179
-        // 如果校验通过,可以继续提交表单或执行其他操作
180
-        // 例如,使用 AJAX 提交表单数据
181
-        this.submitFormData(this.form);
182
-    }
183
-
184
-    validateInput(input) {
185
-        // 检查输入字段是否为空
186
-        return input && input.value.trim() !== '';
187
-    }
188
-    validatePhone(input) {
189
-        // 定义电话号码的正则表达式
190
-        let phoneRegex = /^(\+?\d{1,3}[-.\s]?)?(\(?\d{1,4}\)?[-.\s]?)?\d{1,4}[-.\s]?\d{1,4}[-.\s]?\d{1,9}$/;
191
-        return phoneRegex.test(input.value.trim());
192
-    }
193
-
194
-    validateEmail(input) {
195
-        // 定义邮箱地址的正则表达式
196
-        let emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
197
-        return emailRegex.test(input.value.trim());
198
-    }
199
-
200
-    submitFormData(form) {
201
-        // 使用 AJAX 提交表单数据
202
-        let isMobile = this.isMobile;
203
-        let formData = new FormData(form);
204
-        let nameInput = isMobile?document.querySelector('.messSubM'):document.querySelector('.messSubPc');
205
-        fetch(form.action, {
206
-            method: form.method,
207
-            body: formData
208
-        })
209
-        .then(response => response.json())
210
-        .then(data => {
211
-            console.log('Success:', data);
212
-            nameInput.classList.add("messSuccess");
213
-            // 处理成功响应
214
-            alert('提交成功');
215
-            form.reset(); // 重置表单
216
-        })
217
-        .catch((error) => {
218
-            console.error('Error:', error);
219
-            // 处理错误
220
-            alert('提交失败,请稍后再试');
221
-        });
222
-    }
223
-
224
-
225
-}

BIN
src/pages/serveBooking/images/sixIcon.jpg Datei anzeigen


+ 0
- 64
src/pages/serveBooking/index.html Datei anzeigen

@@ -1,64 +0,0 @@
1
-<!DOCTYPE html>
2
-<html lang="en">
3
-  <head>
4
-    <meta charset="utf-8" />
5
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
-    <title>门店预约体验-服务</title>
7
-    <meta name="description" content=""/>
8
-    <meta name="Keywords" content=""/>
9
-    <meta
10
-      content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width"
11
-      name="viewport"
12
-    />
13
-    <link
14
-      href="./static/css/swiper-bundle.min.css"
15
-      rel="stylesheet"
16
-      type="text/css"
17
-    />
18
-    <%= require('../common/tpl/headerLink.tpl') %>
19
-  </head>
20
-
21
-  <body>
22
-    <%= require('../common/tpl/header.tpl') %>
23
-    
24
-    <div class="main">
25
-      <div class="serveBg">
26
-        <img class="lazy" data-src="./static/images/serve/servebk.jpg" data-srcM="./static/images/serve/servebkm.jpg" alt=""/>
27
-        <div>
28
-        <form class="messageCon" action="/webback/bottom/search" method="post">
29
-            <div class="h3">门店预约体验</div>
30
-            <div class="chooseBuy">
31
-              <input type="text" value="" name="buyType1" />
32
-              <div class="chooseTshow"><span class="showTxt">请选择意向车型</span><span class="iconfont icon-arrow-right"></span></div>
33
-              <div class="chooseTDiv chooseTDiv1">
34
-                <div data-type="1">车型1</div>
35
-                <div data-type="2">车型2</div>
36
-                <div data-type="3">车型3</div>
37
-              </div>
38
-            </div>
39
-            <div class="chooseBuy">
40
-              <input type="text" value="" name="buyType2" />
41
-              <div class="chooseTshow"><span class="showTxt">请选择试驾地点</span><span class="iconfont icon-arrow-right"></span></div>
42
-              <div class="chooseTDiv chooseTDiv2">
43
-                <div data-type="1">地点1</div>
44
-                <div data-type="2">地点2</div>
45
-                <div data-type="3">地点3</div>
46
-              </div>
47
-            </div>
48
-            <input type="text" value="" name="name" placeholder="请填写您的姓名" />
49
-            <input type="text" value="" name="phone" placeholder="请填写您的电话" />
50
-            <div class="getCode">
51
-              <input type="text" value="" name="mail" placeholder="请输入验证码" />
52
-              <span class="getCodeck">获取验证码</span>
53
-            </div>
54
-            
55
-            
56
-            <div class="isTrue"><span class="kuang"></span>同意<a href="">隐私政策</a></div>
57
-            <div class="submitDiv"><input type="submit" class="submit" value="即刻预约" /></div>
58
-        </form></div>
59
-      </div>
60
-    </div>
61
-    <%= require('../common/tpl/footer.tpl') %>
62
-    <%= require('../common/tpl/bottomBar.tpl') %>
63
-  </body>
64
-</html>

+ 0
- 15
src/pages/serveBooking/index.js Datei anzeigen

@@ -1,15 +0,0 @@
1
-import "./../common/css/common.less";
2
-import "./index.less";
3
-import vhCheck from "vh-check"; //移动端浏览器100vh高度不一致
4
-import App from './App.js';
5
-
6
-// swiper的css目前环境解析不出来,放static下,不走webpack 
7
-//import 'swiper/swiper-bundle.css';
8
-
9
-vhCheck();
10
-//禁止浏览器刷新后回到上一个页面滚动位置
11
-if ('scrollRestoration' in history) {
12
-    history.scrollRestoration = 'manual';
13
-}
14
-
15
-new App();

+ 0
- 303
src/pages/serveBooking/index.less Datei anzeigen

@@ -1,303 +0,0 @@
1
-//pc端样式
2
-.main {
3
-  width: 100%;
4
-  max-width: 1920px;
5
-  margin: 0 auto;
6
-  padding-top: 70px;
7
-}
8
-.serveBg{
9
-  width: 100%;
10
-  position: relative;
11
-  &>img{
12
-    position: absolute;
13
-    top: 0px;
14
-    left: 0;
15
-    width: 100%;
16
-    height: 100%;
17
-    object-fit: cover;
18
-    display: block;
19
-  }
20
-  &>div{
21
-    width: 100%;
22
-    display: flex;
23
-    padding: 80px 100px 70px;
24
-    box-sizing: border-box;
25
-    flex-direction: row-reverse;
26
-  }
27
-  
28
-  .messageCon{
29
-    
30
-    width: 572px;
31
-    background: #ffffff;
32
-    text-align: left;
33
-    color: #707271;
34
-    padding: 110px 36px;
35
-    box-sizing: border-box;
36
-    position: relative;
37
-    z-index: 2;
38
-    .h3{
39
-      color: #333333;
40
-      text-align: center;
41
-      margin-bottom: 30px;
42
-    }
43
-    &>input{
44
-      width: 100%;
45
-      border:0px;
46
-      border-bottom: 1px solid #BBBEC0;
47
-      box-sizing: border-box;
48
-      height: 76px;
49
-      line-height: 76px;
50
-      font-size: 14px;
51
-      padding: 0px 14px;
52
-      &:first-child{
53
-        margin-top: 0px;
54
-      }
55
-    }
56
-    .chooseBuy{
57
-      width: 100%;
58
-      height: 76px;
59
-      position: relative;
60
-      border-bottom: 1px solid #BBBEC0;
61
-      box-sizing: border-box;
62
-      color: #707271;
63
-      &>input{
64
-        display: none;
65
-      }
66
-      .chooseTshow{
67
-        width: 100%;
68
-        height: 100%;
69
-        line-height: 76px;
70
-        box-sizing: border-box;
71
-        padding: 0px 14px;
72
-        cursor: pointer;
73
-        .iconfont{
74
-          font-size: 18px;
75
-          float: right;
76
-          transform: rotate(90deg);
77
-        }
78
-      }
79
-      .chooseTDiv{
80
-        width: 100%;
81
-        position: absolute;
82
-        top: 76px;
83
-        left: 0px;
84
-        background: #F5F5F5;
85
-        box-shadow: 0px 9px 34px 9px rgba(0, 0, 0, 0.1);
86
-        box-sizing: border-box;
87
-        padding: 10px 20px;
88
-        font-size: 14px;
89
-        z-index: 2;
90
-        clip-path: inset(0px 0px 100% 0px);
91
-        // display: none;
92
-        transition: all 0.6s ease-in-out;
93
-        &>div{
94
-          padding: 10px 0px;
95
-          cursor: pointer;
96
-          transition: all .3s ease-in-out;
97
-          &:hover{
98
-            color: #48a038;
99
-          }
100
-        }
101
-      }
102
-    }
103
-    .showChooseTDiv{
104
-      .chooseTDiv{
105
-        clip-path: inset(0px 0px 0% 0px);
106
-      }
107
-    }
108
-    .isTrue{
109
-      color: #333333;
110
-      font-size: 16px;
111
-      margin-top: 30px;
112
-      display: flex;
113
-      align-items: center;
114
-      .kuang{
115
-        display: inline-block;
116
-        width: 14px;
117
-        height: 14px;
118
-        background: #ffffff;
119
-        border: 1px solid #333333;
120
-        margin-right: 20px;
121
-        cursor: pointer;
122
-        position: relative;
123
-        &::before{
124
-          content: '';
125
-          width: 10px;
126
-          height: 10px;
127
-          background: #48a038;
128
-          position: absolute;
129
-          top: 2px;
130
-          left: 2px;
131
-          display: none;
132
-        }
133
-      }
134
-      .isOk{
135
-        &::before{
136
-          display: block;
137
-        }
138
-      }
139
-      a{
140
-        color: #48a038;
141
-      }
142
-    }
143
-    .submitDiv{
144
-      position: relative;
145
-      width: 100%;
146
-      height: 40px;
147
-      text-align: center;
148
-      border: #333333 1px solid;
149
-      box-sizing: border-box;
150
-      margin-top: 60px;
151
-      input{
152
-        width: 100%;
153
-        cursor: pointer;
154
-        font-size: 14px;
155
-        color: #333333;
156
-        font-weight: bold;
157
-        padding: 10px;
158
-        background: transparent;
159
-        border: 0px;
160
-        position: relative;
161
-        z-index: 2;
162
-        transition: all .3s ease-in-out;
163
-      }
164
-      &::before{
165
-        content: '';
166
-        position: absolute;
167
-        left: 0px;
168
-        top: 0px;
169
-        width: 100%;
170
-        height: 100%;
171
-        background: #48a038;
172
-        clip-path: inset(0px 0px 0px 100%);
173
-        transition: all .3s ease-in-out;
174
-        opacity: 0;
175
-      }
176
-      &:hover{
177
-        input{color: #ffffff;}
178
-        border-color: #48a038;
179
-        &::before{
180
-          clip-path: inset(0px 0px 0px 0px);
181
-          opacity: 1;
182
-        }
183
-      }
184
-    }
185
-    .getCode{
186
-      width: 100%;
187
-      height: 76px;
188
-      position: relative;
189
-      input{
190
-        width: 100%;
191
-        border:0px;
192
-        border-bottom: 1px solid #BBBEC0;
193
-        box-sizing: border-box;
194
-        height: 76px;
195
-        line-height: 76px;
196
-        font-size: 14px;
197
-        padding: 0px 14px;
198
-      }
199
-      .getCodeck{
200
-        display: inline-block;
201
-        position: absolute;
202
-        top: 0px;
203
-        right: 0px;
204
-        font-size: 16px;
205
-        cursor: pointer;
206
-        color: #C9C9C9;line-height: 76px;
207
-      }
208
-      .getC{
209
-        cursor: no-drop;
210
-      }
211
-    }
212
-    .errorMessage{
213
-      color: #FB1313;
214
-      .showTxt{
215
-        color: #FB1313;
216
-      }
217
-      &::-webkit-input-placeholder{
218
-        color: #FB1313;
219
-      }
220
-      &:-moz-placeholder{
221
-        color: #FB1313;
222
-      }
223
-      &::-moz-placeholder{
224
-        color: #FB1313;
225
-      }
226
-      &::-ms-input-placeholder{
227
-        color: #FB1313;
228
-      }
229
-  }
230
-  }
231
-}
232
-
233
-
234
-.pcTxt{
235
-  display: block;
236
-}
237
-.mTxt{
238
-  display: none;
239
-}
240
-@media screen and (min-width: 801px) and (max-width: 1400px) {
241
-  
242
-}
243
-
244
-//移动端样式
245
-@media screen and (max-width:800px) {
246
-  .pcTxt{
247
-    display: none;
248
-  }
249
-  .mTxt{
250
-    display: block;
251
-  }
252
-  .serveBg{ 
253
-    &>img{
254
-      position: relative;
255
-    }
256
-    &>div{
257
-      padding: 70px 15px 60px;
258
-    }
259
-    .messageCon{
260
-      padding: 0px;
261
-      width: 100%;
262
-      .h3{
263
-        margin-bottom: 20px;
264
-      }
265
-      .chooseBuy{
266
-        height: 50px;
267
-        font-size: 14px;
268
-        .chooseTshow{
269
-          line-height: 50px;
270
-        }
271
-        .chooseTDiv{
272
-          top: 50px;
273
-          padding: 10px 14px;
274
-        }
275
-      }
276
-      &>input{
277
-        height: 50px;
278
-        line-height: 76px;
279
-      }
280
-      .getCode{
281
-        height: 50px;
282
-        input{
283
-          height: 50px;
284
-          line-height: 50px;
285
-        }
286
-        .getCodeck{
287
-          font-size: 14px;
288
-          line-height: 50px;
289
-        }
290
-      }
291
-      .isTrue{
292
-        font-size: 14px;
293
-        margin-top: 25px;
294
-        .kuang{
295
-          margin-right: 12px;
296
-        }
297
-      }
298
-      .submitDiv{
299
-        margin-top: 50px;
300
-      }
301
-    }
302
-  }
303
-}

+ 0
- 135
src/pages/serveMap/App.js Datei anzeigen

@@ -1,135 +0,0 @@
1
-import Swiper from 'swiper/bundle'
2
-import gsap from 'gsap'
3
-import LocomotiveScroll from 'locomotive-scroll';
4
-import Common from '../common/js/Common'
5
-import {
6
-    isMobile
7
-} from '../common/js/utils'
8
-
9
-export default class App {
10
-    constructor() {
11
-        let common = new Common(document.querySelector('.main'),3)   //导航菜单高亮,0是首页,后面的按顺序添加
12
-        this.isMobile = isMobile()
13
-        
14
-        this.scroll = new LocomotiveScroll();
15
-
16
-        // 图片及视频资源懒加载。防止阻塞js执行
17
-        let lazyDoms = document.querySelectorAll(".lazy");
18
-        let isMob=this.isMobile;
19
-        lazyDoms.forEach((item) => {
20
-            if (item.nodeName == "PICTURE") {
21
-                item.children[0].setAttribute("srcset", item.children[0].dataset.srcset);
22
-                item.children[1].setAttribute("src", item.children[1].dataset.src);
23
-            }
24
-            if (item.nodeName == "IMG") {
25
-                if(isMob){item.setAttribute("src", item.dataset.srcm);}
26
-                else{
27
-                    item.setAttribute("src", item.dataset.src);
28
-                }
29
-                
30
-            }
31
-            if (item.nodeName == "VIDEO") {
32
-                console.log(item, 'item---2')
33
-                item.setAttribute("src", item.dataset.src);
34
-                // item.load();
35
-            }
36
-        });
37
-        this.init();
38
-        
39
-    }
40
-    init() {
41
-        let isMob=this.isMobile;
42
-        //切换选项
43
-        let messCkTs = document.querySelectorAll(".chooseBuy");
44
-        let messCks1 = document.querySelectorAll(".chooseTDiv1 div");
45
-        let messCks2 = document.querySelectorAll(".chooseTDiv2 div");
46
-        let messCks3 = document.querySelectorAll(".chooseTDiv3 div");
47
-
48
-        let buyType1 = '';
49
-        let buyType2 = '';
50
-        let buyType3 = '';
51
-        function findS() {
52
-            if(buyType1!=''&&buyType2!=''&&buyType3!=''){
53
-                console.log('调用接口');
54
-            }
55
-        }
56
-
57
-        messCkTs.forEach((item,index)=>{
58
-            item.addEventListener("click", (e) => {
59
-                
60
-                if(item.classList.contains("showChooseTDiv")){
61
-                    item.classList.remove("showChooseTDiv");
62
-                    findS();
63
-                }else{
64
-                    item.classList.add("showChooseTDiv");
65
-                }
66
-                
67
-            });
68
-        })
69
-        
70
-        messCks1.forEach((item,index)=>{
71
-            item.addEventListener("click", (e) => {
72
-                let typeVal = item.getAttribute('data-type');
73
-                buyType1 = typeVal;
74
-                buyType2 = '';
75
-                buyType3 = '';
76
-                let txtShow=e.target.innerText;
77
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
78
-                document.querySelector(".chooseBuy2 .showTxt").innerText='省份';
79
-                document.querySelector(".chooseBuy3 .showTxt").innerText='城市';
80
-            });
81
-        })
82
-        messCks2.forEach((item,index)=>{
83
-            item.addEventListener("click", (e) => {
84
-                let typeVal = item.getAttribute('data-type');
85
-                buyType2 = typeVal;
86
-                buyType3 = '';
87
-                let txtShow=e.target.innerText;
88
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
89
-                document.querySelector(".chooseBuy3 .showTxt").innerText='城市';
90
-            });
91
-        })
92
-        messCks3.forEach((item,index)=>{
93
-            item.addEventListener("click", (e) => {
94
-                let typeVal = item.getAttribute('data-type');
95
-                buyType3 = typeVal;
96
-                let txtShow=e.target.innerText;
97
-                item.parentNode.parentNode.querySelector(".showTxt").innerText=txtShow;
98
-                
99
-            });
100
-        })
101
-        //地图
102
-        let map = new BMapGL.Map("container");
103
-        let point = new BMapGL.Point(100.331398, 38.897445);
104
-        map.centerAndZoom(point, 6);
105
-        let zoomCtrl = new BMapGL.ZoomControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT,offset: new window.BMapGL.Size(18, 18)});
106
-        map.addControl(zoomCtrl) 
107
-        // map.enableScrollWheelZoom(false);
108
-        let mapJson=[
109
-            {
110
-                "dealerName": "北京正万通汽车销售服务有限公司",
111
-                "dealerAddress": "丰台区南四环西路107号",
112
-                "dealerTel": "13810010302",
113
-                "longitudeLatitude": "116.319807_39.806025"
114
-            },
115
-            {
116
-                "dealerName": "北京兴芳伟业汽车贸易有限公司",
117
-                "dealerAddress": "北京市怀柔区怀丰路三公里铁路桥北",
118
-                "dealerTel": "13911288875",
119
-                "longitudeLatitude": "116.634235_40.319042"
120
-            },
121
-            {
122
-                "dealerName": "北京佳和创世工贸有限公司",
123
-                "dealerAddress": "庙城镇高两河村西100米",
124
-                "dealerTel": "13370137888",
125
-                "longitudeLatitude": "116.663497_40.296867"
126
-            },
127
-            {
128
-                "dealerName": "北京圣茂汽车销售有限公司",
129
-                "dealerAddress": "北京市大兴区南中轴路北京圣茂汽车销售公司",
130
-                "dealerTel": "13611222072",
131
-                "longitudeLatitude": "116.411303_39.91488908"
132
-            }
133
-        ];
134
-    }
135
-}

+ 0
- 1
src/pages/serveMap/images/pos.svg Datei anzeigen

@@ -1 +0,0 @@
1
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1679477787694" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1759" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M1024 0l-447.7952 1024-118.016-458.1888L0 448.2048z" fill="#9A9DAE" p-id="1760"></path></svg>

+ 0
- 91
src/pages/serveMap/index.html Datei anzeigen

@@ -1,91 +0,0 @@
1
-<!DOCTYPE html>
2
-<html lang="en">
3
-  <head>
4
-    <meta charset="utf-8" />
5
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
-    <title>门店地图-服务</title>
7
-    <meta name="description" content=""/>
8
-    <meta name="Keywords" content=""/>
9
-    <meta
10
-      content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width"
11
-      name="viewport"
12
-    />
13
-    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&&type=webgl&ak=1i0EYhgKbfLEtSM8AqgNe4ITvctfRMGI"></script>
14
-    <link
15
-      href="./static/css/swiper-bundle.min.css"
16
-      rel="stylesheet"
17
-      type="text/css"
18
-    />
19
-    <%= require('../common/tpl/headerLink.tpl') %>
20
-  </head>
21
-
22
-  <body>
23
-    <%= require('../common/tpl/header.tpl') %>
24
-    
25
-    <div class="main">
26
-      <div class="container" id="container"></div>
27
-      <div class="mapCon">
28
-        <div class="mapDiv">
29
-          <div class="mapChoose">
30
-            <div class="chooseBuy chooseBuy1">
31
-              <div class="chooseTshow"><span class="showTxt">卡文门店</span><span class="iconfont icon-arrow-right"></span></div>
32
-              <div class="chooseTDiv chooseTDiv1">
33
-                <div data-type="1">车型1</div>
34
-                <div data-type="2">车型2</div>
35
-                <div data-type="3">车型3</div>
36
-              </div>
37
-            </div>
38
-            <div class="chooseR">
39
-              <div class="chooseBuy chooseBuy2">
40
-                <div class="chooseTshow"><span class="showTxt">省份</span><span class="iconfont icon-arrow-right"></span></div>
41
-                <div class="chooseTDiv chooseTDiv2">
42
-                  <div data-type="1">车型1</div>
43
-                  <div data-type="2">车型2</div>
44
-                  <div data-type="3">车型3</div>
45
-                  <div data-type="1">车型1</div>
46
-                  <div data-type="2">车型2</div>
47
-                  <div data-type="3">车型3</div>
48
-                  <div data-type="1">车型1</div>
49
-                  <div data-type="2">车型2</div>
50
-                  <div data-type="3">车型3</div>
51
-                </div>
52
-              </div>
53
-              <div class="chooseBuy chooseBuy3">
54
-                <div class="chooseTshow"><span class="showTxt">城市</span><span class="iconfont icon-arrow-right"></span></div>
55
-                <div class="chooseTDiv chooseTDiv3">
56
-                  <div data-type="1">车型1</div>
57
-                  <div data-type="2">车型2</div>
58
-                  <div data-type="3">车型3</div>
59
-                </div>
60
-              </div>
61
-            </div>
62
-          </div>
63
-          <div class="mapList">
64
-            <div class="mapUl">
65
-              <div class="mapLi">
66
-                <div class="h6R"><span class="addr">卡文汽车**********销售门店</span><span class="iconB">14.14km</span></div>
67
-                <div class="h7R">河北省唐山市路南区建设南路与南新东道交叉口东侧(卡文汽车4S店)</div>
68
-                <div class="h7R">销售热线:0315-2285888       服务热线:0315-2285888</div>
69
-                <a class="btn btnBlack" href="./serveBooking.html">门店预约体验</a>
70
-              </div>
71
-              <div class="mapLi">
72
-                <div class="h6R">卡文汽车**********销售门店</div>
73
-                <div class="h7R">河北省唐山市路南区建设南路与南新东道交叉口东侧(卡文汽车4S店)</div>
74
-                <div class="h7R">销售热线:0315-2285888       服务热线:0315-2285888</div>
75
-                <a class="btn btnBlack" href="./serveBooking.html">门店预约体验</a>
76
-              </div>
77
-              <div class="mapLi">
78
-                <div class="h6R">卡文汽车**********销售门店</div>
79
-                <div class="h7R">河北省唐山市路南区建设南路与南新东道交叉口东侧(卡文汽车4S店)</div>
80
-                <div class="h7R">销售热线:0315-2285888       服务热线:0315-2285888</div>
81
-                <a class="btn btnBlack" href="./serveBooking.html">门店预约体验</a>
82
-              </div>
83
-            </div>
84
-          </div>
85
-        </div>
86
-      </div>
87
-    </div>
88
-    <%= require('../common/tpl/footer.tpl') %>
89
-    <%= require('../common/tpl/bottomBar.tpl') %>
90
-  </body>
91
-</html>

+ 0
- 15
src/pages/serveMap/index.js Datei anzeigen

@@ -1,15 +0,0 @@
1
-import "./../common/css/common.less";
2
-import "./index.less";
3
-import vhCheck from "vh-check"; //移动端浏览器100vh高度不一致
4
-import App from './App.js';
5
-
6
-// swiper的css目前环境解析不出来,放static下,不走webpack 
7
-//import 'swiper/swiper-bundle.css';
8
-
9
-vhCheck();
10
-//禁止浏览器刷新后回到上一个页面滚动位置
11
-if ('scrollRestoration' in history) {
12
-    history.scrollRestoration = 'manual';
13
-}
14
-
15
-new App();

+ 0
- 191
src/pages/serveMap/index.less Datei anzeigen

@@ -1,191 +0,0 @@
1
-//pc端样式
2
-.main {
3
-  width: 100%;
4
-  max-width: 1920px;
5
-  margin: 0 auto;
6
-  height: 100%;
7
-  position: relative;
8
-}
9
-
10
-.container{
11
-  width: 100%;
12
-  height: 100%;
13
-  position: relative;
14
-  z-index: 2;
15
-}
16
-.mapCon{
17
-  position: absolute;
18
-  top: 0px;
19
-  left: 100px;
20
-  width: 460px;
21
-  height: 100%;
22
-  box-sizing: border-box;
23
-  padding-top: 120px;
24
-  padding-bottom: 80px;
25
-  z-index: 2;
26
-  .mapDiv{
27
-    width: 100%;
28
-    height: 100%;
29
-    .mapChoose{
30
-      display: flex;
31
-      justify-content: space-between;
32
-      height: 40px;
33
-      margin-bottom: 5px;
34
-      position: relative;
35
-      z-index: 3;
36
-      .chooseBuy{
37
-        width: 150px;
38
-        height: 40px;
39
-        position: relative;
40
-        box-sizing: border-box;
41
-        color: #707271;
42
-        .chooseTshow{
43
-          width: 100%;
44
-          height: 100%;
45
-          line-height: 38px;
46
-          box-sizing: border-box;
47
-          cursor: pointer;
48
-          text-align: center;
49
-          .iconfont{
50
-            font-size: 18px;
51
-            display: inline-block;
52
-            transform: rotate(90deg);
53
-            position: relative;
54
-            top: 2px;
55
-            margin-left: 10px;
56
-          }
57
-        }
58
-        .chooseTDiv{
59
-          width: 100%;
60
-          max-height: 371px;
61
-          overflow-y: auto;
62
-          position: absolute;
63
-          top: 40px;
64
-          left: 0px;
65
-          background: #F5F5F5;
66
-          box-shadow: 0px 9px 34px 9px rgba(0, 0, 0, 0.1);
67
-          box-sizing: border-box;
68
-          padding: 10px 20px;
69
-          font-size: 14px;
70
-          z-index: 2;
71
-          clip-path: inset(0px 0px 100% 0px);
72
-          // display: none;
73
-          transition: all 0.6s ease-in-out;
74
-          &::-webkit-scrollbar {
75
-            width: 3px;
76
-          }
77
-          &::-webkit-scrollbar-thumb {
78
-            background-color: #b5b5b5;
79
-          }
80
-          &>div{
81
-            padding: 10px 0px;
82
-            cursor: pointer;
83
-            transition: all .3s ease-in-out;
84
-            &:hover{
85
-              color: #48a038;
86
-            }
87
-          }
88
-        }
89
-      }
90
-      .showChooseTDiv{
91
-        .chooseTDiv{
92
-          clip-path: inset(0px 0px 0% 0px);
93
-        }
94
-      }
95
-      .chooseBuy1{
96
-        border: 1px solid #BBBEC0;
97
-        background: #fff;
98
-      }
99
-      .chooseBuy2{
100
-        &::before{
101
-          content: '';
102
-          position: absolute;
103
-          top: 25%;
104
-          right: 0px;
105
-          width: 1px;
106
-          height: 50%;
107
-          background: #BBBEC0;
108
-        }
109
-      }
110
-      .chooseR{
111
-        border: 1px solid #BBBEC0;
112
-        display: flex;
113
-        background: #fff;
114
-      }
115
-    }
116
-    .mapList{
117
-      width: 100%;
118
-      height: calc(100% - 45px);
119
-      overflow: hidden;
120
-      box-sizing: border-box;
121
-      padding: 50px 10px 50px 20px;
122
-      background: #fff;
123
-      position: relative;
124
-      z-index: 2;
125
-      .mapUl{
126
-        width: 100%;
127
-        height: 100%;
128
-        overflow-y: auto;
129
-        padding-right: 10px;
130
-        box-sizing: border-box;
131
-        &::-webkit-scrollbar {
132
-          width: 3px;
133
-        }
134
-        &::-webkit-scrollbar-thumb {
135
-          background-color: #b5b5b5;
136
-        }
137
-        .mapLi{
138
-          padding-bottom: 50px;
139
-          border-bottom: 1px solid #E5E5E5;
140
-          margin-bottom: 50px;
141
-          .h6R{
142
-            margin-bottom: 10px;
143
-            line-height: 24px;
144
-            .addr{
145
-              display: inline-block;
146
-              max-width: calc(100% - 120px);
147
-            }
148
-            .iconB{
149
-              padding-left: 30px;
150
-              background: url(./images/pos.svg) no-repeat left center;
151
-              background-size: 16px 16px;
152
-              float: right;
153
-            }
154
-          }
155
-          .h7R{
156
-            margin-bottom: 10px;
157
-            line-height:20px;
158
-          }
159
-          .btn{
160
-            margin-top: 20px;
161
-            height: 40px;
162
-            line-height: 40px;
163
-            width: 100%;
164
-          }
165
-        }
166
-      }
167
-    }
168
-    
169
-  }
170
-}
171
-
172
-.pcTxt{
173
-  display: block;
174
-}
175
-.mTxt{
176
-  display: none;
177
-}
178
-@media screen and (min-width: 801px) and (max-width: 1400px) {
179
-  
180
-}
181
-
182
-//移动端样式
183
-@media screen and (max-width:800px) {
184
-  .pcTxt{
185
-    display: none;
186
-  }
187
-  .mTxt{
188
-    display: block;
189
-  }
190
-  
191
-}

+ 188
- 0
src/pages/socialResponsibility/App.js Datei anzeigen

@@ -0,0 +1,188 @@
1
+import Swiper from 'swiper/bundle'
2
+import gsap from 'gsap'
3
+import Common from '../common/js/Common'
4
+import {
5
+    isMobile
6
+} from '../common/js/utils'
7
+// const BASEURL = 'http://192.168.1.33:9100';
8
+const BASEURL = 'http://localhost:3002/api';
9
+const pageSize = 5;
10
+
11
+export default class App {
12
+    constructor() {
13
+        let common = new Common(document.querySelector('.main'),2)   //导航菜单高亮,0是首页,后面的按顺序添加
14
+        this.isMobile = isMobile()
15
+        this.num = 0;
16
+        this.bindDom();
17
+        // this.fold()
18
+        
19
+    }
20
+
21
+    bindDom(){
22
+        const tabs_ul =  document.querySelectorAll(".tabs_li");
23
+        const news_ul =  document.querySelector(".news_ul");
24
+        const typeCon =  document.querySelector(".typeCon");
25
+        
26
+        tabs_ul.forEach((item,index)=>{
27
+        
28
+            item.addEventListener('click',()=>{
29
+                tabs_ul.forEach((li) => {
30
+                    li.classList.remove('tabs_lis');
31
+                });
32
+                if(index == 0){
33
+                    news_ul.style.display = 'block';
34
+                    typeCon.style.display = 'none';
35
+                    
36
+                }else{
37
+                    news_ul.style.display = 'none';
38
+                    typeCon.style.display = 'block';
39
+                    this.fold()
40
+                }
41
+                // 给当前点击的元素添加 tabs_lis 类名
42
+                item.classList.add('tabs_lis');
43
+            })
44
+        })
45
+    }
46
+    clearEvents(){
47
+        
48
+    }
49
+    fold(){
50
+        let isMobile=this.isMobile;
51
+
52
+        let liTitleArray = document.querySelectorAll('.liTitle');
53
+        liTitleArray.forEach((child )=>{
54
+            child.addEventListener('click', (event) => {
55
+                // 获取被点击元素的父元素
56
+                let parentElement = event.currentTarget.parentNode;
57
+                let infoSonLi = parentElement.querySelector('.infoSonLi');
58
+                let actualHeight = infoSonLi.offsetHeight;
59
+                // 初始化子元素总高度
60
+                let childrenTotalHeight = isMobile?30:0;
61
+
62
+                // 遍历所有子元素,累加它们的高度
63
+                Array.from(infoSonLi.children).forEach(child => {
64
+                    childrenTotalHeight += child.offsetHeight;
65
+                });
66
+                let totalHeight = actualHeight + childrenTotalHeight;
67
+                if (parentElement.classList.contains("infoLiShow")) {
68
+                    parentElement.classList.remove('infoLiShow');
69
+                    gsap.to(infoSonLi,{height:0,duration:0.5})
70
+                }else{
71
+                    parentElement.classList.add('infoLiShow');
72
+                    gsap.to(infoSonLi,{height:totalHeight,duration:0.5})
73
+                    // gsap.to(infoSonLi,{height:totalHeight,duration:1,onComplete: () => infoSonLi.style.height = 'auto'})
74
+                }
75
+            });
76
+        });
77
+        let typeTitCkArray = document.querySelectorAll('.typeTitCk');
78
+        let inFoul = document.querySelector('.infoul');
79
+        
80
+        let infoLiArray = document.querySelectorAll('.infoLi');
81
+        function addClassType() {
82
+            infoLiArray.forEach((val)=>{
83
+                val.classList.remove('infoLiShow');
84
+            })
85
+            typeTitCkArray.forEach((child )=>{
86
+                child.classList.remove('ck');
87
+            });
88
+        }
89
+        //
90
+        let typeOld="all";
91
+        let element=document.querySelector('.typeTitle');
92
+        typeTitCkArray.forEach((child )=>{
93
+            child.addEventListener('click', (event) => {
94
+                addClassType();
95
+                let domElement = event.target;
96
+                domElement.classList.add('ck');
97
+                let typeName = domElement.dataset.type;
98
+                inFoul.className = 'infoul '+ typeName;
99
+                if(isMobile){
100
+                    if(typeName=='type2'&&typeOld!='type3'){
101
+                        element.scrollLeft = element.scrollWidth - element.clientWidth;
102
+                    }else if(typeName=='type2'&&typeOld=='type3'){
103
+                        element.scrollLeft = 0;
104
+                    }
105
+                }
106
+            });
107
+        });
108
+
109
+        // if(this.num == 0){
110
+            //添加表单动画
111
+            let liTits = document.querySelectorAll('.liTit');
112
+            liTits.forEach((val)=>{
113
+                val.style.height = val.offsetHeight+'px';
114
+                let liTitMove = val.querySelector('.liTitMove');
115
+                if(isMobile){
116
+                    liTitMove.classList.remove("moveUp");
117
+                    liTitMove.classList.add("fadeInUp");
118
+                }else{
119
+                    // 获取 liTit 下的所有 div 元素
120
+                    let divs = liTitMove.querySelector('div');
121
+                    if(divs){
122
+                        // 克隆 div 元素
123
+                        let clonedDiv = divs.cloneNode(true);
124
+                        
125
+                        // 将克隆的 div 插入到 liTit 的后面
126
+                        divs.parentElement.appendChild(clonedDiv);;
127
+                    }
128
+                }
129
+                
130
+            })
131
+            this.num = 1;
132
+        // }
133
+       
134
+    }
135
+    hotNews(){
136
+        const news_banner = document.querySelector('.news_banner');
137
+        const img = news_banner.querySelector('img')
138
+        const cont1 = news_banner.querySelector('.cont1')
139
+        const cont2 = news_banner.querySelector('.cont2')
140
+        const cont3 = news_banner.querySelector('.cont3')
141
+        fetch(BASEURL+'/system/news/top')
142
+        .then(response => {
143
+            if (!response.ok) {
144
+                throw new Error('网络响应不是 OK');
145
+            }
146
+            return response.json();
147
+        })
148
+        .then(response => {
149
+            if (response.surfaceUrl) img.src = response.surfaceUrl
150
+            cont1.textContent = response.title
151
+            cont2.textContent = response.digest
152
+            cont3.textContent = response.date
153
+            news_banner.addEventListener('click',() => {
154
+                window.open('/articleDetails.html?id='+response.uuid)
155
+            })
156
+
157
+        })
158
+        .catch(error => {
159
+            console.error('请求失败:', error); // 处理错误
160
+        });
161
+    }
162
+
163
+    pageTurningClickEvent (){
164
+        // 上一页
165
+        const previousPage = document.querySelector('#previousPage');
166
+        previousPage.addEventListener('click', function(event) {
167
+            event.preventDefault()
168
+            const currentPage = sessionStorage.getItem('news_currentPage');
169
+            if(currentPage && parseInt(currentPage) > 1){
170
+                initList(parseInt(currentPage) - 1)
171
+            }
172
+            
173
+        })
174
+        //下一页
175
+        const nextPage = document.querySelector('#nextPage');
176
+        nextPage.addEventListener('click', function(event) {
177
+            event.preventDefault()
178
+            const currentPage = sessionStorage.getItem('news_currentPage');
179
+            const pageCount = Math.ceil(parseInt(sessionStorage.getItem('news_total')) / pageSize)
180
+            if(currentPage && parseInt(currentPage) < pageCount){
181
+                initList(parseInt(currentPage) + 1)
182
+            }
183
+        })
184
+    }
185
+    
186
+
187
+   
188
+}

+ 144
- 0
src/pages/socialResponsibility/index.html Datei anzeigen

@@ -0,0 +1,144 @@
1
+<!DOCTYPE html>
2
+<html lang="cn">
3
+
4
+<head>
5
+    <meta charset="utf-8" />
6
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
7
+    <title>社会责任</title>
8
+    <meta name="description" content="" />
9
+    <meta name="Keywords" content="" />
10
+    <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport" />
11
+    <link href="./static/css/swiper-bundle.min.css" rel="stylesheet" type="text/css" />
12
+    <%= require('../common/tpl/headerLink.tpl') %>
13
+</head>
14
+
15
+<body>
16
+    <%= require('../common/tpl/header.tpl') %>
17
+        <div class="main">
18
+            <div class="content">
19
+                <div class="banner_box">
20
+                    <div class="news_banner">
21
+                        <div class="news_content">
22
+                            <div class="cont1">社会责任</div>
23
+                            <div class="cont2">
24
+                                中泽控股集团股份有限公司(简称中泽集团)是以投资并购和企业运营为
25
+                                核心业务的大型民营集团,创建于1995年,总部位于北京。
26
+                                中泽控股集团股份有限公司(简称中泽集团)是以投资并购和企业运营为
27
+                                核心业务的大型民营集团,创建于1995年,总部位于北京。
28
+                            </div>
29
+                        </div> 
30
+                        <img
31
+                            src="./static/images/index/banner1.jpg"
32
+                            alt=""
33
+                        />
34
+                    </div>
35
+                </div>
36
+                <div class="tabs_box" id="tab">
37
+                    <div class="tabs_li tabs_lis">社会公益</div>
38
+                    <div class="tabs_li">绿色转型</div>
39
+                </div>
40
+            </div>
41
+            <div class="news_ul">
42
+                <div class="news_list">
43
+                    <div class="news_li">
44
+                        <div class="li_left">
45
+                            <span>19</span>
46
+                            <span>24-12</span>
47
+                        </div> 
48
+                        <a class="li_cont" href="./articleDetails.html">
49
+                            <div>中共中央办公厅 国务院办公厅关于推进新型城市基础设施建设打造韧性城市的意见</div>
50
+                            <div>为深化城市安全韧性提升行动,推进数字化、网络化、智能化新型城市基础设施建设,打造承受适应能力强、恢复速度快的韧性城市,增强城市风险防控和治理能力,经党...</div>
51
+                        </a>
52
+                    </div>
53
+                    <div class="news_li">
54
+                        <div class="li_left">
55
+                            <span>09</span>
56
+                            <span>24-12</span>
57
+                        </div>
58
+                        <a class="li_cont" href="#">
59
+                            <div>中共中央办公厅 国务院办公厅关于推进新型城市基础设施建设打造韧性城市的意见</div>
60
+                            <div>为深化城市安全韧性提升行动,推进数字化、网络化、智能化新型城市基础设施建设,打造承受适应能力强、恢复速度快的韧性城市,增强城市风险防控和治理能力,经党...</div>
61
+                        </a>
62
+                    </div>
63
+                    <div class="news_li">
64
+                        <div class="li_left">
65
+                            <span>10</span>
66
+                            <span>24-12</span> 
67
+                        </div>
68
+                        <a class="li_cont" href="#">
69
+                            <div>中共中央办公厅 国务院办公厅关于推进新型城市基础设施建设打造韧性城市的意见</div>
70
+                            <div>为深化城市安全韧性提升行动,推进数字化、网络化、智能化新型城市基础设施建设,打造承受适应能力强、恢复速度快的韧性城市,增强城市风险防控和治理能力,经党...</div>
71
+                        </a>
72
+                    </div>
73
+                </div>
74
+                <div class="news_paging">
75
+                    <a id="previousPage" class="previousPage">
76
+                       <span class="icon iconfont icon-jiantou"></span>
77
+                    </a>
78
+                    <div id="paging" style="display: flex;align-items: center;">
79
+                        <a class="pageNum">1</a>
80
+                        <a class="pageNum">2</a>
81
+                        <a class="pageNum">3</a>
82
+                        <a class="pageNum pageNums">...</a>
83
+                    </div>
84
+                    <a id="nextPage" class="nextPage">
85
+                        <span class="icon iconfont icon-jiantou"></span>
86
+                    </a>
87
+                </div>
88
+            </div>
89
+            <div class="typeCon">
90
+                <div class="infoul">
91
+                  <div class="infoLi">
92
+                          <div class="liTitle">
93
+                            <div class="h3 liTit">
94
+                              <div class="liTitMove">
95
+                                <div>社会责任战略规划</div>
96
+                              </div>
97
+                            </div>
98
+                            <div class="button"><div class="btnjbg"></div></div>
99
+                          </div>
100
+                          <div class="infoSonLi">
101
+                            <div class="text">
102
+                              <div>《投资集团党建工作考核办法》中设置“社会价值”一级考核指标,细化为“社会责任认可度”二级指标,“强化社会担当”和“将社会责任融入生产经营过程”三级指标,以及 4 个四级指标,督导企业形成履行社会责任特色做法、形成品牌,社会责任履行情况得到外界认可。</div>
103
+                            </div>
104
+                        </div>
105
+                  </div>
106
+                  <div class="infoLi">
107
+                          <div class="liTitle">
108
+                            <div class="h3 liTit">
109
+                              <div class="liTitMove">
110
+                                <div>社会责任价值观</div>
111
+                              </div>
112
+                            </div>
113
+                            <div class="button"><div class="btnjbg"></div></div>
114
+                          </div>
115
+                          <div class="infoSonLi">
116
+                            <div class="text">
117
+                              <div>贯彻落实创新、协调、绿色、开放、共享的发展理念,统筹推进“五位一体”总体布局要求,强化投资集团及控股企业社会责任管理,促进经济、社会、环境的和谐与可持续发展。</div>
118
+                            </div>
119
+                        </div>
120
+                  </div>
121
+                  <div class="infoLi">
122
+                          <div class="liTitle">
123
+                            <div class="h3 liTit">
124
+                              <div class="liTitMove">
125
+                                <div>制定《社会责任管理指引》</div>
126
+                              </div>
127
+                            </div>
128
+                            <div class="button"><div class="btnjbg"></div></div>
129
+                          </div>
130
+                          <div class="infoSonLi">
131
+                            <div class="text">
132
+                              <div>根据公司法等相关法律法规以及投资集团实际,参考国际国内各类标准,于 2012 年制定并印发了《社会责任管理指引》;结合十八大以来党和国家的新思想、新论断,以及省十次党代会提出的我省五年发展目标,对照《中国企业社会责任报告指南基础框架》4.0 版,于 2020 年对《社会责任管理指引》进行修订。《社会责任管理指引》明确了投资集团及控股企业对国民经济和社会发展,资源节约和环境保护,以及股东、债权人、员工、客户、合作者、政府和社区等利益相关者所应承担的经济、法律、道德与慈善等责任。 </div>
133
+                            </div>
134
+                        </div>
135
+                  </div>
136
+                </div>
137
+            </div>
138
+           
139
+        </div>
140
+        <%= require('../common/tpl/footer.tpl') %>
141
+            <%= require('../common/tpl/bottomBar.tpl') %>
142
+</body>
143
+
144
+</html>

src/pages/product/index.js → src/pages/socialResponsibility/index.js Datei anzeigen


+ 612
- 0
src/pages/socialResponsibility/index.less Datei anzeigen

@@ -0,0 +1,612 @@
1
+// pc端:
2
+// 设计稿1440*900 所有尺寸基本按px来即可;
3
+// 正文 16px;
4
+
5
+
6
+// 移动端:
7
+// 设计稿宽800px,按逻辑尺寸的两倍制作。因此真实尺寸需要除2;
8
+// 如设计稿字体大小28px,则实真字体大小为28px/2=14px;
9
+// 或使用vw 字体大小:28/800*10 = 3.5vw 
10
+// 正文 14px 或 3.5vw
11
+
12
+//pc端样式
13
+.main {
14
+    width: 100%;
15
+    max-width: 1920px;
16
+    margin: 0 auto;
17
+    padding-top: 70px;
18
+    .content{
19
+        width: 1500px;
20
+        margin: 0 auto;
21
+       
22
+        .banner_box{
23
+            display: flex;
24
+            justify-content: space-between;
25
+            margin-bottom: 120px;
26
+            .news_banner{
27
+                width: 100%;
28
+                max-width: 1500px;
29
+                position: relative;
30
+                img{
31
+                    width: 100%;
32
+                    height: 750px;
33
+                    object-fit: cover;
34
+                }
35
+
36
+                .news_content{
37
+                    width: 100%;
38
+                    color: #231F20;
39
+                    padding: 190px 30px 40px;
40
+                    box-sizing: border-box;
41
+                    display: flex;
42
+                    justify-content: space-between;
43
+                    .cont1{
44
+                        font-weight: bold;
45
+                        font-size: 60px;
46
+                        color: #231F20;
47
+                        margin-left: 100px;
48
+                    }
49
+                    .cont2{
50
+                        width: 640px;
51
+                        font-size: 20px;
52
+                        color: #231F20;
53
+                        margin-right: 110px;
54
+                        line-height: 35px;
55
+                    }
56
+                }
57
+                
58
+            }
59
+           
60
+        }
61
+        .tabs_box{
62
+            width: 1300px;
63
+            margin: 0 auto;
64
+            font-weight: 400;
65
+            font-size: 24px;
66
+            display: flex;
67
+            align-items: center;
68
+
69
+            .tabs_li{
70
+                color: #231F20;
71
+                margin-right: 80px;
72
+                cursor: pointer;
73
+                padding-bottom: 48px;
74
+                transition: all .2s;
75
+                border-bottom: 2px solid #fff;
76
+                &:hover{
77
+                    color: #B81C25;
78
+                }
79
+            }   
80
+            .tabs_lis{
81
+                color: #B81C25;
82
+                border-bottom: 2px solid #B81C25;
83
+            }   
84
+        }
85
+
86
+      
87
+    }
88
+    .news_ul{
89
+        width: 100%;
90
+        max-width: 1920px;
91
+        margin: 0 auto;
92
+        background: #F6F6F6;
93
+
94
+        .news_list{
95
+            width: 1300px;
96
+            margin: 0 auto;
97
+            .news_li{
98
+                display: flex;
99
+                align-items: center;
100
+                padding: 40px 0;
101
+                border-bottom:1px solid #DADADA;
102
+                transition: all .2s;
103
+                .li_left{
104
+                    width: 66px;
105
+                    height: 66px;
106
+                    background: #F6F6F6;
107
+                    border: 1px solid #A7A5A5;
108
+                    display: flex;
109
+                    align-items: center;
110
+                    justify-content: center;
111
+                    flex-direction: column;
112
+                    margin-right: 30px;
113
+                    transition: all .5s;
114
+                    border-radius: 8px;
115
+                    span:nth-child(1){
116
+                        font-family: Source Han Sans CN;
117
+                        font-weight: 500;
118
+                        font-size: 30px;
119
+                        color: #B81C25;
120
+                    }
121
+                    span:nth-child(2){
122
+                        font-family: Source Han Sans CN;
123
+                        font-weight: 500;
124
+                        font-size: 13px;
125
+                        color: #231F20;
126
+                        position: relative;
127
+                        &::after{
128
+                            content: '';
129
+                            position: absolute;
130
+                            top: -1px;
131
+                            left: -8%;
132
+                            height: 1px;
133
+                            width: 120%;
134
+                            background-color: #B81C25;
135
+                        }
136
+                    }
137
+                    a{
138
+                        cursor: pointer;
139
+                    }
140
+                }
141
+                .li_cont{
142
+                    font-family: Source Han Sans CN;
143
+                    font-weight: 400;
144
+                    transition: all .2s;
145
+
146
+                    div:nth-child(1){
147
+                        font-weight: 500;
148
+                        font-size: 20px;
149
+                        color: #231F20;
150
+                        line-height: 30px;
151
+                        margin-bottom: 10px;
152
+                        transition: all .2s;
153
+                    }
154
+                    div:nth-child(2){
155
+                        font-weight: 500;
156
+                        font-size: 16px;
157
+                        color: #A7A5A5;
158
+                        line-height: 30px;
159
+                        display: -webkit-box;        /* 使用 Flexbox 布局 */
160
+                        -webkit-box-orient: vertical; /* 垂直方向排列 */
161
+                        -webkit-line-clamp: 1;      /* 限制显示的行数,这里是3行 */
162
+                        overflow: hidden;            /* 隐藏超出部分 */
163
+                    }
164
+                }
165
+                &:hover{
166
+                    background: #EFEFEF;
167
+                    .li_cont{
168
+                        div:nth-child(1){
169
+                            color: #B81C25;
170
+                        }
171
+                    }
172
+                }
173
+                &:last-child{
174
+                    border: none;
175
+                }
176
+            }
177
+        }
178
+    }
179
+
180
+    .news_paging{
181
+        display: flex;
182
+        align-items: center;
183
+        justify-content: center;
184
+        padding: 100px 0 120px;
185
+        background: #F6F6F6;
186
+        .previousPage{
187
+            width: 40px;
188
+            height: 40px;
189
+            color: #041954;
190
+            display: flex;
191
+            align-items: center;
192
+            justify-content: center;
193
+            border: 1px solid #041954;
194
+            margin-right: 20px;
195
+            cursor: pointer;
196
+            transition: all 0.2s;
197
+            span{
198
+                font-size: 26px;
199
+                transform: rotate(-90deg);
200
+            }
201
+            &:hover{
202
+                background: #B81C25;
203
+                border: 1px solid #B81C25;
204
+                color: #fff;
205
+            }
206
+        }
207
+        .nextPage{
208
+            width: 40px;
209
+            height: 40px;
210
+            color: #041954;
211
+            display: flex;
212
+            align-items: center;
213
+            justify-content: center;
214
+            border: 1px solid #041954;
215
+            margin-left: 20px;
216
+            cursor: pointer;
217
+            transition: all 0.2s;
218
+            span{
219
+                font-size: 26px;
220
+                transform: rotate(90deg);
221
+            }
222
+            &:hover{
223
+                background: #B81C25;
224
+                border: 1px solid #B81C25;
225
+                color: #fff;
226
+            }
227
+        }
228
+        .pageNum{
229
+            min-width: 40px;
230
+            height: 40px;
231
+            line-height: 40px;
232
+            font-family: Source Han Sans CN;
233
+            font-size: 18px;
234
+            color: #000;
235
+            transition: all 0.2s;
236
+            padding: 0 5px;
237
+            box-sizing: border-box;
238
+            cursor: pointer;
239
+            text-align: center;
240
+            border: 1px solid #DDE2E6;
241
+            border-radius: 2px;
242
+            &:hover{
243
+                background: #B81C25;
244
+                border: 1px solid #B81C25;
245
+                color: #fff;
246
+            }
247
+        }
248
+        .pageNums{
249
+            pointer-events: none;
250
+        }
251
+        .pageNum+.pageNum{
252
+            margin-left: 10px;
253
+        }
254
+        .pageNumActive{
255
+            color: #041954;
256
+        }
257
+        .ellipsis{
258
+            font-family: Source Han Sans CN;
259
+            font-weight: bold;
260
+            font-size: 22px;
261
+            padding: 10px 15px;
262
+            color: #333333;
263
+            // cursor: pointer;
264
+            transition: all 0.2s;
265
+            // &:hover{
266
+            //     color:#48A038
267
+            // }
268
+        }
269
+    }
270
+
271
+    .typeCon{
272
+        width: 100%;
273
+        background: #F6F6F6;
274
+        padding-bottom: 250px;
275
+        display: none;
276
+        .infoul{
277
+            width: 100%;
278
+            max-width: 1300px;
279
+            margin: 0 auto;
280
+            .infoLi{
281
+                padding: 70px 0;
282
+                border-bottom:1px solid #9FA3A5;
283
+                width: 100%;
284
+                .liTitle{
285
+                    display: flex;
286
+                    width: 100%;
287
+                    justify-content: space-between;
288
+                    cursor: pointer;
289
+                    .liTit{
290
+                        width: calc(100% - 220px);
291
+                        line-height: 84px;
292
+                        overflow: hidden;
293
+                        display: flex;
294
+                        flex-wrap: wrap;
295
+                        font-size: 40px;
296
+                        font-weight: bold;
297
+                        &>div{
298
+                            width: 100%;
299
+                        }
300
+                    }
301
+                    .button{
302
+                        width: 84px;
303
+                        height: 84px;
304
+                        display: flex;
305
+                        align-items: center;
306
+                        justify-content: center;
307
+                        background-color: #B2B5B7;
308
+                        border-radius: 50%;
309
+                        color: #fff;
310
+                        cursor: pointer;
311
+                        transition: all .2s;
312
+                        position: relative;
313
+                        transform: scale(1);
314
+                        &::before{
315
+                            content: '';
316
+                            width: 17px;
317
+                            height: 3px;
318
+                            background-color: #fff;
319
+                            z-index: 2;
320
+                        }
321
+                        &::after{
322
+                            content: '';
323
+                            width: 3px;
324
+                            height: 17px;
325
+                            background-color: #fff;
326
+                            left: 50%;
327
+                            position: absolute;
328
+                            top: 50%;
329
+                            transform: translate(-50%, -50%);
330
+                        }
331
+                        .btnjbg{
332
+                            position: absolute;
333
+                            bottom: 0px;
334
+                            left: -1px;
335
+                            right: 0px;
336
+                            top: 0px;
337
+                            background-color: #B81C25;
338
+                            -webkit-clip-path: circle(0 at 50% 50%);
339
+                            clip-path: circle(0 at 50% 50%);
340
+                            transition: -webkit-clip-path .65s cubic-bezier(.19,1,.22,1);
341
+                            transition: clip-path .65s cubic-bezier(.19,1,.22,1);
342
+                            transition: clip-path .65s cubic-bezier(.19,1,.22,1), -webkit-clip-path .65s cubic-bezier(.19,1,.22,1);
343
+                            transition: clip-path .65s cubic-bezier(.19,1,.22,1), -webkit-clip-path .65s cubic-bezier(.19,1,.22,1);
344
+                        }
345
+                    }
346
+                }
347
+                
348
+                .infoSonLi{
349
+                    padding-top: 30px;
350
+                    width: 100%;
351
+                    height: 0px;
352
+                    box-sizing: border-box;
353
+                    overflow: hidden;
354
+                    border-bottom: 1px dashed #000000;
355
+                    margin-bottom: 95px;
356
+                    // transition: all 1s ease-in-out;
357
+                    &:last-child{
358
+                        border-bottom: 0px;
359
+                        margin-bottom: 0px;
360
+                        
361
+                    }
362
+                    .h4{
363
+                        margin-top: 80px;
364
+                        font-size: 28px;
365
+                        &:first-child{
366
+                            margin-top: 0;
367
+                            color: #0056a7;
368
+                        }
369
+                    }
370
+                    .h5R{
371
+                        margin-top: 40px;
372
+                    }
373
+                    .text{
374
+                        color: #9fa3a5;
375
+                    }
376
+                    .btn2{
377
+                        margin: 130px 0 140px;
378
+                    }
379
+                }
380
+            }
381
+            .infoLiShow{
382
+                .liTitle{
383
+                    .button{
384
+                        // background-color: #0054A7;
385
+                        &::before{
386
+                            content: '';
387
+                            width: 17px;
388
+                            height: 3px;
389
+                            background-color: #fff;  
390
+                        }
391
+                        &::after{
392
+                            display: none;
393
+                        }
394
+                        .btnjbg{
395
+                            -webkit-clip-path: circle(50% at 50% 50%);
396
+                            clip-path: circle(50% at 50% 50%);
397
+                        }
398
+                    }
399
+                }
400
+                // @-webkit-keyframes textDown{
401
+                //     0%{height: 0%;}
402
+                //     100%{height: 100%;}
403
+                // }
404
+                // @keyframes textDown{
405
+                //     0%{height: 0%;}
406
+                //     100%{height: 100%;}
407
+                // }
408
+                
409
+                // .infoSonLi{
410
+                //     display: block;
411
+                //     animation: textDown 1s ease-in-out 0 forwards;
412
+                // }
413
+            }
414
+        }
415
+    }
416
+}
417
+a{
418
+    display: inline-block;
419
+}
420
+
421
+@media screen and (min-width: 801px) and (max-width: 1400px) {
422
+    .main{
423
+        
424
+    }
425
+}
426
+
427
+//移动端样式
428
+@media screen and (max-width:800px) {
429
+   
430
+    .main {
431
+        width: 100%;
432
+        padding-top: 30vw;
433
+        .content{
434
+            width: 92vw;
435
+            margin: 0 auto;
436
+            .banner_box{
437
+                display: block;
438
+                margin-bottom: 15vw;
439
+                .news_banner{
440
+                    width: 100%;
441
+                    height: auto;
442
+                    margin-bottom: 8vw;
443
+                    img{
444
+                        width: 100%;
445
+                        height: 62.75vw;
446
+                        border-radius: 1.625vw;
447
+                        object-fit: cover;
448
+                    }
449
+                    
450
+                    .news_content{
451
+                        padding: 3.75vw;
452
+                        flex-direction: column;
453
+                        .cont1{
454
+                            font-size: 6.375vw;
455
+                            margin: 0;
456
+                            margin-bottom: 10.625vw;
457
+                            width: 100%;
458
+                            text-align: center;
459
+                        }
460
+                        .cont2{
461
+                            width: 100%;
462
+                            line-height: 24px;
463
+                        //     font-family: Source Han Sans CN;
464
+                            font-size: 3.75vw;
465
+                            text-align: justify;
466
+                        //     color: #fff;
467
+                        //     margin-top: 2.5vw;
468
+                        }
469
+                        // .cont3{
470
+                        //     font-family: Source Han Sans CN;
471
+                        //     font-size: 3.25vw;
472
+                        //     color: #fff;
473
+                        // }
474
+                    }
475
+                    
476
+                }
477
+            }
478
+            .tabs_box{
479
+                width: 100%;
480
+                font-size: 3.75vw;
481
+                .tabs_li{
482
+                    margin-right: 4.9vw;
483
+                    padding-bottom: 5.625vw;
484
+                }
485
+            }
486
+        }
487
+        .news_ul{
488
+            width: 100%;
489
+            .news_list{
490
+                margin-top: 0;
491
+                width: 100%;
492
+                box-sizing: border-box;
493
+                padding: 0 3.75vw;
494
+                .news_li{
495
+                    padding:5.625vw 0;
496
+                    .li_left{
497
+                        width: 16.25vw;
498
+                    }
499
+                    .li_cont{
500
+                        width: 71.5vw;
501
+                        div:nth-child(1){
502
+                            font-family: Source Han Sans CN;
503
+                            font-size: 3.75vw;
504
+                            color: #282828;
505
+                            line-height: 7.5vw;
506
+                            display: -webkit-box;        /* 使用 Flexbox 布局 */
507
+                            -webkit-box-orient: vertical; /* 垂直方向排列 */
508
+                            -webkit-line-clamp: 1;      /* 限制显示的行数,这里是3行 */
509
+                            overflow: hidden;     
510
+                            font-weight: bold;
511
+                        }
512
+                        div:nth-child(2){
513
+                            width: auto;
514
+                            height: auto;
515
+                            overflow: unset;
516
+                            line-height: 1.5;
517
+                            font-family: Source Han Sans CN;
518
+                            font-size: 3.25vw;
519
+                            color: #A7A5A5;
520
+                            padding: 0;
521
+                            display: -webkit-box;        /* 使用 Flexbox 布局 */
522
+                            -webkit-box-orient: vertical; /* 垂直方向排列 */
523
+                            -webkit-line-clamp: 2;      /* 限制显示的行数,这里是3行 */
524
+                            overflow: hidden;     
525
+                        }
526
+                      
527
+                    }
528
+                }
529
+            }
530
+        }
531
+        .news_paging{
532
+            padding-top: 16vw;
533
+            .previousPage{
534
+                width: 40px;
535
+                height: 40px;
536
+                margin-right: 20px;
537
+                box-sizing: border-box;
538
+            }
539
+            .nextPage{
540
+                width: 40px;
541
+                height: 40px;
542
+                margin-left: 3.25vw;
543
+                transition: all 0.2s;
544
+                box-sizing: border-box;
545
+            }
546
+            .pageNum{
547
+                font-size: 3.5vw;
548
+            }
549
+            .ellipsis{
550
+                font-size: 3.5vw;
551
+                padding: 1.875vw 2.5vw;
552
+                // &:hover{
553
+                //     color:#48A038
554
+                // }
555
+            }
556
+        }
557
+        .typeCon{
558
+            padding: 0px 4vw 150px;
559
+            box-sizing: border-box;
560
+            .infoul{
561
+                .infoLi{
562
+                    padding: 40px 0;
563
+                    .liTitle{
564
+                        align-items: center;
565
+                        .liTit{
566
+                            height: auto;
567
+                            line-height: 40px;
568
+                            width: calc(100% - 60px);
569
+                            overflow: initial;
570
+                            font-size: 24px;
571
+                        }
572
+                        .button{
573
+                            width: 40px;
574
+                            height: 40px;
575
+                            left: 0px;
576
+                            .btnjbg{
577
+                                left: 0px;
578
+                            }
579
+                            &::before{
580
+                                content: '';
581
+                                width: 8px;
582
+                                height: 2px;
583
+                            }
584
+                            &::after{
585
+                                content: '';
586
+                                width: 2px;
587
+                                height: 8px;
588
+                            }
589
+                        }
590
+                    }
591
+                    .infoSonLi{
592
+                        margin-bottom: 75px;
593
+                        padding-top: 0px;
594
+                        transition: padding 0.5s ease-in-out;
595
+                        .text{
596
+                            margin-bottom: 0px;
597
+                        }
598
+                    }
599
+                }
600
+                .infoLiShow{
601
+                    .infoSonLi{
602
+                        padding-top: 30px;
603
+                    }
604
+                    .liTitle .btn .btnjbg{
605
+                        -webkit-clip-path: circle(19px at 20px 20px);
606
+                        clip-path: circle(19px at 20px 20px);
607
+                    }
608
+                }
609
+            }
610
+        }
611
+    }
612
+}

Laden…
Abbrechen
Speichern