许成详 6 years ago
parent
commit
dba47e87c1

+ 2
- 2
src/App.vue View File

27
     })
27
     })
28
   },
28
   },
29
   methods: {
29
   methods: {
30
-    ...mapIndexActions(['getAppId', 'getUser', 'getShare', 'putShare']),
30
+    ...mapIndexActions(['getAppId', 'getUser', 'getShare']),
31
     async init () {
31
     async init () {
32
       try {
32
       try {
33
         await this.getAppId()
33
         await this.getAppId()
34
         await this.getCode()
34
         await this.getCode()
35
         await this.getUser({ code: this.code })
35
         await this.getUser({ code: this.code })
36
         this.showPage = true
36
         this.showPage = true
37
-        this.putShare()
37
+        this.getShare()
38
       } catch (err) {
38
       } catch (err) {
39
         console.log(err)
39
         console.log(err)
40
       }
40
       }

+ 52
- 19
src/pages/home/index.vue View File

9
         alt
9
         alt
10
       >
10
       >
11
     </div>
11
     </div>
12
-    <div class="subPage" v-if="showPage">
12
+    <div class="subPage" v-if="showPage" style="overflow: visible;">
13
       <img
13
       <img
14
         src="http://wx.jinchengjiaye.com/h5-2019/static/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;"
107
           <img
107
           <img
108
             src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
108
             src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
109
             class="icon13"
109
             class="icon13"
110
-            style="width:66vw;display:inline-block;margin-top: .4rem;"
110
+            style="width:66vw;display:inline-block;margin-top: 0;"
111
             :class="{'active': currentPage === 2}"
111
             :class="{'active': currentPage === 2}"
112
             alt
112
             alt
113
           >
113
           >
114
-          <div class="content">
114
+          <div class="content" style="overflow: visible">
115
             <span
115
             <span
116
               v-for="(item, index) in selectFlag"
116
               v-for="(item, index) in selectFlag"
117
               :key="index"
117
               :key="index"
122
           </div>
122
           </div>
123
         </div>
123
         </div>
124
       </div>
124
       </div>
125
-      <div class="page3" :class="{'show': currentPage === 3 && imgSrc === null}">
125
+      <div class="page3" :class="{'show': currentPage === 3 && imgSrc === null}" :style="{overflow: currentPage === 3 && imgSrc === null ? 'visible' : 'hidden'}">
126
         <img
126
         <img
127
           src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-8.png"
127
           src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-8.png"
128
           class="icon8"
128
           class="icon8"
137
         >
137
         >
138
         <div class="userIcon" style="z-index: 20;">
138
         <div class="userIcon" style="z-index: 20;">
139
           <a>
139
           <a>
140
-            <img :src="userIcon" class="centerLabel cover" alt>
140
+            <img
141
+              v-if="userInfo !== null"
142
+              :src="userInfo.Headimgurl.replace(/http:\/\/.+\.qlogo\.cn\//i, 'http://wx.jinchengjiaye.com/wechat-avatar/') || ''"
143
+              class="cover"
144
+              alt
145
+            >
141
           </a>
146
           </a>
142
         </div>
147
         </div>
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
-          >
148
+        <div class="centerLabel" style="z-index: 20;">
149
+          <span>新年好呀!</span>
150
+          <span>Flag只要敢想,都有可能实现!</span>
151
+          <span></span>
152
+          <span v-if="showEndTextIndex === 0">别人的青春由N颗痘痘代言,</span>
153
+          <span v-if="showEndTextIndex === 0">你的青春凝聚在一脸胶原蛋白。</span>
154
+          <span v-if="showEndTextIndex === 0">感谢2018的我们努力将自己打磨,</span>
155
+          <span v-if="showEndTextIndex === 0">变仙女!变男神!</span>
156
+          <span v-if="showEndTextIndex === 0">2019,我们都将是锦鲤本鲤!</span>
157
+          <span v-if="showEndTextIndex === 1">生活无非是认清它的真面目,</span>
158
+          <span v-if="showEndTextIndex === 1">然后爱它,</span>
159
+          <span v-if="showEndTextIndex === 1">2019,愿你不再犹豫,</span>
160
+          <span v-if="showEndTextIndex === 1">不再惧怕,不再疲惫,不再焦虑。</span>
161
+          <span v-if="showEndTextIndex === 1">初心不变,动力不减,</span>
162
+          <span v-if="showEndTextIndex === 1">撸起袖子创造幸福!!</span>
163
+          <span v-if="showEndTextIndex === 2">信杨超越,信王思聪,信锦鲤... ...</span>
164
+          <span v-if="showEndTextIndex === 2">2018我们信得太多,</span>
165
+          <span v-if="showEndTextIndex === 2">2019还是要信自己!</span>
166
+          <span v-if="showEndTextIndex === 2">信不弛于空想,</span>
167
+          <span v-if="showEndTextIndex === 2">信不骛于虚声,</span>
168
+          <span v-if="showEndTextIndex === 2">信一步一个脚印</span>
169
+          <span v-if="showEndTextIndex === 2">信锦鲤不是转发来的,是靠自己赢来的!</span>
170
+          <!-- <img src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-15.png" width="100%" alt>
149
           <span></span>
171
           <span></span>
150
           <img
172
           <img
151
             src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-16.png"
173
             src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-16.png"
164
             v-if="showEndTextIndex === 2"
186
             v-if="showEndTextIndex === 2"
165
             width="100%"
187
             width="100%"
166
             alt
188
             alt
167
-          >
189
+          > -->
168
         </div>
190
         </div>
169
         <div class="bottomText">
191
         <div class="bottomText">
170
           <div class="qrCode">
192
           <div class="qrCode">
171
             <a>
193
             <a>
172
-              <img src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-19.png" class="centerLabel cover" alt>
194
+              <img
195
+                src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-19.png"
196
+                class="cover"
197
+                alt
198
+              >
173
             </a>
199
             </a>
174
           </div>
200
           </div>
175
           <span>长按二维码</span>
201
           <span>长按二维码</span>
184
 </template>
210
 </template>
185
 
211
 
186
 <script>
212
 <script>
213
+import { createNamespacedHelpers } from 'vuex'
187
 import html2canvas from 'html2canvas'
214
 import html2canvas from 'html2canvas'
188
 import musicPlay from '../../util/music'
215
 import musicPlay from '../../util/music'
216
+const { mapState: mapUserState } = createNamespacedHelpers('user')
189
 export default {
217
 export default {
190
   name: '',
218
   name: '',
191
   data () {
219
   data () {
192
     return {
220
     return {
193
       showPage: false,
221
       showPage: false,
194
       imgNum: 0,
222
       imgNum: 0,
195
-      imgTotal: 19,
223
+      imgTotal: 20,
196
       currentPage: 0,
224
       currentPage: 0,
197
       userIcon: '',
225
       userIcon: '',
198
       qrCode: '',
226
       qrCode: '',
231
     }
259
     }
232
   },
260
   },
233
   computed: {
261
   computed: {
262
+    ...mapUserState({
263
+      userInfo: item => item.userInfo
264
+    })
234
   },
265
   },
235
   components: {
266
   components: {
236
   },
267
   },
239
       while (true) {
270
       while (true) {
240
         const inx = Math.floor(Math.random() * this.flagList.length)
271
         const inx = Math.floor(Math.random() * this.flagList.length)
241
         const res = this.flagList[inx]
272
         const res = this.flagList[inx]
242
-        if (this.selectFlag.indexOf(res) === -1) {
273
+        if (!this.selectFlag.filter(x => x.value === res)[0]) {
243
           this.selectFlag.push({
274
           this.selectFlag.push({
244
             select: false,
275
             select: false,
245
             value: res
276
             value: res
251
   },
282
   },
252
   mounted () {
283
   mounted () {
253
     this.$nextTick(() => {
284
     this.$nextTick(() => {
254
-      musicPlay('http://wx.jinchengjiaye.com/h5-2019/static/images/Thomas%20Greenberg.mp3')
285
+      musicPlay('https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/Thomas%20Greenberg.mp3')
255
     })
286
     })
256
   },
287
   },
257
   methods: {
288
   methods: {
258
     nextStep () { // 下一步
289
     nextStep () { // 下一步
259
       this.currentPage = this.userSelectFlag.length ? 3 : 2
290
       this.currentPage = this.userSelectFlag.length ? 3 : 2
260
-      window.setTimeout(() => {
291
+      // window.setTimeout(() => {
292
+      this.$nextTick(() => {
261
         this.convert2canvas(document.getElementById('canvasPage')).then((res) => {
293
         this.convert2canvas(document.getElementById('canvasPage')).then((res) => {
262
           this.imgSrc = res
294
           this.imgSrc = res
263
           this.currentPage = 4
295
           this.currentPage = 4
264
         })
296
         })
265
-      }, 300)
297
+      })
298
+      // }, 300)
266
     },
299
     },
267
     selectFlagItem (item, index) {
300
     selectFlagItem (item, index) {
268
       document.getElementsByClassName('flagItem')[index].style = 'transition: all .3s ease;-webkit-transition: all .3s ease;'
301
       document.getElementsByClassName('flagItem')[index].style = 'transition: all .3s ease;-webkit-transition: all .3s ease;'
287
         var width = shareContent.offsetWidth // 获取dom 宽度
320
         var width = shareContent.offsetWidth // 获取dom 宽度
288
         var height = shareContent.offsetHeight // 获取dom 高度
321
         var height = shareContent.offsetHeight // 获取dom 高度
289
         var canvas = document.createElement('canvas') // 创建一个canvas节点
322
         var canvas = document.createElement('canvas') // 创建一个canvas节点
290
-        var scale = 1 // 定义任意放大倍数 支持小数
323
+        var scale = window.devicePixelRatio // 定义任意放大倍数 支持小数
291
         canvas.width = width * scale // 定义canvas 宽度 * 缩放
324
         canvas.width = width * scale // 定义canvas 宽度 * 缩放
292
         canvas.height = height * scale // 定义canvas高度 *缩放
325
         canvas.height = height * scale // 定义canvas高度 *缩放
293
         canvas.getContext('2d').scale(scale, scale) // 获取context,设置scale
326
         canvas.getContext('2d').scale(scale, scale) // 获取context,设置scale

+ 84
- 74
src/pages/home/page.scss View File

76
           position: absolute;
76
           position: absolute;
77
           top: -0.35rem;
77
           top: -0.35rem;
78
           left: -0.2rem;
78
           left: -0.2rem;
79
-          background-image: url("../../assets/c.png");
79
+          background-image: url("http://wx.jinchengjiaye.com/h5-2019/static/images/icon-20.png");
80
           background-size: 100% 100%;
80
           background-size: 100% 100%;
81
           -webkit-animation: cir_p 5s linear 0s infinite;
81
           -webkit-animation: cir_p 5s linear 0s infinite;
82
           animation: cir_p 5s linear 0s infinite;
82
           animation: cir_p 5s linear 0s infinite;
128
         >.centerLabel{
128
         >.centerLabel{
129
           width: 100%;
129
           width: 100%;
130
           z-index: 11;
130
           z-index: 11;
131
-          h1{
132
-            width: 100%;
133
-            text-align: center;
134
-            color: #fff;
135
-            font-size: .24rem;
136
-            font-weight: normal;
137
-          }
138
           .content{
131
           .content{
139
             width: 82vw;
132
             width: 82vw;
140
             height: 65vh;
133
             height: 65vh;
141
             position: relative;
134
             position: relative;
142
             overflow: hidden;
135
             overflow: hidden;
143
-            margin: 0 auto;
136
+            margin: 0 auto 0;
144
             z-index: 11;
137
             z-index: 11;
145
             .flagItem{
138
             .flagItem{
146
               display: inline-block;
139
               display: inline-block;
151
               &:nth-child(2n){
144
               &:nth-child(2n){
152
                 transform: translateX(-1rem);
145
                 transform: translateX(-1rem);
153
                 -webkit-transform: translateX(-1rem);
146
                 -webkit-transform: translateX(-1rem);
154
-                transition: all 1.4s ease 1.5s;
155
-                -webkit-transition: all 1.4s ease 1.5s;
147
+                transition: all 2s ease 1.5s;
148
+                -webkit-transition: all 2s ease 1.5s;
156
               }
149
               }
157
               &:nth-child(2n-1){
150
               &:nth-child(2n-1){
158
                 transform: translateX(1rem);
151
                 transform: translateX(1rem);
159
                 -webkit-transform: translateX(1rem);
152
                 -webkit-transform: translateX(1rem);
160
-                transition: all .8s ease 1.6s;
161
-                -webkit-transition: all .8s ease 1.6s;
153
+                transition: all 2s ease 1.6s;
154
+                -webkit-transition: all 2s ease 1.6s;
162
               }
155
               }
163
               opacity: 0;
156
               opacity: 0;
164
               &.active{
157
               &.active{
165
                 opacity: 1;
158
                 opacity: 1;
166
                 transform: translateX(0);
159
                 transform: translateX(0);
167
                 -webkit-transform: translateX(0);
160
                 -webkit-transform: translateX(0);
161
+                transform: scale(1, 1);
162
+                -webkit-transform: scale(1, 1);
168
               }
163
               }
169
               &::after{
164
               &::after{
170
                 content: '';
165
                 content: '';
184
               background: #5bcff1;
179
               background: #5bcff1;
185
               border-radius: .1rem;
180
               border-radius: .1rem;
186
               overflow: visible;
181
               overflow: visible;
187
-              &.selected{
188
-                opacity: 0;
189
-              }
182
+              // &.selected{
183
+              //   opacity: 0;
184
+              //   transform: scale(0, 0);
185
+              //   -webkit-transform: scale(0, 0);
186
+              // }
190
               &::after{
187
               &::after{
191
                 content: '';
188
                 content: '';
192
                 border-color: #5bcff1 transparent transparent transparent;
189
                 border-color: #5bcff1 transparent transparent transparent;
193
-                border-width: .15rem;
194
-                bottom: -.24rem;
190
+                border-width: .1rem;
191
+                bottom: -.16rem;
195
                 right: 30%;
192
                 right: 30%;
196
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
193
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
197
                 transform: rotateY(60deg) rotateZ(-20deg);
194
                 transform: rotateY(60deg) rotateZ(-20deg);
202
               top: .3rem;
199
               top: .3rem;
203
               font-size: .22rem;
200
               font-size: .22rem;
204
               color: #fff;
201
               color: #fff;
205
-              line-height: .52rem;
202
+              line-height: .32rem;
206
               background: #f8b551;
203
               background: #f8b551;
207
               border-radius: .1rem;
204
               border-radius: .1rem;
208
               overflow: visible;
205
               overflow: visible;
209
-              &.selected{
210
-                opacity: 0;
211
-              }
206
+              // &.selected{
207
+              //   opacity: 0;
208
+              //   transform: scale(0, 0);
209
+              //   -webkit-transform: scale(0, 0);
210
+              // }
212
               &::after{
211
               &::after{
213
                 content: '';
212
                 content: '';
214
                 border-color: #f8b551 transparent transparent transparent;
213
                 border-color: #f8b551 transparent transparent transparent;
215
-                border-width: .15rem;
216
-                bottom: -.24rem;
214
+                border-width: .1rem;
215
+                bottom: -.16rem;
217
                 left: 30%;
216
                 left: 30%;
218
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
217
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
219
                 transform: rotateY(60deg) rotateZ(20deg);
218
                 transform: rotateY(60deg) rotateZ(20deg);
228
               background: #de7ba2;
227
               background: #de7ba2;
229
               border-radius: .1rem;
228
               border-radius: .1rem;
230
               overflow: visible;
229
               overflow: visible;
231
-              &.selected{
232
-                opacity: 0;
233
-              }
230
+              // &.selected{
231
+              //   opacity: 0;
232
+              //   transform: scale(0, 0);
233
+              //   -webkit-transform: scale(0, 0);
234
+              // }
234
               &::after{
235
               &::after{
235
                 content: '';
236
                 content: '';
236
                 border-color: #de7ba2 transparent transparent transparent;
237
                 border-color: #de7ba2 transparent transparent transparent;
237
-                border-width: .15rem;
238
-                bottom: -.24rem;
238
+                border-width: .1rem;
239
+                bottom: -.16rem;
239
                 left: 30%;
240
                 left: 30%;
240
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
241
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
241
                 transform: rotateY(60deg) rotateZ(-20deg);
242
                 transform: rotateY(60deg) rotateZ(-20deg);
246
               top: 1rem;
247
               top: 1rem;
247
               font-size: .18rem;
248
               font-size: .18rem;
248
               color: #fff;
249
               color: #fff;
249
-              line-height: .32rem;
250
+              line-height: .3rem;
250
               background: #fdc17a;
251
               background: #fdc17a;
251
               border-radius: .1rem;
252
               border-radius: .1rem;
252
               overflow: visible;
253
               overflow: visible;
253
-              &.selected{
254
-                opacity: 0;
255
-              }
254
+              // &.selected{
255
+              //   opacity: 0;
256
+              //   transform: scale(0, 0);
257
+              //   -webkit-transform: scale(0, 0);
258
+              // }
256
               &::after{
259
               &::after{
257
                 content: '';
260
                 content: '';
258
                 border-color: #fdc17a transparent transparent transparent;
261
                 border-color: #fdc17a transparent transparent transparent;
259
-                border-width: .15rem;
260
-                bottom: -.24rem;
262
+                border-width: .1rem;
263
+                bottom: -.16rem;
261
                 right: 30%;
264
                 right: 30%;
262
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
265
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
263
                 transform: rotateY(60deg) rotateZ(20deg);
266
                 transform: rotateY(60deg) rotateZ(20deg);
272
               background: #f8b551;
275
               background: #f8b551;
273
               border-radius: .1rem;
276
               border-radius: .1rem;
274
               overflow: visible;
277
               overflow: visible;
275
-              &.selected{
276
-                opacity: 0;
277
-              }
278
+              // &.selected{
279
+              //   opacity: 0;
280
+              //   transform: scale(0, 0);
281
+              //   -webkit-transform: scale(0, 0);
282
+              // }
278
               &::after{
283
               &::after{
279
                 content: '';
284
                 content: '';
280
                 border-color: #f8b551 transparent transparent transparent;
285
                 border-color: #f8b551 transparent transparent transparent;
281
-                border-width: .15rem;
282
-                bottom: -.24rem;
286
+                border-width: .1rem;
287
+                bottom: -.16rem;
283
                 left: 30%;
288
                 left: 30%;
284
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
289
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
285
                 transform: rotateY(60deg) rotateZ(-20deg);
290
                 transform: rotateY(60deg) rotateZ(-20deg);
294
               background: #f8b551;
299
               background: #f8b551;
295
               border-radius: .1rem;
300
               border-radius: .1rem;
296
               overflow: visible;
301
               overflow: visible;
297
-              &.selected{
298
-                opacity: 0;
299
-              }
302
+              // &.selected{
303
+              //   opacity: 0;
304
+              //   transform: scale(0, 0);
305
+              //   -webkit-transform: scale(0, 0);
306
+              // }
300
               &::after{
307
               &::after{
301
                 content: '';
308
                 content: '';
302
                 border-color: #f8b551 transparent transparent transparent;
309
                 border-color: #f8b551 transparent transparent transparent;
303
-                border-width: .15rem;
304
-                bottom: -.24rem;
310
+                border-width: .1rem;
311
+                bottom: -.16rem;
305
                 left: 30%;
312
                 left: 30%;
306
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
313
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
307
                 transform: rotateY(60deg) rotateZ(20deg);
314
                 transform: rotateY(60deg) rotateZ(20deg);
312
               top: 1.9rem;
319
               top: 1.9rem;
313
               font-size: .22rem;
320
               font-size: .22rem;
314
               color: #fff;
321
               color: #fff;
315
-              line-height: .54rem;
322
+              line-height: .34rem;
316
               background: #a57dd1;
323
               background: #a57dd1;
317
               border-radius: .1rem;
324
               border-radius: .1rem;
318
               overflow: visible;
325
               overflow: visible;
319
-              transform: translateX(-50%);
320
-              -webkit-transform: translateX(-50%);
326
+              transform: scale(1, 1) translateX(-50%);
327
+              -webkit-transform: scale(1, 1) translateX(-50%);
321
               &.selected{
328
               &.selected{
322
                 opacity: 0;
329
                 opacity: 0;
330
+                transform: scale(0, 0) translateX(-50%);
331
+                -webkit-transform: scale(0, 0) translateX(-50%);
323
               }
332
               }
324
               &::after{
333
               &::after{
325
                 content: '';
334
                 content: '';
326
                 border-color: #a57dd1 transparent transparent transparent;
335
                 border-color: #a57dd1 transparent transparent transparent;
327
-                border-width: .15rem;
328
-                bottom: -.24rem;
336
+                border-width: .1rem;
337
+                bottom: -.16rem;
329
                 left: 30%;
338
                 left: 30%;
330
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
339
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
331
                 transform: rotateY(60deg) rotateZ(-20deg);
340
                 transform: rotateY(60deg) rotateZ(-20deg);
340
               background: #f8b551;
349
               background: #f8b551;
341
               border-radius: .1rem;
350
               border-radius: .1rem;
342
               overflow: visible;
351
               overflow: visible;
343
-              &.selected{
344
-                opacity: 0;
345
-              }
352
+              // &.selected{
353
+              //   opacity: 0;
354
+              //   transform: scale(0, 0);
355
+              //   -webkit-transform: scale(0, 0);
356
+              // }
346
               &::after{
357
               &::after{
347
                 content: '';
358
                 content: '';
348
                 border-color: #f8b551 transparent transparent transparent;
359
                 border-color: #f8b551 transparent transparent transparent;
349
-                border-width: .15rem;
350
-                bottom: -.24rem;
360
+                border-width: .1rem;
361
+                bottom: -.16rem;
351
                 left: 30%;
362
                 left: 30%;
352
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
363
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
353
                 transform: rotateY(60deg) rotateZ(-20deg);
364
                 transform: rotateY(60deg) rotateZ(-20deg);
362
               background: #fdc17a;
373
               background: #fdc17a;
363
               border-radius: .1rem;
374
               border-radius: .1rem;
364
               overflow: visible;
375
               overflow: visible;
365
-              &.selected{
366
-                opacity: 0;
367
-              }
376
+              // &.selected{
377
+              //   opacity: 0;
378
+              //   transform: scale(0, 0);
379
+              //   -webkit-transform: scale(0, 0);
380
+              // }
368
               &::after{
381
               &::after{
369
                 content: '';
382
                 content: '';
370
                 border-color: #fdc17a transparent transparent transparent;
383
                 border-color: #fdc17a transparent transparent transparent;
371
-                border-width: .15rem;
372
-                bottom: -.24rem;
384
+                border-width: .1rem;
385
+                bottom: -.16rem;
373
                 left: 30%;
386
                 left: 30%;
374
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
387
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
375
                 transform: rotateY(60deg) rotateZ(-20deg);
388
                 transform: rotateY(60deg) rotateZ(-20deg);
384
               background: #f8b551;
397
               background: #f8b551;
385
               border-radius: .1rem;
398
               border-radius: .1rem;
386
               overflow: visible;
399
               overflow: visible;
387
-              &.selected{
388
-                opacity: 0;
389
-              }
400
+              // &.selected{
401
+              //   opacity: 0;
402
+              //   transform: scale(0, 0);
403
+              //   -webkit-transform: scale(0, 0);
404
+              // }
390
               &::after{
405
               &::after{
391
                 content: '';
406
                 content: '';
392
                 border-color: #f8b551 transparent transparent transparent;
407
                 border-color: #f8b551 transparent transparent transparent;
393
-                border-width: .15rem;
394
-                bottom: -.24rem;
408
+                border-width: .1rem;
409
+                bottom: -.16rem;
395
                 left: 30%;
410
                 left: 30%;
396
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
411
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
397
                 transform: rotateY(60deg) rotateZ(20deg);
412
                 transform: rotateY(60deg) rotateZ(20deg);
400
           }
415
           }
401
         }
416
         }
402
       }
417
       }
403
-      &.page3,
404
-      &.page4,
405
-      &.page5{
418
+      &.page3{
406
         >div.centerLabel{
419
         >div.centerLabel{
407
           width: 66vw;
420
           width: 66vw;
408
           margin-top: -.5rem;
421
           margin-top: -.5rem;
414
             line-height: .22rem;
427
             line-height: .22rem;
415
             font-size: .14rem;
428
             font-size: .14rem;
416
             min-height: .22rem;
429
             min-height: .22rem;
430
+            white-space: nowrap;
417
             &:nth-child(1),
431
             &:nth-child(1),
418
             &:nth-child(2),
432
             &:nth-child(2),
419
             &:nth-child(3){
433
             &:nth-child(3){
429
           top: 12.8vh;
443
           top: 12.8vh;
430
           a{
444
           a{
431
             width: 100%;
445
             width: 100%;
446
+            height: 12.8vw;
432
             display: block;
447
             display: block;
433
-            padding-bottom: 100%;
434
-            height: 0;
435
             position: relative;
448
             position: relative;
436
-            overflow: hidden;
437
             background: rgba(255, 255, 255, .6);
449
             background: rgba(255, 255, 255, .6);
438
           }
450
           }
439
         }
451
         }
447
           a{
459
           a{
448
             width: 100%;
460
             width: 100%;
449
             display: block;
461
             display: block;
450
-            padding-bottom: 100%;
451
-            height: 0;
462
+            height: .7rem;
452
             position: relative;
463
             position: relative;
453
-            overflow: hidden;
454
             background: rgba(255, 255, 255, .6);
464
             background: rgba(255, 255, 255, .6);
455
             margin-bottom: .05rem;
465
             margin-bottom: .05rem;
456
           }
466
           }

+ 40
- 0
src/pages/home/shareNum.vue View File

1
+<template>
2
+  <div class="mainPage">
3
+    <div class="centerLabel" style="width:100%;overflow:hidden;">
4
+      <span style="display:block;text-align:center;font-size: .20rem;color:#fff;">累计参与人数{{shareNum.message.custnum || 0}}人</span>
5
+      <span style="display:block;text-align:center;font-size: .20rem;color:#fff;margin-top:.1rem;">已分享{{shareNum.message.total || 0}}次</span>
6
+    </div>
7
+  </div>
8
+</template>
9
+
10
+<script>
11
+import { createNamespacedHelpers } from 'vuex'
12
+const { mapState: mapUserState } = createNamespacedHelpers('user')
13
+export default {
14
+  name: '',
15
+  data () {
16
+    return {
17
+    }
18
+  },
19
+  computed: {
20
+    ...mapUserState({
21
+      shareNum: item => item.shareNum
22
+    })
23
+  },
24
+  components: {
25
+  },
26
+  created () {
27
+  },
28
+  mounted () {
29
+    this.$nextTick(() => {
30
+    })
31
+  },
32
+  methods: {
33
+  }
34
+}
35
+</script>
36
+
37
+<!-- Add "scoped" attribute to limit CSS to this component only -->
38
+<style lang="scss" scoped>
39
+@import "page.scss";
40
+</style>

+ 6
- 0
src/router/index.js View File

4
 import index from '../pages/index'
4
 import index from '../pages/index'
5
 
5
 
6
 import home from '../pages/home/index'
6
 import home from '../pages/home/index'
7
+import shareNum from '../pages/home/shareNum'
7
 
8
 
8
 Vue.use(Router)
9
 Vue.use(Router)
9
 
10
 
18
       name: 'home',
19
       name: 'home',
19
       component: home,
20
       component: home,
20
       children: []
21
       children: []
22
+    }, {
23
+      path: '/shareNum',
24
+      name: 'shareNum',
25
+      component: shareNum,
26
+      children: []
21
     }]
27
     }]
22
   }]
28
   }]
23
 })
29
 })

+ 1
- 1
src/store/user/index.js View File

35
     },
35
     },
36
     getUser (context, payload) {
36
     getUser (context, payload) {
37
       return new Promise((resolve, reject) => {
37
       return new Promise((resolve, reject) => {
38
-        wxsdk({ url: encodeURIComponent(window.location.href.split('#')[0]), code: payload.code }, {
38
+        wxsdk({ link: encodeURIComponent(window.location.href.split('#')[0]), code: payload.code }, {
39
           title: '2019,这些我都想要! ',
39
           title: '2019,这些我都想要! ',
40
           desc: '立下Flag,打开你的新年心愿清单',
40
           desc: '立下Flag,打开你的新年心愿清单',
41
           link: `${window.location.origin}${window.location.pathname}#/home`,
41
           link: `${window.location.origin}${window.location.pathname}#/home`,

+ 2
- 2
src/util/api.js View File

12
   },
12
   },
13
   getShare: { // 获取分享总数
13
   getShare: { // 获取分享总数
14
     method: 'get',
14
     method: 'get',
15
-    url: `${baseurl}/appid`
15
+    url: `${baseurl}/share`
16
   },
16
   },
17
   putShare: { // 分享成功
17
   putShare: { // 分享成功
18
     method: 'put',
18
     method: 'put',
19
-    url: `${baseurl}/appid`
19
+    url: `${baseurl}/share`
20
   }
20
   }
21
 }
21
 }
22
 
22
 

+ 7
- 2
src/util/share.js View File

1
 import Ajax from './ajax'
1
 import Ajax from './ajax'
2
 import api from './api'
2
 import api from './api'
3
 import wx from 'weixin-jsapi'
3
 import wx from 'weixin-jsapi'
4
+import store from '../store'
4
 
5
 
5
 function wxsdk (params, config) {
6
 function wxsdk (params, config) {
6
   // const wx = require('weixin-js-sdk')
7
   // const wx = require('weixin-js-sdk')
9
     title: config.title, // 分享标题
10
     title: config.title, // 分享标题
10
     desc: config.desc, // 分享标题
11
     desc: config.desc, // 分享标题
11
     link: config.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
12
     link: config.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
12
-    imgUrl: config.thu_image // 分享图标
13
+    imgUrl: config.thu_image, // 分享图标
14
+    success: () => {}
13
   }
15
   }
14
   // 初始化
16
   // 初始化
15
   return new Promise(function (resolve, reject) {
17
   return new Promise(function (resolve, reject) {
38
         ]
40
         ]
39
       })
41
       })
40
       wx.ready(function () {
42
       wx.ready(function () {
43
+        shareData.success = () => {
44
+          store.dispatch('user/putShare')
45
+        }
41
         wx.onMenuShareTimeline(shareData)
46
         wx.onMenuShareTimeline(shareData)
42
         wx.onMenuShareAppMessage(shareData)
47
         wx.onMenuShareAppMessage(shareData)
43
-        resolve(resultmessage.user)
48
+        resolve(result.message.user)
44
       })
49
       })
45
 
50
 
46
       wx.error(function (err) {
51
       wx.error(function (err) {

BIN
static/images/icon-20.png View File