1
Showing
24 changed files
with
456 additions
and
81 deletions
... | @@ -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 | ... | ... |
... | @@ -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 | } |
... | @@ -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 |
265 | if (data) { | ||
266 | lastFormData = new FormData(); //使用formData对象 | ||
259 | for (let key in data) { | 267 | for (let key in data) { |
260 | formData.append(key, data[key]); | 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> | ||
3 | <div class="comp" v-if="policyDetail && showPolicy"> | 4 | <div class="comp" v-if="policyDetail && showPolicy"> |
4 | <modal2-comp :visible="showSuccessTip" :close="()=>{showSuccessTip = false}" :content="$t('vhis.tip6')" :target="$t('vhis.tip7')" @targetCallbak="toTarget"></modal2-comp> | ||
5 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')" ></modal2-comp> | ||
6 | <div @click="handleIgnorePolicy" class="overlay"></div> | 5 | <div @click="handleIgnorePolicy" class="overlay"></div> |
7 | <div class="border"> | 6 | <div class="border"> |
8 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> | 7 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> |
... | @@ -111,6 +110,10 @@ | ... | @@ -111,6 +110,10 @@ |
111 | </div> | 110 | </div> |
112 | 111 | ||
113 | </div> | 112 | </div> |
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> | ||
116 | </div> | ||
114 | </template> | 117 | </template> |
115 | 118 | ||
116 | <script src="./vhis-modal.js"></script> | 119 | <script src="./vhis-modal.js"></script> | ... | ... |
... | @@ -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({ | ... | ... |
... | @@ -15,7 +15,7 @@ import DatePicker from '@/components/date-picker/date-picker.vue' | ... | @@ -15,7 +15,7 @@ import DatePicker from '@/components/date-picker/date-picker.vue' |
15 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 15 | import modalComp from '@/components/modal-comp/modal-comp.vue'; |
16 | import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-upload-card-comp.vue'; | 16 | import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-upload-card-comp.vue'; |
17 | import Vue from 'vue'; | 17 | import Vue from 'vue'; |
18 | import { Loading } from 'vant'; | 18 | import { Loading, Field } from 'vant'; |
19 | Vue.use(Loading); | 19 | Vue.use(Loading); |
20 | 20 | ||
21 | export default { | 21 | export default { |
... | @@ -30,6 +30,7 @@ export default { | ... | @@ -30,6 +30,7 @@ export default { |
30 | selectedPolicies: [], | 30 | selectedPolicies: [], |
31 | data: null, | 31 | data: null, |
32 | // 保单信息 | 32 | // 保单信息 |
33 | policyOld: null, | ||
33 | policy: null, | 34 | policy: null, |
34 | // ID证件照引用 | 35 | // ID证件照引用 |
35 | idFront: null, | 36 | idFront: null, |
... | @@ -42,6 +43,8 @@ export default { | ... | @@ -42,6 +43,8 @@ export default { |
42 | modalIcon: "succ", | 43 | modalIcon: "succ", |
43 | modalContent: "", | 44 | modalContent: "", |
44 | showIdNumber: false, | 45 | showIdNumber: false, |
46 | |||
47 | showType: "" | ||
45 | } | 48 | } |
46 | }, | 49 | }, |
47 | components: { | 50 | components: { |
... | @@ -111,24 +114,28 @@ export default { | ... | @@ -111,24 +114,28 @@ export default { |
111 | }).then(res => { | 114 | }).then(res => { |
112 | this.loading = false; | 115 | this.loading = false; |
113 | if (res) { | 116 | if (res) { |
114 | this.policy = res; | 117 | if (res != null) { |
115 | 118 | this.policy = JSON.parse(JSON.stringify(res)); | |
119 | this.policyOld = JSON.parse(JSON.stringify(res)); | ||
116 | this.policy.clientBirthday = this.policy.clientBirthday ? this.policy.clientBirthday.split(" ")[0] : ""; | 120 | this.policy.clientBirthday = this.policy.clientBirthday ? this.policy.clientBirthday.split(" ")[0] : ""; |
117 | this.policy.insuredBirthday = this.policy.insuredBirthday ? this.policy.insuredBirthday.split(" ")[0] : ""; | 121 | this.policy.insuredBirthday = this.policy.insuredBirthday ? this.policy.insuredBirthday.split(" ")[0] : ""; |
122 | this.policyOld.clientBirthday = this.policyOld.clientBirthday ? this.policyOld.clientBirthday.split(" ")[0] : ""; | ||
123 | this.policyOld.insuredBirthday = this.policyOld.insuredBirthday ? this.policyOld.insuredBirthday.split(" ")[0] : ""; | ||
124 | this.initData(); | ||
125 | } | ||
118 | 126 | ||
119 | let clientNameCn = res.clientNameCn ? res.clientNameCn : res.clientNameEn; | 127 | // let clientNameCn = res.clientNameCn ? res.clientNameCn : res.clientNameEn; |
120 | let clientNameEn = res.clientNameEn ? res.clientNameEn : res.clientNameCn; | 128 | // let clientNameEn = res.clientNameEn ? res.clientNameEn : res.clientNameCn; |
121 | let insuredNameCn = res.insuredNameCn ? res.insuredNameCn : res.insuredNameEn; | 129 | // let insuredNameCn = res.insuredNameCn ? res.insuredNameCn : res.insuredNameEn; |
122 | let insuredNameEn = res.insuredNameEn ? res.insuredNameEn : res.insuredNameCn; | 130 | // let insuredNameEn = res.insuredNameEn ? res.insuredNameEn : res.insuredNameCn; |
123 | this.policy.clientName = this.locale == 'en' ? clientNameEn : clientNameCn; | 131 | // this.policy.clientName = this.locale == 'en' ? clientNameEn : clientNameCn; |
124 | this.policy.insuredName = this.locale == 'en' ? insuredNameEn : insuredNameCn; | 132 | // this.policy.insuredName = this.locale == 'en' ? insuredNameEn : insuredNameCn; |
125 | // 证件类型、证件号要备份,用于比较 | 133 | // // 证件类型、证件号要备份,用于比较 |
126 | this.policy.clientIdTypeBak = this.policy.clientIdType; | 134 | // this.policy.clientIdTypeBak = this.policy.clientIdType; |
127 | this.policy.clientIdNumberBak = this.policy.clientIdNumber; | 135 | // this.policy.clientIdNumberBak = this.policy.clientIdNumber; |
128 | 136 | ||
129 | this.policy.insuredIdTypeBak = this.policy.insuredIdType; | 137 | // this.policy.insuredIdTypeBak = this.policy.insuredIdType; |
130 | this.policy.insuredIdNumberBak = this.policy.insuredIdNumber; | 138 | // this.policy.insuredIdNumberBak = this.policy.insuredIdNumber; |
131 | this.initData(); | ||
132 | } | 139 | } |
133 | }).catch(err => { | 140 | }).catch(err => { |
134 | this.loading = false; | 141 | this.loading = false; |
... | @@ -141,8 +148,10 @@ export default { | ... | @@ -141,8 +148,10 @@ export default { |
141 | let res = this.policy; | 148 | let res = this.policy; |
142 | if (res) { | 149 | if (res) { |
143 | let isOwner = this.isOwner; | 150 | let isOwner = this.isOwner; |
151 | |||
144 | let data = { | 152 | let data = { |
145 | name: isOwner ? res.clientName : res.insuredName, | 153 | nameCn: isOwner ? res.clientNameCn : res.insuredNameCn, |
154 | nameEn: isOwner ? res.clientNameEn : res.insuredNameEn, | ||
146 | idType: isOwner ? res.clientIdType : res.insuredIdType, | 155 | idType: isOwner ? res.clientIdType : res.insuredIdType, |
147 | idNumber: isOwner ? res.clientIdNumber : res.insuredIdNumber, | 156 | idNumber: isOwner ? res.clientIdNumber : res.insuredIdNumber, |
148 | idExpireAt: isOwner ? res.clientExpireAt : res.insuredExpireAt, | 157 | idExpireAt: isOwner ? res.clientExpireAt : res.insuredExpireAt, |
... | @@ -160,7 +169,57 @@ export default { | ... | @@ -160,7 +169,57 @@ export default { |
160 | this.selectedPolicies = data; | 169 | this.selectedPolicies = data; |
161 | this.loadData(); | 170 | this.loadData(); |
162 | }, | 171 | }, |
172 | |||
163 | handleUpdatePolicy() { | 173 | handleUpdatePolicy() { |
174 | if (this.loading) { | ||
175 | return; | ||
176 | } | ||
177 | this.showType = null; | ||
178 | let showUploadPicDialog = false; | ||
179 | this.replaceData(); | ||
180 | let showOwner = this.policy.clientIdType != this.policyOld.clientIdType || this.policy.clientIdNumber != this.policyOld.clientIdNumber; | ||
181 | let showInsured = this.policy.insuredIdType != this.policyOld.insuredIdType || this.policy.insuredIdNumber != this.policyOld.insuredIdNumber; | ||
182 | let showType = showOwner ? "owner" : null; | ||
183 | if (showInsured) { | ||
184 | showType = showType ? "both" : "insured"; | ||
185 | } | ||
186 | showUploadPicDialog = showType ? true : false; | ||
187 | this.showType = showType; | ||
188 | |||
189 | if (showUploadPicDialog) { | ||
190 | this.modalUploadCardVisiable = true; | ||
191 | } else { | ||
192 | this.loading = true; | ||
193 | this.updatePolicyInfoV2(); | ||
194 | } | ||
195 | }, | ||
196 | handleUpdatePolicyWithFile(data) { | ||
197 | this.modalUploadCardVisiable = false; | ||
198 | if (this.loading) { | ||
199 | return; | ||
200 | } | ||
201 | this.loading = true; | ||
202 | let nameCache = []; | ||
203 | let myFormData = new FormData(); | ||
204 | (data.ownerFrontPicFile) && (myFormData.append("files", data.ownerFrontPicFile), nameCache.push("clientIdFrontStoragePath")); | ||
205 | (data.ownerBackPicFile) && (myFormData.append("files", data.ownerBackPicFile), nameCache.push("clientIdBackStoragePath")); | ||
206 | (data.insuredFrontPicFile) && (myFormData.append("files", data.insuredFrontPicFile), nameCache.push("insuredIdFrontStoragePath")); | ||
207 | (data.insuredBackPicFile) && (myFormData.append("files", data.insuredBackPicFile), nameCache.push("insuredIdBackStoragePath")); | ||
208 | formdata({ "url": api.updateIdFileV2, "myFormData": myFormData, "sid": true }).then(res => { | ||
209 | let list = res.content; | ||
210 | let fileIds = {}; | ||
211 | for (let index = 0; index < list.length; index++) { | ||
212 | fileIds[nameCache[index]] = list[index]; | ||
213 | } | ||
214 | this.updatePolicyInfoV2(fileIds); | ||
215 | }).catch(err => { | ||
216 | this.loading = false; | ||
217 | this.handleErrResponse(err); | ||
218 | }); | ||
219 | |||
220 | }, | ||
221 | // 旧接口备份 | ||
222 | handleUpdatePolicyBak() { | ||
164 | let showUploadPicDialog = false; | 223 | let showUploadPicDialog = false; |
165 | if (this.isOwner) { | 224 | if (this.isOwner) { |
166 | showUploadPicDialog = (this.policy.clientIdType != this.data.idType || this.policy.clientIdNumber != this.data.idNumber); | 225 | showUploadPicDialog = (this.policy.clientIdType != this.data.idType || this.policy.clientIdNumber != this.data.idNumber); |
... | @@ -173,7 +232,56 @@ export default { | ... | @@ -173,7 +232,56 @@ export default { |
173 | this.updatePolicyInfo(); | 232 | this.updatePolicyInfo(); |
174 | } | 233 | } |
175 | }, | 234 | }, |
176 | handleUpdatePolicyWithFile(data) { | 235 | updatePolicyInfoV2(idFiles) { |
236 | let data = { | ||
237 | policyId: this.policy.policyId, | ||
238 | policyCode: this.policy.policyCode, | ||
239 | insuredNameEn: this.policy.insuredNameEn, | ||
240 | insuredNameCn: this.policy.insuredNameCn, | ||
241 | insuredIdType: this.policy.insuredIdType, | ||
242 | insuredIdNumber: this.policy.insuredIdNumber, | ||
243 | insuredExpireAt: this.policy.insuredExpireAt, | ||
244 | insuredNationality: this.policy.insuredNationality, | ||
245 | insuredCompany: this.policy.insuredCompany, | ||
246 | insuredMarriage: this.policy.insuredMarriage, | ||
247 | insuredSex: this.policy.insuredSex, | ||
248 | insuredBirthday: this.policy.insuredBirthday, | ||
249 | clientNameEn: this.policy.clientNameEn, | ||
250 | clientNameCn: this.policy.clientNameCn, | ||
251 | clientIdType: this.policy.clientIdType, | ||
252 | clientIdNumber: this.policy.clientIdNumber, | ||
253 | clientExpireAt: this.policy.clientExpireAt, | ||
254 | clientNationality: this.policy.clientNationality, | ||
255 | clientCompany: this.policy.clientCompany, | ||
256 | clientMarriage: this.policy.clientMarriage, | ||
257 | clientSex: this.policy.clientSex, | ||
258 | clientBirthday: this.policy.clientBirthday | ||
259 | }; | ||
260 | if (idFiles) { | ||
261 | for (let k in idFiles) { | ||
262 | data[k] = idFiles[k]; | ||
263 | } | ||
264 | } | ||
265 | |||
266 | httpPost({ url: api.updatePolicyInfoV2, data: data, sid: true }).then(res => { | ||
267 | if (this.isOwner) { | ||
268 | let userInfo = JSON.parse(JSON.stringify(this.userInfo)); | ||
269 | userInfo.name = data.clientNameCn ? data.clientNameCn : data.clientNameEn; | ||
270 | if (userInfo.name) { | ||
271 | this.$store.commit("SET_USER_INFO", userInfo); | ||
272 | } | ||
273 | } | ||
274 | this.loading = false; | ||
275 | this.showModal(this.i18n.policyChangeInformation.success); | ||
276 | }).catch(err => { | ||
277 | this.loading = false; | ||
278 | this.handleErrResponse(err); | ||
279 | }); | ||
280 | |||
281 | }, | ||
282 | |||
283 | // 旧接口备份 | ||
284 | handleUpdatePolicyWithFileBak(data) { | ||
177 | this.idFront = data.front; | 285 | this.idFront = data.front; |
178 | this.idBack = data.back; | 286 | this.idBack = data.back; |
179 | this.updatePolicyIdPic().then(() => { | 287 | this.updatePolicyIdPic().then(() => { |
... | @@ -232,17 +340,11 @@ export default { | ... | @@ -232,17 +340,11 @@ export default { |
232 | }); | 340 | }); |
233 | }); | 341 | }); |
234 | }, | 342 | }, |
235 | switchPolicyRole(role) { | 343 | replaceData() { |
236 | if (this.isOwner && role == 1) { | 344 | if (!this.isOwner) { |
237 | return; | ||
238 | } | ||
239 | if (!this.isOwner && role == 2) { | ||
240 | return; | ||
241 | } | ||
242 | if (this.policy) { | ||
243 | if (role == 1) { | ||
244 | // 需要缓存结果,注意取反,此处存在受保人信息 | 345 | // 需要缓存结果,注意取反,此处存在受保人信息 |
245 | this.policy.insuredName = this.data.name; | 346 | this.policy.insuredNameEn = this.data.nameEn; |
347 | this.policy.insuredNameCn = this.data.nameCn; | ||
246 | this.policy.insuredIdType = this.data.idType; | 348 | this.policy.insuredIdType = this.data.idType; |
247 | this.policy.insuredIdNumber = this.data.idNumber; | 349 | this.policy.insuredIdNumber = this.data.idNumber; |
248 | this.policy.insuredExpireAt = this.data.idExpireAt; | 350 | this.policy.insuredExpireAt = this.data.idExpireAt; |
... | @@ -253,7 +355,8 @@ export default { | ... | @@ -253,7 +355,8 @@ export default { |
253 | this.policy.insuredBirthday = this.data.birthday; | 355 | this.policy.insuredBirthday = this.data.birthday; |
254 | } else { | 356 | } else { |
255 | // 需要缓存结果,注意取反,此处存在投保人信息 | 357 | // 需要缓存结果,注意取反,此处存在投保人信息 |
256 | this.policy.clientName = this.data.name; | 358 | this.policy.clientNameEn = this.data.nameEn; |
359 | this.policy.clientNameCn = this.data.nameCn; | ||
257 | this.policy.clientIdType = this.data.idType; | 360 | this.policy.clientIdType = this.data.idType; |
258 | this.policy.clientIdNumber = this.data.idNumber; | 361 | this.policy.clientIdNumber = this.data.idNumber; |
259 | this.policy.clientExpireAt = this.data.idExpireAt; | 362 | this.policy.clientExpireAt = this.data.idExpireAt; |
... | @@ -263,7 +366,15 @@ export default { | ... | @@ -263,7 +366,15 @@ export default { |
263 | this.policy.clientSex = this.data.sex; | 366 | this.policy.clientSex = this.data.sex; |
264 | this.policy.clientBirthday = this.data.birthday; | 367 | this.policy.clientBirthday = this.data.birthday; |
265 | } | 368 | } |
369 | }, | ||
370 | switchPolicyRole(role) { | ||
371 | if (this.isOwner && role == 1) { | ||
372 | return; | ||
373 | } | ||
374 | if (!this.isOwner && role == 2) { | ||
375 | return; | ||
266 | } | 376 | } |
377 | this.replaceData(); | ||
267 | this.isOwner = role == 1 ? true : false; | 378 | this.isOwner = role == 1 ? true : false; |
268 | this.initData(); | 379 | this.initData(); |
269 | }, | 380 | }, | ... | ... |
... | @@ -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,6 +219,9 @@ export default { | ... | @@ -217,6 +219,9 @@ export default { |
217 | // 刷新图形二维码 | 219 | // 刷新图形二维码 |
218 | }, | 220 | }, |
219 | handlerLogin() { | 221 | handlerLogin() { |
222 | if (this.oneAccountCenterOff) { | ||
223 | this.selfLogin(); | ||
224 | } else { | ||
220 | if ((this.type == 1 && this.pwdLoginDisabled) || (this.type == 2 && this.otpLoginDisabled)) { | 225 | if ((this.type == 1 && this.pwdLoginDisabled) || (this.type == 2 && this.otpLoginDisabled)) { |
221 | return; | 226 | return; |
222 | } | 227 | } |
... | @@ -230,6 +235,39 @@ export default { | ... | @@ -230,6 +235,39 @@ export default { |
230 | } else { | 235 | } else { |
231 | this._otpLogin(); | 236 | this._otpLogin(); |
232 | } | 237 | } |
238 | } | ||
239 | }, | ||
240 | selfLogin() { | ||
241 | if (this.loading) { | ||
242 | return; | ||
243 | } | ||
244 | this.loading = true; | ||
245 | let data = { | ||
246 | account: this.loginForm.userId, | ||
247 | password: this.loginForm.password | ||
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,7 +13,8 @@ | ... | @@ -13,7 +13,8 @@ |
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 | <div class="login-tit"> | ||
17 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> | 18 | <img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png"> |
18 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> | 19 | <img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png"> |
19 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> | 20 | <img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png"> |
... | @@ -22,7 +23,8 @@ | ... | @@ -22,7 +23,8 @@ |
22 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> | 23 | <div @click="onLoginTypeHandler(1)" class="login-nav-tit text-r pointer active">{{$t('login.loginType1')}}</div> |
23 | <div class="login-nav-v-line"></div> | 24 | <div class="login-nav-v-line"></div> |
24 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> | 25 | <div @click="onLoginTypeHandler(2)" class="login-nav-tit pointer">{{$t('login.loginType2')}}</div> |
25 | </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) { |
139 | this.showError = true; | ||
140 | } | ||
141 | }); | ||
142 | }, | ||
143 | sessionLostModalClose() { | ||
127 | this.targetPath = "/login?callback=/password/reset"; | 144 | this.targetPath = "/login?callback=/password/reset"; |
128 | this.step.error2 = message; | 145 | this.$router.push({ |
129 | // this.showModal(message, "info"); | 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