7722e92a by joe

产品详情

1 parent 7d0c40ac
...@@ -10,5 +10,11 @@ module.exports = { ...@@ -10,5 +10,11 @@ module.exports = {
10 }, 10 },
11 nav: { 11 nav: {
12 ttt: "2" 12 ttt: "2"
13 },
14 product : {
15 btnPosition : "Booking service",
16 iconProblem : "Common problem",
17 iconProcess : "Insurance process",
18 iconProduct : "Product details"
13 } 19 }
14 } 20 }
......
...@@ -10,5 +10,11 @@ module.exports = { ...@@ -10,5 +10,11 @@ module.exports = {
10 }, 10 },
11 nav: { 11 nav: {
12 ttt: "2" 12 ttt: "2"
13 },
14 product : {
15 btnPosition : "預約服務",
16 iconProblem : "常見問題",
17 iconProcess : "投保流程",
18 iconProduct : "產品詳情"
13 } 19 }
14 } 20 }
......
...@@ -10,5 +10,11 @@ module.exports = { ...@@ -10,5 +10,11 @@ module.exports = {
10 }, 10 },
11 nav: { 11 nav: {
12 ttt: "1" 12 ttt: "1"
13 },
14 product : {
15 btnPosition : "预约服务",
16 iconProblem : "常见问题",
17 iconProcess : "投保流程",
18 iconProduct : "产品详情"
13 } 19 }
14 } 20 }
......
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 }
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
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',
......