临时保存
Showing
10 changed files
with
517 additions
and
71 deletions
No preview for this file type
... | @@ -10,6 +10,8 @@ as.defineAvatar = "http://cdn.aiwanpai.com/s/d.jpg"; | ... | @@ -10,6 +10,8 @@ as.defineAvatar = "http://cdn.aiwanpai.com/s/d.jpg"; |
10 | 10 | ||
11 | as.shareLink = as.domains + "/index.html"; | 11 | as.shareLink = as.domains + "/index.html"; |
12 | as.shareImgUrl = as.domains + "/share.jpg"; | 12 | as.shareImgUrl = as.domains + "/share.jpg"; |
13 | as.shareTitle = "我C位出道,需要你的一票"; | ||
14 | as.shareDesc = "我参加了立白集团立乐家和嘉佳卡通卫视联合举办的“小戏骨选拔赛”,C位出道需要你的一票。你也想成为C位主角吗?不要犹豫了,赶紧来报名吧!" | ||
13 | as.success = function () { }; | 15 | as.success = function () { }; |
14 | as.appSuccess = function () { }; | 16 | as.appSuccess = function () { }; |
15 | 17 | ||
... | @@ -78,7 +80,8 @@ as.setShare = function (link, title, desc, imgurl) { | ... | @@ -78,7 +80,8 @@ as.setShare = function (link, title, desc, imgurl) { |
78 | "timelineShareSucc": as.success | 80 | "timelineShareSucc": as.success |
79 | }); | 81 | }); |
80 | }; | 82 | }; |
81 | as.setShare("", "了解「亚洲万里通」", "", "https://k.wxpai.cn/saMS/share.jpg?v20190625"); | 83 | as.setShare("", "", "", ""); |
84 | |||
82 | //获取用户微信信息 | 85 | //获取用户微信信息 |
83 | as.getWxUserInfo = function (callback) { | 86 | as.getWxUserInfo = function (callback) { |
84 | as.weixin.getUserInfoV2({ | 87 | as.weixin.getUserInfoV2({ | ... | ... |
public/share.jpg
0 → 100644
51.4 KB
... | @@ -2,6 +2,10 @@ import axios from 'axios'; | ... | @@ -2,6 +2,10 @@ import axios from 'axios'; |
2 | import Vue from 'vue'; | 2 | import Vue from 'vue'; |
3 | import Router from '../router' | 3 | import Router from '../router' |
4 | 4 | ||
5 | |||
6 | import { Toast } from "vant"; | ||
7 | Vue.use(Toast); | ||
8 | |||
5 | // import { | 9 | // import { |
6 | // Toast | 10 | // Toast |
7 | // } from 'vant'; | 11 | // } from 'vant'; |
... | @@ -42,6 +46,9 @@ axios.interceptors.request.use( | ... | @@ -42,6 +46,9 @@ axios.interceptors.request.use( |
42 | // 响应拦截器 | 46 | // 响应拦截器 |
43 | axios.interceptors.response.use( | 47 | axios.interceptors.response.use( |
44 | response => { | 48 | response => { |
49 | if(!response){ | ||
50 | return; | ||
51 | } | ||
45 | if (response.status === 200) { | 52 | if (response.status === 200) { |
46 | if (response.data.code === 200) { | 53 | if (response.data.code === 200) { |
47 | return Promise.resolve(response); | 54 | return Promise.resolve(response); |
... | @@ -50,6 +57,8 @@ axios.interceptors.response.use( | ... | @@ -50,6 +57,8 @@ axios.interceptors.response.use( |
50 | store.removeSession(); | 57 | store.removeSession(); |
51 | store.saveRedirectUrl(); | 58 | store.saveRedirectUrl(); |
52 | Router.push("/"); | 59 | Router.push("/"); |
60 | } else { | ||
61 | Toast(response.data.errMsg); | ||
53 | } | 62 | } |
54 | return Promise.reject(response); | 63 | return Promise.reject(response); |
55 | } | 64 | } |
... | @@ -59,8 +68,7 @@ axios.interceptors.response.use( | ... | @@ -59,8 +68,7 @@ axios.interceptors.response.use( |
59 | }, | 68 | }, |
60 | // 服务器状态码不是200的情况 | 69 | // 服务器状态码不是200的情况 |
61 | error => { | 70 | error => { |
62 | console.log("Router.path === ", Router.history.current); | 71 | if (error && error.response && error.response.status) { |
63 | if (error.response.status) { | ||
64 | switch (error.response.status) { | 72 | switch (error.response.status) { |
65 | case 404: | 73 | case 404: |
66 | Toast({ | 74 | Toast({ |
... | @@ -70,12 +78,12 @@ axios.interceptors.response.use( | ... | @@ -70,12 +78,12 @@ axios.interceptors.response.use( |
70 | }); | 78 | }); |
71 | break; | 79 | break; |
72 | // 其他错误,直接抛出错误提示 | 80 | // 其他错误,直接抛出错误提示 |
73 | default: | 81 | // default: |
74 | Toast({ | 82 | // Toast({ |
75 | message: error.response.data.message, | 83 | // message: error.response.data.message, |
76 | duration: 1500, | 84 | // duration: 1500, |
77 | forbidClick: true | 85 | // forbidClick: true |
78 | }); | 86 | // }); |
79 | } | 87 | } |
80 | return Promise.reject(error.response); | 88 | return Promise.reject(error.response); |
81 | } | 89 | } | ... | ... |
src/assets/imgs/draw-card-frontbg.png
0 → 100644
25.5 KB
src/components/biz-model/draw-model.vue
0 → 100644
1 | <template> | ||
2 | <van-popup v-model="data.show"> | ||
3 | <div class="model"> | ||
4 | <div class="model-close" @click="modelCloseHandler"></div> | ||
5 | <!-- 积分或者优惠券 --> | ||
6 | <div | ||
7 | class="model-content" | ||
8 | v-if="data.drawResult.prizeType == 'integral' || data.drawResult.prizeType == 'coupon'" | ||
9 | > | ||
10 | <div class="model-head-line"></div> | ||
11 | <div class="model-title">恭喜获得</div> | ||
12 | |||
13 | <div class="content"> | ||
14 | <div | ||
15 | class="prize-thumb" | ||
16 | v-bind:style="{backgroundImage:'url(' + data.drawResult.thumb + ')'}" | ||
17 | ></div> | ||
18 | <div class="prize-name">{{data.drawResult.prizeName}}</div> | ||
19 | <div class="tip-container"> | ||
20 | <span class="use-tip">奖品说明</span> | ||
21 | </div> | ||
22 | <div class="tip-container" v-if="data.drawResult.prizeType == 'integral'"> | ||
23 | <span class="tip">积分可以在立乐家商城兑换礼品</span> | ||
24 | </div> | ||
25 | <div class="tip-container" v-if="data.drawResult.prizeType == 'coupon'"> | ||
26 | <span class="tip">优惠券可以在立乐家商城购物当现金使用</span> | ||
27 | </div> | ||
28 | <div | ||
29 | class="sys-btn-02 base-top" | ||
30 | @click="toViewIntegralHandler" | ||
31 | v-if="data.drawResult.prizeType == 'integral'" | ||
32 | >前往查看</div> | ||
33 | <div | ||
34 | class="sys-btn-02 base-top" | ||
35 | @click="toViewCouponHandler" | ||
36 | v-if="data.drawResult.prizeType == 'coupon'" | ||
37 | >前往使用</div> | ||
38 | <div class="sys-btn-02" @click="modelBtnClickHandler">返回抽奖</div> | ||
39 | </div> | ||
40 | </div> | ||
41 | |||
42 | <!-- 实物--> | ||
43 | <div class="model-content" v-if="data.drawResult.prizeType == 'real'"> | ||
44 | <div class="model-head-line"></div> | ||
45 | <div class="model-title">恭喜获得</div> | ||
46 | |||
47 | <div class="content"> | ||
48 | <div | ||
49 | class="prize-thumb" | ||
50 | v-bind:style="{backgroundImage:'url(' + data.drawResult.thumb + ')'}" | ||
51 | ></div> | ||
52 | <div class="prize-name">{{data.drawResult.prizeName}}</div> | ||
53 | <div class="form-contaner"> | ||
54 | <div class="form-item"> | ||
55 | <div class="form-label">收件人:</div> | ||
56 | <div class="form-input"> | ||
57 | <input v-model="submitForm.contactName" placeholder="请填写真实姓名" /> | ||
58 | </div> | ||
59 | </div> | ||
60 | <div class="form-item"> | ||
61 | <div class="form-label">联系方式:</div> | ||
62 | <div class="form-input"> | ||
63 | <input v-model="submitForm.contactMobile" placeholder="请填写手机号码" /> | ||
64 | </div> | ||
65 | </div> | ||
66 | <div class="form-item align-top"> | ||
67 | <div class="form-label">收件地址:</div> | ||
68 | <div class="form-input"> | ||
69 | <textarea v-model="submitForm.address" placeholder="请填写真实收件地址" rows="3" cols="20"></textarea> | ||
70 | </div> | ||
71 | </div> | ||
72 | </div> | ||
73 | <div class="sys-btn-02 base-top" @click="submitContactHandler">确认提交</div> | ||
74 | </div> | ||
75 | </div> | ||
76 | |||
77 | <!-- 不中奖--> | ||
78 | <div class="model-content" v-if="data.drawResult.status == 0"> | ||
79 | <div class="model-head-line"></div> | ||
80 | <div class="model-title"></div> | ||
81 | <div class="content"> | ||
82 | <div | ||
83 | class="prize-thumb" | ||
84 | v-bind:style="{backgroundImage:'url(' + data.drawResult.thumb + ')'}" | ||
85 | ></div> | ||
86 | <div> | ||
87 | <span class="tip" style="text-align:center">再接再厉,也许下一份大奖就是你的 ~</span> | ||
88 | </div> | ||
89 | <div class="sys-btn-02 base-top" @click="modelBtnClickHandler">返回抽奖</div> | ||
90 | </div> | ||
91 | </div> | ||
92 | </div> | ||
93 | </van-popup> | ||
94 | </template> | ||
95 | |||
96 | <script> | ||
97 | let urls = { | ||
98 | submit: "/jiajiaCHApi/app/prize/contracts/submit" | ||
99 | }; | ||
100 | |||
101 | import { httpGet, httpPost } from "@/api/fetch-api"; | ||
102 | |||
103 | import Vue from "vue"; | ||
104 | import { Popup, Toast } from "vant"; | ||
105 | import { Field } from "vant"; | ||
106 | |||
107 | Vue.use(Field); | ||
108 | Vue.use(Popup); | ||
109 | |||
110 | export default { | ||
111 | props: ["value"], | ||
112 | data() { | ||
113 | return { | ||
114 | loading: false, | ||
115 | data: this.value, | ||
116 | submitForm: { | ||
117 | drawCode: "", | ||
118 | contactName: "", | ||
119 | contactMobile: "", | ||
120 | province: "", | ||
121 | city: "", | ||
122 | district: "", | ||
123 | address: "" | ||
124 | } | ||
125 | }; | ||
126 | }, | ||
127 | methods: { | ||
128 | modelCloseHandler() { | ||
129 | typeof this.data.confirmHandler == "function" && | ||
130 | this.data.confirmHandler(); | ||
131 | this.data.show = false; | ||
132 | }, | ||
133 | modelBtnClickHandler() { | ||
134 | this.data.show = false; | ||
135 | typeof this.data.confirmHandler == "function" && | ||
136 | this.data.confirmHandler(); | ||
137 | }, | ||
138 | toViewIntegralHandler() {}, | ||
139 | toViewCouponHandler() {}, | ||
140 | submitContactHandler() { | ||
141 | if (!this.submitForm.contactName) { | ||
142 | Toast("请填写真实姓名"); | ||
143 | return; | ||
144 | } | ||
145 | if ( | ||
146 | this.submitForm.contactMobile.indexOf("1") != 0 || | ||
147 | this.submitForm.contactMobile.length != 11 | ||
148 | ) { | ||
149 | Toast("请填写正确的手机号码"); | ||
150 | return; | ||
151 | } | ||
152 | if (!this.submitForm.address) { | ||
153 | Toast("请填写真实收件地址"); | ||
154 | return; | ||
155 | } | ||
156 | this.loading = true; | ||
157 | Toast.loading({ | ||
158 | mask: true, | ||
159 | forbidClick: true, | ||
160 | message: "数据提交中..." | ||
161 | }); | ||
162 | this.submitForm.drawCode = this.data.drawResult.drawCode; | ||
163 | httpPost({ url: urls.submit, data: this.submitForm }) | ||
164 | .then(res => { | ||
165 | Toast.clear(); | ||
166 | Toast("收件地址提交成功"); | ||
167 | }) | ||
168 | .catch(e => { | ||
169 | this.loading = false; | ||
170 | Toast.clear(); | ||
171 | Toast("收件地址提交失败"); | ||
172 | }); | ||
173 | } | ||
174 | }, | ||
175 | created() { | ||
176 | this.data = this.data | ||
177 | ? this.data | ||
178 | : { | ||
179 | show: false, | ||
180 | drawResult: {} | ||
181 | }; | ||
182 | } | ||
183 | }; | ||
184 | </script> | ||
185 | |||
186 | <style lang="less" scoped> | ||
187 | .van-popup { | ||
188 | background-color: transparent; | ||
189 | top: 45%; | ||
190 | } | ||
191 | |||
192 | .model { | ||
193 | display: flex; | ||
194 | width: 650px; | ||
195 | min-height: 576px; | ||
196 | flex-direction: column; | ||
197 | align-items: flex-end; | ||
198 | } | ||
199 | |||
200 | .prize-thumb { | ||
201 | width: 240px; | ||
202 | height: 240px; | ||
203 | background-size: 100%; | ||
204 | background-repeat: no-repeat; | ||
205 | margin: 30px auto; | ||
206 | } | ||
207 | |||
208 | .prize-name { | ||
209 | font-size: 28px; | ||
210 | margin-bottom: 30px; | ||
211 | font-weight: bold; | ||
212 | } | ||
213 | |||
214 | .tip-container { | ||
215 | text-align: left; | ||
216 | padding-left: 50px; | ||
217 | height: 50px; | ||
218 | line-height: 80px; | ||
219 | } | ||
220 | .use-tip { | ||
221 | padding: 5px 10px 5px 18px; | ||
222 | background-color: #addfe1; | ||
223 | color: #606561; | ||
224 | font-size: 26px; | ||
225 | font-weight: 500; | ||
226 | letter-spacing: 3px; | ||
227 | border-radius: 10px; | ||
228 | } | ||
229 | |||
230 | .tip { | ||
231 | color: #606561; | ||
232 | font-size: 26px; | ||
233 | font-weight: 500; | ||
234 | padding-left: 10px; | ||
235 | } | ||
236 | |||
237 | .base-top { | ||
238 | margin-top: 60px !important; | ||
239 | } | ||
240 | .content { | ||
241 | padding-bottom: 60px; | ||
242 | } | ||
243 | |||
244 | .model-head-line { | ||
245 | height: 50px; | ||
246 | background-color: transparent; | ||
247 | } | ||
248 | .model-bottom-line { | ||
249 | height: 50px; | ||
250 | background-color: transparent; | ||
251 | } | ||
252 | |||
253 | .model-close { | ||
254 | width: 64px; | ||
255 | height: 116px; | ||
256 | background: url(../../assets/imgs/model-close.png); | ||
257 | background-size: 100%; | ||
258 | } | ||
259 | |||
260 | .model-content { | ||
261 | width: 650px; | ||
262 | min-height: 460px; | ||
263 | height: auto; | ||
264 | background: url(../../assets/imgs/model-bottom.png) no-repeat; | ||
265 | background-size: 100% auto; | ||
266 | background-position: bottom; | ||
267 | border-radius: 50px; | ||
268 | background-color: #fff; | ||
269 | } | ||
270 | |||
271 | .model-title { | ||
272 | font-size: 45px; | ||
273 | font-weight: bold; | ||
274 | } | ||
275 | |||
276 | .model-data { | ||
277 | font-size: 30px; | ||
278 | margin: 50px auto 70px auto; | ||
279 | width: 560px; | ||
280 | text-align: center; | ||
281 | } | ||
282 | |||
283 | .sys-btn-02 { | ||
284 | width: 350px; | ||
285 | height: 90px; | ||
286 | font-size: 30px; | ||
287 | line-height: 80px; | ||
288 | background-size: 350px 90px; | ||
289 | margin-top: 30px; | ||
290 | } | ||
291 | |||
292 | .label-btn { | ||
293 | font-size: 26px; | ||
294 | text-align: center; | ||
295 | } | ||
296 | |||
297 | .form-contaner { | ||
298 | margin-top: 30px; | ||
299 | } | ||
300 | |||
301 | .form-item { | ||
302 | display: flex; | ||
303 | justify-content: center; | ||
304 | align-items: center; | ||
305 | margin-bottom: 20px; | ||
306 | } | ||
307 | |||
308 | .align-top { | ||
309 | align-items: flex-start !important; | ||
310 | } | ||
311 | |||
312 | .form-label { | ||
313 | width: 140px; | ||
314 | text-align: right; | ||
315 | padding-right: 10px; | ||
316 | font-size: 26px; | ||
317 | font-weight: 600; | ||
318 | color: #606561; | ||
319 | } | ||
320 | .form-input { | ||
321 | display: flex; | ||
322 | } | ||
323 | .form-input input, | ||
324 | textarea { | ||
325 | width: 370px; | ||
326 | line-height: 50px; | ||
327 | border-radius: 25px; | ||
328 | padding: 5px 15px 5px 20px; | ||
329 | border: 1px solid #82acae; | ||
330 | background-color: #addfe1; | ||
331 | color: #303030; | ||
332 | font-size: 26px; | ||
333 | font-weight: 600; | ||
334 | } | ||
335 | .form-input input { | ||
336 | height: 50px; | ||
337 | } | ||
338 | |||
339 | textarea::-webkit-input-placeholder, | ||
340 | input::-webkit-input-placeholder { | ||
341 | color: #4f9984; | ||
342 | font-size: 26px; | ||
343 | } | ||
344 | </style> |
... | @@ -6,53 +6,27 @@ | ... | @@ -6,53 +6,27 @@ |
6 | <div class="head-line"></div> | 6 | <div class="head-line"></div> |
7 | <div class="remain-tip"> | 7 | <div class="remain-tip"> |
8 | 您现在还有 | 8 | 您现在还有 |
9 | <b>1</b>次抽奖机会 | 9 | <b>{{remainDrawTime}}</b>次抽奖机会 |
10 | </div> | 10 | </div> |
11 | 11 | ||
12 | <van-row> | 12 | <van-row> |
13 | <van-col span="8"> | 13 | <van-col span="8" v-for="(item,index) in cardStrs" :key="index"> |
14 | <div | ||
15 | class="card" | ||
16 | :class="{rotate180 : rotate.target == 'all' || rotate.target==item, rotate0 : rotate.target != 'all' && rotate.target!=item}" | ||
17 | @click="drawHandler(item)" | ||
18 | :ref="item" | ||
19 | > | ||
14 | <div class="card-bg"> | 20 | <div class="card-bg"> |
15 | <div class="card-logo logo-01"></div> | 21 | <div v-bind:class="item" class="card-logo"></div> |
16 | </div> | 22 | </div> |
17 | </van-col> | 23 | <div class="card-front-bg"> |
18 | <van-col span="8"> | 24 | <div class="prize-name">{{model.drawResult.prizeName}}</div> |
19 | <div class="card-bg"> | 25 | <div |
20 | <div class="card-logo logo-02"></div> | 26 | class="prize-logo" |
21 | </div> | 27 | v-bind:style="{backgroundImage:'url(' + model.drawResult.thumb + ')'}" |
22 | </van-col> | 28 | ></div> |
23 | <van-col span="8"> | ||
24 | <div class="card-bg"> | ||
25 | <div class="card-logo logo-03"></div> | ||
26 | </div> | ||
27 | </van-col> | ||
28 | <van-col span="8"> | ||
29 | <div class="card-bg"> | ||
30 | <div class="card-logo logo-04"></div> | ||
31 | </div> | ||
32 | </van-col> | ||
33 | <van-col span="8"> | ||
34 | <div class="card-bg"> | ||
35 | <div class="card-logo logo-05"></div> | ||
36 | </div> | ||
37 | </van-col> | ||
38 | <van-col span="8"> | ||
39 | <div class="card-bg"> | ||
40 | <div class="card-logo logo-06"></div> | ||
41 | </div> | 29 | </div> |
42 | </van-col> | ||
43 | <van-col span="8"> | ||
44 | <div class="card-bg"> | ||
45 | <div class="card-logo logo-07"></div> | ||
46 | </div> | ||
47 | </van-col> | ||
48 | <van-col span="8"> | ||
49 | <div class="card-bg"> | ||
50 | <div class="card-logo logo-08"></div> | ||
51 | </div> | ||
52 | </van-col> | ||
53 | <van-col span="8"> | ||
54 | <div class="card-bg"> | ||
55 | <div class="card-logo logo-09"></div> | ||
56 | </div> | 30 | </div> |
57 | </van-col> | 31 | </van-col> |
58 | </van-row> | 32 | </van-row> |
... | @@ -65,52 +39,109 @@ | ... | @@ -65,52 +39,109 @@ |
65 | <div class="bottom-line"></div> | 39 | <div class="bottom-line"></div> |
66 | 40 | ||
67 | <bottom-tool v-model="activityIndex"></bottom-tool> | 41 | <bottom-tool v-model="activityIndex"></bottom-tool> |
68 | <biz-model v-model="model"></biz-model> | 42 | <draw-model v-model="model"></draw-model> |
69 | </div> | 43 | </div> |
70 | </template> | 44 | </template> |
71 | 45 | ||
72 | 46 | ||
73 | 47 | ||
74 | <script> | 48 | <script> |
49 | let urls = { | ||
50 | remainTime: "/jiajiaCHApi/app/draw/times", | ||
51 | draw: "/jiajiaCHApi/app/draw" | ||
52 | }; | ||
53 | |||
75 | import { httpGet } from "@/api/fetch-api"; | 54 | import { httpGet } from "@/api/fetch-api"; |
76 | import BottomTool from "@/components/bottom-tools/bottom-tools"; | 55 | import BottomTool from "@/components/bottom-tools/bottom-tools"; |
77 | import BizModel from "@/components/biz-model/biz-model"; | 56 | import DrawModel from "@/components/biz-model/draw-model"; |
57 | |||
78 | import HeadView from "@/components/plugins/head"; | 58 | import HeadView from "@/components/plugins/head"; |
79 | 59 | ||
80 | import Vue from "vue"; | 60 | import Vue from "vue"; |
81 | import { Row, Col } from "vant"; | 61 | import { Row, Col } from "vant"; |
62 | import { Toast } from "vant"; | ||
63 | import { setTimeout } from "timers"; | ||
82 | 64 | ||
65 | Vue.use(Toast); | ||
83 | Vue.use(Row).use(Col); | 66 | Vue.use(Row).use(Col); |
84 | 67 | ||
85 | export default { | 68 | export default { |
86 | name: "home", | 69 | name: "home", |
87 | data() { | 70 | data() { |
88 | return { | 71 | return { |
72 | cardStrs: [ | ||
73 | "logo-01", | ||
74 | "logo-02", | ||
75 | "logo-03", | ||
76 | "logo-04", | ||
77 | "logo-05", | ||
78 | "logo-06", | ||
79 | "logo-07", | ||
80 | "logo-08", | ||
81 | "logo-09" | ||
82 | ], | ||
83 | init: false, | ||
89 | activityIndex: 4, | 84 | activityIndex: 4, |
90 | title: "幸运大抽奖", | 85 | title: "幸运大抽奖", |
86 | remainDrawTime: 0, | ||
91 | model: { | 87 | model: { |
92 | show: false, | 88 | show: false, |
93 | title: "", | 89 | drawResult: {} |
94 | content: "", | 90 | }, |
95 | index: "prize", | 91 | rotate: { |
96 | btnShow: false, | 92 | target: "", |
97 | btnText: "", | 93 | isRotate: false |
98 | confirmHandler: null, | 94 | }, |
99 | labelBtnShow: false, | 95 | indexForm: {} |
100 | labelBtnText: "", | ||
101 | labelBtnHandler: null | ||
102 | } | ||
103 | }; | 96 | }; |
104 | }, | 97 | }, |
105 | methods: { | 98 | methods: { |
106 | toSign() { | 99 | initActivity() { |
107 | this.$router.push("/sign"); | 100 | httpGet({ url: urls.remainTime, data: null }).then(res => { |
101 | this.init = true; | ||
102 | let remainDrawTime = res.times; | ||
103 | remainDrawTime = !remainDrawTime ? 0 : remainDrawTime; | ||
104 | this.remainDrawTime = remainDrawTime; | ||
105 | this.rotate.target = ""; | ||
106 | }); | ||
107 | }, | ||
108 | drawHandler(ref) { | ||
109 | // if (!this.init || this.remainDrawTime <= 0) { | ||
110 | // return; | ||
111 | // } | ||
112 | Toast.loading({ | ||
113 | mask: true, | ||
114 | message: "加载中..." | ||
115 | }); | ||
116 | httpGet({ url: urls.draw, data: null }).then(res => { | ||
117 | Toast.clear(); | ||
118 | let that = this; | ||
119 | setTimeout(function() { | ||
120 | that.rotate.target = ref; | ||
121 | that.model.drawResult = res; | ||
122 | }, 200); | ||
123 | |||
124 | setTimeout(this.showModelHandler, 2300); | ||
125 | }); | ||
126 | }, | ||
127 | showModelHandler() { | ||
128 | let that = this; | ||
129 | this.model.show = true; | ||
130 | this.model.confirmHandler = function() { | ||
131 | that.init = false; | ||
132 | setTimeout(function() { | ||
133 | that.initActivity(); | ||
134 | }, 500); | ||
135 | }; | ||
108 | } | 136 | } |
109 | }, | 137 | }, |
110 | components: { | 138 | components: { |
111 | BottomTool, | 139 | BottomTool, |
112 | BizModel, | 140 | DrawModel, |
113 | HeadView | 141 | HeadView |
142 | }, | ||
143 | mounted() { | ||
144 | this.initActivity(); | ||
114 | } | 145 | } |
115 | }; | 146 | }; |
116 | </script> | 147 | </script> |
... | @@ -152,17 +183,35 @@ export default { | ... | @@ -152,17 +183,35 @@ export default { |
152 | margin-top: 10px; | 183 | margin-top: 10px; |
153 | } | 184 | } |
154 | 185 | ||
186 | .card { | ||
187 | width: 214px; | ||
188 | height: 268px; | ||
189 | position: relative; | ||
190 | transition: transform 2s; | ||
191 | transform-style: preserve-3d; | ||
192 | } | ||
193 | |||
155 | .card-bg { | 194 | .card-bg { |
156 | width: 214px; | 195 | width: 214px; |
157 | height: 268px; | 196 | height: 268px; |
197 | position: absolute; | ||
158 | background: url(../../assets/imgs/draw-card-bg.png); | 198 | background: url(../../assets/imgs/draw-card-bg.png); |
159 | background-size: 100%; | 199 | background-size: 100%; |
160 | display: flex; | 200 | display: flex; |
161 | align-items: center; | 201 | align-items: center; |
202 | backface-visibility: hidden; | ||
203 | } | ||
204 | |||
205 | .rotate180 { | ||
206 | transform: rotateY(180deg); | ||
207 | } | ||
208 | |||
209 | .rotate0 { | ||
210 | transform: rotateY(0deg); | ||
162 | } | 211 | } |
163 | 212 | ||
164 | .card-logo { | 213 | .card-logo { |
165 | margin: auto; | 214 | margin: 40px auto 0 auto; |
166 | } | 215 | } |
167 | 216 | ||
168 | .logo-01 { | 217 | .logo-01 { |
... | @@ -233,4 +282,33 @@ export default { | ... | @@ -233,4 +282,33 @@ export default { |
233 | background-size: 100%; | 282 | background-size: 100%; |
234 | margin: 30px auto 0 auto; | 283 | margin: 30px auto 0 auto; |
235 | } | 284 | } |
285 | |||
286 | .card-front-bg { | ||
287 | position: absolute; | ||
288 | width: 214px; | ||
289 | height: 268px; | ||
290 | background: url(../../assets/imgs/draw-card-frontbg.png); | ||
291 | background-size: 100%; | ||
292 | display: flex; | ||
293 | align-items: center; | ||
294 | backface-visibility: hidden; | ||
295 | transform: rotateY(180deg); | ||
296 | flex-direction: column; | ||
297 | } | ||
298 | |||
299 | .prize-name { | ||
300 | width: 168px; | ||
301 | font-size: 16px; | ||
302 | font-weight: bold; | ||
303 | text-align: center; | ||
304 | margin: 40px auto 0 auto; | ||
305 | } | ||
306 | |||
307 | .prize-logo { | ||
308 | width: 128px; | ||
309 | height: 128px; | ||
310 | background-size: 100%; | ||
311 | margin: 10px auto; | ||
312 | background-repeat: no-repeat; | ||
313 | } | ||
236 | </style> | 314 | </style> | ... | ... |
... | @@ -108,7 +108,8 @@ export default { | ... | @@ -108,7 +108,8 @@ export default { |
108 | area: { | 108 | area: { |
109 | show: false | 109 | show: false |
110 | }, | 110 | }, |
111 | formData: this.value | 111 | formData: this.value, |
112 | loading: false | ||
112 | }; | 113 | }; |
113 | }, | 114 | }, |
114 | methods: { | 115 | methods: { |
... | @@ -179,15 +180,27 @@ export default { | ... | @@ -179,15 +180,27 @@ export default { |
179 | return; | 180 | return; |
180 | } | 181 | } |
181 | 182 | ||
183 | if (this.loading) { | ||
184 | return; | ||
185 | } | ||
186 | this.loading = true; | ||
182 | Toast.loading({ | 187 | Toast.loading({ |
183 | mask: true, | 188 | mask: true, |
189 | forbidClick: true, | ||
184 | message: "数据提交中..." | 190 | message: "数据提交中..." |
185 | }); | 191 | }); |
186 | httpPost({ url: urls.submit, data: this.formData }).then(res => { | 192 | httpPost({ url: urls.submit, data: this.formData }) |
193 | .then(res => { | ||
194 | this.loading = false; | ||
187 | Toast.clear(); | 195 | Toast.clear(); |
188 | this.formData.worksCode = res; | 196 | this.formData.worksCode = res; |
189 | console.log("submit === =", res); | 197 | console.log("submit === =", res); |
190 | this.$emit("submit", res); | 198 | this.$emit("submit", res); |
199 | }) | ||
200 | .catch(res => { | ||
201 | this.loading = false; | ||
202 | Toast.clear(); | ||
203 | Toast("作品提交失败"); | ||
191 | }); | 204 | }); |
192 | } | 205 | } |
193 | }, | 206 | }, | ... | ... |
... | @@ -39,7 +39,7 @@ export default { | ... | @@ -39,7 +39,7 @@ export default { |
39 | uploadSumit(params) { | 39 | uploadSumit(params) { |
40 | console.log(params); | 40 | console.log(params); |
41 | let data = { | 41 | let data = { |
42 | path: "/pro/jiajiaChildrenHost", | 42 | path: "/pro/jiajiaChildrenHost/works", |
43 | file: params.file | 43 | file: params.file |
44 | }; | 44 | }; |
45 | request | 45 | request | ... | ... |
... | @@ -38,8 +38,8 @@ module.exports = { | ... | @@ -38,8 +38,8 @@ module.exports = { |
38 | 38 | ||
39 | // 它支持webPack-dev-server的所有选项 | 39 | // 它支持webPack-dev-server的所有选项 |
40 | devServer: { | 40 | devServer: { |
41 | // host: "192.168.0.101", | 41 | host: "192.168.0.101", |
42 | host: "localhost", | 42 | // host: "localhost", |
43 | port: 9001, // 端口号 | 43 | port: 9001, // 端口号 |
44 | https: false, // https:{type:Boolean} | 44 | https: false, // https:{type:Boolean} |
45 | open: true, //配置自动启动浏览器 | 45 | open: true, //配置自动启动浏览器 | ... | ... |
-
Please register or sign in to post a comment