c239842d by joe

首页接入CMS

1 parent 94c2f05e
...@@ -3,8 +3,9 @@ VUE_APP_TITLE = 'development' ...@@ -3,8 +3,9 @@ VUE_APP_TITLE = 'development'
3 VUE_APP_BASE_URL= 'http://localhost:9101' 3 VUE_APP_BASE_URL= 'http://localhost:9101'
4 VUE_APP_RSA_PUBLIC_KEY = 'B5FE03847F02046C47292AF0FF2DE88977241483DD40C123046EB39CBE4C48167B120096CFF12CD16559322884A3C56FA92B07B89AB51FC8C91A75127622151DDD730DFF1F993D5A290CEAC0BBA7FC88285D8994ACBAFF50101EDE9A0925AD5DFFAFE96D53C370E9C5B37DF2F871F81C4D7CA6B7EC37FF459C07975AD9A74A95' 4 VUE_APP_RSA_PUBLIC_KEY = 'B5FE03847F02046C47292AF0FF2DE88977241483DD40C123046EB39CBE4C48167B120096CFF12CD16559322884A3C56FA92B07B89AB51FC8C91A75127622151DDD730DFF1F993D5A290CEAC0BBA7FC88285D8994ACBAFF50101EDE9A0925AD5DFFAFE96D53C370E9C5B37DF2F871F81C4D7CA6B7EC37FF459C07975AD9A74A95'
5 VUE_APP_RSA_KEY_INDEX = '10001' 5 VUE_APP_RSA_KEY_INDEX = '10001'
6 VUE_APP_VHIS_INDEX= 'https://icpois.pingan.com/vhis/insurIndex' 6 VUE_APP_VHIS_INDEX= 'http://154.213.4.36/index.html'
7 VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca72f3dc4be9e6.mp4' 7 VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca72f3dc4be9e6.mp4'
8 8
9 9
10 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' 10 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB'
11 VUE_APP_CONTENT_ENCRYPT_SWITCH = true
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -9,3 +9,4 @@ VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca7 ...@@ -9,3 +9,4 @@ VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca7
9 9
10 10
11 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' 11 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB'
12 VUE_APP_CONTENT_ENCRYPT_SWITCH = true
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -3,7 +3,8 @@ VUE_APP_TITLE = 'sandbox' ...@@ -3,7 +3,8 @@ VUE_APP_TITLE = 'sandbox'
3 VUE_APP_BASE_URL= 'https://ow.go.qudone.com' 3 VUE_APP_BASE_URL= 'https://ow.go.qudone.com'
4 VUE_APP_RSA_PUBLIC_KEY = 'B5FE03847F02046C47292AF0FF2DE88977241483DD40C123046EB39CBE4C48167B120096CFF12CD16559322884A3C56FA92B07B89AB51FC8C91A75127622151DDD730DFF1F993D5A290CEAC0BBA7FC88285D8994ACBAFF50101EDE9A0925AD5DFFAFE96D53C370E9C5B37DF2F871F81C4D7CA6B7EC37FF459C07975AD9A74A95' 4 VUE_APP_RSA_PUBLIC_KEY = 'B5FE03847F02046C47292AF0FF2DE88977241483DD40C123046EB39CBE4C48167B120096CFF12CD16559322884A3C56FA92B07B89AB51FC8C91A75127622151DDD730DFF1F993D5A290CEAC0BBA7FC88285D8994ACBAFF50101EDE9A0925AD5DFFAFE96D53C370E9C5B37DF2F871F81C4D7CA6B7EC37FF459C07975AD9A74A95'
5 VUE_APP_RSA_KEY_INDEX = '10001' 5 VUE_APP_RSA_KEY_INDEX = '10001'
6 VUE_APP_VHIS_INDEX= 'https://icpois.pingan.com/vhis/insurIndex' 6 VUE_APP_VHIS_INDEX= 'http://154.213.4.36/index.html'
7 VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca72f3dc4be9e6.mp4' 7 VUE_APP_INDEX_VIDEO = 'https://ow.go.qudone.com/jyesupload/ee516bb327484197b7ca72f3dc4be9e6.mp4'
8 8
9 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' 9 VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB'
10 VUE_APP_CONTENT_ENCRYPT_SWITCH = true
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -54,4 +54,12 @@ module.exports = { ...@@ -54,4 +54,12 @@ module.exports = {
54 updatePolicyInfo : "/pingan_hklife_webapi/policy/updateInfo", 54 updatePolicyInfo : "/pingan_hklife_webapi/policy/updateInfo",
55 // 证件上传 55 // 证件上传
56 idPicUpload : "/pingan_hklife_webapi/policy/idPicUpload", 56 idPicUpload : "/pingan_hklife_webapi/policy/idPicUpload",
57
58
59 // cms相关
60 indexVideo : "/pingan_hklife_webapi/cms/indexVideo",
61 banner : "/pingan_hklife_webapi/cms/banner/list",
62 newsList : "/pingan_hklife_webapi/cms/news/list",
63 newsDetail : "/pingan_hklife_webapi/cms/news/get",
64 companyOutline : "/pingan_hklife_webapi/cms/company/outline"
57 } 65 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -2,7 +2,9 @@ import axiosIns from 'axios'; ...@@ -2,7 +2,9 @@ import axiosIns from 'axios';
2 import state from '@/store/state.js'; 2 import state from '@/store/state.js';
3 import CryptoJS from "crypto-js"; 3 import CryptoJS from "crypto-js";
4 import JsEncrypt from "jsencrypt"; 4 import JsEncrypt from "jsencrypt";
5
5 let key = process.env.VUE_APP_CONTENT_ENCRYPT_KEY; 6 let key = process.env.VUE_APP_CONTENT_ENCRYPT_KEY;
7 let encryptSwitch = process.env.VUE_APP_CONTENT_ENCRYPT_SWITCH;
6 let rsa = new JsEncrypt(); 8 let rsa = new JsEncrypt();
7 rsa.setPublicKey(key); 9 rsa.setPublicKey(key);
8 let chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(","); 10 let chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(",");
...@@ -68,6 +70,7 @@ let encryptWhileList = [ ...@@ -68,6 +70,7 @@ let encryptWhileList = [
68 // 请求拦截器 70 // 请求拦截器
69 axios.interceptors.request.use( 71 axios.interceptors.request.use(
70 config => { 72 config => {
73 if (encryptSwitch) {
71 for (let index = 0; index < encryptPattern.length; index++) { 74 for (let index = 0; index < encryptPattern.length; index++) {
72 let element = encryptPattern[index]; 75 let element = encryptPattern[index];
73 if (element.test(config.url)) { 76 if (element.test(config.url)) {
...@@ -83,6 +86,7 @@ axios.interceptors.request.use( ...@@ -83,6 +86,7 @@ axios.interceptors.request.use(
83 break; 86 break;
84 } 87 }
85 } 88 }
89 }
86 return config; 90 return config;
87 }, 91 },
88 error => { 92 error => {
......

293 KB | W: | H:

309 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

294 KB | W: | H:

311 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

292 KB | W: | H:

310 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

300 KB | W: | H:

316 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

299 KB | W: | H:

317 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

298 KB | W: | H:

316 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
...@@ -26,14 +26,15 @@ export default { ...@@ -26,14 +26,15 @@ export default {
26 el: '.swiper-pagination', 26 el: '.swiper-pagination',
27 clickable: true, 27 clickable: true,
28 }, 28 },
29 // autoplay: { 29 autoplay: {
30 // delay: 5000, 30 delay: 5000,
31 // stopOnLastSlide: false, 31 stopOnLastSlide: false,
32 // disableOnInteraction: false 32 disableOnInteraction: false
33 // }, 33 },
34 speed: 1000, 34 speed: 1000,
35
36 }, 35 },
36 bannerList: [],
37 bannerCandidateList: [],
37 // 视频 38 // 视频
38 playerOptions: {}, 39 playerOptions: {},
39 40
...@@ -56,7 +57,7 @@ export default { ...@@ -56,7 +57,7 @@ export default {
56 57
57 }, 58 },
58 methods: { 59 methods: {
59 toVhis(){ 60 toVhis() {
60 gotoVHIS(this.locale); 61 gotoVHIS(this.locale);
61 }, 62 },
62 /** 63 /**
...@@ -78,7 +79,7 @@ export default { ...@@ -78,7 +79,7 @@ export default {
78 path: "/custom/product" 79 path: "/custom/product"
79 }) 80 })
80 } 81 }
81 if(val == 4){ 82 if (val == 4) {
82 this.$router.push({ 83 this.$router.push({
83 path: "/news/list" 84 path: "/news/list"
84 }) 85 })
...@@ -110,7 +111,7 @@ export default { ...@@ -110,7 +111,7 @@ export default {
110 }) 111 })
111 }, 112 },
112 refreshVideoPlayer() { 113 refreshVideoPlayer() {
113 114 let videoUrl = sessionStorage.getItem("_video_url");
114 let playerOptions = { 115 let playerOptions = {
115 width: 800, 116 width: 800,
116 height: 450, 117 height: 450,
...@@ -122,7 +123,7 @@ export default { ...@@ -122,7 +123,7 @@ export default {
122 sources: [{ 123 sources: [{
123 type: "video/mp4", 124 type: "video/mp4",
124 // mp4 125 // mp4
125 src: process.env.VUE_APP_INDEX_VIDEO, 126 src: videoUrl,
126 // webm 127 // webm
127 // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm" 128 // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
128 }], 129 }],
...@@ -143,15 +144,54 @@ export default { ...@@ -143,15 +144,54 @@ export default {
143 } 144 }
144 this.playerOptions = playerOptions; 145 this.playerOptions = playerOptions;
145 }, 146 },
146 initData() {} 147 initData() {
148 this.fetchBanner().then(res => {
149 this.bannerCandidateList = res;
150 this.refreshBanner();
151 });
152 this.fetchIndexVideo().then(res => {
153 this.refreshVideoPlayer();
154 });
155 window.addEventListener('resize', () => this.refreshVideoPlayer(), false);
156 },
157 fetchBanner() {
158 return new Promise((resolve, reject) => {
159 httpPost({ url: api.banner }).then(res => {
160 resolve(res);
161 });
162 });
163 },
164 fetchIndexVideo() {
165 return new Promise((resolve, reject) => {
166 httpPost({ url: api.indexVideo }).then(res => {
167 sessionStorage.setItem("_video_url", res);
168 resolve(res);
169 });
170 });
171 },
172 refreshBanner() {
173 let key = this.locale;
174 if (key == "zh") {
175 key = "cn";
176 }
177 let newList = [];
178 this.bannerCandidateList.forEach(element => {
179 newList.push(element[key]);
180 });
181 console.log(newList);
182 this.$set(this, 'bannerList', newList);
183 },
184 btnNavigateTo(type, link) {
185
186 }
147 }, 187 },
148 beforeDestroy() { 188 beforeDestroy() {
149 window.removeEventListener('resize', this.refreshVideoPlayer(), false); 189 window.removeEventListener('resize', this.refreshVideoPlayer(), false);
150 }, 190 },
151 mounted() { 191 mounted() {
152 this.refreshVideoPlayer(); 192 this.initData();
153 window.addEventListener('resize', () => this.refreshVideoPlayer(), false);
154 }, 193 },
194
155 created() { 195 created() {
156 196
157 } 197 }
......
...@@ -48,7 +48,8 @@ ...@@ -48,7 +48,8 @@
48 // 已用padding适应文本过长的情况(英文等); 48 // 已用padding适应文本过长的情况(英文等);
49 // top: 272px; 49 // top: 272px;
50 // left: 1228px; 50 // left: 1228px;
51 top: 310px; 51 // top: 310px;
52 top : 295px;
52 right: 432px; 53 right: 432px;
53 display: flex; 54 display: flex;
54 55
......
...@@ -6,7 +6,13 @@ ...@@ -6,7 +6,13 @@
6 6
7 <div class="banner banner-pc"> 7 <div class="banner banner-pc">
8 <swiper :options="swiperOption"> 8 <swiper :options="swiperOption">
9 <swiper-slide> 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 class="banner-btn" v-for="(btnItem, btnIndex) in item.btns" :key="btnIndex" @click="btnNavigateTo(btnItem.t,btnItem.l)" :style="{backgroundColor:btnItem.c}">{{btnItem.n}}</div>
13 </div>
14 </swiper-slide>
15 <!-- <swiper-slide>
10 <img @click="toVhis" class="banner-img" :src="require('@/assets/images/index/banner-p1-'+locale+'.png')"> 16 <img @click="toVhis" class="banner-img" :src="require('@/assets/images/index/banner-p1-'+locale+'.png')">
11 <div class="btn-wrap"> 17 <div class="btn-wrap">
12 <div class="banner-btn">产品详情</div> 18 <div class="banner-btn">产品详情</div>
...@@ -19,14 +25,21 @@ ...@@ -19,14 +25,21 @@
19 <div class="banner-btn">产品详情</div> 25 <div class="banner-btn">产品详情</div>
20 <div class="banner-btn">在线报价</div> 26 <div class="banner-btn">在线报价</div>
21 </div> 27 </div>
22 </swiper-slide> 28 </swiper-slide> -->
23 <div class="swiper-pagination" slot="pagination"></div> 29 <div class="swiper-pagination" slot="pagination"></div>
24 </swiper> 30 </swiper>
25 </div> 31 </div>
26 32
27 <div class="banner banner-mobile"> 33 <div class="banner banner-mobile">
28 <swiper class="swiper" :options="swiperOption"> 34 <swiper class="swiper" :options="swiperOption">
29 <swiper-slide> 35 <swiper-slide v-for="(item,index) in bannerList" :key="index">
36 <img class="banner-img" :src="item.mobileBannerUrl">
37 <div class="btn-wrap">
38 <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}}&nbsp;&gt;</div>
39 </div>
40 </swiper-slide>
41
42 <!-- <swiper-slide>
30 <img @click="toVhis" class="banner-img" :src="require('@/assets/images/index/banner-m1-'+locale+'.jpg')"> 43 <img @click="toVhis" class="banner-img" :src="require('@/assets/images/index/banner-m1-'+locale+'.jpg')">
31 <div class="btn-wrap"> 44 <div class="btn-wrap">
32 <div class="banner-btn">产品详情></div> 45 <div class="banner-btn">产品详情></div>
...@@ -39,7 +52,7 @@ ...@@ -39,7 +52,7 @@
39 <div class="banner-btn">产品详情></div> 52 <div class="banner-btn">产品详情></div>
40 <div class="banner-btn">在线报价></div> 53 <div class="banner-btn">在线报价></div>
41 </div> 54 </div>
42 </swiper-slide> 55 </swiper-slide> -->
43 <div class="swiper-pagination" slot="pagination"></div> 56 <div class="swiper-pagination" slot="pagination"></div>
44 </swiper> 57 </swiper>
45 </div> 58 </div>
......
...@@ -14,7 +14,7 @@ export default { ...@@ -14,7 +14,7 @@ export default {
14 data() { 14 data() {
15 return { 15 return {
16 key: 'value', 16 key: 'value',
17 type: 1, // 1:手机验证 2:输入密码 17 type: 2, // 1:手机验证 2:输入密码
18 mobileNoType: "hk",// 选择的手机好类型 18 mobileNoType: "hk",// 选择的手机好类型
19 mobileTip: {}, 19 mobileTip: {},
20 mobileOptions: [], 20 mobileOptions: [],
...@@ -324,7 +324,10 @@ export default { ...@@ -324,7 +324,10 @@ export default {
324 // alert("请输入图片验证码") 324 // alert("请输入图片验证码")
325 }, 325 },
326 _showCheckOTPErrTip(msg) { 326 _showCheckOTPErrTip(msg) {
327 this.showModal(msg, "info"); 327 // this.showModal(msg, "info");
328 // let message = this.i18n.register.tips.e5;
329 this.errorTips.p2 = msg;
330
328 // alert(msg); 331 // alert(msg);
329 }, 332 },
330 onRegisterHandler() { 333 onRegisterHandler() {
......