Merge branch 'master' of 120.27.44.69:dev/pingan-life-index-pro
# Conflicts: # src/common/lang/en.js
Showing
20 changed files
with
257 additions
and
2 deletions
src/assets/images/product/banner.jpg
0 → 100644
76.4 KB
910 Bytes
src/assets/images/product/icon-problem.png
0 → 100644
702 Bytes
1.29 KB
src/assets/images/product/icon-process.png
0 → 100644
904 Bytes
1.33 KB
src/assets/images/product/icon-product.png
0 → 100644
977 Bytes
src/assets/images/product/process.jpg
0 → 100644
47.7 KB
src/assets/images/product/product.jpg
0 → 100644
609 KB
src/assets/images/product/product1.jpg
0 → 100644
378 KB
src/assets/images/product/product2.jpg
0 → 100644
493 KB
src/assets/images/product/product3.jpg
0 → 100644
437 KB
src/assets/images/product/question.jpg
0 → 100644
134 KB
| ... | @@ -11,7 +11,10 @@ module.exports = { | ... | @@ -11,7 +11,10 @@ module.exports = { |
| 11 | nav: { | 11 | nav: { |
| 12 | ttt: "2" | 12 | ttt: "2" |
| 13 | }, | 13 | }, |
| 14 | paymentType: { | 14 | product : { |
| 15 | 15 | btnPosition : "Booking service", | |
| 16 | iconProblem : "Common problem", | ||
| 17 | iconProcess : "Insurance process", | ||
| 18 | iconProduct : "Product details" | ||
| 16 | } | 19 | } |
| 17 | } | 20 | } | ... | ... |
src/pages/product/product.js
0 → 100644
| 1 | |||
| 2 | import api from '@/api/api' | ||
| 3 | import { | ||
| 4 | httpGet, | ||
| 5 | httpPost | ||
| 6 | } from '@/api/fetch-api.js' | ||
| 7 | |||
| 8 | export default { | ||
| 9 | data() { | ||
| 10 | return { | ||
| 11 | isFixTop: false, | ||
| 12 | activity: "product" | ||
| 13 | } | ||
| 14 | }, | ||
| 15 | components: {}, | ||
| 16 | methods: { | ||
| 17 | initData() { }, | ||
| 18 | checkBtnGroupFixed() { | ||
| 19 | let top = this.$refs.ruleBtnGroup.getBoundingClientRect().top; | ||
| 20 | this.isFixTop = top < 0; | ||
| 21 | } | ||
| 22 | }, | ||
| 23 | computed: { | ||
| 24 | fixTop() { | ||
| 25 | return this.isFixTop; | ||
| 26 | } | ||
| 27 | }, | ||
| 28 | mounted() { | ||
| 29 | window.addEventListener("scroll", () => { | ||
| 30 | this.checkBtnGroupFixed(); | ||
| 31 | }); | ||
| 32 | }, | ||
| 33 | created() { } | ||
| 34 | } |
src/pages/product/product.scss
0 → 100644
| 1 | |||
| 2 | .content { | ||
| 3 | background-color: #f5f5f5; | ||
| 4 | } | ||
| 5 | |||
| 6 | .fix { | ||
| 7 | position: fixed; | ||
| 8 | max-width: 950px; | ||
| 9 | width: 100%; | ||
| 10 | top: 0; | ||
| 11 | } | ||
| 12 | |||
| 13 | .banner { | ||
| 14 | margin-bottom: 3.333333rem; | ||
| 15 | position: relative; | ||
| 16 | .btn-position { | ||
| 17 | position: absolute; | ||
| 18 | top: 23.333333rem; | ||
| 19 | left: 2.833333rem ; | ||
| 20 | } | ||
| 21 | .btn { | ||
| 22 | background: #FF5700; | ||
| 23 | border: 0; | ||
| 24 | color: #fff; | ||
| 25 | margin-left: 0; | ||
| 26 | width: 160px; | ||
| 27 | height: 4.166667rem; | ||
| 28 | display: inline-block; | ||
| 29 | line-height: 4.166667rem; | ||
| 30 | text-align: center; | ||
| 31 | border-radius: .416667rem; | ||
| 32 | font-size: 1.666667rem; | ||
| 33 | } | ||
| 34 | } | ||
| 35 | |||
| 36 | .fix .rule-btn { | ||
| 37 | width: 33.33333% !important; | ||
| 38 | } | ||
| 39 | |||
| 40 | .blank-pannel { | ||
| 41 | height: 2.5rem; | ||
| 42 | } | ||
| 43 | |||
| 44 | .rule-btn-out-group { | ||
| 45 | height: 3rem; | ||
| 46 | } | ||
| 47 | |||
| 48 | .rule-btn-group { | ||
| 49 | display: flex; | ||
| 50 | width: 100%; | ||
| 51 | justify-content: space-around; | ||
| 52 | .rule-btn { | ||
| 53 | width: 33%; | ||
| 54 | height: 3rem ; | ||
| 55 | line-height: 3rem ; | ||
| 56 | text-align: center; | ||
| 57 | font-size: 1.166667rem ; | ||
| 58 | color: #666666; | ||
| 59 | background: #ffffff; | ||
| 60 | cursor: pointer; | ||
| 61 | } | ||
| 62 | |||
| 63 | .rule-btn.activity{ | ||
| 64 | background: #FF5700; | ||
| 65 | color: #ffffff; | ||
| 66 | |||
| 67 | .triangle { | ||
| 68 | width: 0; | ||
| 69 | height: 0; | ||
| 70 | margin: auto; | ||
| 71 | border: .833333rem solid #FF5700; | ||
| 72 | border-bottom-color: transparent; | ||
| 73 | border-left-color: transparent; | ||
| 74 | border-right-color: transparent; | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | i { | ||
| 79 | display: inline-block; | ||
| 80 | width: 1.666667rem ; | ||
| 81 | height: 1.666667rem ; | ||
| 82 | margin-right: .666667rem; | ||
| 83 | vertical-align: middle; | ||
| 84 | } | ||
| 85 | |||
| 86 | |||
| 87 | .icon-product { | ||
| 88 | background: url("~@/assets/images/product/icon-product-unselect.png") no-repeat center center; | ||
| 89 | background-size: 75% 60%; | ||
| 90 | } | ||
| 91 | |||
| 92 | .activity .icon-product { | ||
| 93 | background: url("~@/assets/images/product/icon-product.png") no-repeat center center; | ||
| 94 | background-size: 75% 60%; | ||
| 95 | } | ||
| 96 | |||
| 97 | .icon-process { | ||
| 98 | background: url("~@/assets/images/product/icon-process-unselect.png") no-repeat center center; | ||
| 99 | background-size: 75% 60%; | ||
| 100 | } | ||
| 101 | |||
| 102 | .activity .icon-process { | ||
| 103 | background: url("~@/assets/images/product/icon-process.png") no-repeat center center; | ||
| 104 | background-size: 75% 60%; | ||
| 105 | } | ||
| 106 | |||
| 107 | .icon-problem { | ||
| 108 | background: url("~@/assets/images/product/icon-problem-unselect.png") no-repeat center center; | ||
| 109 | background-size: 75% 60%; | ||
| 110 | } | ||
| 111 | |||
| 112 | .activity .icon-problem { | ||
| 113 | background: url("~@/assets/images/product/icon-problem.png") no-repeat center center; | ||
| 114 | background-size: 75% 60%; | ||
| 115 | } | ||
| 116 | |||
| 117 | } | ||
| 118 | |||
| 119 | .rule-container { | ||
| 120 | display: none; | ||
| 121 | } | ||
| 122 | |||
| 123 | .rule-container.activity { | ||
| 124 | display: block; | ||
| 125 | img { | ||
| 126 | width: 100%; | ||
| 127 | display: block; | ||
| 128 | height: auto; | ||
| 129 | margin: 0 auto; | ||
| 130 | } | ||
| 131 | } | ||
| 132 | |||
| 133 | .bottom-space { | ||
| 134 | padding-bottom: 5rem; | ||
| 135 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/pages/product/product.vue
0 → 100644
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="content"> | ||
| 4 | <div class="banner"> | ||
| 5 | <div class="btn btn-position">{{$t('product.btnPosition')}}</div> | ||
| 6 | <img src="@/assets/images/product/banner.jpg" /> | ||
| 7 | </div> | ||
| 8 | |||
| 9 | <div class="box bottom-space"> | ||
| 10 | <div class="rule-btn-out-group" ref="ruleBtnGroup"> | ||
| 11 | <div class="rule-btn-group" :class="{fix : fixTop}"> | ||
| 12 | <div | ||
| 13 | class="rule-btn" | ||
| 14 | :class="{activity : activity == 'product'}" | ||
| 15 | @click="activity = 'product'" | ||
| 16 | > | ||
| 17 | <div> | ||
| 18 | <i class="icon-product"></i> {{$t('product.iconProduct')}} | ||
| 19 | </div> | ||
| 20 | <div class="triangle"></div> | ||
| 21 | </div> | ||
| 22 | <div | ||
| 23 | class="rule-btn" | ||
| 24 | :class="{activity : activity == 'process'}" | ||
| 25 | @click="activity = 'process'" | ||
| 26 | > | ||
| 27 | <div> | ||
| 28 | <i class="icon-process"></i> {{$t('product.iconProcess')}} | ||
| 29 | </div> | ||
| 30 | <div class="triangle"></div> | ||
| 31 | </div> | ||
| 32 | <div | ||
| 33 | class="rule-btn" | ||
| 34 | :class="{activity : activity == 'problem'}" | ||
| 35 | @click="activity = 'problem'" | ||
| 36 | > | ||
| 37 | <div> | ||
| 38 | <i class="icon-problem"></i> {{$t('product.iconProblem')}} | ||
| 39 | </div> | ||
| 40 | <div class="triangle"></div> | ||
| 41 | </div> | ||
| 42 | </div> | ||
| 43 | </div> | ||
| 44 | <div class="blank-pannel"></div> | ||
| 45 | <div class="rule-container" :class="{activity : activity == 'product'}"> | ||
| 46 | <img src="@/assets/images/product/product1.jpg" /> | ||
| 47 | <img src="@/assets/images/product/product2.jpg" /> | ||
| 48 | <img src="@/assets/images/product/product3.jpg" /> | ||
| 49 | </div> | ||
| 50 | <div class="rule-container" :class="{activity : activity == 'process'}"> | ||
| 51 | <img src="@/assets/images/product/process.jpg" /> | ||
| 52 | </div> | ||
| 53 | <div class="rule-container" :class="{activity : activity == 'problem'}"> | ||
| 54 | <img src="@/assets/images/product/question.jpg" /> | ||
| 55 | </div> | ||
| 56 | </div> | ||
| 57 | </div> | ||
| 58 | </template> | ||
| 59 | |||
| 60 | <script src="./product.js"></script> | ||
| 61 | <style lang="scss" scoped> | ||
| 62 | @import "./product.scss"; | ||
| 63 | </style> |
| ... | @@ -80,6 +80,14 @@ const routes = [ | ... | @@ -80,6 +80,14 @@ const routes = [ |
| 80 | } | 80 | } |
| 81 | }, | 81 | }, |
| 82 | 82 | ||
| 83 | { | ||
| 84 | path: '/product', | ||
| 85 | name: 'product', | ||
| 86 | component: () => import('./pages/product/product.vue'), | ||
| 87 | meta: { | ||
| 88 | title: '' | ||
| 89 | } | ||
| 90 | }, | ||
| 83 | 91 | ||
| 84 | { | 92 | { |
| 85 | path: '/demo', | 93 | path: '/demo', | ... | ... |
-
Please register or sign in to post a comment