26117ad8 by joe

部分修改备份

1 parent dac7f686
...@@ -400,6 +400,11 @@ textarea { ...@@ -400,6 +400,11 @@ textarea {
400 } 400 }
401 } 401 }
402 402
403 .flex-center {
404 display: flex;
405 justify-content: center
406 }
407
403 @media (max-width: 1200px) { 408 @media (max-width: 1200px) {
404 .page-index { 409 .page-index {
405 .video-js { 410 .video-js {
......
...@@ -58,8 +58,7 @@ module.exports = { ...@@ -58,8 +58,7 @@ module.exports = {
58 }, 58 },
59 navList: [{ 59 navList: [{
60 name: "Products", 60 name: "Products",
61 path: "", 61 path: "/empty",
62 value: "gotoVHIS",
63 list: [{ 62 list: [{
64 name: "VHIS", 63 name: "VHIS",
65 path: "", 64 path: "",
...@@ -386,7 +385,7 @@ module.exports = { ...@@ -386,7 +385,7 @@ module.exports = {
386 contactTime: "Preferred Contact Date", 385 contactTime: "Preferred Contact Date",
387 notice1: "The personal data collected in this form is processed in accordance with Ping An Life Insurance Company of China (HK), Ltd Personal Information Collection Statement and will only be used to contact you. However, the personal data collected will not be transferred to third-party organizations other than those specified in the \"Ping An Life Insurance Company of China (HK), Ltd Personal Data Collection Statement\" without your explicit authorization. You can choose not to provide us with the required personal information, but this may prevent us from contacting you. You can also access and correct your personal data in accordance with Ping An Life Insurance Company of China (HK), Ltd Personal Data Collection Statement。", 386 notice1: "The personal data collected in this form is processed in accordance with Ping An Life Insurance Company of China (HK), Ltd Personal Information Collection Statement and will only be used to contact you. However, the personal data collected will not be transferred to third-party organizations other than those specified in the \"Ping An Life Insurance Company of China (HK), Ltd Personal Data Collection Statement\" without your explicit authorization. You can choose not to provide us with the required personal information, but this may prevent us from contacting you. You can also access and correct your personal data in accordance with Ping An Life Insurance Company of China (HK), Ltd Personal Data Collection Statement。",
388 notice2: "I hereby confirm that I understand and agree that my personal data will be used for the above purposes in accordance with the Ping An Life Insurance Company of China (HK) Personal Data Collection Statement.", 387 notice2: "I hereby confirm that I understand and agree that my personal data will be used for the above purposes in accordance with the Ping An Life Insurance Company of China (HK) Personal Data Collection Statement.",
389 contactTypes: [{ name: 'Mobile', value: 1 }, { name: 'Email', value: 2 }], 388 contactTypes: [{ name: 'Mobile', value: 1, show: "Mobile", icon: "mobile" }, { name: 'Email', value: 2, show: "Email", icon: "email" }],
390 errorTips: { 389 errorTips: {
391 e1: "Please fill in this item", 390 e1: "Please fill in this item",
392 e2: "Please fill in the correct contact information" 391 e2: "Please fill in the correct contact information"
...@@ -519,7 +518,7 @@ module.exports = { ...@@ -519,7 +518,7 @@ module.exports = {
519 ] 518 ]
520 }, 519 },
521 policyChangeGuide: { 520 policyChangeGuide: {
522 521
523 notice: "If you need to modify please", 522 notice: "If you need to modify please",
524 noticeLink: "contact customer service", 523 noticeLink: "contact customer service",
525 head1: "Item", 524 head1: "Item",
...@@ -769,10 +768,10 @@ module.exports = { ...@@ -769,10 +768,10 @@ module.exports = {
769 per: "page", 768 per: "page",
770 page: "" 769 page: ""
771 }, 770 },
772 newsDetail : { 771 newsDetail: {
773 back : "Back", 772 back: "Back",
774 publishAt : "Publish time", 773 publishAt: "Publish time",
775 readers : "Number of reader", 774 readers: "Number of reader",
776 per : "" 775 per: ""
777 } 776 }
778 } 777 }
......
...@@ -58,8 +58,7 @@ module.exports = { ...@@ -58,8 +58,7 @@ module.exports = {
58 }, 58 },
59 navList: [{ 59 navList: [{
60 name: "产品介绍", 60 name: "产品介绍",
61 path: "", 61 path: "/empty",
62 value: "gotoVHIS",
63 list: [{ 62 list: [{
64 name: "自愿医保基本计划", 63 name: "自愿医保基本计划",
65 path: "", 64 path: "",
...@@ -259,7 +258,7 @@ module.exports = { ...@@ -259,7 +258,7 @@ module.exports = {
259 type1: { 258 type1: {
260 title: "密码找回", 259 title: "密码找回",
261 t1: "用户输入信息", 260 t1: "用户输入信息",
262 t1Placeholder: "手机号/证件号", 261 t1Placeholder: "手机号/一账通用户名/证件号",
263 submit: "确认", 262 submit: "确认",
264 error: "您的手机号或证件号输入错误,请核对后重新输入", 263 error: "您的手机号或证件号输入错误,请核对后重新输入",
265 }, 264 },
...@@ -385,7 +384,7 @@ module.exports = { ...@@ -385,7 +384,7 @@ module.exports = {
385 contactTime: "期望联络时间", 384 contactTime: "期望联络时间",
386 notice1: "本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。", 385 notice1: "本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。",
387 notice2: "本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。", 386 notice2: "本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。",
388 contactTypes: [{ name: '电话', value: 1 }, { name: '电邮', value: 2 }], 387 contactTypes: [{ name: '电话', value: 1, show: "联络电话", icon: "mobile" }, { name: '电邮', value: 2,show: "电邮地址", icon: "email" }],
389 errorTips: { 388 errorTips: {
390 e1: "请填写该项内容", 389 e1: "请填写该项内容",
391 e2: "请填写正确的联系方式" 390 e2: "请填写正确的联系方式"
...@@ -698,8 +697,8 @@ module.exports = { ...@@ -698,8 +697,8 @@ module.exports = {
698 menu7: "投诉受理", 697 menu7: "投诉受理",
699 menu8: "常用表格", 698 menu8: "常用表格",
700 insuranceQuery: { 699 insuranceQuery: {
701 modify : "修改", 700 modify: "修改",
702 701
703 InsurantNumber: "保单号码", 702 InsurantNumber: "保单号码",
704 Insurant: "受保人", 703 Insurant: "受保人",
705 InsurantName: "险种名称", 704 InsurantName: "险种名称",
...@@ -753,6 +752,23 @@ module.exports = { ...@@ -753,6 +752,23 @@ module.exports = {
753 customService: "联系客服", 752 customService: "联系客服",
754 }, 753 },
755 unauth: { 754 unauth: {
755
756 m1: {
757 tit: "如需查询保单请投保人",
758 or: "/",
759 tail: "平安一账通账户"
760 },
761 m2: {
762 tit: "如需变更保单请投保人",
763 or: "/",
764 tail: "平安一账通账户"
765 },
766 m3: {
767 tit: "如您有平安一账通账户,可帮助我们更好地为您提供服务,",
768 or: "/",
769 tail: ""
770 },
771
756 tips: "如您有平安一账通账户,可帮助我们更好地为您提供服务", 772 tips: "如您有平安一账通账户,可帮助我们更好地为您提供服务",
757 or: "或", 773 or: "或",
758 login: "登录", 774 login: "登录",
...@@ -768,10 +784,10 @@ module.exports = { ...@@ -768,10 +784,10 @@ module.exports = {
768 per: "第", 784 per: "第",
769 page: "页" 785 page: "页"
770 }, 786 },
771 newsDetail : { 787 newsDetail: {
772 back : "回到列表页", 788 back: "回到列表页",
773 publishAt : "发布时间", 789 publishAt: "发布时间",
774 readers : "阅读人数", 790 readers: "阅读人数",
775 per : "人" 791 per: "人"
776 } 792 }
777 } 793 }
......
...@@ -127,6 +127,9 @@ export default { ...@@ -127,6 +127,9 @@ export default {
127 showLogoutTip() { 127 showLogoutTip() {
128 // 登出后的提示 128 // 登出后的提示
129 // alert("登出成功"); 129 // alert("登出成功");
130 },
131 updateTitle(name) {
132 this.sTitle = name || this.sTitle;
130 } 133 }
131 }, 134 },
132 computed: { 135 computed: {
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
27 <div @click="toPage('empty')" class="n-item">{{$t('footer.joinUs')}}</div> 27 <div @click="toPage('empty')" class="n-item">{{$t('footer.joinUs')}}</div>
28 </div> 28 </div>
29 <div class="nav-v"> 29 <div class="nav-v">
30 <div class="n-item">{{$t('footer.helpCenter')}}</div> 30 <div @click="toPage('empty')" class="n-item">{{$t('footer.helpCenter')}}</div>
31 <div @click="toPage('privacy')" class="n-item">{{$t('footer.privacy')}}</div> 31 <div @click="toPage('privacy')" class="n-item">{{$t('footer.privacy')}}</div>
32 <div @click="toPage('terms')" class="n-item">{{$t('footer.terms')}}</div> 32 <div @click="toPage('terms')" class="n-item">{{$t('footer.terms')}}</div>
33 <div @click="toPage('personalDataCollection')" class="n-item">{{$t('footer.protocol')}}</div> 33 <div @click="toPage('personalDataCollection')" class="n-item">{{$t('footer.protocol')}}</div>
......
...@@ -106,6 +106,7 @@ export default { ...@@ -106,6 +106,7 @@ export default {
106 } 106 }
107 menuData.list = list; 107 menuData.list = list;
108 this.$set(this, 'loginData', menuData); 108 this.$set(this, 'loginData', menuData);
109 // console.log(this.userInfo);
109 } 110 }
110 }, 111 },
111 beforeDestroy() { 112 beforeDestroy() {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
13 <img @click="onShowDropdown('nav')" v-if="!dropdownMVisible" src="@/assets/images/home/mobile-nav.png" alt=""> 13 <img @click="onShowDropdown('nav')" v-if="!dropdownMVisible" src="@/assets/images/home/mobile-nav.png" alt="">
14 <img @click="onShowDropdown('')" v-else src="@/assets/images/home/mobile-nav-close.png" alt=""> 14 <img @click="onShowDropdown('')" v-else src="@/assets/images/home/mobile-nav-close.png" alt="">
15 </div> 15 </div>
16 <m-dropdown class="lang" :type="'nav'" :visible="dropdownMVisible" :show-dropdown-m="onShowDropdown" :lang-list="langData.list"></m-dropdown> 16 <m-dropdown class="lang" :type="'nav'" :visible="dropdownMVisible" :show-dropdown-m="onShowDropdown" :lang-list="langData.list" ref="pcMenu"></m-dropdown>
17 <m-dropdown class="lang" :type="'login'" :visible="loginMVisible" :show-dropdown-m="onShowDropdown"></m-dropdown> 17 <m-dropdown class="lang" :type="'login'" :visible="loginMVisible" :show-dropdown-m="onShowDropdown"></m-dropdown>
18 </div> 18 </div>
19 19
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 <div class="nav-item search"> 26 <div class="nav-item search">
27 </div> 27 </div>
28 <div class="nav-item auth"> 28 <div class="nav-item auth">
29 <v-dropdown class="lang" :type="'login'" :data-obj="loginData" :data-list="loginData.list"></v-dropdown> 29 <v-dropdown class="lang" :type="'login'" :data-obj="loginData" :data-list="loginData.list" ref="mobileMenu"></v-dropdown>
30 <v-dropdown class="lang" :type="'lang'" :data-obj="langData" :data-list="langData.list"></v-dropdown> 30 <v-dropdown class="lang" :type="'lang'" :data-obj="langData" :data-list="langData.list"></v-dropdown>
31 </div> 31 </div>
32 </div> 32 </div>
......
...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js'; ...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js';
9 import Auth from '@components/auth/auth.vue'; 9 import Auth from '@components/auth/auth.vue';
10 import modalComp from '@/components/modal-comp/modal-comp.vue'; 10 import modalComp from '@/components/modal-comp/modal-comp.vue';
11 import DatePicker from '@/components/date-picker/date-picker.vue' 11 import DatePicker from '@/components/date-picker/date-picker.vue'
12 import Vue from 'vue';
13 import { Loading } from 'vant';
14 Vue.use(Loading);
12 15
13 export default { 16 export default {
14 data() { 17 data() {
...@@ -16,6 +19,7 @@ export default { ...@@ -16,6 +19,7 @@ export default {
16 key: 'value', 19 key: 'value',
17 isHkCus: true, 20 isHkCus: true,
18 checked: false, 21 checked: false,
22 contactIconShow: "",
19 contactTypeShow: "", 23 contactTypeShow: "",
20 data: { 24 data: {
21 name: "", 25 name: "",
...@@ -69,7 +73,8 @@ export default { ...@@ -69,7 +73,8 @@ export default {
69 }, 73 },
70 initData() { 74 initData() {
71 this.data.contactType = this.contactTypes[0].value; 75 this.data.contactType = this.contactTypes[0].value;
72 this.contactTypeShow = this.contactTypes[0].name; 76 this.contactTypeShow = this.contactTypes[0].show;
77 this.contactIconShow = this.contactTypes[0].icon;
73 }, 78 },
74 submitHandler() { 79 submitHandler() {
75 if (!this.checked || this.isSubmit) { 80 if (!this.checked || this.isSubmit) {
...@@ -170,6 +175,8 @@ export default { ...@@ -170,6 +175,8 @@ export default {
170 'data.contactType': function (val) { 175 'data.contactType': function (val) {
171 this.errorTips.contactTypeErr = ""; 176 this.errorTips.contactTypeErr = "";
172 this.contactTypeShow = this.contactTypes[val - 1].name; 177 this.contactTypeShow = this.contactTypes[val - 1].name;
178 this.contactTypeShow = this.contactTypes[val - 1].show;
179 this.contactIconShow = this.contactTypes[val - 1].icon;
173 }, 180 },
174 'data.contactMethod': function () { 181 'data.contactMethod': function () {
175 this.errorTips.contactMethodErr = ""; 182 this.errorTips.contactMethodErr = "";
......
...@@ -35,7 +35,10 @@ ...@@ -35,7 +35,10 @@
35 35
36 <div class="form-item flex1"> 36 <div class="form-item flex1">
37 <div class="label"> 37 <div class="label">
38 <div class="icon"><img src="@/assets/images/complaint-acceptance/icon-ca-mail.png"></div>{{contactTypeShow}} 38 <div class="icon">
39 <img v-if="contactIconShow == 'email'" src="@/assets/images/complaint-acceptance/icon-ca-mail.png">
40 <img v-else src="@/assets/images/contact-us/icon-cs-call.png">
41 </div>{{contactTypeShow}}
39 </div> 42 </div>
40 <div class="ipt-wrap"> 43 <div class="ipt-wrap">
41 <input class="ipt mail-ipt" type="text" :class="{err : errorTips.contactMethodErr.length > 0}" v-model="data.contactMethod"> 44 <input class="ipt mail-ipt" type="text" :class="{err : errorTips.contactMethodErr.length > 0}" v-model="data.contactMethod">
...@@ -108,8 +111,9 @@ ...@@ -108,8 +111,9 @@
108 </div> 111 </div>
109 112
110 <!-- 提交按钮 --> 113 <!-- 提交按钮 -->
111 <div class="submit-btn" @click="submitHandler" :class="{disabled:!checked}"> 114 <div class="submit-btn flex-center" @click="submitHandler" :class="{disabled:!checked}">
112 {{$t('reservation.submitBtn')}} 115 <van-loading v-if="isSubmit" />
116 <span>{{$t('reservation.submitBtn')}}</span>
113 </div> 117 </div>
114 </div> 118 </div>
115 </div> 119 </div>
......
...@@ -57,7 +57,7 @@ export default { ...@@ -57,7 +57,7 @@ export default {
57 return "港币"; 57 return "港币";
58 } 58 }
59 }, 59 },
60 toModifyPage(type) { 60 toModifyPage(type, toContact) {
61 // 1=受保人;2=投保人 61 // 1=受保人;2=投保人
62 if (!this.policy || !this.dataForm) { 62 if (!this.policy || !this.dataForm) {
63 return; 63 return;
...@@ -65,9 +65,13 @@ export default { ...@@ -65,9 +65,13 @@ export default {
65 let data = encodeURIComponent(JSON.stringify({ id: this.policy.policyId, code: this.policy.policyCode })); 65 let data = encodeURIComponent(JSON.stringify({ id: this.policy.policyId, code: this.policy.policyCode }));
66 sessionStorage.setItem("_hklife_policy", data); 66 sessionStorage.setItem("_hklife_policy", data);
67 if (type == 1) { 67 if (type == 1) {
68 this.$router.push({ path: "/custom/service", query: { q: "m43", u: 1 } });
69 } else {
70 this.$router.push({ path: "/custom/service", query: { q: "m43", u: 2 } }); 68 this.$router.push({ path: "/custom/service", query: { q: "m43", u: 2 } });
69 } else {
70 if (1 == toContact) {
71 this.$router.push({ path: "/custom/service", query: { q: "m42" } });
72 } else {
73 this.$router.push({ path: "/custom/service", query: { q: "m43", u: 1 } });
74 }
71 } 75 }
72 }, 76 },
73 userLogout() { 77 userLogout() {
......
...@@ -98,24 +98,24 @@ ...@@ -98,24 +98,24 @@
98 <div class="separator-h"></div> 98 <div class="separator-h"></div>
99 <div class="data-line"> 99 <div class="data-line">
100 <div class="cell1"> 100 <div class="cell1">
101 <div class="label">{{$t('customService.insuranceQuery.t3n5')}}<span @click="toModifyPage(2)">{{$t('customService.insuranceQuery.modify')}}</span></div> 101 <div class="label">{{$t('customService.insuranceQuery.t3n5')}}<span @click="toModifyPage(2,1)">{{$t('customService.insuranceQuery.modify')}}</span></div>
102 <div class="label">{{dataForm.clientLivingAddress}}</div> 102 <div class="label">{{dataForm.clientLivingAddress}}</div>
103 </div> 103 </div>
104 <div class="separator-v"></div> 104 <div class="separator-v"></div>
105 <div class="cell1"> 105 <div class="cell1">
106 <div class="label">{{$t('customService.insuranceQuery.t3n6')}}<span @click="toModifyPage(2)">{{$t('customService.insuranceQuery.modify')}}</span></div> 106 <div class="label">{{$t('customService.insuranceQuery.t3n6')}}<span @click="toModifyPage(2,1)">{{$t('customService.insuranceQuery.modify')}}</span></div>
107 <div class="label">{{dataForm.clientContactAddress}}</div> 107 <div class="label">{{dataForm.clientContactAddress}}</div>
108 </div> 108 </div>
109 </div> 109 </div>
110 <div class="separator-h"></div> 110 <div class="separator-h"></div>
111 <div class="data-line"> 111 <div class="data-line">
112 <div class="cell1"> 112 <div class="cell1">
113 <div class="label">{{$t('customService.insuranceQuery.t3n7')}}<span @click="toModifyPage(2)">{{$t('customService.insuranceQuery.modify')}}</span></div> 113 <div class="label">{{$t('customService.insuranceQuery.t3n7')}}<span @click="toModifyPage(2,1)">{{$t('customService.insuranceQuery.modify')}}</span></div>
114 <div class="label">{{dataForm.clientMobileNo}}</div> 114 <div class="label">{{dataForm.clientMobileNo}}</div>
115 </div> 115 </div>
116 <div class="separator-v"></div> 116 <div class="separator-v"></div>
117 <div class="cell1"> 117 <div class="cell1">
118 <div class="label">{{$t('customService.insuranceQuery.t3n8')}}<span @click="toModifyPage(2)">{{$t('customService.insuranceQuery.modify')}}</span></div> 118 <div class="label">{{$t('customService.insuranceQuery.t3n8')}}<span @click="toModifyPage(2,1)">{{$t('customService.insuranceQuery.modify')}}</span></div>
119 <div class="label">{{dataForm.clientEmail}}</div> 119 <div class="label">{{dataForm.clientEmail}}</div>
120 </div> 120 </div>
121 </div> 121 </div>
......
...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js'; ...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js';
9 import Auth from '@components/auth/auth.vue'; 9 import Auth from '@components/auth/auth.vue';
10 import modalComp from '@/components/modal-comp/modal-comp.vue'; 10 import modalComp from '@/components/modal-comp/modal-comp.vue';
11 import PolicyHeadList from "./policy-head-list.vue"; 11 import PolicyHeadList from "./policy-head-list.vue";
12 import Vue from 'vue';
13 import { Loading } from 'vant';
14 Vue.use(Loading);
12 15
13 export default { 16 export default {
14 data() { 17 data() {
......
...@@ -58,8 +58,9 @@ ...@@ -58,8 +58,9 @@
58 </div> 58 </div>
59 </div> 59 </div>
60 </div> 60 </div>
61 <div class="submit-btn" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}"> 61 <div class="submit-btn flex-center" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}">
62 {{$t("policyChangeContact.submit")}} 62 <van-loading v-if="loading" />
63 <span>{{$t('policyChangeContact.submit')}}</span>
63 </div> 64 </div>
64 </div> 65 </div>
65 <!-- <div v-else style="height:400px"></div> --> 66 <!-- <div v-else style="height:400px"></div> -->
......
...@@ -9,6 +9,9 @@ import PolicyHeadList from "./policy-head-list.vue"; ...@@ -9,6 +9,9 @@ import PolicyHeadList from "./policy-head-list.vue";
9 import DatePicker from '@/components/date-picker/date-picker.vue' 9 import DatePicker from '@/components/date-picker/date-picker.vue'
10 import modalComp from '@/components/modal-comp/modal-comp.vue'; 10 import modalComp from '@/components/modal-comp/modal-comp.vue';
11 import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-upload-card-comp.vue'; 11 import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-upload-card-comp.vue';
12 import Vue from 'vue';
13 import { Loading } from 'vant';
14 Vue.use(Loading);
12 15
13 export default { 16 export default {
14 data() { 17 data() {
......
...@@ -145,8 +145,9 @@ ...@@ -145,8 +145,9 @@
145 145
146 </div> 146 </div>
147 147
148 <div class="submit-btn" @click="handleUpdatePolicy"> 148 <div class="submit-btn flex-center" @click="handleUpdatePolicy">
149 {{$t("policyChangeInformation.submit")}} 149 <van-loading v-if="loading" />
150 <span>{{$t('policyChangeInformation.submit')}}</span>
150 </div> 151 </div>
151 </div> 152 </div>
152 </div> 153 </div>
......
...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js'; ...@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js';
9 import DatePicker from '@/components/date-picker/date-picker.vue'; 9 import DatePicker from '@/components/date-picker/date-picker.vue';
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 Vue from 'vue';
13 import { Loading } from 'vant';
14 Vue.use(Loading);
12 15
13 export default { 16 export default {
14 data() { 17 data() {
......
...@@ -111,8 +111,9 @@ ...@@ -111,8 +111,9 @@
111 </p> 111 </p>
112 </div> 112 </div>
113 113
114 <div class="submit-btn" :class="{disabled : !checked}" @click="submitHandler"> 114 <div class="submit-btn flex-center" :class="{disabled : !checked}" @click="submitHandler">
115 {{$t('reservation.submitBtn')}} 115 <van-loading v-if="isSubmit" />
116 <span>{{$t('reservation.submitBtn')}}</span>
116 </div> 117 </div>
117 </div> 118 </div>
118 </div> 119 </div>
......
...@@ -10,6 +10,7 @@ import { ...@@ -10,6 +10,7 @@ import {
10 httpPost 10 httpPost
11 } from '@/api/fetch-api.js' 11 } from '@/api/fetch-api.js'
12 12
13
13 import { contactMethodCheck } from '@utils/utils.js'; 14 import { contactMethodCheck } from '@utils/utils.js';
14 15
15 import modalComp from '@/components/modal-comp/modal-comp.vue'; 16 import modalComp from '@/components/modal-comp/modal-comp.vue';
...@@ -18,6 +19,10 @@ import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-uploa ...@@ -18,6 +19,10 @@ import modalUploadCardComp from '@/components/modal-upload-card-comp/modal-uploa
18 import { 19 import {
19 passwordEncrypt 20 passwordEncrypt
20 } from '@/utils/encrypt.js'; 21 } from '@/utils/encrypt.js';
22 import Vue from 'vue';
23 import { Loading } from 'vant';
24
25 Vue.use(Loading);
21 26
22 27
23 export default { 28 export default {
...@@ -45,10 +50,10 @@ export default { ...@@ -45,10 +50,10 @@ export default {
45 loginForm: { 50 loginForm: {
46 // userId: "18334783910", 51 // userId: "18334783910",
47 // password: "qweqwe123", 52 // password: "qweqwe123",
48 userId: "18145729463", 53 // userId: "18145729463",
49 password: "ccc123!@#", 54 // password: "ccc123!@#",
50 // userId: "", 55 userId: "",
51 // password: "", 56 password: "",
52 57
53 imageValue: "", 58 imageValue: "",
54 mobileNo: "", 59 mobileNo: "",
...@@ -149,7 +154,13 @@ export default { ...@@ -149,7 +154,13 @@ export default {
149 onLoginTypeHandler(val) { 154 onLoginTypeHandler(val) {
150 this.type = val; 155 this.type = val;
151 }, 156 },
152 initData() { }, 157 initData() {
158 if (this.userInfo && (this.userInfo.sid || this.userInfo.name)) {
159 this.$router.push({
160 path: "/"
161 });
162 }
163 },
153 handlerIsShowImageVcode() { 164 handlerIsShowImageVcode() {
154 return new Promise((resolve, reject) => { 165 return new Promise((resolve, reject) => {
155 httpPost({ 166 httpPost({
...@@ -541,6 +552,7 @@ export default { ...@@ -541,6 +552,7 @@ export default {
541 }, 552 },
542 }, 553 },
543 mounted() { 554 mounted() {
555 this.initData();
544 // console.log("PK === ", this.PK) 556 // console.log("PK === ", this.PK)
545 // console.log("E === ", this.E) 557 // console.log("E === ", this.E)
546 }, 558 },
......
...@@ -62,7 +62,10 @@ ...@@ -62,7 +62,10 @@
62 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}} 62 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png">{{$t('login.agree')}}
63 &nbsp;<span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> 63 &nbsp;<span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span>
64 </div> 64 </div>
65 <div @click="handlerLogin()" class="login-submit pointer" :class="{disabled: pwdLoginDisabled}">{{$t('login.login')}}</div> 65 <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: pwdLoginDisabled}">
66 <van-loading v-if="loading" />
67 <span>{{$t('login.login')}}</span>
68 </div>
66 <div class="login-func"> 69 <div class="login-func">
67 <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> 70 <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div>
68 <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> 71 <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div>
...@@ -125,7 +128,10 @@ ...@@ -125,7 +128,10 @@
125 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}} 128 <img v-if="loginCheck.agreeProtocol" class="check" src="@/assets/images/login/check.png"> {{$t('login.agree')}}
126 &nbsp;<span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span> 129 &nbsp;<span @click="onProtocolHandler()" class="protocol pointer">{{$t('login.protocol')}}</span>
127 </div> 130 </div>
128 <div @click="handlerLogin()" class="login-submit pointer" :class="{disabled: otpLoginDisabled}">{{$t('login.login')}}</div> 131 <div @click="handlerLogin()" class="login-submit pointer flex-center" :class="{disabled: otpLoginDisabled}">
132 <van-loading v-if="loading" />
133 <span>{{$t('login.login')}}</span>
134 </div>
129 <div class="login-func"> 135 <div class="login-func">
130 <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div> 136 <div @click="toRegisterPage()" class="login-func-btn pointer">{{$t('login.register')}}</div>
131 <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div> 137 <div @click="onForgetHandler()" class="login-func-btn pointer">{{$t('login.forget')}}</div>
...@@ -163,7 +169,10 @@ ...@@ -163,7 +169,10 @@
163 </div> 169 </div>
164 </div> 170 </div>
165 </div> 171 </div>
166 <div @click="onRegisterHandler()" class="login-submit pointer">{{$t('register.sure')}}</div> 172 <div @click="onRegisterHandler()" class="login-submit pointer flex-center">
173 <van-loading v-if="loading" />
174 <span>{{$t('register.sure')}}</span>
175 </div>
167 </div> 176 </div>
168 </div> 177 </div>
169 </div> 178 </div>
......
1 import { mapState } from "vuex";
1 import api from '@/api/api' 2 import api from '@/api/api'
2 import { 3 import {
3 httpGet, 4 httpGet,
...@@ -5,6 +6,7 @@ import { ...@@ -5,6 +6,7 @@ import {
5 } from '@/api/fetch-api.js' 6 } from '@/api/fetch-api.js'
6 7
7 import { getDateYMD } from "@/utils/biz.js"; 8 import { getDateYMD } from "@/utils/biz.js";
9 import { setTitle } from "@/utils/utils.js";
8 10
9 export default { 11 export default {
10 data() { 12 data() {
...@@ -33,7 +35,6 @@ export default { ...@@ -33,7 +35,6 @@ export default {
33 this.$router.go(-1); 35 this.$router.go(-1);
34 }, 36 },
35 initData() { 37 initData() {
36 console.log(this.$route);
37 let c = this.$route.query.c; 38 let c = this.$route.query.c;
38 let l = this.$i18n.locale; 39 let l = this.$i18n.locale;
39 let params = { 40 let params = {
...@@ -49,6 +50,10 @@ export default { ...@@ -49,6 +50,10 @@ export default {
49 this.data.content = res.content; 50 this.data.content = res.content;
50 this.data.dateFormat = getDateYMD(res.createAt); 51 this.data.dateFormat = getDateYMD(res.createAt);
51 this.data.pv = res.pv; 52 this.data.pv = res.pv;
53
54 if (this.data.title) {
55 setTitle(this.data.title);
56 }
52 }); 57 });
53 } 58 }
54 }, 59 },
......
...@@ -7,6 +7,9 @@ import { ...@@ -7,6 +7,9 @@ import {
7 import modalComp from '@/components/modal-comp/modal-comp.vue'; 7 import modalComp from '@/components/modal-comp/modal-comp.vue';
8 import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; 8 import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue';
9 import { passwordEncrypt } from '@/utils/encrypt.js'; 9 import { passwordEncrypt } from '@/utils/encrypt.js';
10 import Vue from 'vue';
11 import { Loading } from 'vant';
12 Vue.use(Loading);
10 13
11 export default { 14 export default {
12 data() { 15 data() {
......
...@@ -100,7 +100,10 @@ ...@@ -100,7 +100,10 @@
100 </div> 100 </div>
101 </div> 101 </div>
102 </div> 102 </div>
103 <div @click="resetPwd()" class="login-submit pointer" :class="{disabled: s4BtnDisabled}">{{$t('passwordReset.type4.submit')}}</div> 103 <div @click="resetPwd()" class="login-submit pointer flex-center" :class="{disabled: s4BtnDisabled}">
104 <van-loading v-if="loading" />
105 <span>{{$t('passwordReset.type4.submit')}}</span>
106 </div>
104 </div> 107 </div>
105 </div> 108 </div>
106 </div> 109 </div>
......
...@@ -11,10 +11,14 @@ import Auth from '@components/auth/auth.vue'; ...@@ -11,10 +11,14 @@ 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 { passwordEncrypt } from '@/utils/encrypt.js'; 13 import { passwordEncrypt } from '@/utils/encrypt.js';
14 import Vue from 'vue';
15 import { Loading } from 'vant';
16 Vue.use(Loading);
14 17
15 export default { 18 export default {
16 data() { 19 data() {
17 return { 20 return {
21 loading : false,
18 showForm: false, 22 showForm: false,
19 key: 'value', 23 key: 'value',
20 type: 1, // 1:输入用户信息 2:找回密码 3:核对信息 4.重置密码 24 type: 1, // 1:输入用户信息 2:找回密码 3:核对信息 4.重置密码
...@@ -81,6 +85,11 @@ export default { ...@@ -81,6 +85,11 @@ export default {
81 let newPwd = passwordEncrypt(this.values.pwd); 85 let newPwd = passwordEncrypt(this.values.pwd);
82 let oldPwd = passwordEncrypt(this.values.oldPwd); 86 let oldPwd = passwordEncrypt(this.values.oldPwd);
83 87
88 if(this.loading){
89 return;
90 }
91 this.loading = true;
92
84 httpPost({ 93 httpPost({
85 url: api.changePassword, 94 url: api.changePassword,
86 data: { 95 data: {
...@@ -89,6 +98,7 @@ export default { ...@@ -89,6 +98,7 @@ export default {
89 }, 98 },
90 sid: true 99 sid: true
91 }).then(response => { 100 }).then(response => {
101 this.loading = false;
92 this.targetPath = ""; 102 this.targetPath = "";
93 let message = this.i18n().passwordCheck.success; 103 let message = this.i18n().passwordCheck.success;
94 switch (response.returnCode) { 104 switch (response.returnCode) {
...@@ -107,6 +117,7 @@ export default { ...@@ -107,6 +117,7 @@ export default {
107 } 117 }
108 118
109 }).catch(err => { 119 }).catch(err => {
120 this.loading = false;
110 let message = this.i18n().session.sidExpire; 121 let message = this.i18n().session.sidExpire;
111 this.targetPath = "/login?callback=/password/reset"; 122 this.targetPath = "/login?callback=/password/reset";
112 this.showModal(message, "info"); 123 this.showModal(message, "info");
...@@ -168,7 +179,9 @@ export default { ...@@ -168,7 +179,9 @@ export default {
168 return b1 || b2 || b3; 179 return b1 || b2 || b3;
169 } 180 }
170 }, 181 },
171 mounted() { }, 182 mounted() {
183 // this.showModal("success", "succ");
184 },
172 created() { }, 185 created() { },
173 components: { 186 components: {
174 modalComp, 187 modalComp,
......
...@@ -49,7 +49,10 @@ ...@@ -49,7 +49,10 @@
49 </div> 49 </div>
50 </div> 50 </div>
51 </div> 51 </div>
52 <div @click="resetPwd()" class="login-submit pointer" :class="{disabled: submitBtnDisabled}">{{$t('passwordReset.type4.submit')}}</div> 52 <div @click="resetPwd()" class="login-submit pointer flex-center" :class="{disabled: submitBtnDisabled}">
53 <van-loading v-if="loading" />
54 <span>{{$t('passwordReset.type4.submit')}}</span>
55 </div>
53 </template> 56 </template>
54 </div> 57 </div>
55 </div> 58 </div>
......
...@@ -7,13 +7,22 @@ import { ...@@ -7,13 +7,22 @@ import {
7 export default { 7 export default {
8 data() { 8 data() {
9 return { 9 return {
10 key: 'value' 10 key: 'value',
11 title: "",
12 content: "",
11 } 13 }
12 }, 14 },
13 components: {}, 15 components: {},
14 methods: { 16 methods: {
15 initData() {} 17 initData() {
18 httpGet({ url: api.companyOutline, data: { l: this.$i18n.locale } }).then(res => {
19 this.content = res.content;
20 this.title = res.title;
21 });
22 }
23 },
24 mounted() {
25 this.initData();
16 }, 26 },
17 mounted() {}, 27 created() { }
18 created() {}
19 } 28 }
......
...@@ -2,6 +2,14 @@ ...@@ -2,6 +2,14 @@
2 <template> 2 <template>
3 <div class="content"> 3 <div class="content">
4 4
5 <div>
6 <div class="top-space"></div>
7 <h2 class="tit">{{title}}</h2>
8 <div class="box desc" v-html="content">
9 </div>
10 </div>
11
12 <!--
5 <div v-if="$i18n.locale == 'zh'"> 13 <div v-if="$i18n.locale == 'zh'">
6 <div class="top-space"></div> 14 <div class="top-space"></div>
7 <h2 class="tit">公司简介</h2> 15 <h2 class="tit">公司简介</h2>
...@@ -34,7 +42,7 @@ ...@@ -34,7 +42,7 @@
34 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;Ping an life regards charity culture as the corporate culture of the company, adheres to the concept of "benevolence and great cause", and regards "the most respected company" as its vision. One hundred years of good karma, responsibility first. Ping an life always nurtures the society with gratitude, takes corporate social responsibility as the driving force for the sustainable development of the company, focuses on "charity" culture, and promotes "great love and responsibility". We will focus on creating a better tomorrow by launching the "new life campaign" with "walking briskly" and "reading" as the main body, as well as public welfare undertakings such as education, poverty alleviation, environment and disaster relief. 42 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;Ping an life regards charity culture as the corporate culture of the company, adheres to the concept of "benevolence and great cause", and regards "the most respected company" as its vision. One hundred years of good karma, responsibility first. Ping an life always nurtures the society with gratitude, takes corporate social responsibility as the driving force for the sustainable development of the company, focuses on "charity" culture, and promotes "great love and responsibility". We will focus on creating a better tomorrow by launching the "new life campaign" with "walking briskly" and "reading" as the main body, as well as public welfare undertakings such as education, poverty alleviation, environment and disaster relief.
35 </div> 43 </div>
36 </div> 44 </div>
37 45 -->
38 </div> 46 </div>
39 </template> 47 </template>
40 48
......
1 import { mapState } from "vuex";
2
1 import api from '@/api/api' 3 import api from '@/api/api'
2 import { 4 import {
3 httpGet, 5 httpGet,
...@@ -9,12 +11,16 @@ import { contactMethodCheck } from '@utils/utils.js'; ...@@ -9,12 +11,16 @@ import { contactMethodCheck } from '@utils/utils.js';
9 import modalComp from '@/components/modal-comp/modal-comp.vue'; 11 import modalComp from '@/components/modal-comp/modal-comp.vue';
10 import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; 12 import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue';
11 import { passwordEncrypt } from '@/utils/encrypt.js'; 13 import { passwordEncrypt } from '@/utils/encrypt.js';
14 import Vue from 'vue';
15 import { Loading } from 'vant';
16 Vue.use(Loading);
12 17
13 export default { 18 export default {
14 data() { 19 data() {
15 return { 20 return {
21 loading: false,
16 key: 'value', 22 key: 'value',
17 type: 2, // 1:手机验证 2:输入密码 23 type: 1, // 1:手机验证 2:输入密码
18 mobileNoType: "hk",// 选择的手机好类型 24 mobileNoType: "hk",// 选择的手机好类型
19 mobileTip: {}, 25 mobileTip: {},
20 mobileOptions: [], 26 mobileOptions: [],
...@@ -62,6 +68,9 @@ export default { ...@@ -62,6 +68,9 @@ export default {
62 modalSimpleComp 68 modalSimpleComp
63 }, 69 },
64 computed: { 70 computed: {
71 ...mapState({
72 userInfo: state => state.userInfo
73 }),
65 locale() { 74 locale() {
66 return this.$i18n.locale || 'tc'; 75 return this.$i18n.locale || 'tc';
67 }, 76 },
...@@ -327,7 +336,7 @@ export default { ...@@ -327,7 +336,7 @@ export default {
327 // this.showModal(msg, "info"); 336 // this.showModal(msg, "info");
328 // let message = this.i18n.register.tips.e5; 337 // let message = this.i18n.register.tips.e5;
329 this.errorTips.p2 = msg; 338 this.errorTips.p2 = msg;
330 339
331 // alert(msg); 340 // alert(msg);
332 }, 341 },
333 onRegisterHandler() { 342 onRegisterHandler() {
...@@ -341,16 +350,20 @@ export default { ...@@ -341,16 +350,20 @@ export default {
341 mobileNo: this.registerForm.mobileNo, 350 mobileNo: this.registerForm.mobileNo,
342 loginPwd: passwordEncrypt(this.values.password) 351 loginPwd: passwordEncrypt(this.values.password)
343 }; 352 };
353 this.loading = true;
344 httpPost({ 354 httpPost({
345 url: api.stdRegister, 355 url: api.stdRegister,
346 data: data 356 data: data
347 }).then(response => { 357 }).then(response => {
358 this.loading = false;
348 if (response.returnCode != 0) { 359 if (response.returnCode != 0) {
349 this._showRegisterFailure(response); 360 this._showRegisterFailure(response);
350 this.type = 1; 361 this.type = 1;
351 } else { 362 } else {
352 this._showSuccessMessage(); 363 this._showSuccessMessage();
353 } 364 }
365 }).catch(e => {
366 this.loading = false;
354 }) 367 })
355 } 368 }
356 }, 369 },
...@@ -450,6 +463,12 @@ export default { ...@@ -450,6 +463,12 @@ export default {
450 463
451 }, 464 },
452 initData() { 465 initData() {
466 if (this.userInfo && (this.userInfo.sid || this.userInfo.name)) {
467 this.$router.push({
468 path: "/"
469 });
470 return;
471 }
453 let i18n = this.$i18n.messages[this.$i18n.locale] || {}; 472 let i18n = this.$i18n.messages[this.$i18n.locale] || {};
454 let mobileOptions = JSON.parse(JSON.stringify(i18n.register.mobileOptions)); 473 let mobileOptions = JSON.parse(JSON.stringify(i18n.register.mobileOptions));
455 this.mobileOptions = mobileOptions; 474 this.mobileOptions = mobileOptions;
......
...@@ -107,7 +107,10 @@ ...@@ -107,7 +107,10 @@
107 </div> 107 </div>
108 </div> 108 </div>
109 </div> 109 </div>
110 <div @click="onRegisterHandler()" class="login-submit pointer" :class="{disabled: submitDisabled}">{{$t('register.sure')}}</div> 110 <div @click="onRegisterHandler()" class="login-submit pointer flex-center" :class="{disabled: submitDisabled}">
111 <van-loading v-if="loading" />
112 <span>{{$t('register.sure')}}</span>
113 </div>
111 </div> 114 </div>
112 </div> 115 </div>
113 </div> 116 </div>
......
...@@ -256,11 +256,13 @@ export function throttle(func, wait, type) { ...@@ -256,11 +256,13 @@ export function throttle(func, wait, type) {
256 */ 256 */
257 export function contactMethodCheck(type, value) { 257 export function contactMethodCheck(type, value) {
258 if (type == 'hkmobile') { 258 if (type == 'hkmobile') {
259 return /^[5689]{1}\d{7}$/.test(value); 259 // return /^[5689]{1}\d{7}$/.test(value);
260 return /^\d{8}$/.test(value);
260 } 261 }
261 262
262 if (type == 'mobile') { 263 if (type == 'mobile') {
263 return /^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/.test(value); 264 // return /^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/.test(value);
265 return /^1\d{10}$/.test(value);
264 } 266 }
265 267
266 if (type == 'email') { 268 if (type == 'email') {
......