许成详 6 年之前
父節點
當前提交
7c0c784694

+ 30
- 3
package-lock.json 查看文件

1949
         }
1949
         }
1950
       }
1950
       }
1951
     },
1951
     },
1952
+    "base64-arraybuffer": {
1953
+      "version": "0.1.5",
1954
+      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
1955
+      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
1956
+    },
1952
     "base64-js": {
1957
     "base64-js": {
1953
       "version": "1.3.0",
1958
       "version": "1.3.0",
1954
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
1959
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
2579
       "dev": true
2584
       "dev": true
2580
     },
2585
     },
2581
     "chromedriver": {
2586
     "chromedriver": {
2582
-      "version": "2.44.0",
2583
-      "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.44.0.tgz",
2584
-      "integrity": "sha512-/lDFxpSc3mJG/+RF657qDVa3XbfwG8+X2x0Y3kVkvZe6u6aZg+zTMHeGoQziUQGPaDQ9sj8sFYv4duv/AS6y7A==",
2587
+      "version": "2.45.0",
2588
+      "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.45.0.tgz",
2589
+      "integrity": "sha512-Qwmcr+2mU3INeR6mVsQ8gO00vZpL8ZeTJLclX44C0dcs88jrSDgckPqbG+qkVX+m2L/aOPnF0lYgPdOiOiLt5w==",
2585
       "dev": true,
2590
       "dev": true,
2586
       "requires": {
2591
       "requires": {
2587
         "del": "3.0.0",
2592
         "del": "3.0.0",
3234
       "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
3239
       "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
3235
       "dev": true
3240
       "dev": true
3236
     },
3241
     },
3242
+    "css-line-break": {
3243
+      "version": "1.0.1",
3244
+      "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz",
3245
+      "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=",
3246
+      "requires": {
3247
+        "base64-arraybuffer": "0.1.5"
3248
+      }
3249
+    },
3237
     "css-loader": {
3250
     "css-loader": {
3238
       "version": "0.28.11",
3251
       "version": "0.28.11",
3239
       "resolved": "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
3252
       "resolved": "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
6339
         }
6352
         }
6340
       }
6353
       }
6341
     },
6354
     },
6355
+    "html2canvas": {
6356
+      "version": "1.0.0-alpha.12",
6357
+      "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
6358
+      "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=",
6359
+      "requires": {
6360
+        "css-line-break": "1.0.1"
6361
+      }
6362
+    },
6342
     "htmlparser2": {
6363
     "htmlparser2": {
6343
       "version": "3.3.0",
6364
       "version": "3.3.0",
6344
       "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
6365
       "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
15412
       "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
15433
       "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
15413
       "dev": true
15434
       "dev": true
15414
     },
15435
     },
15436
+    "weixin-jsapi": {
15437
+      "version": "1.1.0",
15438
+      "resolved": "https://registry.npmjs.org/weixin-jsapi/-/weixin-jsapi-1.1.0.tgz",
15439
+      "integrity": "sha1-UalaIiTFnR2PAv3bxt5S2hazRLM=",
15440
+      "dev": true
15441
+    },
15415
     "whatwg-encoding": {
15442
     "whatwg-encoding": {
15416
       "version": "1.0.5",
15443
       "version": "1.0.5",
15417
       "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
15444
       "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",

+ 2
- 1
package.json 查看文件

15
   },
15
   },
16
   "dependencies": {
16
   "dependencies": {
17
     "axios": "^0.18.0",
17
     "axios": "^0.18.0",
18
+    "html2canvas": "^1.0.0-alpha.12",
18
     "mescroll.js": "^1.3.8",
19
     "mescroll.js": "^1.3.8",
19
     "vant": "^1.4.5",
20
     "vant": "^1.4.5",
20
     "vue": "^2.5.2",
21
     "vue": "^2.5.2",
38
     "babel-preset-stage-2": "^6.22.0",
39
     "babel-preset-stage-2": "^6.22.0",
39
     "babel-register": "^6.22.0",
40
     "babel-register": "^6.22.0",
40
     "chalk": "^2.0.1",
41
     "chalk": "^2.0.1",
41
-    "chromedriver": "^2.27.2",
42
+    "chromedriver": "^2.45.0",
42
     "copy-webpack-plugin": "^4.0.1",
43
     "copy-webpack-plugin": "^4.0.1",
43
     "cross-spawn": "^5.0.1",
44
     "cross-spawn": "^5.0.1",
44
     "css-loader": "^0.28.0",
45
     "css-loader": "^0.28.0",

+ 2
- 2
src/App.vue 查看文件

13
   name: 'App',
13
   name: 'App',
14
   data () {
14
   data () {
15
     return {
15
     return {
16
-      showPage: false,
16
+      showPage: true,
17
       code: ''
17
       code: ''
18
     }
18
     }
19
   },
19
   },
20
   created () {
20
   created () {
21
-    this.init()
21
+    // this.init()
22
     this.getAppId().then(() => {
22
     this.getAppId().then(() => {
23
       console.log(this.appid)
23
       console.log(this.appid)
24
     })
24
     })

+ 122
- 95
src/pages/home/index.vue 查看文件

1
 <template>
1
 <template>
2
-  <div class="mainPage">
2
+  <div class="mainPage" id="canvasPage">
3
     <div class="imgArr" :hidden="true">
3
     <div class="imgArr" :hidden="true">
4
       <img
4
       <img
5
         v-for="item in imgTotal"
5
         v-for="item in imgTotal"
6
         :key="item"
6
         :key="item"
7
-        :src="'https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-' + item + '.png'"
7
+        :src="'http://wx.jinchengjiaye.com/h5-2019/static/images/icon-' + item + '.png'"
8
         @load="imgLoad"
8
         @load="imgLoad"
9
         alt
9
         alt
10
       >
10
       >
11
     </div>
11
     </div>
12
     <div class="subPage" v-if="showPage">
12
     <div class="subPage" v-if="showPage">
13
       <img
13
       <img
14
-        src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-12.png"
14
+        src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-12.png"
15
         style="z-index: 3;"
15
         style="z-index: 3;"
16
         class="centerLabel cover"
16
         class="centerLabel cover"
17
         alt
17
         alt
18
       >
18
       >
19
       <img
19
       <img
20
-        src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-10.png"
20
+        src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-10.png"
21
         class="icon10"
21
         class="icon10"
22
         style="position: absolute;left:9vw;top:3.7vh;z-index:100;width: 31.2vw;"
22
         style="position: absolute;left:9vw;top:3.7vh;z-index:100;width: 31.2vw;"
23
+        v-if="imgSrc === null"
23
         :class="{'active': currentPage !== 0}"
24
         :class="{'active': currentPage !== 0}"
24
         alt
25
         alt
25
       >
26
       >
26
-      <div class="page1" :class="{'show': currentPage === 1}">
27
+      <div class="page1" :class="{'show': currentPage === 1 && imgSrc === null}">
27
         <img
28
         <img
28
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-3.png"
29
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-3.png"
29
           class="icon3"
30
           class="icon3"
30
           style="position: absolute;left:0;top:0;z-index:2;width: 87.5vw;"
31
           style="position: absolute;left:0;top:0;z-index:2;width: 87.5vw;"
31
           :class="{'active': currentPage === 1}"
32
           :class="{'active': currentPage === 1}"
32
           alt
33
           alt
33
         >
34
         >
34
         <img
35
         <img
35
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-4.png"
36
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-4.png"
36
           class="icon4"
37
           class="icon4"
37
           style="position: absolute;right:0;bottom:0;z-index:2;width: 77vw;"
38
           style="position: absolute;right:0;bottom:0;z-index:2;width: 77vw;"
38
           :class="{'active': currentPage === 1}"
39
           :class="{'active': currentPage === 1}"
40
         >
41
         >
41
         <div class="centerLabel" style="z-index: 3">
42
         <div class="centerLabel" style="z-index: 3">
42
           <img
43
           <img
43
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-11.png"
44
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-11.png"
44
             class="icon11"
45
             class="icon11"
45
             style="width: 36.5vw;"
46
             style="width: 36.5vw;"
46
             :class="{'active': currentPage === 1}"
47
             :class="{'active': currentPage === 1}"
51
             style="overflow: visible;position: relative;-webkit-transform-style: preserve-3d !important;transform-style: preserve-3d !important;"
52
             style="overflow: visible;position: relative;-webkit-transform-style: preserve-3d !important;transform-style: preserve-3d !important;"
52
           >
53
           >
53
             <img
54
             <img
54
-              src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-2.png"
55
+              src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-2.png"
55
               class="icon2"
56
               class="icon2"
56
               style="width:68vw;transform: translateY(.2rem);-webkit-transform: translateY(.2rem);"
57
               style="width:68vw;transform: translateY(.2rem);-webkit-transform: translateY(.2rem);"
57
               :class="{'active': currentPage === 1}"
58
               :class="{'active': currentPage === 1}"
61
             <div class="circle circle2 centerLabel" :class="{'active': currentPage === 1}"></div>
62
             <div class="circle circle2 centerLabel" :class="{'active': currentPage === 1}"></div>
62
           </div>
63
           </div>
63
           <img
64
           <img
64
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-13.png"
65
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
65
             class="icon13"
66
             class="icon13"
66
             style="width:56vw;display:inline-block;margin-top: .4rem;"
67
             style="width:56vw;display:inline-block;margin-top: .4rem;"
67
             :class="{'active': currentPage === 1}"
68
             :class="{'active': currentPage === 1}"
68
             alt
69
             alt
69
           >
70
           >
70
           <img
71
           <img
71
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-1.png"
72
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-1.png"
72
             class="icon1"
73
             class="icon1"
73
             style="width: 35.7vw;margin-top: .2rem;"
74
             style="width: 35.7vw;margin-top: .2rem;"
74
             :class="{'active': currentPage === 1}"
75
             :class="{'active': currentPage === 1}"
77
           >
78
           >
78
         </div>
79
         </div>
79
       </div>
80
       </div>
80
-      <div class="page2" :class="{'show': currentPage === 2}">
81
+      <div class="page2" :class="{'show': currentPage === 2 && imgSrc === null}">
81
         <img
82
         <img
82
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-7.png"
83
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-7.png"
83
           class="icon7"
84
           class="icon7"
84
           style="position: absolute;left:0;top:0;z-index:2;width: 100vw;"
85
           style="position: absolute;left:0;top:0;z-index:2;width: 100vw;"
85
           :class="{'active': currentPage === 2}"
86
           :class="{'active': currentPage === 2}"
86
           alt
87
           alt
87
         >
88
         >
88
         <img
89
         <img
89
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-6.png"
90
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-6.png"
90
           class="icon6"
91
           class="icon6"
91
           style="position: absolute;right:0;bottom:0;z-index:2;width: 100vw;"
92
           style="position: absolute;right:0;bottom:0;z-index:2;width: 100vw;"
92
           :class="{'active': currentPage === 2}"
93
           :class="{'active': currentPage === 2}"
93
           alt
94
           alt
94
         >
95
         >
95
         <img
96
         <img
96
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-5.png"
97
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-5.png"
97
           class="icon5"
98
           class="icon5"
98
           style="position: absolute;right:9vw;bottom:3.5vh;z-index:11;width: 43.7vw;"
99
           style="position: absolute;right:9vw;bottom:3.5vh;z-index:11;width: 43.7vw;"
99
           :class="{'active': currentPage === 2}"
100
           :class="{'active': currentPage === 2}"
100
           alt
101
           alt
101
         >
102
         >
103
+        <div class="nextStep" v-if="userSelectFlag.length" @click="nextStep">
104
+          <span>下一步</span>
105
+        </div>
102
         <div class="centerLabel">
106
         <div class="centerLabel">
103
           <img
107
           <img
104
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-13.png"
108
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
105
             class="icon13"
109
             class="icon13"
106
             style="width:66vw;display:inline-block;margin-top: .4rem;"
110
             style="width:66vw;display:inline-block;margin-top: .4rem;"
107
             :class="{'active': currentPage === 2}"
111
             :class="{'active': currentPage === 2}"
108
             alt
112
             alt
109
           >
113
           >
110
           <div class="content">
114
           <div class="content">
111
-            <span class="flagItem flagItem1" :class="{'active': currentPage === 2}">努力的目标</span>
112
-            <span class="flagItem flagItem2" :class="{'active': currentPage === 2}">努力的目标</span>
113
-            <span class="flagItem flagItem3" :class="{'active': currentPage === 2}">努力的目标</span>
114
-            <span class="flagItem flagItem4" :class="{'active': currentPage === 2}">努力的目标</span>
115
-            <span class="flagItem flagItem5" :class="{'active': currentPage === 2}">努力的目标</span>
116
-            <span class="flagItem flagItem6" :class="{'active': currentPage === 2}">努力的目标</span>
117
-            <span class="flagItem flagItem7" :class="{'active': currentPage === 2}">努力的目标</span>
118
-            <span class="flagItem flagItem8" :class="{'active': currentPage === 2}">努力的目标</span>
119
-            <span class="flagItem flagItem9" :class="{'active': currentPage === 2}">努力的目标</span>
120
-            <span class="flagItem flagItem10" :class="{'active': currentPage === 2}">努力的目标</span>
115
+            <span
116
+              v-for="(item, index) in selectFlag"
117
+              :key="index"
118
+              class="flagItem"
119
+              :class="{'active': currentPage === 2, [`flagItem${index+1}`]: true, 'selected': item.select}"
120
+              @click="selectFlagItem(item, index)"
121
+            >{{item.value}}</span>
121
           </div>
122
           </div>
122
         </div>
123
         </div>
123
       </div>
124
       </div>
124
-      <div class="page3" :hidden="currentPage !== 3">
125
-        <img
126
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
127
-          class="icon8"
128
-          style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
129
-          alt
130
-        >
131
-        <img
132
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
133
-          class="icon9"
134
-          style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
135
-          alt
136
-        >
137
-        <div class="centerLabel">
138
-          <span>亲爱的你,新年好</span>
139
-          <span>亲爱的你,新年好</span>
140
-          <span>亲爱的你,新年好</span>
141
-          <span>亲爱的你,新年好</span>
142
-          <span>亲爱的你,新年好</span>
143
-          <span>亲爱的你,新年好</span>
144
-          <span>亲爱的你,新年好</span>
145
-          <span>亲爱的你,新年好</span>
146
-          <span>亲爱的你,新年好</span>
147
-          <span>亲爱的你,新年好</span>
148
-        </div>
149
-      </div>
150
-      <div class="page4" :hidden="currentPage !== 4">
125
+      <div class="page3" :class="{'show': currentPage === 3 && imgSrc === null}">
151
         <img
126
         <img
152
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
127
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-8.png"
153
           class="icon8"
128
           class="icon8"
154
           style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
129
           style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
155
           alt
130
           alt
156
         >
131
         >
157
         <img
132
         <img
158
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
133
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-9.png"
159
           class="icon9"
134
           class="icon9"
160
           style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
135
           style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
161
           alt
136
           alt
162
         >
137
         >
163
-        <div class="centerLabel">
164
-          <span>亲爱的你,新年好</span>
165
-          <span>亲爱的你,新年好</span>
166
-          <span>亲爱的你,新年好</span>
167
-          <span></span>
168
-          <span>亲爱的你,新年好</span>
169
-          <span>亲爱的你,新年好</span>
170
-          <span>亲爱的你,新年好</span>
171
-          <span>亲爱的你,新年好</span>
172
-          <span>亲爱的你,新年好</span>
173
-          <span>亲爱的你,新年好</span>
174
-        </div>
175
-      </div>
176
-      <div class="page5" :hidden="currentPage !== 5">
177
-        <img
178
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
179
-          class="icon8"
180
-          style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
181
-          alt
182
-        >
183
-        <img
184
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
185
-          class="icon9"
186
-          style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
187
-          alt
188
-        >
189
-        <div class="userIcon">
138
+        <div class="userIcon" style="z-index: 20;">
190
           <a>
139
           <a>
191
             <img :src="userIcon" class="centerLabel cover" alt>
140
             <img :src="userIcon" class="centerLabel cover" alt>
192
           </a>
141
           </a>
193
         </div>
142
         </div>
194
-        <div class="centerLabel">
195
-          <span>亲爱的你,新年好</span>
196
-          <span>亲爱的你,新年好</span>
197
-          <span>亲爱的你,新年好</span>
143
+        <div class="centerLabel" style="z-index: 20">
144
+          <img
145
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-15.png"
146
+            width="100%"
147
+            alt
148
+          >
198
           <span></span>
149
           <span></span>
199
-          <span>亲爱的你,新年好</span>
200
-          <span>亲爱的你,新年好</span>
201
-          <span>亲爱的你,新年好</span>
202
-          <span>亲爱的你,新年好</span>
203
-          <span>亲爱的你,新年好</span>
204
-          <span>亲爱的你,新年好</span>
150
+          <img
151
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-16.png"
152
+            v-if="showEndTextIndex === 0"
153
+            width="100%"
154
+            alt
155
+          >
156
+          <img
157
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-17.png"
158
+            v-if="showEndTextIndex === 1"
159
+            width="100%"
160
+            alt
161
+          >
162
+          <img
163
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-18.png"
164
+            v-if="showEndTextIndex === 2"
165
+            width="100%"
166
+            alt
167
+          >
205
         </div>
168
         </div>
206
         <div class="bottomText">
169
         <div class="bottomText">
207
           <div class="qrCode">
170
           <div class="qrCode">
208
             <a>
171
             <a>
209
-              <img :src="qrCode" class="centerLabel cover" alt>
172
+              <img src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-19.png" class="centerLabel cover" alt>
210
             </a>
173
             </a>
211
           </div>
174
           </div>
212
           <span>长按二维码</span>
175
           <span>长按二维码</span>
213
           <span>祝福你的2019</span>
176
           <span>祝福你的2019</span>
214
         </div>
177
         </div>
215
       </div>
178
       </div>
179
+      <div class="page4" :class="{'show': currentPage === 4 && imgSrc !== null}">
180
+        <img :src="imgSrc" width="100%" class="cover" alt>
181
+      </div>
216
     </div>
182
     </div>
217
   </div>
183
   </div>
218
 </template>
184
 </template>
219
 
185
 
220
 <script>
186
 <script>
187
+import html2canvas from 'html2canvas'
188
+import musicPlay from '../../util/music'
221
 export default {
189
 export default {
222
   name: '',
190
   name: '',
223
   data () {
191
   data () {
224
     return {
192
     return {
225
       showPage: false,
193
       showPage: false,
226
       imgNum: 0,
194
       imgNum: 0,
227
-      imgTotal: 18,
195
+      imgTotal: 19,
228
       currentPage: 0,
196
       currentPage: 0,
229
       userIcon: '',
197
       userIcon: '',
230
       qrCode: '',
198
       qrCode: '',
255
         '实现财务自由',
223
         '实现财务自由',
256
         '方案一次过',
224
         '方案一次过',
257
         '男(女)神回复我信息'
225
         '男(女)神回复我信息'
258
-      ]
226
+      ],
227
+      selectFlag: [],
228
+      userSelectFlag: [],
229
+      showEndTextIndex: Math.floor(Math.random() * 3),
230
+      imgSrc: null
259
     }
231
     }
260
   },
232
   },
261
   computed: {
233
   computed: {
263
   components: {
235
   components: {
264
   },
236
   },
265
   created () {
237
   created () {
238
+    '*********'.split('*').forEach(x => {
239
+      while (true) {
240
+        const inx = Math.floor(Math.random() * this.flagList.length)
241
+        const res = this.flagList[inx]
242
+        if (this.selectFlag.indexOf(res) === -1) {
243
+          this.selectFlag.push({
244
+            select: false,
245
+            value: res
246
+          })
247
+          break
248
+        }
249
+      }
250
+    })
266
   },
251
   },
267
   mounted () {
252
   mounted () {
268
     this.$nextTick(() => {
253
     this.$nextTick(() => {
254
+      musicPlay('http://wx.jinchengjiaye.com/h5-2019/static/images/Thomas%20Greenberg.mp3')
269
     })
255
     })
270
   },
256
   },
271
   methods: {
257
   methods: {
258
+    nextStep () { // 下一步
259
+      this.currentPage = this.userSelectFlag.length ? 3 : 2
260
+      window.setTimeout(() => {
261
+        this.convert2canvas(document.getElementById('canvasPage')).then((res) => {
262
+          this.imgSrc = res
263
+          this.currentPage = 4
264
+        })
265
+      }, 300)
266
+    },
267
+    selectFlagItem (item, index) {
268
+      document.getElementsByClassName('flagItem')[index].style = 'transition: all .3s ease;-webkit-transition: all .3s ease;'
269
+      item.select = true
270
+      this.userSelectFlag.push(item)
271
+    },
272
     imgLoad () { // 图片加载进度存储
272
     imgLoad () { // 图片加载进度存储
273
       this.imgNum += 1
273
       this.imgNum += 1
274
       if (this.imgNum === this.imgTotal) {
274
       if (this.imgNum === this.imgTotal) {
280
     },
280
     },
281
     returnImgNum () { // 图片加载进度读取
281
     returnImgNum () { // 图片加载进度读取
282
       return Math.floor((this.imgNum / this.imgTotal) * 100)
282
       return Math.floor((this.imgNum / this.imgTotal) * 100)
283
+    },
284
+    convert2canvas (dom) {
285
+      return new Promise((resolve, reject) => {
286
+        var shareContent = dom
287
+        var width = shareContent.offsetWidth // 获取dom 宽度
288
+        var height = shareContent.offsetHeight // 获取dom 高度
289
+        var canvas = document.createElement('canvas') // 创建一个canvas节点
290
+        var scale = 1 // 定义任意放大倍数 支持小数
291
+        canvas.width = width * scale // 定义canvas 宽度 * 缩放
292
+        canvas.height = height * scale // 定义canvas高度 *缩放
293
+        canvas.getContext('2d').scale(scale, scale) // 获取context,设置scale
294
+        var opts = {
295
+          scale: scale, // 添加的scale 参数
296
+          canvas: canvas, // 自定义 canvas
297
+          width: width, // dom 原始宽度
298
+          height: height,
299
+          useCORS: true // 【重要】开启跨域配置
300
+        }
301
+        html2canvas(shareContent, opts).then(function (canvas) {
302
+          var context = canvas.getContext('2d') // 【重要】关闭抗锯齿
303
+          context.mozImageSmoothingEnabled = false
304
+          context.webkitImageSmoothingEnabled = false
305
+          context.msImageSmoothingEnabled = false
306
+          context.imageSmoothingEnabled = false
307
+          resolve(canvas.toDataURL('image/jpeg'))
308
+        })
309
+      })
283
     }
310
     }
284
   }
311
   }
285
 }
312
 }

+ 58
- 10
src/pages/home/page.scss 查看文件

59
         }
59
         }
60
       }
60
       }
61
       &.page2{
61
       &.page2{
62
+        .nextStep{
63
+          padding: .02rem;
64
+          border: 2px solid #fff;
65
+          position: absolute;
66
+          right: 12vw;
67
+          bottom: 4.5vh;
68
+          z-index: 200;
69
+          display: inline-block;
70
+          span{
71
+            background: #de7ba2;
72
+            color: #fff;
73
+            font-size: .18rem;
74
+            display: inline-block;
75
+            line-height: .3rem;
76
+            padding: 0 .1rem;
77
+          }
78
+        }
62
         >.centerLabel{
79
         >.centerLabel{
63
           width: 100%;
80
           width: 100%;
64
           z-index: 11;
81
           z-index: 11;
80
               display: inline-block;
97
               display: inline-block;
81
               position: absolute;
98
               position: absolute;
82
               padding: 0 .1rem;
99
               padding: 0 .1rem;
100
+              white-space: nowrap;
83
               z-index: 11;
101
               z-index: 11;
84
               &:nth-child(2n){
102
               &:nth-child(2n){
85
                 transform: translateX(-1rem);
103
                 transform: translateX(-1rem);
117
               background: #5bcff1;
135
               background: #5bcff1;
118
               border-radius: .1rem;
136
               border-radius: .1rem;
119
               overflow: visible;
137
               overflow: visible;
138
+              &.selected{
139
+                opacity: 0;
140
+              }
120
               &::after{
141
               &::after{
121
                 content: '';
142
                 content: '';
122
                 border-color: #5bcff1 transparent transparent transparent;
143
                 border-color: #5bcff1 transparent transparent transparent;
123
                 border-width: .15rem;
144
                 border-width: .15rem;
124
                 bottom: -.24rem;
145
                 bottom: -.24rem;
125
-                right: 50%;
146
+                right: 30%;
126
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
147
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
127
                 transform: rotateY(60deg) rotateZ(-20deg);
148
                 transform: rotateY(60deg) rotateZ(-20deg);
128
               }
149
               }
136
               background: #f8b551;
157
               background: #f8b551;
137
               border-radius: .1rem;
158
               border-radius: .1rem;
138
               overflow: visible;
159
               overflow: visible;
160
+              &.selected{
161
+                opacity: 0;
162
+              }
139
               &::after{
163
               &::after{
140
                 content: '';
164
                 content: '';
141
                 border-color: #f8b551 transparent transparent transparent;
165
                 border-color: #f8b551 transparent transparent transparent;
142
                 border-width: .15rem;
166
                 border-width: .15rem;
143
                 bottom: -.24rem;
167
                 bottom: -.24rem;
144
-                left: 50%;
168
+                left: 30%;
145
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
169
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
146
                 transform: rotateY(60deg) rotateZ(20deg);
170
                 transform: rotateY(60deg) rotateZ(20deg);
147
               }
171
               }
155
               background: #de7ba2;
179
               background: #de7ba2;
156
               border-radius: .1rem;
180
               border-radius: .1rem;
157
               overflow: visible;
181
               overflow: visible;
182
+              &.selected{
183
+                opacity: 0;
184
+              }
158
               &::after{
185
               &::after{
159
                 content: '';
186
                 content: '';
160
                 border-color: #de7ba2 transparent transparent transparent;
187
                 border-color: #de7ba2 transparent transparent transparent;
161
                 border-width: .15rem;
188
                 border-width: .15rem;
162
                 bottom: -.24rem;
189
                 bottom: -.24rem;
163
-                left: 50%;
190
+                left: 30%;
164
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
191
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
165
                 transform: rotateY(60deg) rotateZ(-20deg);
192
                 transform: rotateY(60deg) rotateZ(-20deg);
166
               }
193
               }
174
               background: #fdc17a;
201
               background: #fdc17a;
175
               border-radius: .1rem;
202
               border-radius: .1rem;
176
               overflow: visible;
203
               overflow: visible;
204
+              &.selected{
205
+                opacity: 0;
206
+              }
177
               &::after{
207
               &::after{
178
                 content: '';
208
                 content: '';
179
                 border-color: #fdc17a transparent transparent transparent;
209
                 border-color: #fdc17a transparent transparent transparent;
180
                 border-width: .15rem;
210
                 border-width: .15rem;
181
                 bottom: -.24rem;
211
                 bottom: -.24rem;
182
-                right: 50%;
212
+                right: 30%;
183
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
213
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
184
                 transform: rotateY(60deg) rotateZ(20deg);
214
                 transform: rotateY(60deg) rotateZ(20deg);
185
               }
215
               }
193
               background: #f8b551;
223
               background: #f8b551;
194
               border-radius: .1rem;
224
               border-radius: .1rem;
195
               overflow: visible;
225
               overflow: visible;
226
+              &.selected{
227
+                opacity: 0;
228
+              }
196
               &::after{
229
               &::after{
197
                 content: '';
230
                 content: '';
198
                 border-color: #f8b551 transparent transparent transparent;
231
                 border-color: #f8b551 transparent transparent transparent;
199
                 border-width: .15rem;
232
                 border-width: .15rem;
200
                 bottom: -.24rem;
233
                 bottom: -.24rem;
201
-                left: 60%;
234
+                left: 30%;
202
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
235
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
203
                 transform: rotateY(60deg) rotateZ(-20deg);
236
                 transform: rotateY(60deg) rotateZ(-20deg);
204
               }
237
               }
212
               background: #f8b551;
245
               background: #f8b551;
213
               border-radius: .1rem;
246
               border-radius: .1rem;
214
               overflow: visible;
247
               overflow: visible;
248
+              &.selected{
249
+                opacity: 0;
250
+              }
215
               &::after{
251
               &::after{
216
                 content: '';
252
                 content: '';
217
                 border-color: #f8b551 transparent transparent transparent;
253
                 border-color: #f8b551 transparent transparent transparent;
218
                 border-width: .15rem;
254
                 border-width: .15rem;
219
                 bottom: -.24rem;
255
                 bottom: -.24rem;
220
-                left: 50%;
256
+                left: 30%;
221
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
257
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
222
                 transform: rotateY(60deg) rotateZ(20deg);
258
                 transform: rotateY(60deg) rotateZ(20deg);
223
               }
259
               }
233
               overflow: visible;
269
               overflow: visible;
234
               transform: translateX(-50%);
270
               transform: translateX(-50%);
235
               -webkit-transform: translateX(-50%);
271
               -webkit-transform: translateX(-50%);
272
+              &.selected{
273
+                opacity: 0;
274
+              }
236
               &::after{
275
               &::after{
237
                 content: '';
276
                 content: '';
238
                 border-color: #a57dd1 transparent transparent transparent;
277
                 border-color: #a57dd1 transparent transparent transparent;
239
                 border-width: .15rem;
278
                 border-width: .15rem;
240
                 bottom: -.24rem;
279
                 bottom: -.24rem;
241
-                left: 60%;
280
+                left: 30%;
242
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
281
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
243
                 transform: rotateY(60deg) rotateZ(-20deg);
282
                 transform: rotateY(60deg) rotateZ(-20deg);
244
               }
283
               }
252
               background: #f8b551;
291
               background: #f8b551;
253
               border-radius: .1rem;
292
               border-radius: .1rem;
254
               overflow: visible;
293
               overflow: visible;
294
+              &.selected{
295
+                opacity: 0;
296
+              }
255
               &::after{
297
               &::after{
256
                 content: '';
298
                 content: '';
257
                 border-color: #f8b551 transparent transparent transparent;
299
                 border-color: #f8b551 transparent transparent transparent;
258
                 border-width: .15rem;
300
                 border-width: .15rem;
259
                 bottom: -.24rem;
301
                 bottom: -.24rem;
260
-                left: 60%;
302
+                left: 30%;
261
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
303
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
262
                 transform: rotateY(60deg) rotateZ(-20deg);
304
                 transform: rotateY(60deg) rotateZ(-20deg);
263
               }
305
               }
271
               background: #fdc17a;
313
               background: #fdc17a;
272
               border-radius: .1rem;
314
               border-radius: .1rem;
273
               overflow: visible;
315
               overflow: visible;
316
+              &.selected{
317
+                opacity: 0;
318
+              }
274
               &::after{
319
               &::after{
275
                 content: '';
320
                 content: '';
276
                 border-color: #fdc17a transparent transparent transparent;
321
                 border-color: #fdc17a transparent transparent transparent;
277
                 border-width: .15rem;
322
                 border-width: .15rem;
278
                 bottom: -.24rem;
323
                 bottom: -.24rem;
279
-                left: 60%;
324
+                left: 30%;
280
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
325
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
281
                 transform: rotateY(60deg) rotateZ(-20deg);
326
                 transform: rotateY(60deg) rotateZ(-20deg);
282
               }
327
               }
290
               background: #f8b551;
335
               background: #f8b551;
291
               border-radius: .1rem;
336
               border-radius: .1rem;
292
               overflow: visible;
337
               overflow: visible;
338
+              &.selected{
339
+                opacity: 0;
340
+              }
293
               &::after{
341
               &::after{
294
                 content: '';
342
                 content: '';
295
                 border-color: #f8b551 transparent transparent transparent;
343
                 border-color: #f8b551 transparent transparent transparent;
296
                 border-width: .15rem;
344
                 border-width: .15rem;
297
                 bottom: -.24rem;
345
                 bottom: -.24rem;
298
-                left: 50%;
346
+                left: 30%;
299
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
347
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
300
                 transform: rotateY(60deg) rotateZ(20deg);
348
                 transform: rotateY(60deg) rotateZ(20deg);
301
               }
349
               }

+ 51
- 0
src/util/music.js 查看文件

1
+/* eslint-disable */
2
+export default function musicPlay (src) {
3
+  var className = 'play'
4
+  var trigger = 'ontouchend' in document ? 'touchstart' : 'click'
5
+  var $musci = document.createElement('div')
6
+  var $audio = document.createElement('audio')
7
+
8
+  function start () {
9
+    document.removeEventListener(trigger, start, false)
10
+    if (!$audio.paused) return
11
+    $audio.play()
12
+  }
13
+
14
+  function toggle () {
15
+    if (!$audio.paused) return $audio.pause()
16
+
17
+    $audio.currentTime = 0
18
+    $audio.play()
19
+  }
20
+
21
+  function play (e) {
22
+    $musci.classList.add(className)
23
+  }
24
+
25
+  function pause (e) {
26
+    $musci.classList.remove(className)
27
+  }
28
+
29
+  $musci.className = 'music-icon'
30
+  $musci.classList.add('paused')
31
+  $audio.src = src
32
+  $audio.id = "audio"
33
+  $audio.loop = true
34
+  $audio.volume = 0.5
35
+  document.body.appendChild($musci)
36
+  document.body.appendChild($audio)
37
+
38
+  $audio.addEventListener('play', play, false)
39
+  $audio.addEventListener('pause', pause, false)
40
+  $audio.addEventListener('ended', pause, false)
41
+  $musci.addEventListener('click', toggle, false)
42
+  try {
43
+    $audio.play()
44
+  } catch (err) {
45
+  }
46
+  document.addEventListener("WeixinJSBridgeReady", function () {
47
+    $audio.play()
48
+  }, false)
49
+
50
+  document.addEventListener(trigger, start, false)
51
+}

二進制
static/images/icon-1.png 查看文件


二進制
static/images/icon-10.png 查看文件


二進制
static/images/icon-11.png 查看文件


二進制
static/images/icon-12.png 查看文件


二進制
static/images/icon-13.png 查看文件


二進制
static/images/icon-14.png 查看文件


二進制
static/images/icon-15.png 查看文件


二進制
static/images/icon-16.png 查看文件


二進制
static/images/icon-17.png 查看文件


二進制
static/images/icon-18.png 查看文件


二進制
static/images/icon-19.png 查看文件


二進制
static/images/icon-2.png 查看文件


二進制
static/images/icon-3.png 查看文件


二進制
static/images/icon-4.png 查看文件


二進制
static/images/icon-5.png 查看文件


二進制
static/images/icon-6.png 查看文件


二進制
static/images/icon-7.png 查看文件


二進制
static/images/icon-8.png 查看文件


二進制
static/images/icon-9.png 查看文件