默认提交
Showing
12 changed files
with
98 additions
and
50 deletions
... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
4 | 4 | ||
5 | ## 介绍 | 5 | ## 介绍 |
6 | 6 | ||
7 | 中国平安人寿(香港) 官网 | 7 | 本工程为“中国平安人寿(香港) 官网”前端项目工程。 |
8 | 8 | ||
9 | --- | 9 | --- |
10 | 10 | ||
... | @@ -104,7 +104,7 @@ npm run sandbox | ... | @@ -104,7 +104,7 @@ npm run sandbox |
104 | 104 | ||
105 | #### 样式规范 | 105 | #### 样式规范 |
106 | 106 | ||
107 | - 优先使用 \_var.scss 声明的样式变量 | 107 | - 优先使用 _var.scss 声明的样式变量 |
108 | - font-family 名字顺序 Arial -> Microsoft YaHei | 108 | - font-family 名字顺序 Arial -> Microsoft YaHei |
109 | 109 | ||
110 | #### z-index 权重划分 | 110 | #### z-index 权重划分 |
... | @@ -123,6 +123,8 @@ npm run sandbox | ... | @@ -123,6 +123,8 @@ npm run sandbox |
123 | 123 | ||
124 | - 与 bootstrap 相比,purecss 更为轻量。 | 124 | - 与 bootstrap 相比,purecss 更为轻量。 |
125 | 125 | ||
126 | --- | ||
127 | |||
126 | ## 前后端数据交互 | 128 | ## 前后端数据交互 |
127 | 129 | ||
128 | #### 简述 | 130 | #### 简述 |
... | @@ -176,6 +178,15 @@ npm run sandbox | ... | @@ -176,6 +178,15 @@ npm run sandbox |
176 | 178 | ||
177 | --- | 179 | --- |
178 | 180 | ||
181 | ## 备注 | ||
182 | |||
183 | pages目录下,只有一个空vue文件的目录均为顺应要求临时占坑。 | ||
184 | |||
185 | #### 本地测试账号 | ||
186 | 91249124/ccc123!@# (可能会失效) | ||
187 | |||
188 | --- | ||
189 | |||
179 | ## TODO | 190 | ## TODO |
180 | 191 | ||
181 | - [x] 项目后期需补充 SEO 优化插件 PrerenderSPAPlugin | 192 | - [x] 后期需补充SEO优化,目标页面需讨论协商。 | ... | ... |
... | @@ -9,7 +9,7 @@ let encryptSwitch = process.env.VUE_APP_CONTENT_ENCRYPT_SWITCH; | ... | @@ -9,7 +9,7 @@ let encryptSwitch = process.env.VUE_APP_CONTENT_ENCRYPT_SWITCH; |
9 | let rsa = new JsEncrypt(); | 9 | let rsa = new JsEncrypt(); |
10 | rsa.setPublicKey(key); | 10 | rsa.setPublicKey(key); |
11 | 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(","); | 11 | 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(","); |
12 | 12 | // 生成随机AES秘钥 | |
13 | function randomAesKey() { | 13 | function randomAesKey() { |
14 | let res = ""; | 14 | let res = ""; |
15 | for (let i = 0; i < 16; i++) { | 15 | for (let i = 0; i < 16; i++) { |
... | @@ -19,6 +19,11 @@ function randomAesKey() { | ... | @@ -19,6 +19,11 @@ function randomAesKey() { |
19 | return res; | 19 | return res; |
20 | }; | 20 | }; |
21 | 21 | ||
22 | /** | ||
23 | * 对内容进行加密 | ||
24 | * 结构约定为 {k,v} | ||
25 | * @param {*} obj | ||
26 | */ | ||
22 | function encryptContent(obj) { | 27 | function encryptContent(obj) { |
23 | let aesKey = randomAesKey(); | 28 | let aesKey = randomAesKey(); |
24 | let key = CryptoJS.enc.Utf8.parse(aesKey); | 29 | let key = CryptoJS.enc.Utf8.parse(aesKey); |
... | @@ -36,16 +41,10 @@ function encryptContent(obj) { | ... | @@ -36,16 +41,10 @@ function encryptContent(obj) { |
36 | return result; | 41 | return result; |
37 | }; | 42 | }; |
38 | 43 | ||
39 | // import { | 44 | // function Toast(msg) { |
40 | // Toast | 45 | // console.log("msg:", msg); |
41 | // } from 'vant'; | 46 | // } |
42 | |||
43 | function Toast(msg) { | ||
44 | console.log("msg:", msg); | ||
45 | } | ||
46 | 47 | ||
47 | // axios的默认url | ||
48 | // axios.defaults.baseURL = "" | ||
49 | 48 | ||
50 | // 服务器地址 | 49 | // 服务器地址 |
51 | // let base = process.env.REQUEST_DOMAIN || "http://localhost:9101"; | 50 | // let base = process.env.REQUEST_DOMAIN || "http://localhost:9101"; |
... | @@ -57,11 +56,11 @@ if (window.location.href.indexOf("192.168") != -1) { | ... | @@ -57,11 +56,11 @@ if (window.location.href.indexOf("192.168") != -1) { |
57 | baseURL = "https://ow.go.qudone.com"; | 56 | baseURL = "https://ow.go.qudone.com"; |
58 | } | 57 | } |
59 | const axios = axiosIns.create({ | 58 | const axios = axiosIns.create({ |
60 | // baseURL: process.env.VUE_APP_BASE_URL, | ||
61 | baseURL: baseURL, | 59 | baseURL: baseURL, |
62 | timeout: 10000 | 60 | timeout: 10000 |
63 | }) | 61 | }) |
64 | 62 | ||
63 | // 加密模式 | ||
65 | let encryptPattern = [ | 64 | let encryptPattern = [ |
66 | /^\/pingan_hklife_webapi\/policy.*/, | 65 | /^\/pingan_hklife_webapi\/policy.*/, |
67 | /^\/pingan_hklife_webapi\/user.*/, | 66 | /^\/pingan_hklife_webapi\/user.*/, |
... | @@ -70,6 +69,7 @@ let encryptPattern = [ | ... | @@ -70,6 +69,7 @@ let encryptPattern = [ |
70 | /^\/pingan_hklife_webapi\/reset.*/, | 69 | /^\/pingan_hklife_webapi\/reset.*/, |
71 | ] | 70 | ] |
72 | 71 | ||
72 | // 加密接口白名单,上传接口不需要加密 | ||
73 | let encryptWhileList = [ | 73 | let encryptWhileList = [ |
74 | "/pingan_hklife_webapi/policy/idPicUpload", | 74 | "/pingan_hklife_webapi/policy/idPicUpload", |
75 | "/pingan_hklife_webapi/policy/updateIdFileV2", | 75 | "/pingan_hklife_webapi/policy/updateIdFileV2", | ... | ... |
... | @@ -90,6 +90,7 @@ export default { | ... | @@ -90,6 +90,7 @@ export default { |
90 | } | 90 | } |
91 | } | 91 | } |
92 | }, | 92 | }, |
93 | // 获取登陆cid | ||
93 | loadCidIfLogin() { | 94 | loadCidIfLogin() { |
94 | let param = { | 95 | let param = { |
95 | sid: this.userInfo.sid | 96 | sid: this.userInfo.sid |
... | @@ -114,6 +115,7 @@ export default { | ... | @@ -114,6 +115,7 @@ export default { |
114 | this.step = 1; | 115 | this.step = 1; |
115 | }); | 116 | }); |
116 | }, | 117 | }, |
118 | // 校验cid | ||
117 | checkCid() { | 119 | checkCid() { |
118 | let param = { | 120 | let param = { |
119 | cid: this.cid | 121 | cid: this.cid | ... | ... |
1 | /** | ||
2 | * 页面描述:客户服务 | ||
3 | * 承载客户服务的各个菜单页面 | ||
4 | */ | ||
5 | |||
6 | |||
1 | import api from '@/api/api' | 7 | import api from '@/api/api' |
2 | import { | 8 | import { |
3 | httpGet, | 9 | httpGet, |
4 | httpPost | 10 | httpPost |
5 | } from '@/api/fetch-api.js' | 11 | } from '@/api/fetch-api.js' |
6 | 12 | ||
13 | // 联系我们 | ||
7 | import ContactUs from './components/contact-us.vue' | 14 | import ContactUs from './components/contact-us.vue' |
8 | import InsuranceQuery from './components/insurance-query.vue' | 15 | // 缴付保费 |
9 | import reservation from './components/reservation.vue' | ||
10 | import PaymentType from './components/payment-type.vue' | 16 | import PaymentType from './components/payment-type.vue' |
11 | import ComplaintAcceptance from './components/complaint-acceptance.vue' | 17 | // 保单查询 |
12 | import CommonForm from './components/common-form.vue' | 18 | import InsuranceQuery from './components/insurance-query.vue' |
13 | 19 | ||
20 | // 保单变更指引 | ||
14 | import PolicyChangeGuide from './components/policy-change-guide.vue' | 21 | import PolicyChangeGuide from './components/policy-change-guide.vue' |
22 | // 保单方式变更 | ||
15 | import PolicyChangeContact from './components/policy-change-contact.vue' | 23 | import PolicyChangeContact from './components/policy-change-contact.vue' |
24 | // 客户资料变更 | ||
16 | import PolicyChangeInformation from './components/policy-change-information.vue' | 25 | import PolicyChangeInformation from './components/policy-change-information.vue' |
26 | |||
27 | // 理赔申请 | ||
17 | import Clarms from './components/clarms-comp.vue' | 28 | import Clarms from './components/clarms-comp.vue' |
29 | // 预约服务 | ||
30 | import Reservation from './components/reservation.vue' | ||
31 | // 投诉受理 | ||
32 | import ComplaintAcceptance from './components/complaint-acceptance.vue' | ||
33 | // 常用表格 | ||
34 | import CommonForm from './components/common-form.vue' | ||
35 | |||
18 | 36 | ||
19 | export default { | 37 | export default { |
20 | data() { | 38 | data() { |
... | @@ -36,7 +54,7 @@ export default { | ... | @@ -36,7 +54,7 @@ export default { |
36 | if (a == "m4") { | 54 | if (a == "m4") { |
37 | a = "m41" | 55 | a = "m41" |
38 | } | 56 | } |
39 | if(a == "m5"){ | 57 | if (a == "m5") { |
40 | this.$router.push({ | 58 | this.$router.push({ |
41 | path: "/clarms", | 59 | path: "/clarms", |
42 | query: {} | 60 | query: {} |
... | @@ -61,7 +79,7 @@ export default { | ... | @@ -61,7 +79,7 @@ export default { |
61 | }, | 79 | }, |
62 | created() { | 80 | created() { |
63 | let activity = this.$route.query.q; | 81 | let activity = this.$route.query.q; |
64 | if(activity == "m5"){ | 82 | if (activity == "m5") { |
65 | this.$router.push({ | 83 | this.$router.push({ |
66 | path: "/clarms", | 84 | path: "/clarms", |
67 | query: {} | 85 | query: {} |
... | @@ -73,7 +91,7 @@ export default { | ... | @@ -73,7 +91,7 @@ export default { |
73 | components: { | 91 | components: { |
74 | ContactUs, | 92 | ContactUs, |
75 | InsuranceQuery, | 93 | InsuranceQuery, |
76 | reservation, | 94 | Reservation, |
77 | PaymentType, | 95 | PaymentType, |
78 | ComplaintAcceptance, | 96 | ComplaintAcceptance, |
79 | CommonForm, | 97 | CommonForm, | ... | ... |
1 | /** | ||
2 | * 页面描述:登陆页面 | ||
3 | * | ||
4 | */ | ||
5 | |||
6 | |||
1 | import { | 7 | import { |
2 | mapGetters, | 8 | mapGetters, |
3 | mapActions, | 9 | mapActions, |
... | @@ -161,18 +167,11 @@ export default { | ... | @@ -161,18 +167,11 @@ export default { |
161 | this.modalSimpleVisiable = false; | 167 | this.modalSimpleVisiable = false; |
162 | this.modalProtocolVisiable = false; | 168 | this.modalProtocolVisiable = false; |
163 | }, | 169 | }, |
164 | onCheckHandler() { | 170 | onCheckHandler() {}, |
165 | |||
166 | }, | ||
167 | onProtocolHandler() { | 171 | onProtocolHandler() { |
168 | this.modalProtocolVisiable = true; | 172 | this.modalProtocolVisiable = true; |
169 | // this.$router.push({ | ||
170 | // path: "/protocol" | ||
171 | // }) | ||
172 | }, | ||
173 | onSubmitHandler() { | ||
174 | |||
175 | }, | 173 | }, |
174 | onSubmitHandler() {}, | ||
176 | toRegisterPage() { | 175 | toRegisterPage() { |
177 | this.$router.push({ | 176 | this.$router.push({ |
178 | path: "/register" | 177 | path: "/register" |
... | @@ -197,6 +196,7 @@ export default { | ... | @@ -197,6 +196,7 @@ export default { |
197 | this.mobileOptions = mobileOptions; | 196 | this.mobileOptions = mobileOptions; |
198 | this.mobileTip = this.mobileOptions[0]; | 197 | this.mobileTip = this.mobileOptions[0]; |
199 | }, | 198 | }, |
199 | // 获取并判断是否显示图形验证码 | ||
200 | handlerIsShowImageVcode() { | 200 | handlerIsShowImageVcode() { |
201 | return new Promise((resolve, reject) => { | 201 | return new Promise((resolve, reject) => { |
202 | httpPost({ | 202 | httpPost({ |
... | @@ -260,6 +260,7 @@ export default { | ... | @@ -260,6 +260,7 @@ export default { |
260 | } | 260 | } |
261 | return true; | 261 | return true; |
262 | }, | 262 | }, |
263 | // 登陆 | ||
263 | selfLogin() { | 264 | selfLogin() { |
264 | if (this.pwdLoginDisabled) { | 265 | if (this.pwdLoginDisabled) { |
265 | return; | 266 | return; |
... | @@ -295,8 +296,8 @@ export default { | ... | @@ -295,8 +296,8 @@ export default { |
295 | }) | 296 | }) |
296 | 297 | ||
297 | }, | 298 | }, |
298 | _passwordLogin() { | ||
299 | // 刷新图形二维码 | 299 | // 刷新图形二维码 |
300 | _passwordLogin() { | ||
300 | if (!this.loginForm.userId) { | 301 | if (!this.loginForm.userId) { |
301 | this._showEmptyInputTips(); | 302 | this._showEmptyInputTips(); |
302 | return; | 303 | return; |
... | @@ -392,6 +393,7 @@ export default { | ... | @@ -392,6 +393,7 @@ export default { |
392 | path: path | 393 | path: path |
393 | }); | 394 | }); |
394 | }, | 395 | }, |
396 | // opt登陆 | ||
395 | _otpLogin() { | 397 | _otpLogin() { |
396 | this._checkOptParams().then(() => { | 398 | this._checkOptParams().then(() => { |
397 | let data = { | 399 | let data = { |
... | @@ -461,6 +463,7 @@ export default { | ... | @@ -461,6 +463,7 @@ export default { |
461 | }); | 463 | }); |
462 | }); | 464 | }); |
463 | }, | 465 | }, |
466 | // 刷新 | ||
464 | handlerRefreshImageValue() { | 467 | handlerRefreshImageValue() { |
465 | httpPost({ | 468 | httpPost({ |
466 | url: api.stdRefreshVcode, | 469 | url: api.stdRefreshVcode, | ... | ... |
1 | /** | ||
2 | * 页面描述:VHIS产品页面 | ||
3 | */ | ||
4 | |||
5 | |||
1 | import api from '@/api/api' | 6 | import api from '@/api/api' |
2 | import { | 7 | import { |
3 | httpGet, | 8 | httpGet, |
... | @@ -94,14 +99,9 @@ export default { | ... | @@ -94,14 +99,9 @@ export default { |
94 | break; | 99 | break; |
95 | } | 100 | } |
96 | }, | 101 | }, |
102 | // 初始化视频组件 | ||
97 | refreshVideoPlayer(videoUrl, posterUrl) { | 103 | refreshVideoPlayer(videoUrl, posterUrl) { |
98 | // let videoUrl = sessionStorage.getItem("_video_url"); | ||
99 | // let posterUrl = sessionStorage.getItem("_poster_url"); | ||
100 | let playerOptions = { | 104 | let playerOptions = { |
101 | // width: 800, | ||
102 | // height: 450, | ||
103 | // width: 1200, | ||
104 | // height: 675, | ||
105 | aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3") | 105 | aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3") |
106 | autoplay: false, //如果true,浏览器准备好时开始回放。 | 106 | autoplay: false, //如果true,浏览器准备好时开始回放。 |
107 | muted: true, // 默认情况下将会消除任何音频。 | 107 | muted: true, // 默认情况下将会消除任何音频。 |
... | @@ -109,9 +109,7 @@ export default { | ... | @@ -109,9 +109,7 @@ export default { |
109 | // playbackRates: [0.7, 1.0, 1.5, 2.0],//播放速度 | 109 | // playbackRates: [0.7, 1.0, 1.5, 2.0],//播放速度 |
110 | sources: [{ | 110 | sources: [{ |
111 | type: "video/mp4", | 111 | type: "video/mp4", |
112 | // mp4 | ||
113 | src: videoUrl, | 112 | src: videoUrl, |
114 | // webm | ||
115 | // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm" | 113 | // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm" |
116 | }], | 114 | }], |
117 | poster: posterUrl, | 115 | poster: posterUrl, |
... | @@ -146,18 +144,15 @@ export default { | ... | @@ -146,18 +144,15 @@ export default { |
146 | element.showMore = false; | 144 | element.showMore = false; |
147 | }); | 145 | }); |
148 | } | 146 | } |
149 | // console.log("productList:", productList); | ||
150 | this.productList = productList; | 147 | this.productList = productList; |
151 | }, | 148 | }, |
152 | onShowMoreHandler(idx) { | 149 | onShowMoreHandler(idx) { |
153 | // console.log("idx:", idx); | ||
154 | let productList = this.productList; | 150 | let productList = this.productList; |
155 | let curProduct = productList[idx]; | 151 | let curProduct = productList[idx]; |
156 | if (curProduct) { | 152 | if (curProduct) { |
157 | curProduct.showMore = !curProduct.showMore; | 153 | curProduct.showMore = !curProduct.showMore; |
158 | } | 154 | } |
159 | this.productList = productList; | 155 | this.productList = productList; |
160 | // console.log("this.productList:", this.productList); | ||
161 | }, | 156 | }, |
162 | initData() { | 157 | initData() { |
163 | this.initProduct(); | 158 | this.initProduct(); |
... | @@ -189,13 +184,6 @@ export default { | ... | @@ -189,13 +184,6 @@ export default { |
189 | this.bottomBtnType = targetData.bottomUrlType; | 184 | this.bottomBtnType = targetData.bottomUrlType; |
190 | this.bottomBtnLink = targetData.bottomUrlLink; | 185 | this.bottomBtnLink = targetData.bottomUrlLink; |
191 | } | 186 | } |
192 | // this.fetchBanner().then(res => { | ||
193 | // this.bannerCandidateList = res; | ||
194 | // this.refreshBanner(); | ||
195 | // }); | ||
196 | // this.fetchIndexVideo().then(res => { | ||
197 | // this.refreshVideoPlayer(); | ||
198 | // }); | ||
199 | }, | 187 | }, |
200 | initActivity() { | 188 | initActivity() { |
201 | let d = localStorage.getItem("voluntaryInfo"); | 189 | let d = localStorage.getItem("voluntaryInfo"); | ... | ... |
-
Please register or sign in to post a comment