1
Showing
24 changed files
with
437 additions
and
173 deletions
... | @@ -4,4 +4,6 @@ VUE_APP_BASE_URL= 'https://ow.go.qudone.com' | ... | @@ -4,4 +4,6 @@ VUE_APP_BASE_URL= 'https://ow.go.qudone.com' |
4 | 4 | ||
5 | 5 | ||
6 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' | 6 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' |
7 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
7 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true | ||
8 | |||
9 | VUE_APP_ONE_ACCOUNT_CENTER_OFF = true | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -5,3 +5,5 @@ VUE_APP_BASE_URL= 'https://ow.go.qudone.com' | ... | @@ -5,3 +5,5 @@ VUE_APP_BASE_URL= 'https://ow.go.qudone.com' |
5 | 5 | ||
6 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' | 6 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' |
7 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true | 7 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true |
8 | |||
9 | VUE_APP_ONE_ACCOUNT_CENTER_OFF = true | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -4,3 +4,5 @@ VUE_APP_BASE_URL= '' | ... | @@ -4,3 +4,5 @@ VUE_APP_BASE_URL= '' |
4 | 4 | ||
5 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' | 5 | VUE_APP_CONTENT_ENCRYPT_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1SNj4qiOEmvTkZfp+Gt0UOLTCdxuEqRE+k0fROhgZdN2GmtDg6jcZV/CXKdwQGGdwOYdxEngRQb2K/SXd5Rnu4MkuAoHopDNrBRVqoJNQi6VOv6fvAEzeYivtS9aMM7IvdZuN1QlASCz2vxfUKJ3BaijMQqQE9m0pVm+0BDEfwIDAQAB' |
6 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true | 6 | VUE_APP_CONTENT_ENCRYPT_SWITCH = true |
7 | |||
8 | VUE_APP_ONE_ACCOUNT_CENTER_OFF = true | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed.
Click to expand it.
... | @@ -21,6 +21,7 @@ module.exports = { | ... | @@ -21,6 +21,7 @@ module.exports = { |
21 | stdRegister: "/pingan_hklife_webapi/auth/stdRegister", | 21 | stdRegister: "/pingan_hklife_webapi/auth/stdRegister", |
22 | // 修改密码 | 22 | // 修改密码 |
23 | changePassword: "/pingan_hklife_webapi/user/password/change", | 23 | changePassword: "/pingan_hklife_webapi/user/password/change", |
24 | changePasswordV2: "/pingan_hklife_webapi/user/password/changeV2", | ||
24 | // 短信验证码登录 | 25 | // 短信验证码登录 |
25 | otpLogin: "/pingan_hklife_webapi/user/otpLogin", | 26 | otpLogin: "/pingan_hklife_webapi/user/otpLogin", |
26 | // 短信验证码登录 | 27 | // 短信验证码登录 |
... | @@ -54,8 +55,10 @@ module.exports = { | ... | @@ -54,8 +55,10 @@ module.exports = { |
54 | updatePolicyContanct : "/pingan_hklife_webapi/policy/updateContacts", | 55 | updatePolicyContanct : "/pingan_hklife_webapi/policy/updateContacts", |
55 | // 保单客戶資料變更 | 56 | // 保单客戶資料變更 |
56 | updatePolicyInfo : "/pingan_hklife_webapi/policy/updateInfo", | 57 | updatePolicyInfo : "/pingan_hklife_webapi/policy/updateInfo", |
58 | updatePolicyInfoV2 : "/pingan_hklife_webapi/policy/updatePolicyInfo", | ||
57 | // 证件上传 | 59 | // 证件上传 |
58 | idPicUpload : "/pingan_hklife_webapi/policy/idPicUpload", | 60 | idPicUpload : "/pingan_hklife_webapi/policy/idPicUpload", |
61 | updateIdFileV2 : "/pingan_hklife_webapi/policy/updateIdFileV2", | ||
59 | // 回销回执 | 62 | // 回销回执 |
60 | policyReceipt : "/pingan_hklife_webapi/policy/policyReceipt", | 63 | policyReceipt : "/pingan_hklife_webapi/policy/policyReceipt", |
61 | // 获取电子保单下载code | 64 | // 获取电子保单下载code |
... | @@ -82,5 +85,9 @@ module.exports = { | ... | @@ -82,5 +85,9 @@ module.exports = { |
82 | companyOutline : "/pingan_hklife_webapi/cms/company/outline", | 85 | companyOutline : "/pingan_hklife_webapi/cms/company/outline", |
83 | productInfo : "/pingan_hklife_webapi/cms/product", | 86 | productInfo : "/pingan_hklife_webapi/cms/product", |
84 | 87 | ||
85 | config : "/pingan_hklife_webapi/config" | 88 | config : "/pingan_hklife_webapi/config", |
89 | |||
90 | // 为了香港上线而增加的身份自行管理接口 | ||
91 | doLoginV2 : "/pingan_hklife_webapi/user/loginv2", | ||
92 | doRegisterV2 : "/pingan_hklife_webapi/user/registerv2" | ||
86 | } | 93 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import axiosIns from 'axios'; | 1 | import axiosIns from 'axios'; |
2 | import state from '@/store/state.js'; | 2 | import state from '@/store/state.js'; |
3 | import { SET_USER_INFO } from '@/store/mutations.js'; | ||
3 | import CryptoJS from "crypto-js"; | 4 | import CryptoJS from "crypto-js"; |
4 | import JsEncrypt from "jsencrypt"; | 5 | import JsEncrypt from "jsencrypt"; |
5 | 6 | ||
... | @@ -51,7 +52,7 @@ function Toast(msg) { | ... | @@ -51,7 +52,7 @@ function Toast(msg) { |
51 | // let base = COM.baseUrl; | 52 | // let base = COM.baseUrl; |
52 | // console.log(process.env); | 53 | // console.log(process.env); |
53 | let baseURL = process.env.VUE_APP_BASE_URL; | 54 | let baseURL = process.env.VUE_APP_BASE_URL; |
54 | // let baseURL = "http://localhost:9101"; | 55 | // baseURL = "http://localhost:9101"; |
55 | if (window.location.href.indexOf("192.168") != -1) { | 56 | if (window.location.href.indexOf("192.168") != -1) { |
56 | baseURL = "https://ow.go.qudone.com"; | 57 | baseURL = "https://ow.go.qudone.com"; |
57 | } | 58 | } |
... | @@ -71,6 +72,7 @@ let encryptPattern = [ | ... | @@ -71,6 +72,7 @@ let encryptPattern = [ |
71 | 72 | ||
72 | let encryptWhileList = [ | 73 | let encryptWhileList = [ |
73 | "/pingan_hklife_webapi/policy/idPicUpload", | 74 | "/pingan_hklife_webapi/policy/idPicUpload", |
75 | "/pingan_hklife_webapi/policy/updateIdFileV2", | ||
74 | "/pingan_hklife_webapi/policy/clarmsUpload" | 76 | "/pingan_hklife_webapi/policy/clarmsUpload" |
75 | ] | 77 | ] |
76 | 78 | ||
... | @@ -107,6 +109,9 @@ axios.interceptors.response.use( | ... | @@ -107,6 +109,9 @@ axios.interceptors.response.use( |
107 | if (response.data.code === 200) { | 109 | if (response.data.code === 200) { |
108 | return Promise.resolve(response); | 110 | return Promise.resolve(response); |
109 | } else { | 111 | } else { |
112 | if (response.data.code === 404) { | ||
113 | SET_USER_INFO(state, null); | ||
114 | } | ||
110 | // Toast(response.data.bizMsg); | 115 | // Toast(response.data.bizMsg); |
111 | return Promise.reject(response.data); | 116 | return Promise.reject(response.data); |
112 | } | 117 | } |
... | @@ -129,10 +134,10 @@ axios.interceptors.response.use( | ... | @@ -129,10 +134,10 @@ axios.interceptors.response.use( |
129 | } | 134 | } |
130 | }); | 135 | }); |
131 | break; | 136 | break; |
132 | // 403 token过期 | 137 | // 403 token过期 |
133 | // 登录过期对用户进行提示 | 138 | // 登录过期对用户进行提示 |
134 | // 清除本地token和清空vuex中token对象 | 139 | // 清除本地token和清空vuex中token对象 |
135 | // 跳转登录页面 | 140 | // 跳转登录页面 |
136 | case 403: | 141 | case 403: |
137 | Toast({ | 142 | Toast({ |
138 | message: '登录过期,请重新登录', | 143 | message: '登录过期,请重新登录', |
... | @@ -152,7 +157,7 @@ axios.interceptors.response.use( | ... | @@ -152,7 +157,7 @@ axios.interceptors.response.use( |
152 | }); | 157 | }); |
153 | }, 1000); | 158 | }, 1000); |
154 | break; | 159 | break; |
155 | // 404请求不存在 | 160 | // 404请求不存在 |
156 | case 404: | 161 | case 404: |
157 | Toast({ | 162 | Toast({ |
158 | message: '网络请求不存在', | 163 | message: '网络请求不存在', |
... | @@ -160,7 +165,7 @@ axios.interceptors.response.use( | ... | @@ -160,7 +165,7 @@ axios.interceptors.response.use( |
160 | forbidClick: true | 165 | forbidClick: true |
161 | }); | 166 | }); |
162 | break; | 167 | break; |
163 | // 其他错误,直接抛出错误提示 | 168 | // 其他错误,直接抛出错误提示 |
164 | default: | 169 | default: |
165 | Toast({ | 170 | Toast({ |
166 | message: error.response.data.message, | 171 | message: error.response.data.message, |
... | @@ -248,6 +253,7 @@ export const formdata = params => { | ... | @@ -248,6 +253,7 @@ export const formdata = params => { |
248 | let { | 253 | let { |
249 | url, | 254 | url, |
250 | data, | 255 | data, |
256 | myFormData, | ||
251 | sid, | 257 | sid, |
252 | } = params; | 258 | } = params; |
253 | let headers = { | 259 | let headers = { |
... | @@ -255,15 +261,20 @@ export const formdata = params => { | ... | @@ -255,15 +261,20 @@ export const formdata = params => { |
255 | "Content-Type": "multipart/form-data" | 261 | "Content-Type": "multipart/form-data" |
256 | } | 262 | } |
257 | } | 263 | } |
258 | let formData = new FormData(); //使用formData对象 | 264 | let lastFormData = null |
259 | for (let key in data) { | 265 | if (data) { |
260 | formData.append(key, data[key]); | 266 | lastFormData = new FormData(); //使用formData对象 |
267 | for (let key in data) { | ||
268 | lastFormData.append(key, data[key]); | ||
269 | } | ||
270 | } else { | ||
271 | lastFormData = myFormData; | ||
261 | } | 272 | } |
262 | if (sid) { | 273 | if (sid) { |
263 | let sessionId = state.userInfo && state.userInfo.sid ? state.userInfo.sid : ""; | 274 | let sessionId = state.userInfo && state.userInfo.sid ? state.userInfo.sid : ""; |
264 | headers.headers.sid = sessionId; | 275 | headers.headers.sid = sessionId; |
265 | } | 276 | } |
266 | return axios.post(`${url}`, formData, headers).then(res => res.data); | 277 | return axios.post(`${url}`, lastFormData, headers).then(res => res.data); |
267 | } | 278 | } |
268 | 279 | ||
269 | export const requestDomain = () => { | 280 | export const requestDomain = () => { | ... | ... |
... | @@ -198,6 +198,8 @@ module.exports = { | ... | @@ -198,6 +198,8 @@ module.exports = { |
198 | e3: "Please enter the picture verification code", | 198 | e3: "Please enter the picture verification code", |
199 | e4: "Agree with PingAn Member Service Agreement", | 199 | e4: "Agree with PingAn Member Service Agreement", |
200 | e5: "Invalidate account or password, please re-enter", | 200 | e5: "Invalidate account or password, please re-enter", |
201 | e6: "Your password has been mistyped 4 times. Your account will be locked soon. Please retrieve your password!", | ||
202 | e7: "Your password has been mistyped 5 times. You can't log in again in 24 hours!", | ||
201 | oe0: "Invalidate mobile no. , please re-enter", | 203 | oe0: "Invalidate mobile no. , please re-enter", |
202 | oe1: "Please get SMS verification code first", | 204 | oe1: "Please get SMS verification code first", |
203 | oe2: "Please enter the picture verification code", | 205 | oe2: "Please enter the picture verification code", | ... | ... |
... | @@ -198,6 +198,8 @@ module.exports = { | ... | @@ -198,6 +198,8 @@ module.exports = { |
198 | e3: "請輸入圖像驗證碼", | 198 | e3: "請輸入圖像驗證碼", |
199 | e4: "請同意《平安賬戶會員服務協議》", | 199 | e4: "請同意《平安賬戶會員服務協議》", |
200 | e5: "賬號或密碼不正確", | 200 | e5: "賬號或密碼不正確", |
201 | e6: "您的密碼已輸錯4次,帳戶即將被鎖定,請找回密碼!", | ||
202 | e7: "您的密碼已輸錯5次,24小時內無法再登入!", | ||
201 | oe0: "請輸入正確的手機號", | 203 | oe0: "請輸入正確的手機號", |
202 | oe1: "請先獲取短信驗證碼", | 204 | oe1: "請先獲取短信驗證碼", |
203 | oe2: "請輸入圖片驗證碼", | 205 | oe2: "請輸入圖片驗證碼", | ... | ... |
... | @@ -198,6 +198,8 @@ module.exports = { | ... | @@ -198,6 +198,8 @@ module.exports = { |
198 | e3: "请输入图像验证码", | 198 | e3: "请输入图像验证码", |
199 | e4: "请同意《平安账户会员服务协议》", | 199 | e4: "请同意《平安账户会员服务协议》", |
200 | e5: "账号或密码不正确", | 200 | e5: "账号或密码不正确", |
201 | e6: "您的密码已输错4次,账户即将被锁定,请找回密码!", | ||
202 | e7: "您的密码已输错5次, 24小时内无法再登录!", | ||
201 | oe0: "请输入正确的手机号", | 203 | oe0: "请输入正确的手机号", |
202 | oe1: "请先获取短信验证码", | 204 | oe1: "请先获取短信验证码", |
203 | oe2: "请输入图片验证码", | 205 | oe2: "请输入图片验证码", | ... | ... |
... | @@ -25,10 +25,10 @@ export default { | ... | @@ -25,10 +25,10 @@ export default { |
25 | loading: false, | 25 | loading: false, |
26 | showTips: false, | 26 | showTips: false, |
27 | data: { | 27 | data: { |
28 | // firstName: "玛丽", | 28 | // firstName: "珊珊", |
29 | // lastName: "何", | 29 | // lastName: "王", |
30 | // birthDate: "15-07-1999", | 30 | // birthDate: "01-01-2000", |
31 | // idNo: "H4099030", | 31 | // idNo: "84555455", |
32 | // idType: "40" | 32 | // idType: "40" |
33 | 33 | ||
34 | firstName: "", | 34 | firstName: "", | ... | ... |
... | @@ -73,23 +73,43 @@ export default { | ... | @@ -73,23 +73,43 @@ export default { |
73 | overlay: { | 73 | overlay: { |
74 | type: Function, | 74 | type: Function, |
75 | default: null | 75 | default: null |
76 | }, | ||
77 | showType: { | ||
78 | type: String, | ||
79 | default: "owner" | ||
76 | } | 80 | } |
77 | }, | 81 | }, |
78 | data() { | 82 | data() { |
79 | return { | 83 | return { |
80 | key: 'value', | 84 | key: 'value', |
81 | frontPicSrc: null, | 85 | ownerFrontPicSrc: null, |
82 | backPicSrc: null, | 86 | ownerBackPicSrc: null, |
83 | frontPicFile: null, | 87 | ownerFrontPicFile: null, |
84 | backPicFile: null | 88 | ownerBackPicFile: null, |
89 | |||
90 | insuredFrontPicSrc: null, | ||
91 | insuredBackPicSrc: null, | ||
92 | insuredFrontPicFile: null, | ||
93 | insuredBackPicFile: null | ||
85 | } | 94 | } |
86 | }, | 95 | }, |
87 | components: {}, | 96 | components: {}, |
88 | computed: { | 97 | computed: { |
89 | submitBtnDisabled() { | 98 | submitBtnDisabled() { |
90 | let b1 = this.frontPicFile ? false : true; | 99 | let b = false; |
91 | let b2 = this.backPicFile ? false : true; | 100 | if (this.showType == "owner" || this.showType == "both") { |
92 | return b1 || b2; | 101 | let b1 = this.ownerFrontPicSrc ? false : true; |
102 | let b2 = this.ownerBackPicSrc ? false : true; | ||
103 | b = b1 || b2; | ||
104 | } | ||
105 | |||
106 | if (this.showType == "insured" || this.showType == "both") { | ||
107 | let b3 = this.insuredFrontPicSrc ? false : true; | ||
108 | let b4 = this.insuredBackPicSrc ? false : true; | ||
109 | |||
110 | b = b || b3 || b4; | ||
111 | } | ||
112 | return b; | ||
93 | } | 113 | } |
94 | }, | 114 | }, |
95 | methods: { | 115 | methods: { |
... | @@ -98,7 +118,13 @@ export default { | ... | @@ -98,7 +118,13 @@ export default { |
98 | if (this.submitBtnDisabled) { | 118 | if (this.submitBtnDisabled) { |
99 | return; | 119 | return; |
100 | } | 120 | } |
101 | this.$emit("onSubmit", { front: this.frontPicFile, back: this.backPicFile }); | 121 | |
122 | this.$emit("onSubmit", { | ||
123 | ownerFrontPicFile: this.ownerFrontPicFile, | ||
124 | ownerBackPicFile: this.ownerBackPicFile, | ||
125 | insuredFrontPicFile: this.insuredFrontPicFile, | ||
126 | insuredBackPicFile: this.insuredBackPicFile | ||
127 | }); | ||
102 | }, | 128 | }, |
103 | handlePicSelect(type) { | 129 | handlePicSelect(type) { |
104 | let _this = this; | 130 | let _this = this; |
... | @@ -108,17 +134,35 @@ export default { | ... | @@ -108,17 +134,35 @@ export default { |
108 | input.onchange = function (val) { | 134 | input.onchange = function (val) { |
109 | var reader = new FileReader(); | 135 | var reader = new FileReader(); |
110 | reader.onload = function (e) { | 136 | reader.onload = function (e) { |
111 | if (type == 'front') { | 137 | switch (type) { |
112 | _this.$set(_this, 'frontPicSrc', reader.result); | 138 | case "ownerFront": |
113 | } else { | 139 | _this.$set(_this, 'ownerFrontPicSrc', reader.result); |
114 | _this.$set(_this, 'backPicSrc', reader.result); | 140 | break; |
141 | case "ownerBack": | ||
142 | _this.$set(_this, 'ownerBackPicSrc', reader.result); | ||
143 | break; | ||
144 | case "insuredFront": | ||
145 | _this.$set(_this, 'insuredFrontPicSrc', reader.result); | ||
146 | break; | ||
147 | case "insuredBack": | ||
148 | _this.$set(_this, 'insuredBackPicSrc', reader.result); | ||
149 | break; | ||
115 | } | 150 | } |
116 | } | 151 | } |
117 | let file = input.files[0]; | 152 | let file = input.files[0]; |
118 | if (type == 'front') { | 153 | switch (type) { |
119 | _this.$set(_this, 'frontPicFile', file); | 154 | case "ownerFront": |
120 | } else { | 155 | _this.$set(_this, 'ownerFrontPicFile', file); |
121 | _this.$set(_this, 'backPicFile', file); | 156 | break; |
157 | case "ownerBack": | ||
158 | _this.$set(_this, 'ownerBackPicFile', file); | ||
159 | break; | ||
160 | case "insuredFront": | ||
161 | _this.$set(_this, 'insuredFrontPicFile', file); | ||
162 | break; | ||
163 | case "insuredBack": | ||
164 | _this.$set(_this, 'insuredBackPicFile', file); | ||
165 | break; | ||
122 | } | 166 | } |
123 | reader.readAsDataURL(file); | 167 | reader.readAsDataURL(file); |
124 | }; | 168 | }; |
... | @@ -144,5 +188,6 @@ export default { | ... | @@ -144,5 +188,6 @@ export default { |
144 | } | 188 | } |
145 | }, | 189 | }, |
146 | mounted() { }, | 190 | mounted() { }, |
147 | created() { } | 191 | created() { |
192 | } | ||
148 | } | 193 | } | ... | ... |
... | @@ -7,15 +7,28 @@ | ... | @@ -7,15 +7,28 @@ |
7 | {{$t('form.modalUploadCard.tit')}} | 7 | {{$t('form.modalUploadCard.tit')}} |
8 | <img @click="onCloseHandler()" class="close-btn pointer" :src="require('@assets/images/common/icon-modal-simple-close.png')"> | 8 | <img @click="onCloseHandler()" class="close-btn pointer" :src="require('@assets/images/common/icon-modal-simple-close.png')"> |
9 | </div> | 9 | </div> |
10 | <div class="modal-content"> | 10 | |
11 | <div class="modal-content" v-if="showType == 'owner' || showType == 'both'"> | ||
12 | <div class="gird-g upload"> | ||
13 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> | ||
14 | <div class="tit"> {{$t('policyChangeInformation.owner')}} {{$t('form.modalUploadCard.front')}}</div> | ||
15 | <img class="poster pointer" :src="ownerFrontPicSrc || require('@assets/images/common/card-front.png')" alt="" @click="handlePicSelect('ownerFront')"> | ||
16 | </div> | ||
17 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> | ||
18 | <div class="tit"> {{$t('policyChangeInformation.owner')}} {{$t('form.modalUploadCard.back')}}</div> | ||
19 | <img class="poster pointer" :src="ownerBackPicSrc || require('@assets/images/common/card-back.png')" alt="" @click="handlePicSelect('ownerBack')"> | ||
20 | </div> | ||
21 | </div> | ||
22 | </div> | ||
23 | <div class="modal-content" v-if="showType == 'insured' || showType == 'both'"> | ||
11 | <div class="gird-g upload"> | 24 | <div class="gird-g upload"> |
12 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> | 25 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> |
13 | <div class="tit"> {{$t('form.modalUploadCard.front')}}</div> | 26 | <div class="tit"> {{$t('policyChangeInformation.insured')}} {{$t('form.modalUploadCard.front')}}</div> |
14 | <img class="poster pointer" :src="frontPicSrc || require('@assets/images/common/card-front.png')" alt="" @click="handlePicSelect('front')"> | 27 | <img class="poster pointer" :src="insuredFrontPicSrc || require('@assets/images/common/card-front.png')" alt="" @click="handlePicSelect('insuredFront')"> |
15 | </div> | 28 | </div> |
16 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> | 29 | <div class="pure-u-1 pure-u-md-1-2 upload-item"> |
17 | <div class="tit"> {{$t('form.modalUploadCard.back')}}</div> | 30 | <div class="tit"> {{$t('policyChangeInformation.insured')}} {{$t('form.modalUploadCard.back')}}</div> |
18 | <img class="poster pointer" :src="backPicSrc || require('@assets/images/common/card-back.png')" alt="" @click="handlePicSelect('back')"> | 31 | <img class="poster pointer" :src="insuredBackPicSrc || require('@assets/images/common/card-back.png')" alt="" @click="handlePicSelect('insuredBack')"> |
19 | </div> | 32 | </div> |
20 | </div> | 33 | </div> |
21 | </div> | 34 | </div> | ... | ... |
1 | 1 | ||
2 | <template> | 2 | <template> |
3 | <div class="comp" v-if="policyDetail && showPolicy"> | 3 | <div> |
4 | <modal2-comp :visible="showSuccessTip" :close="()=>{showSuccessTip = false}" :content="$t('vhis.tip6')" :target="$t('vhis.tip7')" @targetCallbak="toTarget"></modal2-comp> | 4 | <div class="comp" v-if="policyDetail && showPolicy"> |
5 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')" ></modal2-comp> | 5 | <div @click="handleIgnorePolicy" class="overlay"></div> |
6 | <div @click="handleIgnorePolicy" class="overlay"></div> | 6 | <div class="border"> |
7 | <div class="border"> | 7 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> |
8 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> | 8 | <div class="modal"> |
9 | <div class="modal"> | 9 | <div class="content"> |
10 | <div class="content"> | 10 | <div class="title">{{$t('vhis.title')}}{{$t('vhis.titleAft')}}</div> |
11 | <div class="title">{{$t('vhis.title')}}{{$t('vhis.titleAft')}}</div> | 11 | <div class="statement"> |
12 | <div class="statement"> | 12 | <div class="desc orange" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc1')}}</div> |
13 | <div class="desc orange" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc1')}}</div> | 13 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc2')}}</div> |
14 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc2')}}</div> | 14 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc3')}}</div> |
15 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc3')}}</div> | 15 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc4')}}</div> |
16 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc4')}}</div> | 16 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc5')}}</div> |
17 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.desc5')}}</div> | ||
18 | </div> | ||
19 | <hr class="line1"> | ||
20 | <div class="form "> | ||
21 | <div class="form-item"> | ||
22 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label1')}}:</div> | ||
23 | <div class="value orange"> | ||
24 | <span>{{policyDetail.policyCode}}</span> | ||
25 | </div> | ||
26 | </div> | 17 | </div> |
27 | <div class="form-item"> | 18 | <hr class="line1"> |
28 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label2')}}:</div> | 19 | <div class="form "> |
29 | <div class="value orange"> | 20 | <div class="form-item"> |
30 | <span>{{formatPolicyName(policyDetail.productCode,policyDetail.productName)}}</span> | 21 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label1')}}:</div> |
22 | <div class="value orange"> | ||
23 | <span>{{policyDetail.policyCode}}</span> | ||
24 | </div> | ||
31 | </div> | 25 | </div> |
32 | </div> | 26 | <div class="form-item"> |
33 | <div class="form-item"> | 27 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label2')}}:</div> |
34 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label3')}}:</div> | 28 | <div class="value orange"> |
35 | <div class="value"> | 29 | <span>{{formatPolicyName(policyDetail.productCode,policyDetail.productName)}}</span> |
36 | <span class="orange">{{policyDetail.ymd1}}</span> | 30 | </div> |
37 | <span>{{$t('vhis.ymd1')}}</span> | ||
38 | <span class="orange">{{policyDetail.ymd2}}</span> | ||
39 | <span>{{$t('vhis.ymd2')}}</span> | ||
40 | <span class="orange">{{policyDetail.ymd3}}</span> | ||
41 | <span>{{$t('vhis.ymd3')}}</span> | ||
42 | </div> | 31 | </div> |
43 | </div> | 32 | <div class="form-item"> |
44 | <div class="form-item"> | 33 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label3')}}:</div> |
45 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label4')}}:</div> | 34 | <div class="value"> |
46 | <div class="value orange"> | 35 | <span class="orange">{{policyDetail.ymd1}}</span> |
47 | <template v-if="locale == 'en'"> | 36 | <span>{{$t('vhis.ymd1')}}</span> |
48 | <span>{{policyDetail.clientNameEn ? policyDetail.clientNameEn : policyDetail.clientNameCn}}</span> | 37 | <span class="orange">{{policyDetail.ymd2}}</span> |
49 | </template> | 38 | <span>{{$t('vhis.ymd2')}}</span> |
50 | <template v-else> | 39 | <span class="orange">{{policyDetail.ymd3}}</span> |
51 | <span>{{policyDetail.clientNameCn ? policyDetail.clientNameCn : policyDetail.clientNameEn}}</span> | 40 | <span>{{$t('vhis.ymd3')}}</span> |
52 | </template> | 41 | </div> |
53 | </div> | 42 | </div> |
54 | </div> | 43 | <div class="form-item"> |
55 | <div class="form-item"> | 44 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label4')}}:</div> |
56 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label5')}}:</div> | 45 | <div class="value orange"> |
57 | <div class="value orange"> | 46 | <template v-if="locale == 'en'"> |
58 | <template v-if="locale == 'en'"> | 47 | <span>{{policyDetail.clientNameEn ? policyDetail.clientNameEn : policyDetail.clientNameCn}}</span> |
59 | <span>{{policyDetail.insuredNameEn ? policyDetail.insuredNameEn : policyDetail.insuredNameCn}}</span> | 48 | </template> |
60 | </template> | 49 | <template v-else> |
61 | <template v-else> | 50 | <span>{{policyDetail.clientNameCn ? policyDetail.clientNameCn : policyDetail.clientNameEn}}</span> |
62 | <span>{{policyDetail.insuredNameCn ? policyDetail.insuredNameCn : policyDetail.insuredNameEn}}</span> | 51 | </template> |
63 | </template> | 52 | </div> |
64 | </div> | 53 | </div> |
65 | </div> | 54 | <div class="form-item"> |
66 | 55 | <div class="desc" :class="{'ltr-zero':locale == 'en'}">{{$t('vhis.label5')}}:</div> | |
67 | </div> | 56 | <div class="value orange"> |
68 | <div class="download"> | 57 | <template v-if="locale == 'en'"> |
69 | <div class="border2 download-item" @click="downloadPolicy"> | 58 | <span>{{policyDetail.insuredNameEn ? policyDetail.insuredNameEn : policyDetail.insuredNameCn}}</span> |
70 | <div class="cont"> | 59 | </template> |
71 | <img class="icon" src="@/assets/images/vhis/vhis-download.png"> | 60 | <template v-else> |
72 | <span class="t1">{{$t('vhis.btn1')}}</span> | 61 | <span>{{policyDetail.insuredNameCn ? policyDetail.insuredNameCn : policyDetail.insuredNameEn}}</span> |
62 | </template> | ||
63 | </div> | ||
73 | </div> | 64 | </div> |
65 | |||
74 | </div> | 66 | </div> |
75 | </div> | 67 | <div class="download"> |
76 | <hr class="line1"> | 68 | <div class="border2 download-item" @click="downloadPolicy"> |
77 | <div class="bottom-wrap "> | 69 | <div class="cont"> |
78 | <div class="notice" :class="{'ltz':locale == 'en'}"> | 70 | <img class="icon" src="@/assets/images/vhis/vhis-download.png"> |
79 | <span>{{$t('vhis.tip1')}}</span> | 71 | <span class="t1">{{$t('vhis.btn1')}}</span> |
80 | <span class="orange"> | 72 | </div> |
81 | <template v-if="locale == 'en'"> | ||
82 | {{policyDetail.clientNameEn ? policyDetail.clientNameEn : policyDetail.clientNameCn}} | ||
83 | </template> | ||
84 | <template v-else> | ||
85 | {{policyDetail.clientNameCn ? policyDetail.clientNameCn : policyDetail.clientNameEn}} | ||
86 | </template> | ||
87 | </span> | ||
88 | <span>{{$t('vhis.tip2')}}</span> | ||
89 | <span class="orange">{{policyDetail.nowYmd1}}</span> | ||
90 | <span>{{$t('vhis.ymd1')}}</span> | ||
91 | <span class="orange">{{policyDetail.nowYmd2}}</span> | ||
92 | <span>{{$t('vhis.ymd2')}}</span> | ||
93 | <span class="orange">{{policyDetail.nowYmd3}}</span> | ||
94 | <span>{{$t('vhis.ymd3')}}{{$t('vhis.tip3')}}</span> | ||
95 | </div> | ||
96 | <div class="btn-wrap"> | ||
97 | <div class="submit-btn flex-center " @click="handleConfirmPolicy"> | ||
98 | <van-loading v-if="loading" /> | ||
99 | {{$t('vhis.btn2')}} | ||
100 | </div> | 73 | </div> |
101 | <div class="submit-btn " @click="handleIgnorePolicy">{{$t('vhis.btn3')}}</div> | ||
102 | </div> | 74 | </div> |
103 | <div class="flex-center contact"> | 75 | <hr class="line1"> |
104 | {{$t('vhis.tip4')}} | 76 | <div class="bottom-wrap "> |
105 | <span class="pointer" @click="toContact()">{{$t('vhis.tip5')}}</span> | 77 | <div class="notice" :class="{'ltz':locale == 'en'}"> |
78 | <span>{{$t('vhis.tip1')}}</span> | ||
79 | <span class="orange"> | ||
80 | <template v-if="locale == 'en'"> | ||
81 | {{policyDetail.clientNameEn ? policyDetail.clientNameEn : policyDetail.clientNameCn}} | ||
82 | </template> | ||
83 | <template v-else> | ||
84 | {{policyDetail.clientNameCn ? policyDetail.clientNameCn : policyDetail.clientNameEn}} | ||
85 | </template> | ||
86 | </span> | ||
87 | <span>{{$t('vhis.tip2')}}</span> | ||
88 | <span class="orange">{{policyDetail.nowYmd1}}</span> | ||
89 | <span>{{$t('vhis.ymd1')}}</span> | ||
90 | <span class="orange">{{policyDetail.nowYmd2}}</span> | ||
91 | <span>{{$t('vhis.ymd2')}}</span> | ||
92 | <span class="orange">{{policyDetail.nowYmd3}}</span> | ||
93 | <span>{{$t('vhis.ymd3')}}{{$t('vhis.tip3')}}</span> | ||
94 | </div> | ||
95 | <div class="btn-wrap"> | ||
96 | <div class="submit-btn flex-center " @click="handleConfirmPolicy"> | ||
97 | <van-loading v-if="loading" /> | ||
98 | {{$t('vhis.btn2')}} | ||
99 | </div> | ||
100 | <div class="submit-btn " @click="handleIgnorePolicy">{{$t('vhis.btn3')}}</div> | ||
101 | </div> | ||
102 | <div class="flex-center contact"> | ||
103 | {{$t('vhis.tip4')}} | ||
104 | <span class="pointer" @click="toContact()">{{$t('vhis.tip5')}}</span> | ||
105 | </div> | ||
106 | </div> | 106 | </div> |
107 | </div> | 107 | </div> |
108 | </div> | ||
109 | 108 | ||
109 | </div> | ||
110 | </div> | 110 | </div> |
111 | |||
111 | </div> | 112 | </div> |
112 | 113 | ||
114 | <modal2-comp :visible="showSuccessTip" :close="()=>{showSuccessTip = false}" :content="$t('vhis.tip6')" :target="$t('vhis.tip7')" @targetCallbak="toTarget"></modal2-comp> | ||
115 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')" ></modal2-comp> | ||
113 | </div> | 116 | </div> |
114 | </template> | 117 | </template> |
115 | 118 | ... | ... |
... | @@ -99,7 +99,8 @@ function initQueryConfig() { | ... | @@ -99,7 +99,8 @@ function initQueryConfig() { |
99 | PK: rsaKey1, | 99 | PK: rsaKey1, |
100 | E: rsaKeyIndex1, | 100 | E: rsaKeyIndex1, |
101 | vhis: vhis1, | 101 | vhis: vhis1, |
102 | policies: policies | 102 | policies: policies, |
103 | oneAccountCenterOff: process.env.VUE_APP_ONE_ACCOUNT_CENTER_OFF == "true" ? true : false | ||
103 | }; | 104 | }; |
104 | 105 | ||
105 | httpGet({ | 106 | httpGet({ | ... | ... |
This diff is collapsed.
Click to expand it.
... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
2 | <template> | 2 | <template> |
3 | <div> | 3 | <div> |
4 | <auth @onLogin="userLogin" @onLogout="userLogout" :checkProfile="true" ref="auth" :tipModel="'m2'"></auth> | 4 | <auth @onLogin="userLogin" @onLogout="userLogout" :checkProfile="true" ref="auth" :tipModel="'m2'"></auth> |
5 | <modal-upload-card-comp :visible="modalUploadCardVisiable" :show-confirm="true" @close="modalUploadCardVisiable=false" @onSubmit="handleUpdatePolicyWithFile"></modal-upload-card-comp> | 5 | <modal-upload-card-comp v-if="modalUploadCardVisiable" :visible="modalUploadCardVisiable" :showType="showType" :show-confirm="true" @close="modalUploadCardVisiable=false" @onSubmit="handleUpdatePolicyWithFile"></modal-upload-card-comp> |
6 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> | 6 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> |
7 | <template v-if="showForm"> | 7 | <template v-if="showForm"> |
8 | 8 | ||
... | @@ -29,7 +29,8 @@ | ... | @@ -29,7 +29,8 @@ |
29 | <div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-info.png"></div> {{$t('policyChangeInformation.name')}} | 29 | <div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-info.png"></div> {{$t('policyChangeInformation.name')}} |
30 | </div> | 30 | </div> |
31 | <div class="ipt-wrap"> | 31 | <div class="ipt-wrap"> |
32 | <input class="ipt" type="text" v-model="data.name"> | 32 | <input v-if="locale == 'en'" class="ipt" type="text" v-model="data.nameEn"> |
33 | <input v-else class="ipt" type="text" v-model="data.nameCn"> | ||
33 | </div> | 34 | </div> |
34 | </div> | 35 | </div> |
35 | 36 | ... | ... |
... | @@ -226,7 +226,7 @@ export default { | ... | @@ -226,7 +226,7 @@ export default { |
226 | this.initData(); | 226 | this.initData(); |
227 | 227 | ||
228 | setTimeout(() => { | 228 | setTimeout(() => { |
229 | console.log("queryConfigData:", this.$root.queryConfigData); | 229 | // console.log("queryConfigData:", this.$root.queryConfigData); |
230 | // console.log("queryConfigData:", window.vueInstance.queryConfigData); // 挂载到windows的访问方法 | 230 | // console.log("queryConfigData:", window.vueInstance.queryConfigData); // 挂载到windows的访问方法 |
231 | // 放localStorage直接是localStorage.getItem("queryConfig"); | 231 | // 放localStorage直接是localStorage.getItem("queryConfig"); |
232 | }, 3000) | 232 | }, 3000) | ... | ... |
... | @@ -128,6 +128,9 @@ export default { | ... | @@ -128,6 +128,9 @@ export default { |
128 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; | 128 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; |
129 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; | 129 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; |
130 | return b1 || b2; | 130 | return b1 || b2; |
131 | }, | ||
132 | oneAccountCenterOff() { | ||
133 | return window.global.oneAccountCenterOff; | ||
131 | } | 134 | } |
132 | }, | 135 | }, |
133 | methods: { | 136 | methods: { |
... | @@ -181,7 +184,6 @@ export default { | ... | @@ -181,7 +184,6 @@ export default { |
181 | let mobileOptions = JSON.parse(JSON.stringify(this.i18n.register.mobileOptions)); | 184 | let mobileOptions = JSON.parse(JSON.stringify(this.i18n.register.mobileOptions)); |
182 | this.mobileOptions = mobileOptions; | 185 | this.mobileOptions = mobileOptions; |
183 | this.mobileTip = this.mobileOptions[0]; | 186 | this.mobileTip = this.mobileOptions[0]; |
184 | console.log(this.mobileOptions) | ||
185 | }, | 187 | }, |
186 | handlerIsShowImageVcode() { | 188 | handlerIsShowImageVcode() { |
187 | return new Promise((resolve, reject) => { | 189 | return new Promise((resolve, reject) => { |
... | @@ -217,19 +219,55 @@ export default { | ... | @@ -217,19 +219,55 @@ export default { |
217 | // 刷新图形二维码 | 219 | // 刷新图形二维码 |
218 | }, | 220 | }, |
219 | handlerLogin() { | 221 | handlerLogin() { |
220 | if ((this.type == 1 && this.pwdLoginDisabled) || (this.type == 2 && this.otpLoginDisabled)) { | 222 | if (this.oneAccountCenterOff) { |
221 | return; | 223 | this.selfLogin(); |
224 | } else { | ||
225 | if ((this.type == 1 && this.pwdLoginDisabled) || (this.type == 2 && this.otpLoginDisabled)) { | ||
226 | return; | ||
227 | } | ||
228 | this.refreshDeviceId(); | ||
229 | if (!this.loginCheck.agreeProtocol) { | ||
230 | this._showAgreeProtocalTips(); | ||
231 | return; | ||
232 | } | ||
233 | if (this.type == 1) { | ||
234 | this._passwordLogin(); | ||
235 | } else { | ||
236 | this._otpLogin(); | ||
237 | } | ||
222 | } | 238 | } |
223 | this.refreshDeviceId(); | 239 | }, |
224 | if (!this.loginCheck.agreeProtocol) { | 240 | selfLogin() { |
225 | this._showAgreeProtocalTips(); | 241 | if (this.loading) { |
226 | return; | 242 | return; |
227 | } | 243 | } |
228 | if (this.type == 1) { | 244 | this.loading = true; |
229 | this._passwordLogin(); | 245 | let data = { |
230 | } else { | 246 | account: this.loginForm.userId, |
231 | this._otpLogin(); | 247 | password: this.loginForm.password |
232 | } | 248 | }; |
249 | httpPost({ | ||
250 | url: api.doLoginV2, | ||
251 | data: data | ||
252 | }).then(res => { | ||
253 | this.loading = false; | ||
254 | this.$store.commit("SET_USER_INFO", res); | ||
255 | this._redirectTo(); | ||
256 | }).catch(e => { | ||
257 | this.loading = false; | ||
258 | switch (e.code) { | ||
259 | case 404: | ||
260 | this.errorTips.e2 = this.i18n.login.tips.e5; | ||
261 | break; | ||
262 | case 1102: | ||
263 | this.errorTips.e2 = this.i18n.login.tips.e6; | ||
264 | break; | ||
265 | case 1101: | ||
266 | this.errorTips.e2 = this.i18n.login.tips.e7; | ||
267 | break; | ||
268 | } | ||
269 | }) | ||
270 | |||
233 | }, | 271 | }, |
234 | _passwordLogin() { | 272 | _passwordLogin() { |
235 | // 刷新图形二维码 | 273 | // 刷新图形二维码 | ... | ... |
... | @@ -13,16 +13,18 @@ | ... | @@ -13,16 +13,18 @@ |
13 | <div class="box"> | 13 | <div class="box"> |
14 | <!-- 帐密登陆 --> | 14 | <!-- 帐密登陆 --> |
15 | <div v-if="type == 1" class="login"> | 15 | <div v-if="type == 1" class="login"> |
16 | <!-- <div class="login-tit"> | 16 | <template v-if="!oneAccountCenterOff"> |
17 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 17 | <div class="login-tit"> |
18 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 18 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
19 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 19 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
20 | </div> | 20 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
21 | <div class="login-nav"> | 21 | </div> |
22 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> | 22 | <div class="login-nav"> |
23 | <div class="login-nav-v-line"></div> | 23 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> |
24 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> | 24 | <div class="login-nav-v-line"></div> |
25 | </div> --> | 25 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> |
26 | </div> | ||
27 | </template> | ||
26 | <div class="gird-g form"> | 28 | <div class="gird-g form"> |
27 | <div class="pure-u-1 form-item"> | 29 | <div class="pure-u-1 form-item"> |
28 | <div class="label"> | 30 | <div class="label"> |
... | @@ -69,7 +71,7 @@ | ... | @@ -69,7 +71,7 @@ |
69 | </div> | 71 | </div> |
70 | <div class="login-func"> | 72 | <div class="login-func"> |
71 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> | 73 | <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> |
72 | <!-- <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> --> | 74 | <div v-if="!oneAccountCenterOff" @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> |
73 | </div> | 75 | </div> |
74 | </div> | 76 | </div> |
75 | 77 | ... | ... |
... | @@ -10,6 +10,7 @@ import { | ... | @@ -10,6 +10,7 @@ import { |
10 | import Auth from '@components/auth/auth.vue'; | 10 | import Auth from '@components/auth/auth.vue'; |
11 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 11 | import modalComp from '@/components/modal-comp/modal-comp.vue'; |
12 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 12 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; |
13 | import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue'; | ||
13 | import { passwordEncrypt } from '@/utils/encrypt.js'; | 14 | import { passwordEncrypt } from '@/utils/encrypt.js'; |
14 | import Vue from 'vue'; | 15 | import Vue from 'vue'; |
15 | import { Loading } from 'vant'; | 16 | import { Loading } from 'vant'; |
... | @@ -20,6 +21,7 @@ export default { | ... | @@ -20,6 +21,7 @@ export default { |
20 | return { | 21 | return { |
21 | loading: false, | 22 | loading: false, |
22 | showForm: false, | 23 | showForm: false, |
24 | showError: false, | ||
23 | key: 'value', | 25 | key: 'value', |
24 | type: 1, // 1:输入用户信息 2:找回密码 3:核对信息 4.重置密码 | 26 | type: 1, // 1:输入用户信息 2:找回密码 3:核对信息 4.重置密码 |
25 | values: { | 27 | values: { |
... | @@ -65,6 +67,9 @@ export default { | ... | @@ -65,6 +67,9 @@ export default { |
65 | this.modalVisiable = false; | 67 | this.modalVisiable = false; |
66 | this.modalSimpleVisiable = false; | 68 | this.modalSimpleVisiable = false; |
67 | }, | 69 | }, |
70 | oneAccountCenterOff() { | ||
71 | return window.global.oneAccountCenterOff; | ||
72 | }, | ||
68 | resetPwd() { | 73 | resetPwd() { |
69 | if (this.submitBtnDisabled) { | 74 | if (this.submitBtnDisabled) { |
70 | return; | 75 | return; |
... | @@ -94,8 +99,15 @@ export default { | ... | @@ -94,8 +99,15 @@ export default { |
94 | } | 99 | } |
95 | this.loading = true; | 100 | this.loading = true; |
96 | 101 | ||
102 | let url = api.changePassword; | ||
103 | if (this.oneAccountCenterOff) { | ||
104 | url = api.changePasswordV2; | ||
105 | newPwd = this.values.pwd; | ||
106 | oldPwd = this.values.oldPwd; | ||
107 | } | ||
108 | |||
97 | httpPost({ | 109 | httpPost({ |
98 | url: api.changePassword, | 110 | url: url, |
99 | data: { | 111 | data: { |
100 | oldPwd: oldPwd, | 112 | oldPwd: oldPwd, |
101 | newPwd: newPwd | 113 | newPwd: newPwd |
... | @@ -111,8 +123,8 @@ export default { | ... | @@ -111,8 +123,8 @@ export default { |
111 | this.showModal(message, "succ"); | 123 | this.showModal(message, "succ"); |
112 | break | 124 | break |
113 | case "COMMON_ERROR_E0": | 125 | case "COMMON_ERROR_E0": |
114 | message = this.i18n().session.sidExpire; | ||
115 | this.targetPath = "/login?callback=/password/reset"; | 126 | this.targetPath = "/login?callback=/password/reset"; |
127 | message = this.i18n().session.sidExpire; | ||
116 | this.step.error2 = message; | 128 | this.step.error2 = message; |
117 | // this.showModal(message, "info"); | 129 | // this.showModal(message, "info"); |
118 | break; | 130 | break; |
... | @@ -123,10 +135,15 @@ export default { | ... | @@ -123,10 +135,15 @@ export default { |
123 | 135 | ||
124 | }).catch(err => { | 136 | }).catch(err => { |
125 | this.loading = false; | 137 | this.loading = false; |
126 | let message = this.i18n().session.sidExpire; | 138 | if (err.code == 404) { |
127 | this.targetPath = "/login?callback=/password/reset"; | 139 | this.showError = true; |
128 | this.step.error2 = message; | 140 | } |
129 | // this.showModal(message, "info"); | 141 | }); |
142 | }, | ||
143 | sessionLostModalClose() { | ||
144 | this.targetPath = "/login?callback=/password/reset"; | ||
145 | this.$router.push({ | ||
146 | path: this.targetPath | ||
130 | }); | 147 | }); |
131 | }, | 148 | }, |
132 | checkPassword(password) { | 149 | checkPassword(password) { |
... | @@ -162,9 +179,9 @@ export default { | ... | @@ -162,9 +179,9 @@ export default { |
162 | } | 179 | } |
163 | }, | 180 | }, |
164 | userLogout() { | 181 | userLogout() { |
165 | this.$router.push({ | 182 | // this.$router.push({ |
166 | path: "/" | 183 | // path: "/" |
167 | }); | 184 | // }); |
168 | this.showForm = false; | 185 | this.showForm = false; |
169 | }, | 186 | }, |
170 | userLogin(data) { | 187 | userLogin(data) { |
... | @@ -222,6 +239,7 @@ export default { | ... | @@ -222,6 +239,7 @@ export default { |
222 | components: { | 239 | components: { |
223 | modalComp, | 240 | modalComp, |
224 | modalSimpleComp, | 241 | modalSimpleComp, |
225 | Auth | 242 | Auth, |
243 | Modal2Comp | ||
226 | } | 244 | } |
227 | } | 245 | } | ... | ... |
... | @@ -3,6 +3,7 @@ | ... | @@ -3,6 +3,7 @@ |
3 | <div> | 3 | <div> |
4 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="closeModal" :overlay="closeModal" :close="closeModal"></modal-simple-comp> | 4 | <modal-simple-comp :visible="modalSimpleVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="closeModal" :overlay="closeModal" :close="closeModal"></modal-simple-comp> |
5 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> | 5 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> |
6 | <modal2-comp :visible="showError" :close="sessionLostModalClose" :content="$t('glbalTips.sessionLost')" ></modal2-comp> | ||
6 | <div class="ebg"></div> | 7 | <div class="ebg"></div> |
7 | <div class="content"> | 8 | <div class="content"> |
8 | <div class="top-space"></div> | 9 | <div class="top-space"></div> | ... | ... |
... | @@ -87,10 +87,21 @@ export default { | ... | @@ -87,10 +87,21 @@ export default { |
87 | let b4 = !checkVerifyCode(this.registerForm.opt); | 87 | let b4 = !checkVerifyCode(this.registerForm.opt); |
88 | return b1 || b2 || b3 || b4; | 88 | return b1 || b2 || b3 || b4; |
89 | }, | 89 | }, |
90 | registerDisabledV2() { | ||
91 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; | ||
92 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; | ||
93 | let b3 = !this.registerCheck.agreeProtocol; | ||
94 | let b4 = !this.registerForm.mobileNo ? true : false; | ||
95 | return b1 || b2 || b3 || b4; | ||
96 | |||
97 | }, | ||
90 | submitDisabled() { | 98 | submitDisabled() { |
91 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; | 99 | let b1 = !this.values.password || this.checkPassword(this.values.password) ? true : false; |
92 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; | 100 | let b2 = this.values.passwordRepeat != this.values.password ? true : false; |
93 | return b1 || b2; | 101 | return b1 || b2; |
102 | }, | ||
103 | oneAccountCenterOff() { | ||
104 | return window.global.oneAccountCenterOff; | ||
94 | } | 105 | } |
95 | }, | 106 | }, |
96 | methods: { | 107 | methods: { |
... | @@ -255,6 +266,37 @@ export default { | ... | @@ -255,6 +266,37 @@ export default { |
255 | }); | 266 | }); |
256 | }); | 267 | }); |
257 | }, | 268 | }, |
269 | registerV2Handler() { | ||
270 | if (this.registerDisabledV2) { | ||
271 | return; | ||
272 | } | ||
273 | if (this.loading) { | ||
274 | return; | ||
275 | } | ||
276 | this._checkMobileLegal().then(() => { | ||
277 | let data = { | ||
278 | account: this.registerForm.mobileNo, | ||
279 | password: this.values.password | ||
280 | } | ||
281 | this.loading = true; | ||
282 | httpPost({ | ||
283 | url: api.doRegisterV2, | ||
284 | data: data | ||
285 | }).then(res => { | ||
286 | this.loading = false; | ||
287 | this.$store.commit("SET_USER_INFO", res); | ||
288 | this._showSuccessMessage(); | ||
289 | }).catch(e => { | ||
290 | this.loading = false; | ||
291 | switch (e.code) { | ||
292 | case 1103: | ||
293 | let message = this.i18n.register.tips.e5; | ||
294 | this.errorTips.p1 = message; | ||
295 | break; | ||
296 | } | ||
297 | }) | ||
298 | }); | ||
299 | }, | ||
258 | _validateOTPandRepeat() { | 300 | _validateOTPandRepeat() { |
259 | return new Promise((resolve, reject) => { | 301 | return new Promise((resolve, reject) => { |
260 | let data = { | 302 | let data = { | ... | ... |
... | @@ -6,7 +6,7 @@ | ... | @@ -6,7 +6,7 @@ |
6 | <!-- 会员协议 --> | 6 | <!-- 会员协议 --> |
7 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> | 7 | <modal-protocol-comp :visible="modalProtocolVisiable" :overlay="closeModal" :close="closeModal"></modal-protocol-comp> |
8 | <div class="ebg"></div> | 8 | <div class="ebg"></div> |
9 | <div class="content"> | 9 | <div class="content" v-if="!oneAccountCenterOff"> |
10 | <div class="top-space"></div> | 10 | <div class="top-space"></div> |
11 | <div class="step"> | 11 | <div class="step"> |
12 | <img v-if="type == 1" src="@/assets/images/register/register-step-1.png"> | 12 | <img v-if="type == 1" src="@/assets/images/register/register-step-1.png"> |
... | @@ -16,11 +16,11 @@ | ... | @@ -16,11 +16,11 @@ |
16 | <!-- 手机验证 --> | 16 | <!-- 手机验证 --> |
17 | <div v-if="type == 1" class="login"> | 17 | <div v-if="type == 1" class="login"> |
18 | 18 | ||
19 | <!-- <div class="login-tit"> | 19 | <div class="login-tit"> |
20 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 20 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
21 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 21 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
22 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 22 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
23 | </div> --> | 23 | </div> |
24 | <div class="login-tit2">{{$t('register.title')}}</div> | 24 | <div class="login-tit2">{{$t('register.title')}}</div> |
25 | <div class="gird-g form"> | 25 | <div class="gird-g form"> |
26 | <!-- <div class="pure-u-1 form-item"> | 26 | <!-- <div class="pure-u-1 form-item"> |
... | @@ -124,6 +124,74 @@ | ... | @@ -124,6 +124,74 @@ |
124 | </div> | 124 | </div> |
125 | </div> | 125 | </div> |
126 | </div> | 126 | </div> |
127 | |||
128 | <div class="content" v-else> | ||
129 | <div class="top-space"></div> | ||
130 | <div class="box"> | ||
131 | <!-- 手机验证 --> | ||
132 | <div class="login"> | ||
133 | |||
134 | <div class="gird-g form"> | ||
135 | <div class="pure-u-1 form-item"> | ||
136 | |||
137 | <div class="label"> | ||
138 | <img src="@/assets/images/register/icon-register-phone.png"> {{mobileTip.name}} | ||
139 | </div> | ||
140 | <div class="ipt-wrap"> | ||
141 | <div class="region-tel ipt-wrap"> | ||
142 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | ||
143 | <el-select class="ipt" v-model="mobileNoType"> | ||
144 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> | ||
145 | </el-select> | ||
146 | </div> | ||
147 | |||
148 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> | ||
149 | <input :placeholder="mobileTip.placeHolder" class="ipt-tel" type="text" v-model="registerForm.mobileNo"> | ||
150 | </div> | ||
151 | </div> | ||
152 | <div class="validator" v-if="errorTips.p1.length > 0 "> | ||
153 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p1}} | ||
154 | </div> | ||
155 | </div> | ||
156 | |||
157 | <div class="pure-u-1 form-item"> | ||
158 | <div class="label"> | ||
159 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPassword')}} | ||
160 | </div> | ||
161 | <div class="ipt-wrap"> | ||
162 | <input :placeholder="$t('register.newPasswordPlaceholder')" class="ipt" :class="{err : errorTips.p4.length > 0}" type="password" v-model="values.password"> | ||
163 | </div> | ||
164 | <div class="validator" v-if="errorTips.p4.length > 0 "> | ||
165 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p4}} | ||
166 | </div> | ||
167 | </div> | ||
168 | <div class="pure-u-1 form-item"> | ||
169 | <div class="label"> | ||
170 | <img src="@/assets/images/register/icon-register-lock.png"> {{$t('register.newPasswordSure')}} | ||
171 | </div> | ||
172 | <div class="ipt-wrap"> | ||
173 | <input :placeholder="$t('register.newPasswordSurePlaceholder')" class="ipt" :class="{err : errorTips.p5.length > 0}" type="password" v-model="values.passwordRepeat"> | ||
174 | </div> | ||
175 | <div class="validator" v-if="errorTips.p5.length > 0 "> | ||
176 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.p5}} | ||
177 | </div> | ||
178 | </div> | ||
179 | |||
180 | </div> | ||
181 | |||
182 | <div class="login-protocol pointer" @click="registerCheck.agreeProtocol = !registerCheck.agreeProtocol"> | ||
183 | <img v-if="!registerCheck.agreeProtocol" class="check" src="@/assets/images/login/uncheck.png"> | ||
184 | <img v-if="registerCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} | ||
185 | <span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> | ||
186 | </div> | ||
187 | <div @click="registerV2Handler()" class="login-submit pointer flex-center" :class="{disabled: registerDisabledV2}"> | ||
188 | <van-loading v-if="loading" /> | ||
189 | <span>{{$t('register.register')}}</span> | ||
190 | </div> | ||
191 | </div> | ||
192 | |||
193 | </div> | ||
194 | </div> | ||
127 | </div> | 195 | </div> |
128 | </template> | 196 | </template> |
129 | 197 | ... | ... |
-
Please register or sign in to post a comment