默认提交
Showing
11 changed files
with
492 additions
and
62 deletions
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | "amfe-flexible": "^2.2.1", | 16 | "amfe-flexible": "^2.2.1", |
17 | "axios": "^0.19.0", | 17 | "axios": "^0.19.0", |
18 | "axios-mock-adapter": "^1.16.0", | 18 | "axios-mock-adapter": "^1.16.0", |
19 | "calculatorjs": "^1.1.2", | ||
19 | "co": "^4.6.0", | 20 | "co": "^4.6.0", |
20 | "core-js": "^2.6.5", | 21 | "core-js": "^2.6.5", |
21 | "crypto-js": "^3.1.9-1", | 22 | "crypto-js": "^3.1.9-1", | ... | ... |
src/assets/images/index/index-num-bg.png
0 → 100644
268 Bytes
src/assets/images/index/index-thumb.png
0 → 100644
1.3 KB
src/components/slider-comp/slider-comp.js
0 → 100644
1 | export default { | ||
2 | props: ["min", "max", "value"], | ||
3 | data() { | ||
4 | return { | ||
5 | slider: null, //滚动条DOM元素 | ||
6 | thunk: null, //拖拽DOM元素 | ||
7 | per: this.value || 0 //当前值 | ||
8 | }; | ||
9 | }, | ||
10 | methods: { | ||
11 | initData() { | ||
12 | this.slider = this.$refs.slider; | ||
13 | this.thunk = this.$refs.trunk; | ||
14 | var _this = this; | ||
15 | // console.log("object"); | ||
16 | this.thunk.onmousedown = function (e) { | ||
17 | var width = parseInt(_this.width); | ||
18 | var disX = e.clientX; | ||
19 | document.onmousemove = function (e) { | ||
20 | // value, left, width | ||
21 | // 当value变化的时候,会通过计算属性修改left,width | ||
22 | |||
23 | // 拖拽的时候获取的新width | ||
24 | var newWidth = e.clientX - disX + width; | ||
25 | // 拖拽的时候得到新的百分比 | ||
26 | var scale = newWidth / _this.slider.offsetWidth; | ||
27 | _this.per = Math.ceil((_this.max - _this.min) * scale + _this.min); | ||
28 | _this.per = Math.max(_this.per, _this.min); | ||
29 | _this.per = Math.min(_this.per, _this.max); | ||
30 | _this.$emit("input", _this.per); | ||
31 | }; | ||
32 | document.onmouseup = function () { | ||
33 | document.onmousemove = document.onmouseup = null; | ||
34 | }; | ||
35 | return false; | ||
36 | }; | ||
37 | } | ||
38 | }, | ||
39 | //渲染到页面的时候 | ||
40 | mounted() { | ||
41 | this.initData(); | ||
42 | window.addEventListener('resize', ()=>{ | ||
43 | this.initData(); | ||
44 | }, false); | ||
45 | }, | ||
46 | |||
47 | computed: { | ||
48 | // 设置一个百分比,提供计算slider进度宽度和trunk的left值 | ||
49 | // 对应公式为 当前值-最小值/最大值-最小值 = slider进度width / slider总width | ||
50 | // trunk left = slider进度width + trunk宽度/2 | ||
51 | scale() { | ||
52 | return (this.per - this.min) / (this.max - this.min); | ||
53 | }, | ||
54 | width() { | ||
55 | if (this.slider) { | ||
56 | return this.slider.offsetWidth * this.scale + "px"; | ||
57 | } else { | ||
58 | return 0 + "px"; | ||
59 | } | ||
60 | }, | ||
61 | left() { | ||
62 | if (this.slider) { | ||
63 | return ( | ||
64 | this.slider.offsetWidth * this.scale - | ||
65 | this.thunk.offsetWidth / 2 + | ||
66 | "px" | ||
67 | ); | ||
68 | } else { | ||
69 | return 0 + "px"; | ||
70 | } | ||
71 | } | ||
72 | } | ||
73 | }; |
src/components/slider-comp/slider-comp.scss
0 → 100644
1 | @import "@/styles/_support.scss"; | ||
2 | |||
3 | .slider { | ||
4 | position: relative; | ||
5 | // margin: 20px 0; | ||
6 | width: 100%; | ||
7 | height: 17px; | ||
8 | border-radius: 8.5px; | ||
9 | @include linear-bg-rev; | ||
10 | } | ||
11 | .slider .process { | ||
12 | position: absolute; | ||
13 | left: 0; | ||
14 | top: 0; | ||
15 | width: 100%; | ||
16 | height: 17px; | ||
17 | border-radius: 8.5px; | ||
18 | } | ||
19 | .slider .thunk { | ||
20 | position: absolute; | ||
21 | bottom: -4px; | ||
22 | left: -12px; | ||
23 | } | ||
24 | .slider .block { | ||
25 | background-image: url("~@/assets/images/index/index-thumb.png"); | ||
26 | @extend .bis; | ||
27 | width: 27px; | ||
28 | height: 26px; | ||
29 | margin: 1px auto 0; | ||
30 | cursor: pointer; | ||
31 | transition: 0.2s all; | ||
32 | } | ||
33 | .slider .tips { | ||
34 | // position: absolute; | ||
35 | // left: -7px; | ||
36 | // bottom: 30px; | ||
37 | // min-width: 15px; | ||
38 | // text-align: center; | ||
39 | // padding: 4px 8px; | ||
40 | // background: #000; | ||
41 | // border-radius: 5px; | ||
42 | // height: 24px; | ||
43 | // color: #fff; | ||
44 | background-image: url("~@/assets/images/index/index-num-bg.png"); | ||
45 | @extend .bis; | ||
46 | width: 40px; | ||
47 | height: 30px; | ||
48 | font-size: $fontSize-M2; | ||
49 | color: #ffffff; | ||
50 | text-align: center; | ||
51 | padding-top: 2px; | ||
52 | } | ||
53 | .slider .tips i { | ||
54 | position: absolute; | ||
55 | margin-left: -5px; | ||
56 | left: 50%; | ||
57 | bottom: -9px; | ||
58 | font-size: 16px; | ||
59 | color: #000; | ||
60 | } | ||
61 | .slider .block:hover { | ||
62 | // transform: scale(1.1); | ||
63 | opacity: 0.9; | ||
64 | } |
src/components/slider-comp/slider-comp.vue
0 → 100644
1 | <template> | ||
2 | <div class="slider" ref="slider"> | ||
3 | <div class="process" :style="{width}"></div> | ||
4 | <div class="thunk" ref="trunk" :style="{left}"> | ||
5 | <div class="tips"> | ||
6 | <span>{{per}}</span> | ||
7 | <!-- <span>300</span> --> | ||
8 | </div> | ||
9 | <div class="block"></div> | ||
10 | |||
11 | </div> | ||
12 | </div> | ||
13 | </template> | ||
14 | |||
15 | <script src="./slider-comp.js"></script> | ||
16 | <style lang="scss" scoped> | ||
17 | @import "./slider-comp.scss"; | ||
18 | </style> |
... | @@ -9,6 +9,8 @@ import { | ... | @@ -9,6 +9,8 @@ import { |
9 | } from "@/api/fetch-api.js"; | 9 | } from "@/api/fetch-api.js"; |
10 | 10 | ||
11 | import DatePicker from "@/components/date-picker/date-picker.vue"; | 11 | import DatePicker from "@/components/date-picker/date-picker.vue"; |
12 | import Slider from "@/components/slider-comp/slider-comp.vue"; | ||
13 | |||
12 | import { | 14 | import { |
13 | ddMMyyyy2yyyyMMdd | 15 | ddMMyyyy2yyyyMMdd |
14 | } from "@utils/utils.js"; | 16 | } from "@utils/utils.js"; |
... | @@ -16,6 +18,8 @@ import { | ... | @@ -16,6 +18,8 @@ import { |
16 | contactMethodCheck | 18 | contactMethodCheck |
17 | } from "@utils/utils.js"; | 19 | } from "@utils/utils.js"; |
18 | 20 | ||
21 | // import calc from 'calculatorjs'; | ||
22 | |||
19 | export default { | 23 | export default { |
20 | data() { | 24 | data() { |
21 | return { | 25 | return { |
... | @@ -73,10 +77,69 @@ export default { | ... | @@ -73,10 +77,69 @@ export default { |
73 | e5: "", // 理想聯絡時間 | 77 | e5: "", // 理想聯絡時間 |
74 | e6: "", // 查詢事項 | 78 | e6: "", // 查詢事項 |
75 | }, | 79 | }, |
80 | |||
81 | sliderMin: 1, // 投保滑动最小值 | ||
82 | sliderMax: 300, // 投保滑动最大值 | ||
83 | sliderPer: 1, // 保费数值 | ||
84 | |||
85 | // 繳費期列表 | ||
86 | paymentPeriodList: [{ | ||
87 | v: 3, | ||
88 | n: "3年", | ||
89 | p: 333.330000 | ||
90 | }, | ||
91 | { | ||
92 | v: 5, | ||
93 | n: "5年", | ||
94 | p: 200.000000 | ||
95 | }, | ||
96 | { | ||
97 | v: 8, | ||
98 | n: "8年", | ||
99 | p: 125.000000 | ||
100 | }, | ||
101 | { | ||
102 | v: 10, | ||
103 | n: "10年", | ||
104 | p: 100.000000 | ||
105 | } | ||
106 | ], | ||
107 | // 缴费选项列表 | ||
108 | paymentOptionList: [{ | ||
109 | v: 1, | ||
110 | m: 12, | ||
111 | n: "每年", | ||
112 | p: 1 | ||
113 | }, | ||
114 | { | ||
115 | v: 2, | ||
116 | m: 6, | ||
117 | n: "每半年", | ||
118 | p: 0.5064 | ||
119 | }, | ||
120 | { | ||
121 | v: 4, | ||
122 | m: 6, | ||
123 | n: "每季度", | ||
124 | p: 0.2548 | ||
125 | }, | ||
126 | { | ||
127 | v: 12, | ||
128 | m: 1, | ||
129 | n: "每月", | ||
130 | p: 0.0853 | ||
131 | } | ||
132 | ], | ||
133 | |||
134 | // 当前选择保费期 | ||
135 | curPaymentPeriod: {}, | ||
136 | // 当前缴费选项 | ||
137 | curPaymentOption: {} | ||
76 | }; | 138 | }; |
77 | }, | 139 | }, |
78 | components: { | 140 | components: { |
79 | DatePicker | 141 | DatePicker, |
142 | Slider | ||
80 | }, | 143 | }, |
81 | computed: { | 144 | computed: { |
82 | locale() { | 145 | locale() { |
... | @@ -99,7 +162,6 @@ export default { | ... | @@ -99,7 +162,6 @@ export default { |
99 | console.log("result:", result); | 162 | console.log("result:", result); |
100 | return result; | 163 | return result; |
101 | }, | 164 | }, |
102 | |||
103 | submitBtnDisabled() { | 165 | submitBtnDisabled() { |
104 | // let b1 = !this.selectedPolicies || this.selectedPolicies.length == 0; | 166 | // let b1 = !this.selectedPolicies || this.selectedPolicies.length == 0; |
105 | // let b2 = !this.data.address && !this.data.email && !this.data.mobile; | 167 | // let b2 = !this.data.address && !this.data.email && !this.data.mobile; |
... | @@ -157,28 +219,26 @@ export default { | ... | @@ -157,28 +219,26 @@ export default { |
157 | }; | 219 | }; |
158 | return result; | 220 | return result; |
159 | }, | 221 | }, |
222 | |||
223 | /** | ||
224 | * | ||
225 | * 保费=保额/1000 * 费率因子 * 缴别系数 | ||
226 | * 以50万港币为例,缴费期10年,季缴,计算如下: | ||
227 | * 500,000 / 1000 * 100 * 0.2548 = 12740 | ||
228 | */ | ||
229 | sumAssured() { | ||
230 | let { | ||
231 | curPaymentPeriod, | ||
232 | curPaymentOption, | ||
233 | sliderPer | ||
234 | } = this; | ||
235 | let bet = 10000; //单位 万元 | ||
236 | let result = bet * sliderPer / 1000 * curPaymentPeriod.p * curPaymentOption.p * curPaymentOption.v; | ||
237 | result = result.toFixed(2); | ||
238 | return result; | ||
239 | } | ||
160 | }, | 240 | }, |
161 | methods: { | 241 | methods: { |
162 | // fetchBanner() { | ||
163 | // return new Promise((resolve, reject) => { | ||
164 | // httpPost({ | ||
165 | // url: api.banner | ||
166 | // }).then(res => { | ||
167 | // resolve(res); | ||
168 | // }); | ||
169 | // }); | ||
170 | // }, | ||
171 | // refreshBanner() { | ||
172 | // let key = this.locale; | ||
173 | // if (key == "zh") { | ||
174 | // key = "cn"; | ||
175 | // } | ||
176 | // let bannerList = []; | ||
177 | // this.bannerCandidateList.forEach(element => { | ||
178 | // bannerList.push(element[key]); | ||
179 | // }); | ||
180 | // this.$set(this, "bannerList", bannerList); | ||
181 | // }, | ||
182 | btnNavigateTo(type, link, d) { | 242 | btnNavigateTo(type, link, d) { |
183 | switch (type) { | 243 | switch (type) { |
184 | case "none": | 244 | case "none": |
... | @@ -207,6 +267,14 @@ export default { | ... | @@ -207,6 +267,14 @@ export default { |
207 | break; | 267 | break; |
208 | } | 268 | } |
209 | }, | 269 | }, |
270 | // 选择繳費期 | ||
271 | onSelectPaymentPeriodHandler(item) { | ||
272 | this.curPaymentPeriod = item; | ||
273 | }, | ||
274 | // 选择缴费选项 | ||
275 | onSelectPaymentOptionHandler(item) { | ||
276 | this.curPaymentOption = item; | ||
277 | }, | ||
210 | // 选择标签 | 278 | // 选择标签 |
211 | onTabHandler(item) { | 279 | onTabHandler(item) { |
212 | this.curTab = item; | 280 | this.curTab = item; |
... | @@ -264,7 +332,6 @@ export default { | ... | @@ -264,7 +332,6 @@ export default { |
264 | query: {} | 332 | query: {} |
265 | }); | 333 | }); |
266 | } | 334 | } |
267 | |||
268 | }, | 335 | }, |
269 | /** | 336 | /** |
270 | * 验证表单 | 337 | * 验证表单 |
... | @@ -359,11 +426,11 @@ export default { | ... | @@ -359,11 +426,11 @@ export default { |
359 | }); | 426 | }); |
360 | }) | 427 | }) |
361 | }, | 428 | }, |
429 | |||
362 | initData() { | 430 | initData() { |
363 | // this.fetchBanner().then(res => { | 431 | |
364 | // this.bannerCandidateList = res; | 432 | this.curPaymentPeriod = this.paymentPeriodList[0]; |
365 | // this.refreshBanner(); | 433 | this.curPaymentOption = this.paymentOptionList[0]; |
366 | // }); | ||
367 | 434 | ||
368 | // 可以埋数据在 localStorage | 435 | // 可以埋数据在 localStorage |
369 | httpPost({ | 436 | httpPost({ |
... | @@ -398,7 +465,7 @@ export default { | ... | @@ -398,7 +465,7 @@ export default { |
398 | element.index = idx; | 465 | element.index = idx; |
399 | element.describeList = element.describe.split("\n"); | 466 | element.describeList = element.describe.split("\n"); |
400 | }); | 467 | }); |
401 | this.curTab = this.dataList[0]; | 468 | this.curTab = this.dataList[1]; |
402 | this.bannerList = this.dataList; | 469 | this.bannerList = this.dataList; |
403 | console.log("this.dataList:", this.dataList); | 470 | console.log("this.dataList:", this.dataList); |
404 | }) | 471 | }) |
... | @@ -410,7 +477,6 @@ export default { | ... | @@ -410,7 +477,6 @@ export default { |
410 | this.initData(); | 477 | this.initData(); |
411 | }, | 478 | }, |
412 | created() { | 479 | created() { |
413 | |||
414 | this.$root.eventBus.$on("langChange", () => { | 480 | this.$root.eventBus.$on("langChange", () => { |
415 | try { | 481 | try { |
416 | // this.refreshBanner(); | 482 | // this.refreshBanner(); | ... | ... |
1 | @import "@/styles/_support.scss"; | 1 | @import "@/styles/_support.scss"; |
2 | 2 | ||
3 | .page { | 3 | .page { |
4 | font-size: 22px; | 4 | font-size: $fontSize-M2; |
5 | } | 5 | } |
6 | 6 | ||
7 | .top-space { | 7 | .top-space { |
... | @@ -297,11 +297,10 @@ | ... | @@ -297,11 +297,10 @@ |
297 | } | 297 | } |
298 | 298 | ||
299 | &-cont { | 299 | &-cont { |
300 | min-height: 380px; | 300 | min-height: 384px; |
301 | margin: 0 auto 0; | 301 | margin: 0 auto 0; |
302 | position: relative; | 302 | position: relative; |
303 | display: flex; | 303 | display: flex; |
304 | font-size: 22px; | ||
305 | 304 | ||
306 | .panel { | 305 | .panel { |
307 | // position: relative; | 306 | // position: relative; |
... | @@ -310,7 +309,7 @@ | ... | @@ -310,7 +309,7 @@ |
310 | 309 | ||
311 | .panel-left { | 310 | .panel-left { |
312 | @include linear-bg; | 311 | @include linear-bg; |
313 | // position: relative; | 312 | font-size: 22px; |
314 | @extend .fcc; | 313 | @extend .fcc; |
315 | .desc { | 314 | .desc { |
316 | @extend .bb; | 315 | @extend .bb; |
... | @@ -327,12 +326,16 @@ | ... | @@ -327,12 +326,16 @@ |
327 | 326 | ||
328 | .panel-right { | 327 | .panel-right { |
329 | background-color: #ffffff; | 328 | background-color: #ffffff; |
330 | @extend .fcc; | 329 | // @extend .fcc; |
331 | 330 | ||
331 | .plugin { | ||
332 | width: 100%; | ||
333 | height: 100%; | ||
334 | } | ||
332 | .func { | 335 | .func { |
333 | } | 336 | } |
334 | 337 | ||
335 | // 性别和年龄选择 | 338 | // 产品好医时交互插件 性别和年龄选择 |
336 | .func1 { | 339 | .func1 { |
337 | &-item { | 340 | &-item { |
338 | display: flex; | 341 | display: flex; |
... | @@ -373,7 +376,156 @@ | ... | @@ -373,7 +376,156 @@ |
373 | } | 376 | } |
374 | } | 377 | } |
375 | 378 | ||
376 | // 平安福保费计算 | 379 | // 平安福 保费计算 插件 |
380 | .func2 { | ||
381 | @extend .bb; | ||
382 | padding: 12px 32px; | ||
383 | |||
384 | &-tit { | ||
385 | font-size: 22px; | ||
386 | font-weight: bold; | ||
387 | text-align: center; | ||
388 | color: $cOrange2; | ||
389 | } | ||
390 | |||
391 | &-tit2 { | ||
392 | margin-top: 2px; | ||
393 | font-size: $fontSize-M2; | ||
394 | text-align: center; | ||
395 | color: $cFontGray2; | ||
396 | } | ||
397 | |||
398 | // 滑动条 | ||
399 | .slider { | ||
400 | position: relative; | ||
401 | max-width: 100%; | ||
402 | margin: 38px auto 0; | ||
403 | } | ||
404 | |||
405 | // 滑动条 | ||
406 | // .slider { | ||
407 | // position: relative; | ||
408 | // max-width: 100%; | ||
409 | // margin: 0 auto; | ||
410 | |||
411 | // &-bar { | ||
412 | // position: relative; | ||
413 | // @include linear-bg-rev; | ||
414 | // height: 17px; | ||
415 | // border-radius: 8.5px; | ||
416 | // width: 100%; | ||
417 | // margin-top: 36px; | ||
418 | |||
419 | // &-thumb { | ||
420 | // position: absolute; | ||
421 | // bottom: -4px; | ||
422 | // left: -12px; | ||
423 | |||
424 | // .num { | ||
425 | // background-image: url("~@/assets/images/index/index-num-bg.png"); | ||
426 | // @extend .bis; | ||
427 | // width: 40px; | ||
428 | // height: 30px; | ||
429 | // font-size: $fontSize-M2; | ||
430 | // color: #ffffff; | ||
431 | // text-align: center; | ||
432 | // padding-top: 2px; | ||
433 | // } | ||
434 | |||
435 | // .circle { | ||
436 | // background-image: url("~@/assets/images/index/index-thumb.png"); | ||
437 | // @extend .bis; | ||
438 | // width: 27px; | ||
439 | // height: 26px; | ||
440 | // margin: 1px auto 0; | ||
441 | // cursor: pointer; | ||
442 | // } | ||
443 | // } | ||
444 | // } | ||
445 | // } | ||
446 | |||
447 | .form { | ||
448 | margin-top: 14px; | ||
449 | |||
450 | &-item { | ||
451 | @extend .bb; | ||
452 | display: flex; | ||
453 | |||
454 | .label { | ||
455 | @extend .bb; | ||
456 | width: 110px; | ||
457 | font-size: 22px; | ||
458 | padding-right: 10px; | ||
459 | } | ||
460 | |||
461 | .val { | ||
462 | display: flex; | ||
463 | justify-content: space-between; | ||
464 | flex-wrap: wrap; | ||
465 | flex: 1; | ||
466 | |||
467 | .item { | ||
468 | @extend .fcc; | ||
469 | @include border-tans; | ||
470 | border-radius: 10px; | ||
471 | width: 76px; | ||
472 | height: 35px; | ||
473 | text-align: center; | ||
474 | margin-right: 12px; | ||
475 | margin-bottom: 14px; | ||
476 | cursor: pointer; | ||
477 | |||
478 | &:last-child { | ||
479 | margin-right: 0; | ||
480 | } | ||
481 | } | ||
482 | |||
483 | .item-act { | ||
484 | @include linear-bg-rev; | ||
485 | border: none; | ||
486 | color: #ffffff; | ||
487 | } | ||
488 | } | ||
489 | |||
490 | .val2 { | ||
491 | justify-content: flex-start; | ||
492 | .item { | ||
493 | width: 132px; | ||
494 | height: 36px; | ||
495 | } | ||
496 | } | ||
497 | } | ||
498 | } | ||
499 | |||
500 | .line { | ||
501 | margin-top: 2px; | ||
502 | width: 100%; | ||
503 | height: 2px; | ||
504 | background-color: #efefef; | ||
505 | } | ||
506 | |||
507 | .calculation { | ||
508 | margin-top: 10px; | ||
509 | display: flex; | ||
510 | justify-content: space-between; | ||
511 | align-items: flex-end; | ||
512 | .label { | ||
513 | } | ||
514 | .value { | ||
515 | .price { | ||
516 | font-size: 24px; | ||
517 | font-weight: bold; | ||
518 | // transition: 0.2s all; | ||
519 | } | ||
520 | } | ||
521 | } | ||
522 | |||
523 | .tips { | ||
524 | margin-top: 6px; | ||
525 | font-size: $fontSizeSmall-M2; | ||
526 | color: rgba(102, 102, 102, 0.5); | ||
527 | } | ||
528 | } | ||
377 | } | 529 | } |
378 | 530 | ||
379 | .arrow { | 531 | .arrow { |
... | @@ -745,7 +897,6 @@ | ... | @@ -745,7 +897,6 @@ |
745 | font-size: $fontSize-M2; | 897 | font-size: $fontSize-M2; |
746 | 898 | ||
747 | .panel { | 899 | .panel { |
748 | // 性别年龄 | ||
749 | .func1 { | 900 | .func1 { |
750 | &-item { | 901 | &-item { |
751 | display: block; | 902 | display: block; | ... | ... |
... | @@ -107,48 +107,99 @@ | ... | @@ -107,48 +107,99 @@ |
107 | </div> | 107 | </div> |
108 | </div> | 108 | </div> |
109 | <div class="panel panel-right"> | 109 | <div class="panel panel-right"> |
110 | <div v-if="curTab.relation == PRODUCT_PRO_EASY " class="func func1"> | 110 | <!-- 好医时 --> |
111 | <div class="func1-item"> | 111 | <div v-if="curTab.relation == PRODUCT_PRO_EASY " class="plugin fcc"> |
112 | <div class="k"> {{$t('common.Sex')}}</div> | 112 | <div class="func func1"> |
113 | <div class="gender"> | 113 | <div class="func1-item"> |
114 | <div class="gender-item" @click="onQuoteSexHandler('M')"> | 114 | <div class="k"> {{$t('common.Sex')}}</div> |
115 | {{$t('common.Male')}} | 115 | <div class="gender"> |
116 | <img v-if="quoteData.gender == 'M'" src="@/assets/images/common/icon-male-act.png" alt /> | 116 | <div class="gender-item" @click="onQuoteSexHandler('M')"> |
117 | <img v-else src="@/assets/images/common/icon-male.png" alt /> | 117 | {{$t('common.Male')}} |
118 | </div> | 118 | <img v-if="quoteData.gender == 'M'" src="@/assets/images/common/icon-male-act.png" alt /> |
119 | <div class="gender-item" @click="onQuoteSexHandler('F')"> | 119 | <img v-else src="@/assets/images/common/icon-male.png" alt /> |
120 | {{$t('common.Female')}} | 120 | </div> |
121 | <img v-if="quoteData.gender == 'F'" src="@/assets/images/common/icon-female-act.png" alt /> | 121 | <div class="gender-item" @click="onQuoteSexHandler('F')"> |
122 | <img v-else src="@/assets/images/common/icon-female.png" alt /> | 122 | {{$t('common.Female')}} |
123 | <img v-if="quoteData.gender == 'F'" src="@/assets/images/common/icon-female-act.png" alt /> | ||
124 | <img v-else src="@/assets/images/common/icon-female.png" alt /> | ||
125 | </div> | ||
123 | </div> | 126 | </div> |
124 | </div> | 127 | </div> |
125 | </div> | 128 | <div class="func1-item"> |
126 | <div class="func1-item"> | 129 | <div class="k">{{$t('common.Birthday')}}</div> |
127 | <div class="k">{{$t('common.Birthday')}}</div> | 130 | <div class="age"> |
128 | <div class="age"> | 131 | <div class="ipt-wrap-linear"> |
129 | <div class="ipt-wrap-linear"> | 132 | <div class="down-arrow"></div> |
130 | <div class="down-arrow"></div> | 133 | <div class="cont"> |
131 | <div class="cont"> | 134 | <!-- <el-select class="ipt" v-model="quoteData.age" :placeholder="$t('common.Age')"> |
132 | <!-- <el-select class="ipt" v-model="quoteData.age" :placeholder="$t('common.Age')"> | ||
133 | <el-option v-for="(item, index) in 100" :key="index" :label="item" :value="item"></el-option> | 135 | <el-option v-for="(item, index) in 100" :key="index" :label="item" :value="item"></el-option> |
134 | </el-select> --> | 136 | </el-select> --> |
135 | <date-picker class="ipt-date" :placeholder="$t('index.contact.form.Time') + '*'" v-model="quoteData.birthday" :filtModel="['future']" :cusStyle="{ | 137 | <date-picker class="ipt-date" :placeholder="$t('common.Birthday') + '*'" v-model="quoteData.birthday" :filtModel="['future']" :cusStyle="{ |
136 | border: 'none !important', | 138 | border: 'none !important', |
137 | 'background-color': 'transparent !important', | 139 | 'background-color': 'transparent !important', |
138 | padding: '16px 24px', | 140 | padding: '16px 24px', |
139 | color: '#606266', | 141 | color: '#606266', |
140 | 'text-align': 'center' | 142 | 'text-align': 'center' |
141 | }"> | 143 | }"> |
142 | </date-picker> | 144 | </date-picker> |
145 | </div> | ||
143 | </div> | 146 | </div> |
144 | </div> | 147 | </div> |
145 | </div> | 148 | </div> |
146 | </div> | 149 | </div> |
147 | </div> | 150 | </div> |
148 | 151 | ||
149 | <div v-if="curTab.relation == PRODUCT_REN_RICH " class="func func2"> | 152 | <!-- 传家福 --> |
150 | <!-- PRODUCT_REN_RICH --> | 153 | <div v-if="curTab.relation == PRODUCT_REN_RICH " class="plugin "> |
154 | <div class="func func2"> | ||
155 | <div class="func2-tit">滑動選擇保額</div> | ||
156 | <div class="func2-tit2">保額(萬美元)</div> | ||
157 | <!-- <div class="slider"> | ||
158 | <div class="slider-bar"> | ||
159 | <div class="slider-bar-thumb" > | ||
160 | <div class="num">300</div> | ||
161 | <div class="circle"></div> | ||
162 | </div> | ||
163 | </div> | ||
164 | </div> --> | ||
165 | |||
166 | <slider class="slider" :min="sliderMin" :max="sliderMax" v-model="sliderPer"></slider> | ||
167 | <!-- 表格选择 --> | ||
168 | <div class="form"> | ||
169 | <div class="form-item"> | ||
170 | <div class="label">繳費期</div> | ||
171 | <div class="val"> | ||
172 | <div @click="onSelectPaymentPeriodHandler(item)" class="item" :class="{'item-act':curPaymentPeriod.v==item.v}" v-for="item in paymentPeriodList" :key="item.id"> | ||
173 | {{ item.n }} | ||
174 | </div> | ||
175 | </div> | ||
176 | </div> | ||
177 | <div class="form-item"> | ||
178 | <div class="label">繳費選項</div> | ||
179 | <div class="val val2"> | ||
180 | <!-- <div class="item">每年</div> | ||
181 | <div class="item">每半年</div> | ||
182 | <div class="item">每季度</div> | ||
183 | <div class="item">每月</div> --> | ||
184 | <div @click="onSelectPaymentOptionHandler(item)" class="item" :class="{'item-act':curPaymentOption.v==item.v}" v-for="item in paymentOptionList" :key="item.id"> | ||
185 | {{ item.n }} | ||
186 | </div> | ||
187 | </div> | ||
188 | </div> | ||
189 | </div> | ||
190 | <!-- 分割线 --> | ||
191 | <div class="line"></div> | ||
192 | <!-- 计算 --> | ||
193 | <div class="calculation"> | ||
194 | <div class="label">每月保费</div> | ||
195 | <div class="value">$ <span class="price">{{sumAssured}}</span></div> | ||
196 | </div> | ||
197 | <!-- 提示 --> | ||
198 | <div class="tips">Please contact your financial consultant to quote for insured | ||
199 | amount that exceeds USD 3 million</div> | ||
200 | </div> | ||
151 | </div> | 201 | </div> |
202 | |||
152 | </div> | 203 | </div> |
153 | </div> | 204 | </div> |
154 | </div> | 205 | </div> | ... | ... |
... | @@ -159,4 +159,9 @@ | ... | @@ -159,4 +159,9 @@ |
159 | @mixin linear-bg() { | 159 | @mixin linear-bg() { |
160 | background-color: transparent; | 160 | background-color: transparent; |
161 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); | 161 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); |
162 | } | ||
163 | |||
164 | @mixin linear-bg-rev() { | ||
165 | background-color: transparent; | ||
166 | background-image: linear-gradient(135deg, #feab1b, #f15a08), linear-gradient(90deg, #fff, #fff); | ||
162 | } | 167 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -32,6 +32,7 @@ $fontSize-M:14px; | ... | @@ -32,6 +32,7 @@ $fontSize-M:14px; |
32 | $fontSizeSmall-M:12px; | 32 | $fontSizeSmall-M:12px; |
33 | 33 | ||
34 | 34 | ||
35 | //新版PC字体 | ||
35 | $fontSizeTitle-M2:24px; | 36 | $fontSizeTitle-M2:24px; |
36 | $fontSize-M2:18px; | 37 | $fontSize-M2:18px; |
37 | $fontSizeSmall-M2:16px; | 38 | $fontSizeSmall-M2:16px; | ... | ... |
-
Please register or sign in to post a comment