6075dcf6 by joe

1

1 parent fe2f08ad
...@@ -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
......
...@@ -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 }
......
...@@ -76,6 +76,8 @@ ...@@ -76,6 +76,8 @@
76 76
77 img { 77 img {
78 width: 100%; 78 width: 100%;
79 max-width: 14.75rem;
80 max-height: 10rem;
79 } 81 }
80 } 82 }
81 } 83 }
......
...@@ -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')}} &nbsp;
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
......