张延森 3 anni fa
parent
commit
761a001302
50 ha cambiato i file con 1220 aggiunte e 110 eliminazioni
  1. BIN
      src/assets/ShaerPopupImg/popuBgc.jpg
  2. BIN
      src/assets/ShaerPopupImg/popuSave.png
  3. BIN
      src/assets/backgroung.jpg
  4. BIN
      src/assets/buttonImg/backImg.png
  5. BIN
      src/assets/buttonImg/happyAccept.png
  6. BIN
      src/assets/buttonImg/myPrize.png
  7. BIN
      src/assets/buttonImg/pressSave.png
  8. BIN
      src/assets/buttonImg/saveHaibao.png
  9. BIN
      src/assets/buttonImg/saveMonth.png
  10. BIN
      src/assets/buttonImg/sayFriend.png
  11. BIN
      src/assets/buttonImg/shareText.png
  12. BIN
      src/assets/coverIndex.jpg
  13. BIN
      src/assets/hareTop.png
  14. BIN
      src/assets/indexImg/indexBgc.jpg
  15. BIN
      src/assets/indexImg/loading.png
  16. BIN
      src/assets/indexImg/loadingBgc.jpg
  17. BIN
      src/assets/indexImg/loading_bar.png
  18. BIN
      src/assets/indexImg/transparent_arr.png
  19. BIN
      src/assets/popupImg/backImag.jpg
  20. BIN
      src/assets/popupImg/cancelmage.png
  21. BIN
      src/assets/popupImg/myShare.png
  22. BIN
      src/assets/popupImg/popuBody.jpg
  23. BIN
      src/assets/popupImg/receiveImage.png
  24. BIN
      src/assets/popupImg/saveImage.png
  25. BIN
      src/assets/popupImg/shareImage.png
  26. BIN
      src/assets/saverShaerImg/PressImage.png
  27. BIN
      src/assets/saverShaerImg/PressLucky.png
  28. BIN
      src/assets/saverShaerImg/back.png
  29. BIN
      src/assets/saverShaerImg/calendar.jpg
  30. BIN
      src/assets/saverShaerImg/haibao.jpg
  31. BIN
      src/assets/saverShaerImg/shaerLucky.png
  32. BIN
      src/assets/saverShaerImg/shaerLuckyRed.png
  33. BIN
      src/assets/sharePagesImg/April.jpg
  34. BIN
      src/assets/sharePagesImg/August.jpg
  35. BIN
      src/assets/sharePagesImg/February.jpg
  36. BIN
      src/assets/sharePagesImg/January.jpg
  37. BIN
      src/assets/sharePagesImg/July.jpg
  38. BIN
      src/assets/sharePagesImg/June.jpg
  39. BIN
      src/assets/sharePagesImg/March.jpg
  40. BIN
      src/assets/sharePagesImg/May.jpg
  41. BIN
      src/assets/sharePagesImg/October.jpg
  42. BIN
      src/assets/sharePagesImg/September.jpg
  43. 305
    0
      src/components/CalendarPoster.vue
  44. 305
    0
      src/components/MyWinning.vue
  45. 41
    29
      src/components/Popup.vue
  46. 3
    43
      src/components/ShaerPopup.vue
  47. 325
    0
      src/components/WinningPopup.vue
  48. 100
    0
      src/components/imgbox.vue
  49. 122
    36
      src/pages/Honghe.vue
  50. 19
    2
      src/pages/SaveShare.vue

BIN
src/assets/ShaerPopupImg/popuBgc.jpg Vedi File


BIN
src/assets/ShaerPopupImg/popuSave.png Vedi File


BIN
src/assets/backgroung.jpg Vedi File


BIN
src/assets/buttonImg/backImg.png Vedi File


BIN
src/assets/buttonImg/happyAccept.png Vedi File


BIN
src/assets/buttonImg/myPrize.png Vedi File


BIN
src/assets/buttonImg/pressSave.png Vedi File


BIN
src/assets/buttonImg/saveHaibao.png Vedi File


BIN
src/assets/buttonImg/saveMonth.png Vedi File


BIN
src/assets/buttonImg/sayFriend.png Vedi File


BIN
src/assets/buttonImg/shareText.png Vedi File


BIN
src/assets/coverIndex.jpg Vedi File


BIN
src/assets/hareTop.png Vedi File


BIN
src/assets/indexImg/indexBgc.jpg Vedi File


BIN
src/assets/indexImg/loading.png Vedi File


BIN
src/assets/indexImg/loadingBgc.jpg Vedi File


BIN
src/assets/indexImg/loading_bar.png Vedi File


BIN
src/assets/indexImg/transparent_arr.png Vedi File


BIN
src/assets/popupImg/backImag.jpg Vedi File


BIN
src/assets/popupImg/cancelmage.png Vedi File


BIN
src/assets/popupImg/myShare.png Vedi File


BIN
src/assets/popupImg/popuBody.jpg Vedi File


BIN
src/assets/popupImg/receiveImage.png Vedi File


BIN
src/assets/popupImg/saveImage.png Vedi File


BIN
src/assets/popupImg/shareImage.png Vedi File


BIN
src/assets/saverShaerImg/PressImage.png Vedi File


BIN
src/assets/saverShaerImg/PressLucky.png Vedi File


BIN
src/assets/saverShaerImg/back.png Vedi File


BIN
src/assets/saverShaerImg/calendar.jpg Vedi File


BIN
src/assets/saverShaerImg/haibao.jpg Vedi File


BIN
src/assets/saverShaerImg/shaerLucky.png Vedi File


BIN
src/assets/saverShaerImg/shaerLuckyRed.png Vedi File


BIN
src/assets/sharePagesImg/April.jpg Vedi File


BIN
src/assets/sharePagesImg/August.jpg Vedi File


BIN
src/assets/sharePagesImg/February.jpg Vedi File


BIN
src/assets/sharePagesImg/January.jpg Vedi File


BIN
src/assets/sharePagesImg/July.jpg Vedi File


BIN
src/assets/sharePagesImg/June.jpg Vedi File


BIN
src/assets/sharePagesImg/March.jpg Vedi File


BIN
src/assets/sharePagesImg/May.jpg Vedi File


BIN
src/assets/sharePagesImg/October.jpg Vedi File


BIN
src/assets/sharePagesImg/September.jpg Vedi File


+ 305
- 0
src/components/CalendarPoster.vue Vedi File

@@ -0,0 +1,305 @@
1
+<template>
2
+  <div v-if="show" class="dialog-show">
3
+    <div style=" height:100vh; width:100%;
4
+    ">
5
+      <!-- 弹窗 -->
6
+      <ShaerPopup :show="shaerShow" @closeMyself="cancelPopup" />
7
+      <!-- 弹窗 -->
8
+
9
+      <!-- <router-link :to="{path:'/'}"> -->
10
+      <div
11
+        class="backhome"
12
+        :style="`background:url('${backimg}');background-size: 100% auto;`"
13
+        @click="cancelPopupts"
14
+      ></div>
15
+      <!-- </router-link> -->
16
+
17
+      <div>
18
+        <div v-if="stater==0">
19
+          <!-- 领取屏保 -->
20
+          <div class="outer3 flex-col">
21
+            <div class="haibao">
22
+              <img class="haibao" src="~@/assets/saverShaerImg/haibao.jpg" alt />
23
+            </div>
24
+            <div class="mod2 flex-col">
25
+              <div class="block1 flex-col">
26
+                <div
27
+                  class="section1 flex-col"
28
+                  @click="()=>{this.shaerShow=true}"
29
+                  :style="`background-image: url(${shaerBut});`"
30
+                ></div>
31
+                <span :style="`background-image: url(${pressImage});`" class="info2"></span>
32
+              </div>
33
+            </div>
34
+          </div>
35
+        </div>
36
+        <div v-else style="overflow: auto;height:100vh;">
37
+          <!-- 挂历 -->
38
+          <div class="page flex-col">
39
+            <div class="group1 flex-col">
40
+              <div class="wrap3 flex-col">
41
+                <img src="~@/assets/saverShaerImg/calendar.jpg" class="subhaibao" />
42
+              </div>
43
+              <div class="wrap5 flex-col">
44
+                <span class="txt1" :style="`background-image: url(${pressLucky});`"></span>
45
+                <div
46
+                  class="main5 flex-col"
47
+                  :style="`background-image: url(${shaerButRed});`"
48
+                  @click="()=>{this.shaerShow=true}"
49
+                ></div>
50
+              </div>
51
+            </div>
52
+          </div>
53
+        </div>
54
+      </div>
55
+    </div>
56
+  </div>
57
+</template>
58
+
59
+<script>
60
+import { hideLoading } from '@/utils'
61
+
62
+export default {
63
+  name: 'CalendarPoster',
64
+  components: {
65
+    ShaerPopup: () => import('@/components/ShaerPopup.vue')
66
+  },
67
+  props: {
68
+    show: {
69
+      type: Boolean,
70
+      default: false,
71
+      required: true
72
+    },
73
+    cancelText: {
74
+      type: String,
75
+      default: '取消',
76
+      required: false
77
+    },
78
+
79
+    stater: {
80
+      type: Number
81
+    }
82
+  },
83
+
84
+  data() {
85
+    return {
86
+      shaerShow: false,
87
+      backimg: require('../assets/saverShaerImg/back.png'),
88
+      shaerBut: require('../assets/saverShaerImg/shaerLucky.png'),
89
+      pressImage: require('../assets/saverShaerImg/PressImage.png'),
90
+      shaerButRed: require('../assets/saverShaerImg/shaerLuckyRed.png'),
91
+      pressLucky: require('../assets/saverShaerImg/PressLucky.png')
92
+    }
93
+  },
94
+
95
+  watch: {
96
+    stater(val, res) {
97
+      console.log('🚀 ~ file: CalendarPoster.vue ~ line 98 ~ stater ~ res', res)
98
+    },
99
+    created() {
100
+      // this.showSelf = this.show
101
+    },
102
+    mounted() {
103
+      hideLoading() //loading
104
+
105
+      this.forbidScroll()
106
+      if (this.show === true) {
107
+        this.transform()
108
+      }
109
+    }
110
+  },
111
+  methods: {
112
+    /** 取消按钮操作 */
113
+    cancelPopupts() {
114
+      // this.shaerShow = false
115
+      // console.log(22222222222222222222222)
116
+      this.$emit('cancelPopus', true)
117
+    },
118
+
119
+    cancelPopup() {
120
+      this.shaerShow = false
121
+    },
122
+    // shareClick() {
123
+    //   this.$router.replace({
124
+    //     path: 'SaveShare',
125
+    //     query: { states: 0 }
126
+    //   })
127
+    // },
128
+    // saveClick() {
129
+    //   this.$router.replace({
130
+    //     path: 'SaveShare',
131
+    //     query: { states: 1 }
132
+    //   })
133
+    // },
134
+    transform() {
135
+      setTimeout(() => {
136
+        this.classDivAA = this.show
137
+      }, 0)
138
+    },
139
+    /** 禁止页面滚动 */
140
+    forbidScroll() {
141
+      this.bodyOverflow = document.body.style.overflow
142
+      document.body.style.overflow = 'hidden'
143
+    },
144
+
145
+    /**  每次获取之后 zindex 自动增加 */
146
+    getZIndex() {
147
+      let zIndexInit = 2022112
148
+      return zIndexInit++
149
+    },
150
+
151
+    /** 确认按钮操作 */
152
+    confirm() {
153
+      this.$emit('confirm', true)
154
+    },
155
+
156
+    /** 点击遮罩关闭弹窗 */
157
+    closeMyself(event) {
158
+      // this.sloveBodyOverflow()
159
+      this.$emit('closeMyself', true)
160
+    },
161
+
162
+    /** 恢复页面的滚动 */
163
+    sloveBodyOverflow() {
164
+      // this.showSelf = false
165
+      document.body.style.overflow = this.bodyOverflow
166
+    }
167
+  }
168
+}
169
+</script>
170
+
171
+<style lang="less" scoped>
172
+// 弹窗动画
173
+
174
+// 最外层 设置position定位
175
+// 遮罩 设置背景层,z-index值要足够大确保能覆盖,高度 宽度设置满 做到全屏遮罩
176
+
177
+.flex-col {
178
+  display: flex;
179
+  flex-direction: column;
180
+}
181
+.dialog {
182
+  position: fixed;
183
+  top: 0;
184
+  right: 0;
185
+  width: 100%;
186
+  height: 100%;
187
+  transition: opacity 1s;
188
+
189
+  // 内容层 z-index要比遮罩大,否则会被遮盖
190
+  .backhome {
191
+    width: 75px;
192
+    height: 42px;
193
+    position: fixed;
194
+    left: 1rem;
195
+    top: 1rem;
196
+    z-index: 19;
197
+    background-repeat: no-repeat;
198
+  }
199
+  .outer3 {
200
+    width: 100vw;
201
+    height: 100vh;
202
+    justify-content: flex-end;
203
+    .haibao {
204
+      width: 100vw;
205
+      position: absolute;
206
+      left: 0;
207
+      top: 0;
208
+    }
209
+    .mod2 {
210
+      z-index: 35;
211
+      height: 210px;
212
+      background-image: linear-gradient(
213
+        180deg,
214
+        transparent,
215
+        rgba(0, 0, 0, 0.6)
216
+      );
217
+      width: 100vw;
218
+      justify-content: flex-end;
219
+      padding-bottom: 33px;
220
+      align-items: center;
221
+      .block1 {
222
+        width: 180px;
223
+        height: 113px;
224
+        .section1 {
225
+          height: 48px;
226
+          border-radius: 8px;
227
+          background-size: 100% auto;
228
+          background-color: #fff;
229
+          width: 180px;
230
+          justify-content: center;
231
+          align-items: center;
232
+          border: 0;
233
+        }
234
+        .info2 {
235
+          width: 152px;
236
+          height: 54px;
237
+          display: block;
238
+          color: #fff;
239
+          text-align: center;
240
+          align-self: center;
241
+          margin-top: 12px;
242
+          background-size: 100% auto;
243
+          background-repeat: no-repeat;
244
+        }
245
+      }
246
+    }
247
+  }
248
+
249
+  // 第二个页面
250
+  .page {
251
+    // z-index: 1;
252
+    // position: relative;
253
+    // overflow-y: auto;
254
+    // width: 100vw;
255
+    // height: 100vh;
256
+
257
+    .group1 {
258
+      .wrap3 {
259
+        z-index: 13;
260
+        width: 100vw;
261
+        overflow: hidden;
262
+        align-self: center;
263
+        margin-top: 1vw;
264
+        margin-left: 0;
265
+        .subhaibao {
266
+          // position: absolute;
267
+          width: 100%;
268
+          left: 0;
269
+          top: 0;
270
+        }
271
+      }
272
+      .wrap5 {
273
+        height: 137px;
274
+        background-color: #efe9e0;
275
+        width: 100vw;
276
+        justify-content: center;
277
+        align-items: center;
278
+        display: flex;
279
+        .txt1 {
280
+          background-size: 100% auto;
281
+          background-repeat: no-repeat;
282
+          width: 112px;
283
+          height: 18px;
284
+          margin-bottom: 80px;
285
+        }
286
+      }
287
+
288
+      .main5 {
289
+        background-size: 100% auto;
290
+        background-repeat: no-repeat;
291
+        height: 48px;
292
+        border-radius: 8px;
293
+        margin-top: 11px;
294
+        width: 343px;
295
+        background-color: #c1172d;
296
+        border: 0;
297
+        position: fixed;
298
+        z-index: 15;
299
+        bottom: 5vh;
300
+      }
301
+    }
302
+  }
303
+}
304
+</style>
305
+

+ 305
- 0
src/components/MyWinning.vue Vedi File

@@ -0,0 +1,305 @@
1
+<template>
2
+  <div v-if="show" class="dialog-my">
3
+    <div style=" height:100vh; width:100%;
4
+    ">
5
+      <!-- 弹窗 -->
6
+      <!-- <ShaerPopup :show="shaerShow" @closeMyself="cancelPopup" /> -->
7
+      <!-- 弹窗 -->
8
+
9
+      <!-- <router-link :to="{path:'/'}"> -->
10
+      <div
11
+        class="backhome"
12
+        :style="`background:url('${backimg}');background-size: 100% auto;`"
13
+        @click="cancelPopupts"
14
+      ></div>
15
+      <!-- </router-link> -->
16
+
17
+      <div>
18
+        <div v-if="stater!==0">
19
+          <!-- 领取屏保 -->
20
+          <div class="outer3 flex-col">
21
+            <div class="haibao">
22
+              <img class="haibao" src="~@/assets/saverShaerImg/haibao.jpg" alt />
23
+            </div>
24
+            <div class="mod2 flex-col">
25
+              <!-- <div class="block1 flex-col">
26
+                <div
27
+                  class="section1 flex-col"
28
+                  @click="()=>{this.shaerShow=true}"
29
+                  :style="`background-image: url(${shaerBut});`"
30
+                ></div>
31
+                <span :style="`background-image: url(${pressImage});`" class="info2"></span>
32
+              </div>-->
33
+            </div>
34
+          </div>
35
+        </div>
36
+        <div v-else style="overflow: auto;height:100vh;">
37
+          <!-- 挂历 -->
38
+          <div class="page flex-col">
39
+            <div class="group1 flex-col">
40
+              <div class="wrap3 flex-col">
41
+                <img src="~@/assets/saverShaerImg/calendar.jpg" class="subhaibao" />
42
+              </div>
43
+              <!-- <div class="wrap5 flex-col">
44
+                <span class="txt1" :style="`background-image: url(${pressLucky});`"></span>
45
+                <div
46
+                  class="main5 flex-col"
47
+                  :style="`background-image: url(${shaerButRed});`"
48
+                  @click="()=>{this.shaerShow=true}"
49
+                ></div>
50
+              </div>-->
51
+            </div>
52
+          </div>
53
+        </div>
54
+      </div>
55
+    </div>
56
+  </div>
57
+</template>
58
+
59
+<script>
60
+import { hideLoading } from '@/utils'
61
+
62
+export default {
63
+  name: 'CalendarPoster',
64
+  components: {
65
+    ShaerPopup: () => import('@/components/ShaerPopup.vue')
66
+  },
67
+  props: {
68
+    show: {
69
+      type: Boolean,
70
+      default: false,
71
+      required: true
72
+    },
73
+    cancelText: {
74
+      type: String,
75
+      default: '取消',
76
+      required: false
77
+    },
78
+
79
+    stater: {
80
+      type: Number
81
+    }
82
+  },
83
+
84
+  data() {
85
+    return {
86
+      shaerShow: false,
87
+      backimg: require('../assets/saverShaerImg/back.png'),
88
+      shaerBut: require('../assets/saverShaerImg/shaerLucky.png'),
89
+      pressImage: require('../assets/saverShaerImg/PressImage.png'),
90
+      shaerButRed: require('../assets/saverShaerImg/shaerLuckyRed.png'),
91
+      pressLucky: require('../assets/saverShaerImg/PressLucky.png')
92
+    }
93
+  },
94
+
95
+  watch: {
96
+    stater(val, res) {
97
+      console.log('🚀 ~ file: CalendarPoster.vue ~ line 98 ~ stater ~ res', res)
98
+    },
99
+    created() {
100
+      // this.showSelf = this.show
101
+    },
102
+    mounted() {
103
+      hideLoading() //loading
104
+
105
+      this.forbidScroll()
106
+      if (this.show === true) {
107
+        this.transform()
108
+      }
109
+    }
110
+  },
111
+  methods: {
112
+    /** 取消按钮操作 */
113
+    cancelPopupts() {
114
+      // this.shaerShow = false
115
+      // console.log(22222222222222222222222)
116
+      this.$emit('cancelPopus', true)
117
+    },
118
+
119
+    cancelPopup() {
120
+      this.shaerShow = false
121
+    },
122
+    // shareClick() {
123
+    //   this.$router.replace({
124
+    //     path: 'SaveShare',
125
+    //     query: { states: 0 }
126
+    //   })
127
+    // },
128
+    // saveClick() {
129
+    //   this.$router.replace({
130
+    //     path: 'SaveShare',
131
+    //     query: { states: 1 }
132
+    //   })
133
+    // },
134
+    transform() {
135
+      setTimeout(() => {
136
+        this.classDivAA = this.show
137
+      }, 0)
138
+    },
139
+    /** 禁止页面滚动 */
140
+    forbidScroll() {
141
+      this.bodyOverflow = document.body.style.overflow
142
+      document.body.style.overflow = 'hidden'
143
+    },
144
+
145
+    /**  每次获取之后 zindex 自动增加 */
146
+    getZIndex() {
147
+      let zIndexInit = 2022112
148
+      return zIndexInit++
149
+    },
150
+
151
+    /** 确认按钮操作 */
152
+    confirm() {
153
+      this.$emit('confirm', true)
154
+    },
155
+
156
+    /** 点击遮罩关闭弹窗 */
157
+    closeMyself(event) {
158
+      // this.sloveBodyOverflow()
159
+      this.$emit('closeMyself', true)
160
+    },
161
+
162
+    /** 恢复页面的滚动 */
163
+    sloveBodyOverflow() {
164
+      // this.showSelf = false
165
+      document.body.style.overflow = this.bodyOverflow
166
+    }
167
+  }
168
+}
169
+</script>
170
+
171
+<style lang="less" scoped>
172
+// 弹窗动画
173
+
174
+// 最外层 设置position定位
175
+// 遮罩 设置背景层,z-index值要足够大确保能覆盖,高度 宽度设置满 做到全屏遮罩
176
+
177
+.flex-col {
178
+  display: flex;
179
+  flex-direction: column;
180
+}
181
+.dialog-my {
182
+  position: fixed;
183
+  top: 0;
184
+  right: 0;
185
+  width: 100%;
186
+  height: 100%;
187
+  transition: opacity 1s;
188
+
189
+  // 内容层 z-index要比遮罩大,否则会被遮盖
190
+  .backhome {
191
+    width: 75px;
192
+    height: 42px;
193
+    position: fixed;
194
+    left: 1rem;
195
+    top: 1rem;
196
+    z-index: 19;
197
+    background-repeat: no-repeat;
198
+  }
199
+  .outer3 {
200
+    width: 100vw;
201
+    height: 100vh;
202
+    justify-content: flex-end;
203
+    .haibao {
204
+      width: 100vw;
205
+      position: absolute;
206
+      left: 0;
207
+      top: 0;
208
+    }
209
+    .mod2 {
210
+      z-index: 35;
211
+      height: 210px;
212
+      background-image: linear-gradient(
213
+        180deg,
214
+        transparent,
215
+        rgba(0, 0, 0, 0.6)
216
+      );
217
+      width: 100vw;
218
+      justify-content: flex-end;
219
+      padding-bottom: 33px;
220
+      align-items: center;
221
+      .block1 {
222
+        width: 180px;
223
+        height: 113px;
224
+        .section1 {
225
+          height: 48px;
226
+          border-radius: 8px;
227
+          background-size: 100% auto;
228
+          background-color: #fff;
229
+          width: 180px;
230
+          justify-content: center;
231
+          align-items: center;
232
+          border: 0;
233
+        }
234
+        .info2 {
235
+          width: 152px;
236
+          height: 54px;
237
+          display: block;
238
+          color: #fff;
239
+          text-align: center;
240
+          align-self: center;
241
+          margin-top: 12px;
242
+          background-size: 100% auto;
243
+          background-repeat: no-repeat;
244
+        }
245
+      }
246
+    }
247
+  }
248
+
249
+  // 第二个页面
250
+  .page {
251
+    // z-index: 1;
252
+    // position: relative;
253
+    // overflow-y: auto;
254
+    // width: 100vw;
255
+    // height: 100vh;
256
+
257
+    .group1 {
258
+      .wrap3 {
259
+        z-index: 13;
260
+        width: 100vw;
261
+        overflow: hidden;
262
+        align-self: center;
263
+        margin-top: 1vw;
264
+        margin-left: 0;
265
+        .subhaibao {
266
+          // position: absolute;
267
+          width: 100%;
268
+          left: 0;
269
+          top: 0;
270
+        }
271
+      }
272
+      .wrap5 {
273
+        height: 137px;
274
+        background-color: #efe9e0;
275
+        width: 100vw;
276
+        justify-content: center;
277
+        align-items: center;
278
+        display: flex;
279
+        .txt1 {
280
+          background-size: 100% auto;
281
+          background-repeat: no-repeat;
282
+          width: 112px;
283
+          height: 18px;
284
+          margin-bottom: 80px;
285
+        }
286
+      }
287
+
288
+      .main5 {
289
+        background-size: 100% auto;
290
+        background-repeat: no-repeat;
291
+        height: 48px;
292
+        border-radius: 8px;
293
+        margin-top: 11px;
294
+        width: 343px;
295
+        background-color: #c1172d;
296
+        border: 0;
297
+        position: fixed;
298
+        z-index: 15;
299
+        bottom: 5vh;
300
+      }
301
+    }
302
+  }
303
+}
304
+</style>
305
+

+ 41
- 29
src/components/Popup.vue Vedi File

@@ -1,11 +1,16 @@
1 1
 <template>
2
-  <div v-if="showSelf" class="dialog" :style="{'z-index': zIndex}">
3
-    <div class="dialog-mark" @click.self="closeMyself" :style="{'z-index': zIndex + 1}">
2
+  <div v-if="showSelf" class="dialog">
3
+    <CalendarPoster :show="showPopupCalendarPoster" @cancelPopus="canckle" :stater="stater" />
4
+
5
+    <!-- 我的奖品 -->
6
+    <MyWinning :show="MyWinningShow" @cancel="()=>this.MyWinningShow=false" />
7
+
8
+    <div class="dialog-mark" @click.self="closeMyself">
4 9
       <div v-show="myShareShow" class="sharetiptxt" style>
5 10
         <img style="width:100%; height:100%;" src="../assets/popupImg/myShare.png" alt />
6 11
       </div>
7 12
       <transition name="dialog">
8
-        <div class="dialog-sprite" :style="{'z-index': zIndex + 2}">
13
+        <div class="dialog-sprite">
9 14
           <div class="dialog-body">
10 15
             <div class="card-wrapper">
11 16
               <div :class="`dialog-popuImag ${classDivAA?'flipped':''}`">
@@ -30,18 +35,20 @@
30 35
           </div>
31 36
           <!-- 右侧 -->
32 37
           <div class="section-box">
33
-            <div class="section-box-share" @click="()=>{this.myShareShow=true}">
38
+            <div class="section-box-share" @click="()=>{this.MyWinningShow=true}">
34 39
               <img src="../assets/popupImg/shareImage.png" alt />
35 40
             </div>
36
-            <div class="section-box-receive">
37
-              <router-link :to="{path:'SaveShare',query: {  states: 0 }}">
38
-                <img src="../assets/popupImg/receiveImage.png" alt />
39
-              </router-link>
41
+            <div
42
+              class="section-box-receive"
43
+              @click="()=>{this.showPopupCalendarPoster=true,this.stater=0}"
44
+            >
45
+              <img src="../assets/popupImg/receiveImage.png" alt />
40 46
             </div>
41
-            <div class="section-box-save">
42
-              <router-link :to="{path:'SaveShare',query: {  states: 1 }}">
43
-                <img src="../assets/popupImg/saveImage.png" alt />
44
-              </router-link>
47
+            <div
48
+              class="section-box-save"
49
+              @click="()=>{this.showPopupCalendarPoster=true,this.stater=1}"
50
+            >
51
+              <img src="../assets/popupImg/saveImage.png" alt />
45 52
             </div>
46 53
           </div>
47 54
         </div>
@@ -53,17 +60,20 @@
53 60
 <script>
54 61
 export default {
55 62
   name: 'Popup',
56
-
63
+  components: {
64
+    CalendarPoster: () => import('@/components/CalendarPoster.vue'),
65
+    MyWinning: () => import('@/components/MyWinning.vue')
66
+  },
57 67
   props: {
58 68
     show: {
59 69
       type: Boolean,
60 70
       default: false,
61 71
       required: true
62 72
     },
63
-    title: {
64
-      type: String,
65
-      required: true
66
-    },
73
+    // title: {
74
+    //   type: String,
75
+    //   required: true
76
+    // },
67 77
     showCancel: {
68 78
       typs: Boolean,
69 79
       default: false,
@@ -78,12 +88,12 @@ export default {
78 88
       type: String,
79 89
       default: '确定',
80 90
       required: false
81
-    },
82
-    LoadingShow: {
83
-      type: Boolean,
84
-      default: false,
85
-      required: true
86 91
     }
92
+    // LoadingShow: {
93
+    //   type: Boolean,
94
+    //   default: false,
95
+    //   required: true
96
+    // }
87 97
   },
88 98
 
89 99
   data() {
@@ -93,7 +103,10 @@ export default {
93 103
       zIndex: this.getZIndex(),
94 104
       bodyOverflow: '',
95 105
       classDivAA: false,
96
-      myShareShow: false
106
+      myShareShow: false,
107
+      showPopupCalendarPoster: false,
108
+      stater: null,
109
+      MyWinningShow: false
97 110
     }
98 111
   },
99 112
   watch: {
@@ -122,6 +135,9 @@ export default {
122 135
     }
123 136
   },
124 137
   methods: {
138
+    canckle() {
139
+      this.showPopupCalendarPoster = false
140
+    },
125 141
     shareClick() {
126 142
       this.$router.replace({
127 143
         path: 'SaveShare',
@@ -153,14 +169,10 @@ export default {
153 169
 
154 170
     /** 取消按钮操作 */
155 171
     cancel() {
172
+      event.stopPropagation()
156 173
       this.$emit('cancel', true)
157 174
     },
158 175
 
159
-    /** 确认按钮操作 */
160
-    confirm() {
161
-      this.$emit('confirm', true)
162
-    },
163
-
164 176
     /** 点击遮罩关闭弹窗 */
165 177
     closeMyself(event) {
166 178
       // this.sloveBodyOverflow()
@@ -190,7 +202,7 @@ export default {
190 202
 
191 203
   // 内容层 z-index要比遮罩大,否则会被遮盖
192 204
   .dialog-mark {
193
-    position: absolute;
205
+    position: relative;
194 206
     top: 0;
195 207
     height: 0;
196 208
     width: 100%;

+ 3
- 43
src/components/ShaerPopup.vue Vedi File

@@ -2,10 +2,10 @@
2 2
   <div v-if="showSelf" class="dialog" :style="{'z-index': zIndex}">
3 3
     <div class="dialog-mark" @click="closeMyself" :style="{'z-index': zIndex + 1}">
4 4
       <div v-show="myShareShow" class="sharetiptxt" style>
5
-        <img style="width:100%; height:100%;" src="../assets/popupImg/myShare.png" alt />
5
+        <img style="width:100%; height:100%; z-index:46" src="../assets/popupImg/myShare.png" alt />
6 6
       </div>
7 7
       <transition name="dialog">
8
-        <div class="dialog-sprite" :style="{'z-index': zIndex + 2}">
8
+        <div class="dialog-sprite">
9 9
           <div class="dialog-body">
10 10
             <div class="bd2 flex-col">
11 11
               <img class="pic1" src="../assets/ShaerPopupImg/popuBgc.jpg" alt />
@@ -39,7 +39,7 @@
39 39
 
40 40
 <script>
41 41
 export default {
42
-  name: 'Popup',
42
+  name: 'ShaerPopup',
43 43
 
44 44
   props: {
45 45
     show: {
@@ -47,29 +47,10 @@ export default {
47 47
       default: false,
48 48
       required: true
49 49
     },
50
-    title: {
51
-      type: String,
52
-      required: true
53
-    },
54
-    showCancel: {
55
-      typs: Boolean,
56
-      default: false,
57
-      required: false
58
-    },
59 50
     cancelText: {
60 51
       type: String,
61 52
       default: '取消',
62 53
       required: false
63
-    },
64
-    confirmText: {
65
-      type: String,
66
-      default: '确定',
67
-      required: false
68
-    },
69
-    LoadingShow: {
70
-      type: Boolean,
71
-      default: false,
72
-      required: true
73 54
     }
74 55
   },
75 56
 
@@ -89,7 +70,6 @@ export default {
89 70
       console.log('🚀 ~ file: Popup.vue ~ line 78 ~ show ~ val', val)
90 71
       this.showSelf = val
91 72
 
92
-      this.transform()
93 73
       // this.closeMyself()
94 74
 
95 75
       // if (!val) {
@@ -104,28 +84,8 @@ export default {
104 84
   },
105 85
   mounted() {
106 86
     this.forbidScroll()
107
-    if (this.show === true) {
108
-      this.transform()
109
-    }
110 87
   },
111 88
   methods: {
112
-    shareClick() {
113
-      this.$router.replace({
114
-        path: 'SaveShare',
115
-        query: { states: 0 }
116
-      })
117
-    },
118
-    saveClick() {
119
-      this.$router.replace({
120
-        path: 'SaveShare',
121
-        query: { states: 1 }
122
-      })
123
-    },
124
-    transform() {
125
-      setTimeout(() => {
126
-        this.classDivAA = this.show
127
-      }, 0)
128
-    },
129 89
     /** 禁止页面滚动 */
130 90
     forbidScroll() {
131 91
       this.bodyOverflow = document.body.style.overflow

+ 325
- 0
src/components/WinningPopup.vue Vedi File

@@ -0,0 +1,325 @@
1
+<template>
2
+  <div v-if="showSelf" class="dialog">
3
+    <div class="dialog-mark" @click.self="closeMyself">
4
+      <div class="sharetiptxt" style>
5
+        <img style="width:100%; height:100%;" src="../assets/popupImg/myShare.png" alt />
6
+      </div>
7
+      <transition name="dialog">
8
+        <div class="dialog-sprite">
9
+          <div class="dialog-body">
10
+            <div class="card-wrapper">
11
+              <div :class="`dialog-popuImag ${classDivAA?'flipped':''}`">
12
+                <!-- <img src="../assets/popupImg/popuBody.jpg" alt /> -->
13
+                <div class="back" :style="`background-image: url(${backimg});`">
14
+                  <!-- <img style="width: 180px; height:492px" src="../assets/popupImg/popuBody.jpg" alt /> -->
15
+                </div>
16
+
17
+                <div class="front">
18
+                  <img
19
+                    style="width: 180px; height:492px "
20
+                    src="../assets/popupImg/backImag.jpg"
21
+                    alt
22
+                  />
23
+                </div>
24
+              </div>
25
+            </div>
26
+
27
+            <div @click="cancel" class="dialog-footer">
28
+              <!-- <img @click="cancel" class="btn" src="../assets/popupImg/cancelmage.png" alt /> -->
29
+              <h1>开心收下</h1>
30
+            </div>
31
+          </div>
32
+          <!-- 右侧 -->
33
+        </div>
34
+      </transition>
35
+    </div>
36
+  </div>
37
+</template>
38
+
39
+<script>
40
+export default {
41
+  name: 'Popup',
42
+  components: {},
43
+  props: {
44
+    show: {
45
+      type: Boolean,
46
+      default: false,
47
+      required: true
48
+    },
49
+
50
+    cancelText: {
51
+      type: String,
52
+      default: '取消',
53
+      required: false
54
+    }
55
+  },
56
+
57
+  data() {
58
+    return {
59
+      name: 'dialog',
60
+      showSelf: false,
61
+      zIndex: this.getZIndex(),
62
+      bodyOverflow: '',
63
+      classDivAA: false,
64
+      myShareShow: false,
65
+      backimg: require('../assets/popupImg/popuBody.jpg'),
66
+
67
+      stater: null
68
+    }
69
+  },
70
+  watch: {
71
+    show(val) {
72
+      console.log('🚀 ~ file: Popup.vue ~ line 78 ~ show ~ val', val)
73
+      this.showSelf = val
74
+      if (this.show === false) {
75
+        this.myShareShow = false
76
+      }
77
+      this.transform()
78
+
79
+      // if (!val) {
80
+      //   this.closeMyself()
81
+      // } else {
82
+      //   this.showSelf = val
83
+      // }
84
+    }
85
+  },
86
+  created() {
87
+    this.showSelf = this.show
88
+  },
89
+  mounted() {
90
+    this.forbidScroll()
91
+    if (this.show === true) {
92
+      this.transform()
93
+    }
94
+  },
95
+  methods: {
96
+    canckle() {
97
+      // this.showPopupCalendarPoster = false
98
+    },
99
+    shareClick() {
100
+      this.$router.replace({
101
+        path: 'SaveShare',
102
+        query: { states: 0 }
103
+      })
104
+    },
105
+    saveClick() {
106
+      this.$router.replace({
107
+        path: 'SaveShare',
108
+        query: { states: 1 }
109
+      })
110
+    },
111
+    transform() {
112
+      setTimeout(() => {
113
+        this.classDivAA = this.show
114
+      }, 0)
115
+    },
116
+    /** 禁止页面滚动 */
117
+    forbidScroll() {
118
+      this.bodyOverflow = document.body.style.overflow
119
+      document.body.style.overflow = 'hidden'
120
+    },
121
+
122
+    /**  每次获取之后 zindex 自动增加 */
123
+    getZIndex() {
124
+      let zIndexInit = 2022112
125
+      return zIndexInit++
126
+    },
127
+
128
+    /** 取消按钮操作 */
129
+    cancel() {
130
+      this.$emit('cancel', true)
131
+    },
132
+
133
+    /** 确认按钮操作 */
134
+    confirm() {
135
+      this.$emit('confirm', true)
136
+    },
137
+
138
+    /** 点击遮罩关闭弹窗 */
139
+    closeMyself(event) {
140
+      // this.sloveBodyOverflow()
141
+    },
142
+
143
+    /** 恢复页面的滚动 */
144
+    sloveBodyOverflow() {
145
+      document.body.style.overflow = this.bodyOverflow
146
+    }
147
+  }
148
+}
149
+</script>
150
+
151
+<style lang="less" scoped>
152
+// 弹窗动画
153
+
154
+// 最外层 设置position定位
155
+// 遮罩 设置背景层,z-index值要足够大确保能覆盖,高度 宽度设置满 做到全屏遮罩
156
+
157
+.dialog {
158
+  position: fixed;
159
+  top: 0;
160
+  right: 0;
161
+  width: 100%;
162
+  height: 100%;
163
+  transition: opacity 1s;
164
+
165
+  // 内容层 z-index要比遮罩大,否则会被遮盖
166
+  .dialog-mark {
167
+    position: relative;
168
+    top: 0;
169
+    height: 0;
170
+    width: 100%;
171
+    height: 100%;
172
+    background: rgba(0, 0, 0, 0.6);
173
+    left: 0;
174
+    top: 0;
175
+    z-index: 99;
176
+    display: flex;
177
+    align-items: center;
178
+    justify-content: center;
179
+    .sharetiptxt {
180
+      background-size: 100% auto;
181
+      background-repeat: no-repeat;
182
+      z-index: 55;
183
+      width: 20px;
184
+      height: 320px;
185
+      display: block;
186
+      position: absolute;
187
+      right: 1rem;
188
+      top: 0.5em;
189
+      animation: tipup 1s ease infinite;
190
+    }
191
+  }
192
+}
193
+@keyframes tipup {
194
+  0% {
195
+    transform: translateY(0%);
196
+  }
197
+  50% {
198
+    transform: translateY(5%);
199
+  }
200
+  100% {
201
+    transform: translateY(0%);
202
+  }
203
+}
204
+
205
+.dialog-sprite {
206
+  width: 100vw;
207
+  display: flex;
208
+  justify-content: center;
209
+  position: relative;
210
+
211
+  .header {
212
+    padding: 15px;
213
+    text-align: center;
214
+    font-size: 18px;
215
+    font-weight: 700;
216
+    color: #333;
217
+  }
218
+  .dialog-body {
219
+    flex: 1;
220
+    overflow-x: hidden;
221
+    overflow-y: scroll;
222
+    padding: 0 15px 20px 15px;
223
+
224
+    //中间卡片
225
+    .card-wrapper {
226
+      perspective: 600px;
227
+      margin-top: 2em;
228
+
229
+      .dialog-popuImag {
230
+        position: relative;
231
+        display: flex;
232
+        justify-content: center;
233
+        transform-style: preserve-3d;
234
+        transition: all 1.2s ease;
235
+
236
+        // div {
237
+        //   // position: relative;
238
+        //   position: absolute;
239
+        //   width: 100%;
240
+        //   height: 100%;
241
+        //   /* 背面不显示 */
242
+        //   // backface-visibility: hidden;
243
+        // }
244
+        .front {
245
+        }
246
+        .back {
247
+          position: absolute;
248
+          transform: rotateY(180deg);
249
+          width: 180px;
250
+          height: 492px;
251
+          background-size: 100% auto;
252
+          // animation: change 0.8s linear forwards;
253
+        }
254
+
255
+        img {
256
+          width: 48vw;
257
+        }
258
+      }
259
+      .flipped {
260
+        animation: change 0.8s linear forwards;
261
+      }
262
+    }
263
+    @keyframes change {
264
+      from {
265
+        top: -20vh;
266
+        left: -20vw;
267
+        opacity: 0;
268
+        transform: scale(0.5);
269
+      }
270
+      to {
271
+        top: -0;
272
+        left: -0;
273
+        opacity: 2;
274
+        transform: scale(1);
275
+        transform: rotateY(180deg);
276
+      }
277
+    }
278
+    //底部按钮
279
+    .dialog-footer {
280
+      width: 100%;
281
+      background-size: 100% auto;
282
+      margin: 10px auto 0;
283
+      .btn {
284
+        padding-top: 0;
285
+        width: 32px;
286
+        height: 32px;
287
+      }
288
+    }
289
+  }
290
+  .section-box {
291
+    position: absolute;
292
+    right: 15vw;
293
+    top: 98px;
294
+    height: 394px;
295
+    display: flex;
296
+    flex-direction: column;
297
+    width: 36px;
298
+    justify-content: space-between;
299
+    margin-top: 2em;
300
+
301
+    img {
302
+      width: 36px;
303
+      background-size: 100% auto;
304
+      margin-top: 0;
305
+      border-radius: 18px;
306
+    }
307
+
308
+    &-receive {
309
+      width: 36px;
310
+      background-size: 100% auto;
311
+      margin-top: 0;
312
+    }
313
+    &-save {
314
+      width: 36px;
315
+      border-radius: 18px;
316
+      background-size: 100% auto;
317
+      width: 36px;
318
+      margin-top: 0;
319
+
320
+      // background: url('../assets/popupImg/receiveImage.png') no-repeat;
321
+    }
322
+  }
323
+}
324
+</style>
325
+

+ 100
- 0
src/components/imgbox.vue Vedi File

@@ -0,0 +1,100 @@
1
+<template>
2
+  <div :class="{ bigBox: state === 1 }">
3
+    <popup :show="showPopup" @cancel="cancelFrom" />
4
+    <div class="card" :class="{ flipped: state === 1 }" @click="showPopup=true">
5
+      <div class="front">
6
+        <img v-if="isFrist" :src="fristFontImg" class="nowimage" />
7
+        <img v-else :src="nowFontImg" class="nowimage" />
8
+      </div>
9
+      <div class="back">
10
+        <img v-if="state===1" :src="nowBackImg" class="nowimage" />
11
+        <img v-else :src="openImg" class="nowimage" />
12
+      </div>
13
+    </div>
14
+  </div>
15
+</template>
16
+<script>
17
+export default {
18
+  props: {
19
+    value: {
20
+      type: String,
21
+      require: true,
22
+    },
23
+  },
24
+  components: {
25
+    Popup: () => import("@/components/Popup.vue"),
26
+  },
27
+  data() {
28
+    return {
29
+      showPopup: false,
30
+      state: 1,
31
+      classList: ["card"],
32
+      fristFontImg:undefined,
33
+      nowFontImg: require('../assets/popupImg/backImag.jpg'),
34
+      nowBackImg: require('../assets/popupImg/popuBody.jpg'),
35
+      openImg: require('../assets/popupImg/redBack.jpg'),
36
+      isFrist:true,
37
+    };
38
+  },
39
+  watch: {
40
+    value: {
41
+      handler(val) {
42
+        if (val) {
43
+          this.fristFontImg = val;
44
+        }
45
+      },
46
+      immediate: true,
47
+    },
48
+  },
49
+  methods: {
50
+    transform() {
51
+      this.showPopup=true
52
+      this.state = Math.abs(this.state - 1);
53
+    },
54
+    cancelFrom() {
55
+      this.state = Math.abs(this.state - 1);
56
+      this.showPopup=false
57
+      this.isFrist=false
58
+    }
59
+  },
60
+};
61
+</script>
62
+<style lang="less" scoped>
63
+.bigBox {
64
+  perspective: 600px;
65
+  overflow: hidden;
66
+}
67
+
68
+.card {
69
+  position: relative;
70
+  width: 22vw;
71
+  height: 60.5vw;
72
+  transform-style: preserve-3d;
73
+  transition: all 1.6s ease;
74
+  transform: rotateY(-180deg) scale(2);
75
+}
76
+
77
+
78
+.card > div {
79
+  position: absolute;
80
+  top: 0;
81
+  left: 0;
82
+  width: 100%;
83
+
84
+  /* 背面不显示 */
85
+  backface-visibility: hidden;
86
+}
87
+
88
+.flipped {
89
+  transform: rotateY(0);
90
+}
91
+
92
+.nowimage {
93
+  width: 22vw;
94
+  height: 60.5vw;
95
+}
96
+
97
+.card .back {
98
+  transform: rotateY(-180deg);
99
+}
100
+</style>>

+ 122
- 36
src/pages/Honghe.vue Vedi File

@@ -1,6 +1,7 @@
1 1
 <template>
2 2
   <div class="index-box">
3 3
     <popup :show="showPopup" @cancel="cancelFrom" :current-month="currentMonth" />
4
+
4 5
     <div>
5 6
       <div>
6 7
         <img class="topImage" src="../assets/hareTop.png" alt />
@@ -12,10 +13,10 @@
12 13
           <div @click="handleMonthClick(month)">
13 14
             <!-- <img class="section-item-image" src="../assets/coverIndex.jpg" /> -->
14 15
             <img
15
-              :class="`section-item-image ${!showPopup?'backImag':''}` "
16
+              :class="`section-item-image ${rotateY?'backImag':''}` "
16 17
               src="../assets/popupImg/backImag.jpg"
17 18
             />
18
-          </div>
19
+          </div>-->
19 20
         </div>
20 21
       </div>
21 22
     </div>
@@ -30,18 +31,102 @@ import { hideLoading } from '@/utils'
30 31
 
31 32
 // 月份信息
32 33
 const monthList = [
33
-  { id: 1, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
34
-  { id: 2, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
35
-  { id: 3, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
36
-  { id: 4, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
37
-  { id: 5, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
38
-  { id: 6, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
39
-  { id: 7, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
40
-  { id: 8, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
41
-  { id: 9, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
42
-  { id: 10, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
43
-  { id: 11, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
44
-  { id: 12, posterImg: '', popImg: '', shareImg: '', screenImg: '', calendarImg: '' },
34
+  {
35
+    id: 1,
36
+    posterImg: '',
37
+    popImg: '',
38
+    shareImg: '',
39
+    screenImg: '',
40
+    calendarImg: ''
41
+  },
42
+  {
43
+    id: 2,
44
+    posterImg: '',
45
+    popImg: '',
46
+    shareImg: '',
47
+    screenImg: '',
48
+    calendarImg: ''
49
+  },
50
+  {
51
+    id: 3,
52
+    posterImg: '',
53
+    popImg: '',
54
+    shareImg: '',
55
+    screenImg: '',
56
+    calendarImg: ''
57
+  },
58
+  {
59
+    id: 4,
60
+    posterImg: '',
61
+    popImg: '',
62
+    shareImg: '',
63
+    screenImg: '',
64
+    calendarImg: ''
65
+  },
66
+  {
67
+    id: 5,
68
+    posterImg: '',
69
+    popImg: '',
70
+    shareImg: '',
71
+    screenImg: '',
72
+    calendarImg: ''
73
+  },
74
+  {
75
+    id: 6,
76
+    posterImg: '',
77
+    popImg: '',
78
+    shareImg: '',
79
+    screenImg: '',
80
+    calendarImg: ''
81
+  },
82
+  {
83
+    id: 7,
84
+    posterImg: '',
85
+    popImg: '',
86
+    shareImg: '',
87
+    screenImg: '',
88
+    calendarImg: ''
89
+  },
90
+  {
91
+    id: 8,
92
+    posterImg: '',
93
+    popImg: '',
94
+    shareImg: '',
95
+    screenImg: '',
96
+    calendarImg: ''
97
+  },
98
+  {
99
+    id: 9,
100
+    posterImg: '',
101
+    popImg: '',
102
+    shareImg: '',
103
+    screenImg: '',
104
+    calendarImg: ''
105
+  },
106
+  {
107
+    id: 10,
108
+    posterImg: '',
109
+    popImg: '',
110
+    shareImg: '',
111
+    screenImg: '',
112
+    calendarImg: ''
113
+  },
114
+  {
115
+    id: 11,
116
+    posterImg: '',
117
+    popImg: '',
118
+    shareImg: '',
119
+    screenImg: '',
120
+    calendarImg: ''
121
+  },
122
+  {
123
+    id: 12,
124
+    posterImg: '',
125
+    popImg: '',
126
+    shareImg: '',
127
+    screenImg: '',
128
+    calendarImg: ''
129
+  }
45 130
 ]
46 131
 
47 132
 export default {
@@ -61,10 +146,10 @@ export default {
61 146
   },
62 147
   computed: {
63 148
     person: {
64
-      get () {
149
+      get() {
65 150
         return useModel('person')[0]
66 151
       },
67
-      set (val) {
152
+      set(val) {
68 153
         useModel('person')[1](val)
69 154
       }
70 155
     }
@@ -102,23 +187,23 @@ export default {
102 187
     },
103 188
     // 抽奖
104 189
     drawLots() {
105
-      drawLottery(this.person).then(res => {
190
+      drawLottery(this.person).then((res) => {
106 191
         // 更新人员信息
107 192
         this.person = res
108
-        
193
+
109 194
         // 其他动作
110 195
       })
111 196
     },
112 197
     // 获取奖品列表
113 198
     getPrizes() {
114
-      getPrizeList().then(list => {
115
-        this.prizeList = list;
199
+      getPrizeList().then((list) => {
200
+        this.prizeList = list
116 201
 
117 202
         const t = setTimeout(() => {
118 203
           hideLoading()
119 204
           clearTimeout(t)
120
-        }, 1000);
121
-      });
205
+        }, 1000)
206
+      })
122 207
     }
123 208
   }
124 209
 }
@@ -175,25 +260,26 @@ export default {
175 260
         border-left: 1px solid #d0b69a;
176 261
         border-top: 1px solid #d0b69a;
177 262
         display: inline-flex;
263
+        overflow: hidden;
178 264
         &-image {
179 265
           width: 22vw;
180 266
 
181 267
           background-size: 100% 100%;
182 268
         }
183
-        // .backImag {
184
-        //   position: relative;
185
-        //   animation: change 0.8s linear forwards;
186
-        // }
187
-        // @keyframes change {
188
-        //   from {
189
-        //     width: 50%;
190
-        //     z-index: 1;
191
-        //     transform: rotateY(180deg);
192
-        //   }
193
-        //   to {
194
-        //     width: 22vw;
195
-        //   }
196
-        // }
269
+        .backImag {
270
+          // position: relative;
271
+          width: 22vw;
272
+          animation: change 0.8s linear forwards;
273
+        }
274
+        @keyframes change {
275
+          from {
276
+            width: 44vw;
277
+            transform: rotateY(180deg);
278
+          }
279
+          to {
280
+            width: 22vw;
281
+          }
282
+        }
197 283
       }
198 284
     }
199 285
   }

+ 19
- 2
src/pages/SaveShare.vue Vedi File

@@ -13,7 +13,7 @@
13 13
         <!-- 领取屏保 -->
14 14
         <div class="outer3 flex-col">
15 15
           <div class="haibao">
16
-            <img class="haibao" src="../assets/saverShaerImg/haibao.jpg" alt />
16
+            <img class="haibao" src="~@/assets/saverShaerImg/haibao.jpg" alt />
17 17
           </div>
18 18
           <div class="mod2 flex-col">
19 19
             <div class="block1 flex-col">
@@ -50,11 +50,25 @@
50 50
 </template>
51 51
 
52 52
 <script>
53
+import { hideLoading } from '@/utils'
54
+
53 55
 export default {
54 56
   name: 'SaveShare',
55 57
   components: {
56 58
     ShaerPopup: () => import('@/components/ShaerPopup.vue')
57 59
   },
60
+  props: {
61
+    show: {
62
+      type: Boolean,
63
+      default: false,
64
+      required: true
65
+    },
66
+    type: String,
67
+    cancelText: {
68
+      default: '取消',
69
+      required: false
70
+    }
71
+  },
58 72
   data() {
59 73
     return {
60 74
       item: null,
@@ -66,6 +80,9 @@ export default {
66 80
       pressLucky: require('../assets/saverShaerImg/PressLucky.png')
67 81
     }
68 82
   },
83
+  mounted() {
84
+    hideLoading()
85
+  },
69 86
 
70 87
   watch: {
71 88
     '$route.query.states': {
@@ -175,7 +192,7 @@ export default {
175 192
     .wrap5 {
176 193
       height: 137px;
177 194
       background-color: #efe9e0;
178
-      margin-top: 19px;
195
+      // margin-top: 19px;
179 196
       width: 100vw;
180 197
       justify-content: center;
181 198
       align-items: center;