张延森 3 年 前
コミット
761a001302
共有50 個のファイルを変更した1220 個の追加110 個の削除を含む
  1. バイナリ
      src/assets/ShaerPopupImg/popuBgc.jpg
  2. バイナリ
      src/assets/ShaerPopupImg/popuSave.png
  3. バイナリ
      src/assets/backgroung.jpg
  4. バイナリ
      src/assets/buttonImg/backImg.png
  5. バイナリ
      src/assets/buttonImg/happyAccept.png
  6. バイナリ
      src/assets/buttonImg/myPrize.png
  7. バイナリ
      src/assets/buttonImg/pressSave.png
  8. バイナリ
      src/assets/buttonImg/saveHaibao.png
  9. バイナリ
      src/assets/buttonImg/saveMonth.png
  10. バイナリ
      src/assets/buttonImg/sayFriend.png
  11. バイナリ
      src/assets/buttonImg/shareText.png
  12. バイナリ
      src/assets/coverIndex.jpg
  13. バイナリ
      src/assets/hareTop.png
  14. バイナリ
      src/assets/indexImg/indexBgc.jpg
  15. バイナリ
      src/assets/indexImg/loading.png
  16. バイナリ
      src/assets/indexImg/loadingBgc.jpg
  17. バイナリ
      src/assets/indexImg/loading_bar.png
  18. バイナリ
      src/assets/indexImg/transparent_arr.png
  19. バイナリ
      src/assets/popupImg/backImag.jpg
  20. バイナリ
      src/assets/popupImg/cancelmage.png
  21. バイナリ
      src/assets/popupImg/myShare.png
  22. バイナリ
      src/assets/popupImg/popuBody.jpg
  23. バイナリ
      src/assets/popupImg/receiveImage.png
  24. バイナリ
      src/assets/popupImg/saveImage.png
  25. バイナリ
      src/assets/popupImg/shareImage.png
  26. バイナリ
      src/assets/saverShaerImg/PressImage.png
  27. バイナリ
      src/assets/saverShaerImg/PressLucky.png
  28. バイナリ
      src/assets/saverShaerImg/back.png
  29. バイナリ
      src/assets/saverShaerImg/calendar.jpg
  30. バイナリ
      src/assets/saverShaerImg/haibao.jpg
  31. バイナリ
      src/assets/saverShaerImg/shaerLucky.png
  32. バイナリ
      src/assets/saverShaerImg/shaerLuckyRed.png
  33. バイナリ
      src/assets/sharePagesImg/April.jpg
  34. バイナリ
      src/assets/sharePagesImg/August.jpg
  35. バイナリ
      src/assets/sharePagesImg/February.jpg
  36. バイナリ
      src/assets/sharePagesImg/January.jpg
  37. バイナリ
      src/assets/sharePagesImg/July.jpg
  38. バイナリ
      src/assets/sharePagesImg/June.jpg
  39. バイナリ
      src/assets/sharePagesImg/March.jpg
  40. バイナリ
      src/assets/sharePagesImg/May.jpg
  41. バイナリ
      src/assets/sharePagesImg/October.jpg
  42. バイナリ
      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

バイナリ
src/assets/ShaerPopupImg/popuBgc.jpg ファイルの表示


バイナリ
src/assets/ShaerPopupImg/popuSave.png ファイルの表示


バイナリ
src/assets/backgroung.jpg ファイルの表示


バイナリ
src/assets/buttonImg/backImg.png ファイルの表示


バイナリ
src/assets/buttonImg/happyAccept.png ファイルの表示


バイナリ
src/assets/buttonImg/myPrize.png ファイルの表示


バイナリ
src/assets/buttonImg/pressSave.png ファイルの表示


バイナリ
src/assets/buttonImg/saveHaibao.png ファイルの表示


バイナリ
src/assets/buttonImg/saveMonth.png ファイルの表示


バイナリ
src/assets/buttonImg/sayFriend.png ファイルの表示


バイナリ
src/assets/buttonImg/shareText.png ファイルの表示


バイナリ
src/assets/coverIndex.jpg ファイルの表示


バイナリ
src/assets/hareTop.png ファイルの表示


バイナリ
src/assets/indexImg/indexBgc.jpg ファイルの表示


バイナリ
src/assets/indexImg/loading.png ファイルの表示


バイナリ
src/assets/indexImg/loadingBgc.jpg ファイルの表示


バイナリ
src/assets/indexImg/loading_bar.png ファイルの表示


バイナリ
src/assets/indexImg/transparent_arr.png ファイルの表示


バイナリ
src/assets/popupImg/backImag.jpg ファイルの表示


バイナリ
src/assets/popupImg/cancelmage.png ファイルの表示


バイナリ
src/assets/popupImg/myShare.png ファイルの表示


バイナリ
src/assets/popupImg/popuBody.jpg ファイルの表示


バイナリ
src/assets/popupImg/receiveImage.png ファイルの表示


バイナリ
src/assets/popupImg/saveImage.png ファイルの表示


バイナリ
src/assets/popupImg/shareImage.png ファイルの表示


バイナリ
src/assets/saverShaerImg/PressImage.png ファイルの表示


バイナリ
src/assets/saverShaerImg/PressLucky.png ファイルの表示


バイナリ
src/assets/saverShaerImg/back.png ファイルの表示


バイナリ
src/assets/saverShaerImg/calendar.jpg ファイルの表示


バイナリ
src/assets/saverShaerImg/haibao.jpg ファイルの表示


バイナリ
src/assets/saverShaerImg/shaerLucky.png ファイルの表示


バイナリ
src/assets/saverShaerImg/shaerLuckyRed.png ファイルの表示


バイナリ
src/assets/sharePagesImg/April.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/August.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/February.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/January.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/July.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/June.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/March.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/May.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/October.jpg ファイルの表示


バイナリ
src/assets/sharePagesImg/September.jpg ファイルの表示


+ 305
- 0
src/components/CalendarPoster.vue ファイルの表示

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 ファイルの表示

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 ファイルの表示

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

+ 3
- 43
src/components/ShaerPopup.vue ファイルの表示

2
   <div v-if="showSelf" class="dialog" :style="{'z-index': zIndex}">
2
   <div v-if="showSelf" class="dialog" :style="{'z-index': zIndex}">
3
     <div class="dialog-mark" @click="closeMyself" :style="{'z-index': zIndex + 1}">
3
     <div class="dialog-mark" @click="closeMyself" :style="{'z-index': zIndex + 1}">
4
       <div v-show="myShareShow" class="sharetiptxt" style>
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
       </div>
6
       </div>
7
       <transition name="dialog">
7
       <transition name="dialog">
8
-        <div class="dialog-sprite" :style="{'z-index': zIndex + 2}">
8
+        <div class="dialog-sprite">
9
           <div class="dialog-body">
9
           <div class="dialog-body">
10
             <div class="bd2 flex-col">
10
             <div class="bd2 flex-col">
11
               <img class="pic1" src="../assets/ShaerPopupImg/popuBgc.jpg" alt />
11
               <img class="pic1" src="../assets/ShaerPopupImg/popuBgc.jpg" alt />
39
 
39
 
40
 <script>
40
 <script>
41
 export default {
41
 export default {
42
-  name: 'Popup',
42
+  name: 'ShaerPopup',
43
 
43
 
44
   props: {
44
   props: {
45
     show: {
45
     show: {
47
       default: false,
47
       default: false,
48
       required: true
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
     cancelText: {
50
     cancelText: {
60
       type: String,
51
       type: String,
61
       default: '取消',
52
       default: '取消',
62
       required: false
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
       console.log('🚀 ~ file: Popup.vue ~ line 78 ~ show ~ val', val)
70
       console.log('🚀 ~ file: Popup.vue ~ line 78 ~ show ~ val', val)
90
       this.showSelf = val
71
       this.showSelf = val
91
 
72
 
92
-      this.transform()
93
       // this.closeMyself()
73
       // this.closeMyself()
94
 
74
 
95
       // if (!val) {
75
       // if (!val) {
104
   },
84
   },
105
   mounted() {
85
   mounted() {
106
     this.forbidScroll()
86
     this.forbidScroll()
107
-    if (this.show === true) {
108
-      this.transform()
109
-    }
110
   },
87
   },
111
   methods: {
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
     forbidScroll() {
90
     forbidScroll() {
131
       this.bodyOverflow = document.body.style.overflow
91
       this.bodyOverflow = document.body.style.overflow

+ 325
- 0
src/components/WinningPopup.vue ファイルの表示

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 ファイルの表示

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 ファイルの表示

1
 <template>
1
 <template>
2
   <div class="index-box">
2
   <div class="index-box">
3
     <popup :show="showPopup" @cancel="cancelFrom" :current-month="currentMonth" />
3
     <popup :show="showPopup" @cancel="cancelFrom" :current-month="currentMonth" />
4
+
4
     <div>
5
     <div>
5
       <div>
6
       <div>
6
         <img class="topImage" src="../assets/hareTop.png" alt />
7
         <img class="topImage" src="../assets/hareTop.png" alt />
12
           <div @click="handleMonthClick(month)">
13
           <div @click="handleMonthClick(month)">
13
             <!-- <img class="section-item-image" src="../assets/coverIndex.jpg" /> -->
14
             <!-- <img class="section-item-image" src="../assets/coverIndex.jpg" /> -->
14
             <img
15
             <img
15
-              :class="`section-item-image ${!showPopup?'backImag':''}` "
16
+              :class="`section-item-image ${rotateY?'backImag':''}` "
16
               src="../assets/popupImg/backImag.jpg"
17
               src="../assets/popupImg/backImag.jpg"
17
             />
18
             />
18
-          </div>
19
+          </div>-->
19
         </div>
20
         </div>
20
       </div>
21
       </div>
21
     </div>
22
     </div>
30
 
31
 
31
 // 月份信息
32
 // 月份信息
32
 const monthList = [
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
 export default {
132
 export default {
61
   },
146
   },
62
   computed: {
147
   computed: {
63
     person: {
148
     person: {
64
-      get () {
149
+      get() {
65
         return useModel('person')[0]
150
         return useModel('person')[0]
66
       },
151
       },
67
-      set (val) {
152
+      set(val) {
68
         useModel('person')[1](val)
153
         useModel('person')[1](val)
69
       }
154
       }
70
     }
155
     }
102
     },
187
     },
103
     // 抽奖
188
     // 抽奖
104
     drawLots() {
189
     drawLots() {
105
-      drawLottery(this.person).then(res => {
190
+      drawLottery(this.person).then((res) => {
106
         // 更新人员信息
191
         // 更新人员信息
107
         this.person = res
192
         this.person = res
108
-        
193
+
109
         // 其他动作
194
         // 其他动作
110
       })
195
       })
111
     },
196
     },
112
     // 获取奖品列表
197
     // 获取奖品列表
113
     getPrizes() {
198
     getPrizes() {
114
-      getPrizeList().then(list => {
115
-        this.prizeList = list;
199
+      getPrizeList().then((list) => {
200
+        this.prizeList = list
116
 
201
 
117
         const t = setTimeout(() => {
202
         const t = setTimeout(() => {
118
           hideLoading()
203
           hideLoading()
119
           clearTimeout(t)
204
           clearTimeout(t)
120
-        }, 1000);
121
-      });
205
+        }, 1000)
206
+      })
122
     }
207
     }
123
   }
208
   }
124
 }
209
 }
175
         border-left: 1px solid #d0b69a;
260
         border-left: 1px solid #d0b69a;
176
         border-top: 1px solid #d0b69a;
261
         border-top: 1px solid #d0b69a;
177
         display: inline-flex;
262
         display: inline-flex;
263
+        overflow: hidden;
178
         &-image {
264
         &-image {
179
           width: 22vw;
265
           width: 22vw;
180
 
266
 
181
           background-size: 100% 100%;
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 ファイルの表示

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