默认提交
Showing
19 changed files
with
799 additions
and
1 deletions
| ... | @@ -52,6 +52,7 @@ function Toast(msg) { | ... | @@ -52,6 +52,7 @@ function Toast(msg) { |
| 52 | // console.log(process.env); | 52 | // console.log(process.env); |
| 53 | let baseURL = process.env.VUE_APP_BASE_URL; | 53 | let baseURL = process.env.VUE_APP_BASE_URL; |
| 54 | // let baseURL = "http://localhost:9101"; | 54 | // let baseURL = "http://localhost:9101"; |
| 55 | baseURL = "https://ow.go.qudone.com"; | ||
| 55 | const axios = axiosIns.create({ | 56 | const axios = axiosIns.create({ |
| 56 | // baseURL: process.env.VUE_APP_BASE_URL, | 57 | // baseURL: process.env.VUE_APP_BASE_URL, |
| 57 | baseURL: baseURL, | 58 | baseURL: baseURL, |
| ... | @@ -265,4 +266,4 @@ export const formdata = params => { | ... | @@ -265,4 +266,4 @@ export const formdata = params => { |
| 265 | 266 | ||
| 266 | export const requestDomain = () => { | 267 | export const requestDomain = () => { |
| 267 | return baseURL; | 268 | return baseURL; |
| 268 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 269 | } | ... | ... |
src/assets/images/vhis/close2.png
0 → 100644
427 Bytes
src/assets/images/vhis/hot-deal-icon.png
0 → 100644
2.47 KB
src/assets/images/vhis/vhis-btn2.png
0 → 100644
4.11 KB
src/assets/images/vhis/vhis-cross.png
0 → 100644
319 Bytes
src/assets/images/vhis/vhis-icon1.png
0 → 100644
5.51 KB
src/assets/images/vhis/vhis-icon2.png
0 → 100644
4.63 KB
src/assets/images/vhis/vhis-icon3.png
0 → 100644
6.64 KB
src/assets/images/vhis/vhis-icon4.png
0 → 100644
6.62 KB
src/assets/images/vhis/vhis-icon5.png
0 → 100644
2.34 KB
src/assets/images/vhis/vhis-icon6.png
0 → 100644
8.52 KB
src/assets/images/vhis/vhis-plus.png
0 → 100644
511 Bytes
src/assets/images/vhis/vhis-tick.png
0 → 100644
401 Bytes
src/pages/vhis-detail/vhis-detail.js
0 → 100644
| 1 | import api from '@/api/api' | ||
| 2 | import { | ||
| 3 | httpGet, | ||
| 4 | httpPost | ||
| 5 | } from '@/api/fetch-api.js' | ||
| 6 | import { | ||
| 7 | mapGetters, | ||
| 8 | mapActions, | ||
| 9 | mapState | ||
| 10 | } from "vuex"; | ||
| 11 | var UA = require("ua-device") | ||
| 12 | |||
| 13 | export default { | ||
| 14 | data() { | ||
| 15 | return { | ||
| 16 | key: 'value', | ||
| 17 | // swiper | ||
| 18 | swiperOption: { | ||
| 19 | navigation: { | ||
| 20 | nextEl: '.swiper-button-next', | ||
| 21 | prevEl: '.swiper-button-prev' | ||
| 22 | }, | ||
| 23 | pagination: { | ||
| 24 | el: '.swiper-pagination', | ||
| 25 | clickable: true, | ||
| 26 | }, | ||
| 27 | // autoplay: { | ||
| 28 | // delay: 5000, | ||
| 29 | // stopOnLastSlide: false, | ||
| 30 | // disableOnInteraction: false | ||
| 31 | // }, | ||
| 32 | speed: 1000, | ||
| 33 | }, | ||
| 34 | bannerList: [], | ||
| 35 | bannerCandidateList: [], | ||
| 36 | // 视频 | ||
| 37 | playerOptions: {}, | ||
| 38 | bannerTipsVisible: true, | ||
| 39 | productList: [], | ||
| 40 | } | ||
| 41 | }, | ||
| 42 | components: {}, | ||
| 43 | computed: { | ||
| 44 | ...mapState({ | ||
| 45 | isSmallScreen: state => state.isSmallScreen, | ||
| 46 | isMobile: state => state.isMobile | ||
| 47 | }), | ||
| 48 | locale() { | ||
| 49 | return this.$i18n.locale || 'tc'; | ||
| 50 | }, | ||
| 51 | i18n() { | ||
| 52 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | ||
| 53 | }, | ||
| 54 | player() { | ||
| 55 | return this.$refs.videoPlayer.player | ||
| 56 | }, | ||
| 57 | }, | ||
| 58 | methods: { | ||
| 59 | onHideBannerTipsHandler() { | ||
| 60 | this.bannerTipsVisible = false; | ||
| 61 | }, | ||
| 62 | |||
| 63 | fetchBanner() { | ||
| 64 | return new Promise((resolve, reject) => { | ||
| 65 | httpPost({ | ||
| 66 | url: api.banner | ||
| 67 | }).then(res => { | ||
| 68 | resolve(res); | ||
| 69 | }); | ||
| 70 | }); | ||
| 71 | }, | ||
| 72 | fetchIndexVideo() { | ||
| 73 | return new Promise((resolve, reject) => { | ||
| 74 | httpPost({ | ||
| 75 | url: api.indexVideo | ||
| 76 | }).then(res => { | ||
| 77 | sessionStorage.setItem("_video_url", res.videoUrl); | ||
| 78 | sessionStorage.setItem("_poster_url", res.posterUrl); | ||
| 79 | resolve(res); | ||
| 80 | }); | ||
| 81 | }); | ||
| 82 | }, | ||
| 83 | refreshBanner() { | ||
| 84 | let key = this.locale; | ||
| 85 | if (key == "zh") { | ||
| 86 | key = "cn"; | ||
| 87 | } | ||
| 88 | let bannerList = []; | ||
| 89 | this.bannerCandidateList.forEach(element => { | ||
| 90 | bannerList.push(element[key]); | ||
| 91 | }); | ||
| 92 | this.$set(this, 'bannerList', bannerList); | ||
| 93 | console.log("bannerList:", bannerList); | ||
| 94 | }, | ||
| 95 | refreshVideoPlayer() { | ||
| 96 | let videoUrl = sessionStorage.getItem("_video_url"); | ||
| 97 | let posterUrl = sessionStorage.getItem("_poster_url"); | ||
| 98 | let playerOptions = { | ||
| 99 | width: 800, | ||
| 100 | height: 450, | ||
| 101 | // aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3") | ||
| 102 | autoplay: false, //如果true,浏览器准备好时开始回放。 | ||
| 103 | muted: true, // 默认情况下将会消除任何音频。 | ||
| 104 | language: 'en', | ||
| 105 | // playbackRates: [0.7, 1.0, 1.5, 2.0],//播放速度 | ||
| 106 | sources: [{ | ||
| 107 | type: "video/mp4", | ||
| 108 | // mp4 | ||
| 109 | src: videoUrl, | ||
| 110 | // webm | ||
| 111 | // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm" | ||
| 112 | }], | ||
| 113 | poster: posterUrl, | ||
| 114 | controlBar: { | ||
| 115 | timeDivider: true, | ||
| 116 | durationDisplay: true, | ||
| 117 | remainingTimeDisplay: false, | ||
| 118 | fullscreenToggle: true //全屏按钮 | ||
| 119 | } | ||
| 120 | } | ||
| 121 | let output = new UA(navigator.userAgent); | ||
| 122 | let deviceType = output.device.type; | ||
| 123 | let isMobile = deviceType == "mobile"; | ||
| 124 | // if (this.isSmallScreen) { | ||
| 125 | if (isMobile) { | ||
| 126 | playerOptions.aspectRatio = "16:9"; | ||
| 127 | } | ||
| 128 | this.playerOptions = playerOptions; | ||
| 129 | }, | ||
| 130 | initProduct() { | ||
| 131 | let productList = [{ | ||
| 132 | title: "保證續保至100歲" | ||
| 133 | }, { | ||
| 134 | title: "不設終身保障限額" | ||
| 135 | }, { | ||
| 136 | title: "一家投保<br>盡享稅務扣減" | ||
| 137 | }, { | ||
| 138 | title: "承保投保前未知的已有疾病" | ||
| 139 | }, { | ||
| 140 | title: "出院免找數<br>讓您安心無憂" | ||
| 141 | }, { | ||
| 142 | title: "無索償折扣" | ||
| 143 | }]; | ||
| 144 | this.productList = productList; | ||
| 145 | }, | ||
| 146 | initData() { | ||
| 147 | this.initProduct(); | ||
| 148 | this.fetchBanner().then(res => { | ||
| 149 | this.bannerCandidateList = res; | ||
| 150 | this.refreshBanner(); | ||
| 151 | }); | ||
| 152 | this.fetchIndexVideo().then(res => { | ||
| 153 | this.refreshVideoPlayer(); | ||
| 154 | }); | ||
| 155 | }, | ||
| 156 | }, | ||
| 157 | mounted() { | ||
| 158 | this.initData(); | ||
| 159 | }, | ||
| 160 | created() { | ||
| 161 | |||
| 162 | } | ||
| 163 | } |
src/pages/vhis-detail/vhis-detail.scss
0 → 100644
| 1 | @import '@/styles/_support'; | ||
| 2 | |||
| 3 | .page { | ||
| 4 | color: #58595b; | ||
| 5 | } | ||
| 6 | |||
| 7 | .content { | ||
| 8 | padding-bottom: 2.25rem; | ||
| 9 | } | ||
| 10 | |||
| 11 | .box { | ||
| 12 | position: relative; | ||
| 13 | margin-top: $marginMedium; | ||
| 14 | } | ||
| 15 | |||
| 16 | // banner 轮播 | ||
| 17 | .banner-contaner { | ||
| 18 | width: 100%; | ||
| 19 | height: 791px; | ||
| 20 | margin: 0 auto; | ||
| 21 | position: relative; | ||
| 22 | z-index: 1; | ||
| 23 | overflow: hidden; | ||
| 24 | } | ||
| 25 | |||
| 26 | // PC轮播 | ||
| 27 | .banner-pc { | ||
| 28 | display: block; | ||
| 29 | position: absolute; | ||
| 30 | z-index: 1; | ||
| 31 | left: 50%; | ||
| 32 | margin-left: -960px; | ||
| 33 | top: 0; | ||
| 34 | width: 1920px; | ||
| 35 | height: 100%; | ||
| 36 | overflow: hidden; | ||
| 37 | // height: 791px; | ||
| 38 | |||
| 39 | .banner-img { | ||
| 40 | width: 100%; | ||
| 41 | height: 100%; | ||
| 42 | } | ||
| 43 | |||
| 44 | .btn-wrap { | ||
| 45 | position: absolute; | ||
| 46 | z-index: 2; | ||
| 47 | // 两个banner图按钮位置不一样,和原先约定的按钮位置固定不一致 | ||
| 48 | // 如要调整位置,请调整top,right。如需要右对齐请使用right | ||
| 49 | // 已用padding适应文本过长的情况(英文等); | ||
| 50 | // top: 272px; | ||
| 51 | // left: 1228px; | ||
| 52 | // top: 310px; | ||
| 53 | top: 562px; | ||
| 54 | left: 379px; | ||
| 55 | display: flex; | ||
| 56 | |||
| 57 | .banner-btn { | ||
| 58 | @extend .pointer; | ||
| 59 | @extend .bb; | ||
| 60 | @include btc4(288px, 60px, $fontSizeTitle); | ||
| 61 | font-size: 30px; | ||
| 62 | width: auto; | ||
| 63 | padding: 0 24px; | ||
| 64 | min-width: 288px; | ||
| 65 | margin-left: 12px; | ||
| 66 | background: url("~@assets/images/vhis/vhis-btn2.png"); | ||
| 67 | } | ||
| 68 | } | ||
| 69 | } | ||
| 70 | |||
| 71 | // 移动端轮播 | ||
| 72 | .banner-mobile { | ||
| 73 | display: none; | ||
| 74 | |||
| 75 | .banner-img { | ||
| 76 | width: 100%; | ||
| 77 | } | ||
| 78 | |||
| 79 | .btn-wrap { | ||
| 80 | position: absolute; | ||
| 81 | z-index: 1; | ||
| 82 | top: 87%; | ||
| 83 | left: 0; | ||
| 84 | right: 0; | ||
| 85 | margin: 0 auto; | ||
| 86 | display: flex; | ||
| 87 | justify-content: center; | ||
| 88 | |||
| 89 | .banner-btn { | ||
| 90 | @extend .pointer; | ||
| 91 | padding: 0 12px; | ||
| 92 | color: $cOrange2; | ||
| 93 | } | ||
| 94 | } | ||
| 95 | } | ||
| 96 | |||
| 97 | .banner-tips { | ||
| 98 | $borderSize: 8px; | ||
| 99 | position: absolute; | ||
| 100 | z-index: 2; | ||
| 101 | width: 422px; | ||
| 102 | height: 202px; | ||
| 103 | right: 50px; | ||
| 104 | top: 50px; | ||
| 105 | padding: 2px; | ||
| 106 | border-radius: $borderSize; | ||
| 107 | |||
| 108 | .close { | ||
| 109 | cursor: pointer; | ||
| 110 | position: absolute; | ||
| 111 | right: 12px; | ||
| 112 | top: 12px; | ||
| 113 | } | ||
| 114 | |||
| 115 | .cont { | ||
| 116 | @extend .bb; | ||
| 117 | padding: 20px; | ||
| 118 | position: relative; | ||
| 119 | width: 100%; | ||
| 120 | height: 100%; | ||
| 121 | background-color: #ffffff; | ||
| 122 | border-radius: $borderSize; | ||
| 123 | |||
| 124 | .tit { | ||
| 125 | display: flex; | ||
| 126 | align-items: center; | ||
| 127 | color: $cOrange2; | ||
| 128 | font-size: 28px; | ||
| 129 | } | ||
| 130 | |||
| 131 | .desc { | ||
| 132 | margin: 12px auto 0; | ||
| 133 | font-size: 18px; | ||
| 134 | padding: 0 20px; | ||
| 135 | |||
| 136 | .t1 { | ||
| 137 | line-height: 1.5; | ||
| 138 | } | ||
| 139 | |||
| 140 | .t2 { | ||
| 141 | font-size: 22px; | ||
| 142 | margin-top: 6px; | ||
| 143 | font-weight: bold; | ||
| 144 | color: $cOrange2; | ||
| 145 | } | ||
| 146 | } | ||
| 147 | |||
| 148 | |||
| 149 | |||
| 150 | } | ||
| 151 | } | ||
| 152 | |||
| 153 | // 标题 | ||
| 154 | .title { | ||
| 155 | @extend .bb; | ||
| 156 | padding: 62px 0; | ||
| 157 | background-color: #fff1ed; | ||
| 158 | text-align: center; | ||
| 159 | font-size: $fontSize; | ||
| 160 | |||
| 161 | .t1 { | ||
| 162 | color: $cOrange2; | ||
| 163 | letter-spacing: 2px; | ||
| 164 | font-weight: bold; | ||
| 165 | font-size: 44px; | ||
| 166 | } | ||
| 167 | |||
| 168 | .t2 { | ||
| 169 | font-size: 32px; | ||
| 170 | margin-top: 36px; | ||
| 171 | font-weight: bold; | ||
| 172 | line-height: 1.39; | ||
| 173 | letter-spacing: 1.8px; | ||
| 174 | } | ||
| 175 | } | ||
| 176 | |||
| 177 | // 产品 | ||
| 178 | .product { | ||
| 179 | margin: 100px auto 0; | ||
| 180 | text-align: center; | ||
| 181 | |||
| 182 | .tit { | ||
| 183 | color: $cOrange2; | ||
| 184 | letter-spacing: 2.5px; | ||
| 185 | font-size: 50px; | ||
| 186 | font-weight: bold; | ||
| 187 | } | ||
| 188 | |||
| 189 | .prod { | ||
| 190 | margin: 48px auto 0; | ||
| 191 | color: $cOrange2; | ||
| 192 | display: flex; | ||
| 193 | justify-content: space-between; | ||
| 194 | flex-wrap: wrap; | ||
| 195 | |||
| 196 | &-item { | ||
| 197 | @extend .bb; | ||
| 198 | @extend .fcc; | ||
| 199 | padding: 2px; | ||
| 200 | width: 582px; | ||
| 201 | height: 262px; | ||
| 202 | margin-bottom: 25px; | ||
| 203 | |||
| 204 | .cont { | ||
| 205 | display: flex; | ||
| 206 | text-align: left; | ||
| 207 | width: 100%; | ||
| 208 | height: 100%; | ||
| 209 | background-color: #ffffff; | ||
| 210 | |||
| 211 | .icon-wrap { | ||
| 212 | @extend .fcc; | ||
| 213 | width: 210px; | ||
| 214 | } | ||
| 215 | |||
| 216 | .detail { | ||
| 217 | padding: 40px 40px 40px 0; | ||
| 218 | flex: 1; | ||
| 219 | |||
| 220 | .t1 { | ||
| 221 | letter-spacing: 2px; | ||
| 222 | font-size: 38px; | ||
| 223 | font-weight: bold; | ||
| 224 | |||
| 225 | } | ||
| 226 | |||
| 227 | .desc { | ||
| 228 | display: flex; | ||
| 229 | // margin: 12px auto 0; | ||
| 230 | |||
| 231 | &-icon-wrap { | ||
| 232 | cursor: pointer; | ||
| 233 | margin: 6px 6px 0 0; | ||
| 234 | } | ||
| 235 | |||
| 236 | .c1 { | ||
| 237 | letter-spacing: 1.2px; | ||
| 238 | font-size: 24px; | ||
| 239 | } | ||
| 240 | } | ||
| 241 | } | ||
| 242 | } | ||
| 243 | } | ||
| 244 | } | ||
| 245 | } | ||
| 246 | |||
| 247 | // 视频 | ||
| 248 | .video { | ||
| 249 | @extend .fcc; | ||
| 250 | } | ||
| 251 | |||
| 252 | // 保障 | ||
| 253 | .guarantee { | ||
| 254 | margin: 100px auto 0; | ||
| 255 | font-size: 26px; | ||
| 256 | |||
| 257 | .tit { | ||
| 258 | text-align: center; | ||
| 259 | color: $cOrange2; | ||
| 260 | letter-spacing: 1.4px; | ||
| 261 | |||
| 262 | } | ||
| 263 | |||
| 264 | .table { | ||
| 265 | max-width: 1200px; | ||
| 266 | margin: 8px auto 0; | ||
| 267 | |||
| 268 | &-border { | ||
| 269 | width: 100%; | ||
| 270 | height: 3px; | ||
| 271 | } | ||
| 272 | |||
| 273 | .table-item { | ||
| 274 | display: flex; | ||
| 275 | border: solid 1px #e4e4e5; | ||
| 276 | border-top: none; | ||
| 277 | |||
| 278 | .tt { | ||
| 279 | @extend .bb; | ||
| 280 | width: 50%; | ||
| 281 | padding: 26px 0; | ||
| 282 | font-weight: bold; | ||
| 283 | letter-spacing: 1.12px; | ||
| 284 | color: #666666; | ||
| 285 | } | ||
| 286 | |||
| 287 | .label { | ||
| 288 | background-color: #fef1ed; | ||
| 289 | padding-left: 76px; | ||
| 290 | border-right: solid 1px #e4e4e5; | ||
| 291 | } | ||
| 292 | |||
| 293 | .val { | ||
| 294 | padding-left: 76px; | ||
| 295 | } | ||
| 296 | } | ||
| 297 | } | ||
| 298 | |||
| 299 | .table2 { | ||
| 300 | margin: 48px auto 0; | ||
| 301 | text-align: left; | ||
| 302 | |||
| 303 | .table-item { | ||
| 304 | display: flex; | ||
| 305 | border: solid 1px #e4e4e5; | ||
| 306 | |||
| 307 | .tt { | ||
| 308 | @extend .bb; | ||
| 309 | width: 50%; | ||
| 310 | padding: 48px; | ||
| 311 | font-weight: bold; | ||
| 312 | letter-spacing: 1.12px; | ||
| 313 | color: #666666; | ||
| 314 | |||
| 315 | .t1 { | ||
| 316 | color: $cOrange2; | ||
| 317 | } | ||
| 318 | } | ||
| 319 | |||
| 320 | .label { | ||
| 321 | border-right: solid 1px #e4e4e5; | ||
| 322 | line-height: 1.4; | ||
| 323 | |||
| 324 | ul { | ||
| 325 | list-style-type: none; | ||
| 326 | } | ||
| 327 | |||
| 328 | li { | ||
| 329 | background-image: url('~@assets/images/vhis/vhis-tick.png'); | ||
| 330 | background-repeat: no-repeat; | ||
| 331 | background-position: 0 10px; | ||
| 332 | padding-left: 40px; | ||
| 333 | margin: 24px 0; | ||
| 334 | } | ||
| 335 | } | ||
| 336 | |||
| 337 | .label2 { | ||
| 338 | |||
| 339 | li { | ||
| 340 | background-image: url('~@assets/images/vhis/vhis-cross.png'); | ||
| 341 | } | ||
| 342 | } | ||
| 343 | |||
| 344 | .val {} | ||
| 345 | } | ||
| 346 | } | ||
| 347 | } | ||
| 348 | |||
| 349 | // 下载 | ||
| 350 | .download { | ||
| 351 | margin: 100px auto 0; | ||
| 352 | text-align: center; | ||
| 353 | color: $cOrange2; | ||
| 354 | |||
| 355 | &-item { | ||
| 356 | @extend .bb; | ||
| 357 | @extend .fcc; | ||
| 358 | margin: 0 auto 24px; | ||
| 359 | max-width: 740px; | ||
| 360 | height: 82px; | ||
| 361 | line-height: 82px; | ||
| 362 | padding: 2px; | ||
| 363 | border-radius: 2px; | ||
| 364 | cursor: pointer; | ||
| 365 | |||
| 366 | .cont { | ||
| 367 | // @extend .fcc; | ||
| 368 | @extend .bb; | ||
| 369 | display: flex; | ||
| 370 | align-items: center; | ||
| 371 | padding-left: 220px; | ||
| 372 | |||
| 373 | width: 100%; | ||
| 374 | height: 100%; | ||
| 375 | background-color: #ffffff; | ||
| 376 | font-size: 36px; | ||
| 377 | font-weight: bold; | ||
| 378 | border-radius: 2px; | ||
| 379 | |||
| 380 | .icon { | ||
| 381 | margin-right: 24px; | ||
| 382 | } | ||
| 383 | } | ||
| 384 | } | ||
| 385 | } | ||
| 386 | |||
| 387 | // 提交订单 | ||
| 388 | .submit-btn { | ||
| 389 | margin: 120px auto 100px; | ||
| 390 | @extend .pointer; | ||
| 391 | @extend .bb; | ||
| 392 | @include btc4(406px, 60px, 28px); | ||
| 393 | } | ||
| 394 | |||
| 395 | .border2 { | ||
| 396 | background-image: linear-gradient(to right, #ffb31d, #f15907); | ||
| 397 | } | ||
| 398 | |||
| 399 | // banner点点 | ||
| 400 | .swiper-button-prev { | ||
| 401 | background-image: url('~@/assets/images/common/button-prev.png'); | ||
| 402 | left: 360px; | ||
| 403 | } | ||
| 404 | |||
| 405 | .swiper-button-next { | ||
| 406 | background-image: url('~@/assets/images/common/button-next.png'); | ||
| 407 | right: 360px; | ||
| 408 | } | ||
| 409 | |||
| 410 | .swiper-container { | ||
| 411 | height: 100%; | ||
| 412 | } | ||
| 413 | |||
| 414 | .swiper-pagination-fraction, | ||
| 415 | .swiper-pagination-custom, | ||
| 416 | .swiper-container-horizontal>.swiper-pagination-bullets { | ||
| 417 | bottom: 48px; | ||
| 418 | } | ||
| 419 | |||
| 420 | .swiper-pagination-bullet { | ||
| 421 | width: 12px; | ||
| 422 | height: 12px; | ||
| 423 | background-color: #dcdddd; | ||
| 424 | } | ||
| 425 | |||
| 426 | .swiper-pagination-bullet-active { | ||
| 427 | width: 12px; | ||
| 428 | height: 12px; | ||
| 429 | background-color: $cOrange2; | ||
| 430 | } |
src/pages/vhis-detail/vhis-detail.vue
0 → 100644
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page page-vhis"> | ||
| 4 | <div class="banner-contaner"> | ||
| 5 | <!-- banner 轮播 --> | ||
| 6 | |||
| 7 | <div class="banner banner-pc"> | ||
| 8 | <swiper :options="swiperOption"> | ||
| 9 | <swiper-slide v-for="(item,index) in bannerList" :key="index"> | ||
| 10 | <img class="banner-img" :src="item.pcBannerUrl"> | ||
| 11 | <div class="btn-wrap"> | ||
| 12 | <div v-for="(btnItem, btnIndex) in item.btns" :key="btnIndex"> | ||
| 13 | <div class="banner-btn" v-if="btnItem.n && btnItem.t && btnItem.c" @click="btnNavigateTo(btnItem.t,btnItem.l)" :style="{backgroundColor:btnItem.c}">{{btnItem.n}}</div> | ||
| 14 | </div> | ||
| 15 | </div> | ||
| 16 | </swiper-slide> | ||
| 17 | <!-- <div class="swiper-button-prev" slot="button-prev"></div> | ||
| 18 | <div class="swiper-button-next" slot="button-next"></div> --> | ||
| 19 | <div class="swiper-pagination" slot="pagination"></div> | ||
| 20 | </swiper> | ||
| 21 | </div> | ||
| 22 | |||
| 23 | <div class="banner banner-mobile"> | ||
| 24 | <swiper class="swiper" :options="swiperOption"> | ||
| 25 | <swiper-slide v-for="(item,index) in bannerList" :key="index"> | ||
| 26 | <img class="banner-img" :src="item.mobileBannerUrl"> | ||
| 27 | <div class="btn-wrap"> | ||
| 28 | <div class="banner-btn" v-for="(btnItem, btnIndex) in item.btns" :key="btnIndex" @click="btnNavigateTo(btnItem.t,btnItem.l)" :style="{color:btnItem.c}">{{btnItem.n}} ></div> | ||
| 29 | </div> | ||
| 30 | </swiper-slide> | ||
| 31 | <div class="swiper-pagination" slot="pagination"></div> | ||
| 32 | </swiper> | ||
| 33 | </div> | ||
| 34 | <!-- <div class="swiper-button-prev" slot="button-prev"></div> | ||
| 35 | <div class="swiper-button-next" slot="button-next"></div> --> | ||
| 36 | |||
| 37 | <div v-if="bannerTipsVisible" class="border2 banner-tips"> | ||
| 38 | <div class="cont"> | ||
| 39 | <div class="tit"> | ||
| 40 | <img class="icon" src="@/assets/images/vhis/hot-deal-icon.png"> 【期間限定保費8折優惠】 | ||
| 41 | </div> | ||
| 42 | <div class="desc"> | ||
| 43 | <div class="t1">即日起至5月28日或之前投保,只需輸入 以下優惠碼,即享首年保費8折優惠*</div> | ||
| 44 | <div class="t2">優惠碼:CISAVE20</div> | ||
| 45 | </div> | ||
| 46 | </div> | ||
| 47 | <img @click="onHideBannerTipsHandler" class="close" src="@/assets/images/vhis/close2.png"> | ||
| 48 | </div> | ||
| 49 | </div> | ||
| 50 | <!-- 标题 --> | ||
| 51 | <div class="title"> | ||
| 52 | <div class="t1">好醫時自願醫保計劃</div> | ||
| 53 | <div class="t2"> | ||
| 54 | 平安人壽(香港)「好醫時」自願醫保標準計劃<br> 為政府自願醫保認可的標準計劃,可同時申請享有稅務扣減優惠。 | ||
| 55 | </div> | ||
| 56 | </div> | ||
| 57 | <div class="content"> | ||
| 58 | <!-- 产品 --> | ||
| 59 | <div class="box product"> | ||
| 60 | <div class="tit">產品特點</div> | ||
| 61 | <div class="prod"> | ||
| 62 | <div v-for="(item,index) in productList" :key="item.id" class="border2 prod-item"> | ||
| 63 | <div class="cont"> | ||
| 64 | <div class="icon-wrap"> | ||
| 65 | <img :src="require('@/assets/images/vhis/vhis-icon'+(index+1)+'.png')"> | ||
| 66 | </div> | ||
| 67 | <div class="detail"> | ||
| 68 | <div class="t1" v-html="item.title">{{item.title}}</div> | ||
| 69 | <div class="desc"> | ||
| 70 | <div class="desc-icon-wrap"> | ||
| 71 | <img src="@/assets/images/vhis/vhis-plus.png"> | ||
| 72 | </div> | ||
| 73 | <div class="c1">展開</div> | ||
| 74 | </div> | ||
| 75 | </div> | ||
| 76 | </div> | ||
| 77 | </div> | ||
| 78 | </div> | ||
| 79 | </div> | ||
| 80 | |||
| 81 | <!-- 视频 --> | ||
| 82 | <div class="box video"> | ||
| 83 | <video-player class="vjs-custom-skin" ref="videoPlayer" :options="playerOptions" :playsinline="true"> | ||
| 84 | </video-player> | ||
| 85 | </div> | ||
| 86 | |||
| 87 | <!-- 保障 --> | ||
| 88 | <div class="guarantee"> | ||
| 89 | <div class="tit">保障一覽</div> | ||
| 90 | <div class="table"> | ||
| 91 | <div class="border2 table-border"></div> | ||
| 92 | <div class="table-item"> | ||
| 93 | <div class="tt label">產品性質</div> | ||
| 94 | <div class="tt val">醫療保障保險計劃</div> | ||
| 95 | </div> | ||
| 96 | <div class="table-item"> | ||
| 97 | <div class="tt label">投保人投保時的年齡</div> | ||
| 98 | <div class="tt val">15日至80歲</div> | ||
| 99 | </div> | ||
| 100 | <div class="table-item"> | ||
| 101 | <div class="tt label">保證續保</div> | ||
| 102 | <div class="tt val">至100歲</div> | ||
| 103 | </div> | ||
| 104 | <div class="table-item"> | ||
| 105 | <div class="tt label">地域保障範圍</div> | ||
| 106 | <div class="tt val">全球(精神科治療除外)</div> | ||
| 107 | </div> | ||
| 108 | <div class="table-item"> | ||
| 109 | <div class="tt label">終生保障限額</div> | ||
| 110 | <div class="tt val">無</div> | ||
| 111 | </div> | ||
| 112 | <div class="table-item"> | ||
| 113 | <div class="tt label">每年保障限額</div> | ||
| 114 | <div class="tt val">每保單年度 420,000港元</div> | ||
| 115 | </div> | ||
| 116 | </div> | ||
| 117 | |||
| 118 | <div class="table2"> | ||
| 119 | <div class="table-item"> | ||
| 120 | <div class="tt label"> | ||
| 121 | <div class="t1">更多特點:</div> | ||
| 122 | <ul> | ||
| 123 | <li>若您更改計劃、終止保單或您未能支 付保費導致保單被終止,便有機會獲 退還部分款項1(如適用)。 | ||
| 124 | </li> | ||
| 125 | <li>保證自動續保,無需進一步提供健康 證明。 | ||
| 126 | </li> | ||
| 127 | <li>保證於保費繳付期內保費不變。</li> | ||
| 128 | </ul> | ||
| 129 | </div> | ||
| 130 | <div class="tt label label2"> | ||
| 131 | <div class="t1">計劃不包括2</div> | ||
| 132 | |||
| 133 | <ul> | ||
| 134 | <li>若受保人於保單簽發日後一年內自殺, 將不能獲發身故賠償,但將獲退還於 現行保單保障期內所繳的總保費。 | ||
| 135 | </li> | ||
| 136 | </ul> | ||
| 137 | |||
| 138 | </div> | ||
| 139 | </div> | ||
| 140 | </div> | ||
| 141 | </div> | ||
| 142 | |||
| 143 | <!-- 下载 --> | ||
| 144 | <div class="download"> | ||
| 145 | <div class="border2 download-item"> | ||
| 146 | <div class="cont"> | ||
| 147 | <img class="icon" src="@/assets/images/vhis/vhis-download.png"> 下載產品簡介 | ||
| 148 | </div> | ||
| 149 | </div> | ||
| 150 | <div class="border2 download-item"> | ||
| 151 | <div class="cont"> | ||
| 152 | <img class="icon" src="@/assets/images/vhis/vhis-download.png"> 下載標準保費表 | ||
| 153 | </div> | ||
| 154 | </div> | ||
| 155 | <div class="border2 download-item"> | ||
| 156 | <div class="cont"> | ||
| 157 | <img class="icon" src="@/assets/images/vhis/vhis-download.png"> 下載保單契約 | ||
| 158 | </div> | ||
| 159 | </div> | ||
| 160 | </div> | ||
| 161 | |||
| 162 | <!-- 立即投保 --> | ||
| 163 | <div class="submit-btn"> | ||
| 164 | 立即投保 | ||
| 165 | </div> | ||
| 166 | |||
| 167 | </div> | ||
| 168 | </div> | ||
| 169 | |||
| 170 | </template> | ||
| 171 | |||
| 172 | <script src="./vhis-detail.js"></script> | ||
| 173 | <style lang="scss" scoped> | ||
| 174 | @import "./vhis-detail.scss"; | ||
| 175 | </style> |
| ... | @@ -268,6 +268,14 @@ const routes = [ | ... | @@ -268,6 +268,14 @@ const routes = [ |
| 268 | meta: { | 268 | meta: { |
| 269 | title: '平安人寿香港' | 269 | title: '平安人寿香港' |
| 270 | } | 270 | } |
| 271 | }, | ||
| 272 | { | ||
| 273 | path: '/vhis/detail', | ||
| 274 | name: 'vhisDetail', | ||
| 275 | component: () => import('./pages/vhis-detail/vhis-detail.vue'), | ||
| 276 | meta: { | ||
| 277 | title: '平安人寿香港' | ||
| 278 | } | ||
| 271 | } | 279 | } |
| 272 | // 404页面 | 280 | // 404页面 |
| 273 | // { | 281 | // { | ... | ... |
| ... | @@ -134,6 +134,24 @@ | ... | @@ -134,6 +134,24 @@ |
| 134 | border: solid 1px #006441; | 134 | border: solid 1px #006441; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | @mixin btc4($wid:24rem, $hei:5rem, $fontSize:12px) { | ||
| 138 | width: $wid; | ||
| 139 | height: $hei; | ||
| 140 | line-height: $hei; | ||
| 141 | font-size: $fontSize; | ||
| 142 | border-radius: $hei; | ||
| 143 | text-align: center; | ||
| 144 | |||
| 145 | background: url("~@assets/images/vhis/vhis-btn.png"); | ||
| 146 | background-size: 100% 100%; | ||
| 147 | background-repeat: no-repeat; | ||
| 148 | color: white; | ||
| 149 | font-weight: 600; | ||
| 150 | cursor: pointer; | ||
| 151 | letter-spacing: 1.4px; | ||
| 152 | } | ||
| 153 | |||
| 154 | |||
| 137 | @mixin content-percent($percent:4%) { | 155 | @mixin content-percent($percent:4%) { |
| 138 | box-sizing: border-box; | 156 | box-sizing: border-box; |
| 139 | padding: 0 $percent; | 157 | padding: 0 $percent; | ... | ... |
| ... | @@ -40,6 +40,9 @@ $cDark:#dcdcdc; | ... | @@ -40,6 +40,9 @@ $cDark:#dcdcdc; |
| 40 | $cLightBlack:#606266; | 40 | $cLightBlack:#606266; |
| 41 | $cDisabled:#888888; | 41 | $cDisabled:#888888; |
| 42 | 42 | ||
| 43 | $cOrange2:#ff6839; | ||
| 44 | $cFontGra2: #58595b; | ||
| 45 | |||
| 43 | // 文章宽度 | 46 | // 文章宽度 |
| 44 | $articleWidth:1041px; | 47 | $articleWidth:1041px; |
| 45 | 48 | ... | ... |
-
Please register or sign in to post a comment