Yansen před 2 roky
rodič
revize
0efa14347e

+ 2
- 2
index.html Zobrazit soubor

@@ -8,10 +8,10 @@
8 8
     <script src="./jquery.1.9.1.js"></script>
9 9
     <script src="./turn.min.js"></script>
10 10
     <script src="./config.js"></script>
11
-    <!-- <script src="./slidePage/slidePage.min.js"></script> -->
11
+    <script src="./slidePage/slidePage.min.js"></script>
12 12
     <!-- <script src="https://api.map.baidu.com/api?v=3.0&ak=IDixtryGuZAFPZLh4r8XCAM054r8LCRs"></script> -->
13 13
 
14
-    <!-- <link rel="stylesheet" href="./slidePage/slidePage.min.css"> -->
14
+    <link rel="stylesheet" href="./slidePage/slidePage.min.css">
15 15
 
16 16
     <link rel="stylesheet" href="./fonts/SourceHanSerifCN-Medium/SourceHanSerifCN-Medium.css">
17 17
     <title>南京-紫金草行动</title>

+ 2
- 2
public/config.js Zobrazit soubor

@@ -9,5 +9,5 @@ const shareOptTpl = {
9 9
 const link1URL = 'http://h5.njyunzhi.com/wenhua818-2/index.html';
10 10
 
11 11
 // 分享接口地址
12
-const API_BASE = 'http://api.h5.zijincao.njyunzhi.com';
13
-// const API_BASE = '';
12
+// const API_BASE = 'http://api.h5.zijincao.njyunzhi.com';
13
+const API_BASE = '';

binární
public/images/fl-bg.png Zobrazit soubor


binární
public/images/loading/allrights.png Zobrazit soubor


binární
public/images/loading/center.png Zobrazit soubor


binární
public/images/loading/loader.png Zobrazit soubor


binární
public/images/loading/main.png Zobrazit soubor


binární
public/images/loading/飞机1.png Zobrazit soubor


binární
public/images/loading/飞机2.png Zobrazit soubor


binární
public/images/loading/飞机3.png Zobrazit soubor


binární
public/images/pg4/btn_badge.png Zobrazit soubor


binární
public/images/pg4/btn_share.png Zobrazit soubor


binární
public/video/开始视频.mp4 Zobrazit soubor


+ 3
- 3
src/App.vue Zobrazit soubor

@@ -3,7 +3,7 @@
3 3
   import { useModel } from '@zjxpcyc/vue-tiny-store';
4 4
   import wxsdk from '@/utils/wx'
5 5
   import track from '@/utils/track'
6
-  import Loading from './First.vue';
6
+  import Loading from './pages/Loading.vue';
7 7
 
8 8
   const { el, play } = useModel('audio');
9 9
   const { setUser, contries } = useModel('user');
@@ -51,8 +51,8 @@
51 51
 </script>
52 52
 
53 53
 <template>
54
-  <!-- <Loading v-if="!show" class="loading" @ready="(show = true)" /> -->
55
-  <router-view></router-view>
54
+  <Loading v-if="!show" class="loading" @ready="(show = true)" />
55
+  <router-view v-else></router-view>
56 56
 
57 57
   <audio ref="el" src="/audio/audio.mp3" style="max-width: 0" loop preload="auto"></audio>
58 58
 </template>

+ 149
- 0
src/pages/Loading.bak.vue Zobrazit soubor

@@ -0,0 +1,149 @@
1
+<template>
2
+  <div class="page pg-bg loading-pg">
3
+    <div class="content">
4
+      <div class="load-main">
5
+        <img class="main-img" src="/images/loading/main.png" alt="">
6
+        <div v-if="percent !== '100%'">
7
+          <div class="process-bar"></div>
8
+          <div class="process-percent">{{percent}}</div>
9
+        </div>
10
+        <div v-else class="select-lan">
11
+          <div><Btn class="btn" @click="onSelect('zh')">中文版</Btn></div>
12
+          <div><Btn class="btn" @click="onSelect('en')">English</Btn></div>
13
+        </div>
14
+      </div>
15
+    </div>
16
+    <div class="footer">
17
+      <img src="/images/loading/allrights.png" alt="">
18
+    </div>
19
+  </div>
20
+</template>
21
+
22
+<script setup>
23
+  import { onMounted, ref } from 'vue';
24
+  import Btn from '@/components/Btn.vue';
25
+  import { useI18n } from 'vue-i18n';
26
+  import { preload } from '@/utils/preload'
27
+
28
+  const emit = defineEmits(['ready']);
29
+
30
+  const percent = ref('0%');
31
+  const { locale } = useI18n();
32
+  
33
+  const onSelect = lan => {
34
+    locale.value = lan;
35
+    emit('ready');
36
+  }
37
+
38
+  const onProcess = (val) => {
39
+    
40
+    const p = Number(val * 100).toFixed(2);
41
+    console.log('----loading->', p);
42
+    if (p >= 100) {
43
+      percent.value = '100%';
44
+    } else {
45
+      percent.value = `${p}%`;
46
+    }
47
+  }
48
+
49
+  onMounted(() => {
50
+    preload(onProcess)
51
+  });
52
+
53
+</script>
54
+
55
+<style lang="less" scoped>
56
+.loading-pg {
57
+  display: flex;
58
+  flex-direction: column;
59
+
60
+  &.hidden {
61
+    display: none;
62
+  }
63
+
64
+  .content {
65
+    flex: 1;
66
+    display: flex;
67
+    align-items: center;
68
+    justify-content: center;
69
+
70
+    .load-main {
71
+      text-align: center;
72
+      width: 70vw;
73
+      flex: none;
74
+
75
+      .main-img {
76
+        width: 80%;
77
+        margin: auto;
78
+      }
79
+
80
+      .process-bar {
81
+        position: relative;
82
+        z-index: 0;
83
+        margin-top: 36px;
84
+        width: 100%;
85
+        height: 2px;
86
+        background: #b9a58a;
87
+
88
+        &::before {
89
+          content: '';
90
+          position: absolute;
91
+          z-index: 1;
92
+          width: v-bind(percent);
93
+          height: 100%;
94
+          left: 0;
95
+          top: 0;
96
+          background: #847560;
97
+        }
98
+
99
+        &::after {
100
+          content: '';
101
+          position: absolute;
102
+          z-index: 2;
103
+          width: 24px;
104
+          height: 24px;
105
+          background-image: url(/images/loading/loader.png);
106
+          background-size: 100% 100%;
107
+          background-repeat: no-repeat;
108
+          left: calc(v-bind(percent) - 12px);
109
+          top: -11px;
110
+          animation: loader-cricle 2s linear infinite;
111
+        }
112
+      }
113
+
114
+      @keyframes loader-cricle {
115
+        from {
116
+          transform: rotate(0);
117
+        }
118
+        to {
119
+          transform: rotate(360deg);
120
+        }
121
+      }
122
+
123
+      .process-percent {
124
+        text-align: center;
125
+        color: #5c4034;
126
+        font-size: 1.2em;
127
+        margin-top: 1em;
128
+      }
129
+    }
130
+
131
+    .select-lan {
132
+      margin-top: 100px;
133
+
134
+      div {
135
+        & + div {
136
+          margin-top: 10vw;
137
+        }
138
+      }
139
+    }
140
+  }
141
+
142
+  .footer {
143
+    box-sizing: border-box;
144
+    flex: none;
145
+    height: 100px;
146
+    padding: 16px 48px;
147
+  }
148
+}
149
+</style>

+ 126
- 85
src/pages/Loading.vue Zobrazit soubor

@@ -1,44 +1,51 @@
1 1
 <template>
2
-  <div class="page pg-bg loading-pg">
2
+  <div class="page pg-bg loading-pg" @click="onClick">
3
+    <div class="loading-bg">
4
+      <img class="fl-bg1 abs" src="/images/fl-bg.png" alt="">
5
+      <img class="fl-bg2 abs" src="/images/fl-bg.png" alt="">
6
+    </div>
7
+    <div class="header abs">
8
+      <Bell />
9
+    </div>
3 10
     <div class="content">
4
-      <div class="load-main">
5
-        <img class="main-img" src="/images/loading/main.png" alt="">
6
-        <div v-if="percent !== '100%'">
7
-          <div class="process-bar"></div>
8
-          <div class="process-percent">{{percent}}</div>
9
-        </div>
10
-        <div v-else class="select-lan">
11
-          <div><Btn class="btn" @click="onSelect('zh')">中文版</Btn></div>
12
-          <div><Btn class="btn" @click="onSelect('en')">English</Btn></div>
11
+      <div class="loading-main">
12
+        <img class="main-img" src="/images/loading/center.png" alt="">
13
+        <img class="fly1 abs" :class="{'fly-near': !finished, 'fly-away': finished}" src="/images/loading/飞机1.png" alt="">
14
+        <img class="fly2 abs" :class="{'fly-near': !finished, 'fly-away': finished}" src="/images/loading/飞机2.png" alt="">
15
+        <img class="fly3 abs" :class="{'fly-near': !finished, 'fly-away': finished}" src="/images/loading/飞机3.png" alt="">
16
+        <div class="txt loading-text">
17
+          {{percent}}
13 18
         </div>
14 19
       </div>
15 20
     </div>
16
-    <div class="footer">
17
-      <img src="/images/loading/allrights.png" alt="">
21
+    <DownArrow v-if="percent == '100%'" style="bottom: 120px" />
22
+    <div class="footer abs txt">
23
+      主办单位:中共南京市委网信办、共青团南京市委员会、南京广播电视集团、清华日军南京大屠杀遇难同胞纪念馆
18 24
     </div>
19 25
   </div>
20 26
 </template>
21 27
 
22 28
 <script setup>
23 29
   import { onMounted, ref } from 'vue';
24
-  import Btn from '@/components/Btn.vue';
25
-  import { useI18n } from 'vue-i18n';
30
+  import Bell from '@/components/Bell.vue';
31
+  import DownArrow from '@/components/DownArrow.vue';
26 32
   import { preload } from '@/utils/preload'
27 33
 
28 34
   const emit = defineEmits(['ready']);
35
+  const finished = ref(false);
29 36
 
30 37
   const percent = ref('0%');
31
-  const { locale } = useI18n();
32
-  
33
-  const onSelect = lan => {
34
-    locale.value = lan;
35
-    emit('ready');
38
+
39
+  const onClick = () => {
40
+    finished.value = true;
41
+
42
+    const t = setTimeout(() => {
43
+      emit('ready');
44
+    }, 1600);
36 45
   }
37 46
 
38
-  const onProcess = (val) => {
39
-    
47
+  const onProcess = (val) => {    
40 48
     const p = Number(val * 100).toFixed(2);
41
-    console.log('----loading->', p);
42 49
     if (p >= 100) {
43 50
       percent.value = '100%';
44 51
     } else {
@@ -49,101 +56,135 @@
49 56
   onMounted(() => {
50 57
     preload(onProcess)
51 58
   });
52
-
53 59
 </script>
54 60
 
55 61
 <style lang="less" scoped>
56 62
 .loading-pg {
57
-  display: flex;
58
-  flex-direction: column;
63
+  width: 100%;
64
+  height: 100%;
65
+  overflow: hidden;
66
+
67
+  .loading-bg {
68
+    position: absolute;
69
+    z-index: 0;
70
+    width: 100%;
71
+    height: 100%;
72
+    left: 0;
73
+    top: 0;
74
+
75
+    .fl-bg1 {
76
+      width: 64px;
77
+      top: 65vh;
78
+      left: 50vw;
79
+      animation: fl-skew 4s ease-in-out 300ms infinite alternate;
80
+    }
81
+    
82
+    .fl-bg2 {
83
+      width: 64px;
84
+      top: 45vh;
85
+      right: -32px;
86
+      animation: fl-skew 4s ease-in-out 100ms infinite alternate;
87
+    }
59 88
 
60
-  &.hidden {
61
-    display: none;
89
+    @keyframes fl-skew {
90
+      from {
91
+        transform: rotate(0) skew(0, 0);
92
+      }
93
+      to {
94
+        transform: rotate(5deg) skew(20deg, 25deg);
95
+      }
96
+    }
62 97
   }
63 98
 
99
+
64 100
   .content {
65
-    flex: 1;
101
+    position: relative;
102
+    width: 100%;
103
+    height: 100%;
66 104
     display: flex;
67 105
     align-items: center;
68 106
     justify-content: center;
69 107
 
70
-    .load-main {
108
+    .loading-main {
109
+      position: relative;
71 110
       text-align: center;
72
-      width: 70vw;
111
+      width: 80vw;
73 112
       flex: none;
74 113
 
75 114
       .main-img {
76
-        width: 80%;
115
+        width: 100%;
77 116
         margin: auto;
78 117
       }
79 118
 
80
-      .process-bar {
81
-        position: relative;
82
-        z-index: 0;
83
-        margin-top: 36px;
119
+      .loading-text {
84 120
         width: 100%;
85
-        height: 2px;
86
-        background: #b9a58a;
87
-
88
-        &::before {
89
-          content: '';
90
-          position: absolute;
91
-          z-index: 1;
92
-          width: v-bind(percent);
93
-          height: 100%;
94
-          left: 0;
95
-          top: 0;
96
-          background: #847560;
97
-        }
98
-
99
-        &::after {
100
-          content: '';
101
-          position: absolute;
102
-          z-index: 2;
103
-          width: 24px;
104
-          height: 24px;
105
-          background-image: url(/images/loading/loader.png);
106
-          background-size: 100% 100%;
107
-          background-repeat: no-repeat;
108
-          left: calc(v-bind(percent) - 12px);
109
-          top: -11px;
110
-          animation: loader-cricle 2s linear infinite;
111
-        }
121
+        font-size: 24px;
112 122
       }
113 123
 
114
-      @keyframes loader-cricle {
115
-        from {
116
-          transform: rotate(0);
117
-        }
118
-        to {
119
-          transform: rotate(360deg);
120
-        }
124
+      .fly1 {
125
+        width: 65vw;
126
+        top: 0;
127
+        left: 0;
128
+        animation-delay: 100ms;
129
+        animation-duration: 1s;
121 130
       }
122 131
 
123
-      .process-percent {
124
-        text-align: center;
125
-        color: #5c4034;
126
-        font-size: 1.2em;
127
-        margin-top: 1em;
132
+      .fly2 {
133
+        width: 30vw;
134
+        top: -5vh;
135
+        left: 17vw;
136
+        animation-delay: 560ms;
137
+        animation-duration: 1.2s;
138
+      }
139
+
140
+      .fly3 {
141
+        width: 25vw;
142
+        top: -12vh;
143
+        left: 10vw;
144
+        animation-delay: 350ms;
145
+        animation-duration: 1.6s;
128 146
       }
129 147
     }
148
+  }
130 149
 
131
-    .select-lan {
132
-      margin-top: 100px;
150
+  .fly-near {
151
+    animation: fly-near 1.2s ease-in-out 100ms infinite alternate;
152
+  }
133 153
 
134
-      div {
135
-        & + div {
136
-          margin-top: 10vw;
137
-        }
138
-      }
154
+  @keyframes fly-near {
155
+    from {
156
+      transform: translateY(0);
157
+    }
158
+    to {
159
+      transform: translateY(-10%);
160
+    }
161
+  }
162
+
163
+  .fly-away {
164
+    animation: fly-away 1.2s ease-in-out 100ms forwards;
165
+  }
166
+
167
+  @keyframes fly-away {
168
+    from {
169
+      transform: translate3D(0, 0, 0);
139 170
     }
171
+    to {
172
+      transform: translate3D(100vw, -20vh, 0);
173
+    }
174
+  }
175
+
176
+  .header {
177
+    top: 24px;
178
+    right: 24px;
179
+    width: 40px;
140 180
   }
141 181
 
142 182
   .footer {
143
-    box-sizing: border-box;
144
-    flex: none;
145
-    height: 100px;
146
-    padding: 16px 48px;
183
+    font-size: 12px;
184
+    text-align: center;
185
+    bottom: 12px;
186
+    left: 0;
187
+    padding: 0 16px;
147 188
   }
148 189
 }
149 190
 </style>

+ 70
- 31
src/pages/index.vue Zobrazit soubor

@@ -1,15 +1,29 @@
1 1
 <template>
2
-  <div style="height: 100vh;">
3
-    <Bell class="bell" />
4
-    <div class="pages slide-container">
5
-      <div class="slide-page-2">
6
-        <Pg1 class="container" />
7
-      </div>
8
-      <div class="slide-page-2">
9
-        <Pg2 class="container" />
10
-      </div>
11
-      <div class="slide-page-2">
12
-        <Pg3 class="container" />
2
+  <div style="height: 100%;">
3
+    <div class="first-video" v-if="first">
4
+      <video
5
+        webkit-playsinline
6
+        playsinline
7
+        src="/video/开始视频.mp4"
8
+        autoplay="autoplay"
9
+        ref="vidRef"
10
+        @play="pause()"
11
+        @pause="play()"
12
+        @ended="first = false"
13
+      />
14
+    </div>
15
+    <div v-else style="height: 100%;">
16
+      <Bell class="bell" />
17
+      <div class="pages slide-container">
18
+        <div class="slide-page">
19
+          <Pg1 class="container" />
20
+        </div>
21
+        <div class="slide-page">
22
+          <Pg2 class="container" />
23
+        </div>
24
+        <div class="slide-page">
25
+          <Pg3 class="container" />
26
+        </div>
13 27
       </div>
14 28
     </div>
15 29
   </div>
@@ -22,36 +36,61 @@ import Bell from '@/components/Bell.vue'
22 36
 import Pg1 from './pg1/index.vue'
23 37
 import Pg2 from './pg2/index.vue'
24 38
 import Pg3 from './pg3/index.vue'
25
-import parallaxing from '@/utils/parallaxing.js'
39
+// import parallaxing from '@/utils/parallaxing.js'
26 40
 
27
-const { play } = useModel('audio')
41
+const { play, pause } = useModel('audio');
42
+const vidRef = ref();
43
+const first = ref(true);
44
+
45
+watch(first, (val) => {
46
+  if (!val) {
47
+    const t = setTimeout(() => {
48
+      var slidepage = new window.slidePage({
49
+        slideContainer: '.slide-container',
50
+        slidePages: '.slide-page',
51
+        page: 1,
52
+        refresh: false,
53
+        dragMode: false,
54
+        useWheel: true,
55
+        useSwipe: true,
56
+        useAnimation : true,
57
+
58
+        // Events
59
+        before: function(origin,direction,target){},
60
+        after: function(origin,direction,target){},
61
+    });
62
+    }, 500);
63
+  }
64
+});
28 65
 
29 66
 onMounted(() => {
30
-  parallaxing()
67
+  vidRef.value.play();
68
+
69
+  // parallaxing()
31 70
   play()
32
-  //   var slidepage = new window.slidePage({
33
-  //     slideContainer: '.slide-container',
34
-  //     slidePages: '.slide-page',
35
-  //     page: 1,
36
-  //     refresh: false,
37
-  //     dragMode: false,
38
-  //     useWheel: true,
39
-  //     useSwipe: true,
40
-  //     useAnimation : true,
41
-
42
-  //     // Events
43
-  //     before: function(origin,direction,target){},
44
-  //     after: function(origin,direction,target){},
45
-  //  });
46 71
 })
47 72
 </script>
48 73
 
49 74
 <style lang="less">
75
+.first-video {
76
+  position: absolute;
77
+  z-index: 10;
78
+  width: 100%;
79
+  height: 100%;
80
+  left: 0;
81
+  top: 0;
82
+
83
+  & > video {
84
+    width: 100%;
85
+    height: 100%;
86
+  }
87
+}
88
+
50 89
 .bell {
51
-  right: 30px;
52
-  top: 30px;
53
-  z-index: 100;
54 90
   position: fixed;
91
+  z-index: 100;
92
+  right: 24px;
93
+  top: 24px
55 94
 }
56 95
 
57 96
 .pages {

+ 1
- 2
src/pages/pg1/index.vue Zobrazit soubor

@@ -54,7 +54,6 @@
54 54
     active.value = next;
55 55
   }
56 56
 
57
-
58 57
 </script>
59 58
 
60 59
 <style lang="less" scoped>
@@ -91,7 +90,7 @@
91 90
     }
92 91
 
93 92
     .body {
94
-      margin-top: 20vh;
93
+      margin-top: 10vh;
95 94
     }
96 95
 
97 96
     .part2 {

+ 1
- 1
src/pages/pg3/Ink.vue Zobrazit soubor

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div class="ink-box">
3 3
     <div>
4
-      <InkEffect class="ink-cover" :src="src" :active="active" />
4
+      <InkEffect class="ink-cover" :src="src" v-if="active" :active="true" />
5 5
       <!-- <img class="ink-back" :src="src" alt="" > -->
6 6
     </div>
7 7
   </div>

+ 6
- 2
src/pages/pg4/Share.vue Zobrazit soubor

@@ -5,13 +5,17 @@
5 5
       <img src="/images/pg4/btn_badge.png" alt="" @click="emit('badge')">
6 6
     </div>
7 7
     <div class="share-txt txt">
8
-      目前总种植数量: 35896690
8
+      目前总种植数量: {{user.num}}
9 9
     </div>
10 10
   </div>
11 11
 </template>
12 12
 
13 13
 <script setup>
14
-  const emit = defineEmits(['share', 'badge'])
14
+  import { useModel } from '@zjxpcyc/vue-tiny-store';
15
+
16
+  const emit = defineEmits(['share', 'badge']);
17
+
18
+  const { user } = useModel('user');
15 19
 </script>
16 20
 
17 21
 <style lang="less" scoped>

+ 105
- 32
src/utils/resources.js Zobrazit soubor

@@ -10,36 +10,109 @@ export const audios = [
10 10
 
11 11
 // 预加载资源
12 12
 export const resources = [
13
-  { image: './images/BG.jpg', },
14
-  { image: './images/loading/main.png', },
15
-  { image: './images/loading/loader.png', },
16
-  { image: './images/loading/allrights.png', },
17
-  { image: './images/pg1/bell.png', },
18
-  { image: './images/pg1/earth.png', },
19
-  { image: './images/pg1/honour.png', },
20
-  { image: './images/pg1/line1.png', },
21
-  { image: './images/pg1/line2.png', },
22
-  { image: './images/pg1/logo.png', },
23
-  { image: './images/pg1/peace.png', },
24
-  { image: './images/pg1/stele.png', },
25
-  { image: './images/pg1/wall.png', },
26
-  { image: './images/pg2/cloud-left.png', },
27
-  { image: './images/pg2/cloud-right.png', },
28
-  { image: './images/pg2/mountain.png', },
29
-  { image: './images/pg2/ruins.png', },
30
-  { image: './images/pg2/stele.png', },
31
-  { image: './images/pg2/story.png', },
32
-  { image: './images/pg2/flower/1-1.png', },
33
-  { image: './images/pg2/flower/1-2.png', },
34
-  { image: './images/pg2/flower/1-3.png', },
35
-  { image: './images/pg2/flower/1-4.png', },
36
-  { image: './images/pg2/flower/右-小.png', },
37
-  { image: './images/pg2/flower/左-小.png', },
38
-  { image: './images/bk1/flip.png', },
39
-  { image: './images/bk1/flower.png', },
40
-  { image: './images/bk1/goback.png', },
41
-  { image: './images/pg2-2/组4.png', },
42
-  { image: './images/pg2-2/照片4.png', },
43
-  { image: './images/pg2-2/图.png', },
44
-  { image: './images/pg2-2/紫金草行动logo拷贝.png', },
13
+  { image: './images/loading/center.png' },
14
+  { image: './images/loading/飞机1.png' },
15
+  { image: './images/loading/飞机2.png' },
16
+  { image: './images/loading/飞机3.png' },
17
+
18
+  // { image: './images/BG.jpg', },
19
+  { image: './images/close.png' },
20
+  { image: './images/cloud-texture.png' },
21
+  { image: './images/down.png' },
22
+  { image: './images/fl-bg.png' },
23
+  { image: './images/goback.png' },
24
+  { image: './images/logo.png' },
25
+  { image: './images/paper-bg.png' },
26
+  { image: './images/share.jpg' },
27
+  { image: './images/广电logo.png' },
28
+  { image: './images/电视台二维码.png' },
29
+
30
+  { image: './images/pg1/2014.png' },
31
+  { image: './images/pg1/bell.png' },
32
+  { image: './images/pg1/bg1.png' },
33
+  { image: './images/pg1/bg2.png' },
34
+  { image: './images/pg1/earth.png' },
35
+  { image: './images/pg1/honour.png' },
36
+  { image: './images/pg1/light-2.png' },
37
+  { image: './images/pg1/light.png' },
38
+  { image: './images/pg1/logo.png' },
39
+  { image: './images/pg1/md1-1.jpg' },
40
+  { image: './images/pg1/md2-header.png' },
41
+  { image: './images/pg1/peace.png' },
42
+
43
+  { image: './images/pg2/1939年.png' },
44
+  { image: './images/pg2/content-bg.png' },
45
+  { image: './images/pg2/flower1.png' },
46
+  { image: './images/pg2/flower2.png' },
47
+  { image: './images/pg2/map.png' },
48
+  { image: './images/pg2/text1.png' },
49
+  { image: './images/pg2/text2.png' },
50
+  { image: './images/pg2/废墟.png' },
51
+  { image: './images/pg2/废墟color.png' },
52
+  { image: './images/pg2/箭头-右.png' },
53
+
54
+  { image: './images/pg2-2/图.png' },
55
+  { image: './images/pg2-2/照片4.png' },
56
+  { image: './images/pg2-2/紫金草行动logo拷贝.png' },
57
+  { image: './images/pg2-2/组4.png' },
58
+
59
+  { image: './images/pg3/1.png' },
60
+  { image: './images/pg3/1937.png' },
61
+  { image: './images/pg3/2.png' },
62
+  { image: './images/pg3/3.png' },
63
+  { image: './images/pg3/4.png' },
64
+  { image: './images/pg3/5.png' },
65
+  { image: './images/pg3/arrow.png' },
66
+  { image: './images/pg3/btn.png' },
67
+  { image: './images/pg3/jing.png' },
68
+  { image: './images/pg3/left-bg.png' },
69
+  { image: './images/pg3/map.png' },
70
+  { image: './images/pg3/nan.png' },
71
+  { image: './images/pg3/right-bg.png' },
72
+  { image: './images/pg3/stele.png' },
73
+
74
+  { image: './images/pg4/beijing.png' },
75
+  { image: './images/pg4/btn_badge.png' },
76
+  { image: './images/pg4/btn_share.png' },
77
+  { image: './images/pg4/planting.png' },
78
+  { image: './images/pg4/播撒种子.png' },
79
+  { image: './images/pg4/重播.png' },
80
+
81
+  { image: './images/pg4/plant/中国-.png' },
82
+  { image: './images/pg4/plant/中国.png' },
83
+  { image: './images/pg4/plant/加拿大-.png' },
84
+  { image: './images/pg4/plant/加拿大.png' },
85
+  { image: './images/pg4/plant/土耳其-.png' },
86
+  { image: './images/pg4/plant/土耳其.png' },
87
+  { image: './images/pg4/plant/德国-.png' },
88
+  { image: './images/pg4/plant/德国.png' },
89
+  { image: './images/pg4/plant/新加坡-.png' },
90
+  { image: './images/pg4/plant/新加坡.png' },
91
+  { image: './images/pg4/plant/新西兰-.png' },
92
+  { image: './images/pg4/plant/新西兰.png' },
93
+  { image: './images/pg4/plant/日本-.png' },
94
+  { image: './images/pg4/plant/日本.png' },
95
+  { image: './images/pg4/plant/期待.png' },
96
+  { image: './images/pg4/plant/澳大利亚-.png' },
97
+  { image: './images/pg4/plant/澳大利亚.png' },
98
+  { image: './images/pg4/plant/瑞士-.png' },
99
+  { image: './images/pg4/plant/瑞士.png' },
100
+  { image: './images/pg4/plant/美国-.png' },
101
+  { image: './images/pg4/plant/美国.png' },
102
+  { image: './images/pg4/plant/芬兰-.png' },
103
+  { image: './images/pg4/plant/芬兰.png' },
104
+  { image: './images/pg4/plant/英国-.png' },
105
+  { image: './images/pg4/plant/英国.png' },
106
+  { image: './images/pg4/plant/韩国-.png' },
107
+  { image: './images/pg4/plant/韩国.png' },
108
+  { image: './images/pg4/plant/马来西亚-.png' },
109
+  { image: './images/pg4/plant/马来西亚.png' },
110
+
111
+  // { image: './images/bk1/flip.png', },
112
+  // { image: './images/bk1/flower.png', },
113
+  // { image: './images/bk1/goback.png', },
114
+  // { image: './images/pg2-2/组4.png', },
115
+  // { image: './images/pg2-2/照片4.png', },
116
+  // { image: './images/pg2-2/图.png', },
117
+  // { image: './images/pg2-2/紫金草行动logo拷贝.png', },
45 118
 ];