部分BUG修复
Showing
29 changed files
with
219 additions
and
137 deletions
| ... | @@ -21,6 +21,9 @@ module.exports = { | ... | @@ -21,6 +21,9 @@ module.exports = { | 
| 21 | back: "證件反面", | 21 | back: "證件反面", | 
| 22 | } | 22 | } | 
| 23 | }, | 23 | }, | 
| 24 | error : { | ||
| 25 | nameTip : "name illegal" | ||
| 26 | }, | ||
| 24 | nav: { | 27 | nav: { | 
| 25 | loginData: { | 28 | loginData: { | 
| 26 | name: "Login", | 29 | name: "Login", | 
| ... | @@ -686,8 +689,8 @@ module.exports = { | ... | @@ -686,8 +689,8 @@ module.exports = { | 
| 686 | }, | 689 | }, | 
| 687 | pulbic: { | 690 | pulbic: { | 
| 688 | title: "Official WeChat Account", | 691 | title: "Official WeChat Account", | 
| 689 | m1: "Login to the \"WeChat\" APP, press the \"+\" button in the upper right corner and select \"Add Friend\", select \"Public Account\" Enter and search \"Ping An Life Hong Kong\"", | 692 | m1: "(1):Login to the \"WeChat\" APP, press the "+" button in the upper right corner and select \"Add Friend\", select \"Public Account\" Enter and search \"Ping An Life Hong Kong\"", | 
| 690 | m2: "Log in to the WeChat APP, press the \"+\" button in the upper right corner and select \"Scan\" to scan the QR code below(QR Code here)" | 693 | m2: "(2):Log in to the WeChat APP, press the "+" button in the upper right corner and select \"Scan\" to scan the QR code below(QR Code here)" | 
| 691 | }, | 694 | }, | 
| 692 | qrcode: { | 695 | qrcode: { | 
| 693 | title: "Official WeChat Account" | 696 | title: "Official WeChat Account" | ... | ... | 
| ... | @@ -21,6 +21,9 @@ module.exports = { | ... | @@ -21,6 +21,9 @@ module.exports = { | 
| 21 | back: "證件反面", | 21 | back: "證件反面", | 
| 22 | } | 22 | } | 
| 23 | }, | 23 | }, | 
| 24 | error : { | ||
| 25 | nameTip : "請輸入合法的名字" | ||
| 26 | }, | ||
| 24 | nav: { | 27 | nav: { | 
| 25 | loginData: { | 28 | loginData: { | 
| 26 | name: "登入", | 29 | name: "登入", | 
| ... | @@ -667,14 +670,14 @@ module.exports = { | ... | @@ -667,14 +670,14 @@ module.exports = { | 
| 667 | service: { | 670 | service: { | 
| 668 | center: { | 671 | center: { | 
| 669 | title: "客戶服務中心", | 672 | title: "客戶服務中心", | 
| 670 | address: "地址:香港尖沙嘴港威永金融大樓", | 673 | address: "地址:香港九龍尖沙咀港威塔樓第5座35樓組織3501-7和14", | 
| 671 | time: "服務時間:星期壹至五9:00-18:00", | 674 | time: "服務時間:星期一至五,上午9時 - 下午6時", | 
| 672 | }, | 675 | }, | 
| 673 | hotline: { | 676 | hotline: { | 
| 674 | title: "客戶服務熱線", | 677 | title: "客戶服務熱線", | 
| 675 | hk: "香港號碼:(852)2983 8866", | 678 | hk: "香港號碼:(852)2983 8866", | 
| 676 | cn: "內地號碼:(86)40078 95511", | 679 | cn: "內地號碼:(86)40078 95511", | 
| 677 | time: "服務時間:星期壹至五9:00-18:00" | 680 | time: "服務時間:星期一至五,上午9時 - 下午6時" | 
| 678 | }, | 681 | }, | 
| 679 | mail: { | 682 | mail: { | 
| 680 | title: "客戶服務電郵", | 683 | title: "客戶服務電郵", | 
| ... | @@ -683,8 +686,8 @@ module.exports = { | ... | @@ -683,8 +686,8 @@ module.exports = { | 
| 683 | }, | 686 | }, | 
| 684 | pulbic: { | 687 | pulbic: { | 
| 685 | title: "微信公眾號", | 688 | title: "微信公眾號", | 
| 686 | m1: "登陸「微信」APP, 按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」 輸入並搜索「平安人壽香港」", | 689 | m1: "方法一:登入「微信」APP,按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」輸入並蒐索「平安人壽香港」", | 
| 687 | m2: "登陸「微信」APP, 按右上角的「+」按鈕並選擇「掃壹掃」掃描下方二維碼(放置二維碼)" | 690 | m2: "方法二:登入「微信」APP,按右上角的「+」按鈕並選擇「掃一掃」掃描下方二維碼(放置二維碼)" | 
| 688 | }, | 691 | }, | 
| 689 | qrcode: { | 692 | qrcode: { | 
| 690 | title: "官方公眾號" | 693 | title: "官方公眾號" | ... | ... | 
| ... | @@ -21,6 +21,9 @@ module.exports = { | ... | @@ -21,6 +21,9 @@ module.exports = { | 
| 21 | back: "证件反面", | 21 | back: "证件反面", | 
| 22 | } | 22 | } | 
| 23 | }, | 23 | }, | 
| 24 | error : { | ||
| 25 | nameTip : "请输入合法的名字" | ||
| 26 | }, | ||
| 24 | nav: { | 27 | nav: { | 
| 25 | loginData: { | 28 | loginData: { | 
| 26 | name: "登入", | 29 | name: "登入", | 
| ... | @@ -668,14 +671,14 @@ module.exports = { | ... | @@ -668,14 +671,14 @@ module.exports = { | 
| 668 | service: { | 671 | service: { | 
| 669 | center: { | 672 | center: { | 
| 670 | title: "客户服务中心", | 673 | title: "客户服务中心", | 
| 671 | address: "地址:香港尖沙嘴港威永金融大楼", | 674 | address: "地址:香港九龙尖沙咀港威大厦第5座35楼单位3501-7和14", | 
| 672 | time: "服务时间:星期一至五9:00-18:00", | 675 | time: "服务时间:星期一至五, 上午9时 - 下午6时", | 
| 673 | }, | 676 | }, | 
| 674 | hotline: { | 677 | hotline: { | 
| 675 | title: "客户服务热线", | 678 | title: "客户服务热线", | 
| 676 | hk: "香港号码:(852)2983 8866", | 679 | hk: "香港号码:(852)2983 8866", | 
| 677 | cn: "内地号码:(86)40078 95511", | 680 | cn: "内地号码:(86)40078 95511", | 
| 678 | time: "服务时间:星期一至五9:00-18:00" | 681 | time: "服务时间:星期一至五, 上午9时 - 下午6时" | 
| 679 | }, | 682 | }, | 
| 680 | mail: { | 683 | mail: { | 
| 681 | title: "客户服务电邮", | 684 | title: "客户服务电邮", | 
| ... | @@ -684,8 +687,8 @@ module.exports = { | ... | @@ -684,8 +687,8 @@ module.exports = { | 
| 684 | }, | 687 | }, | 
| 685 | pulbic: { | 688 | pulbic: { | 
| 686 | title: "微信公众号", | 689 | title: "微信公众号", | 
| 687 | m1: "登陆「微信」APP, 按右上角的「+」按钮並选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」", | 690 | m1: "方法一:登陆「微信」APP, 按右上角的「+」按钮并选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」", | 
| 688 | m2: "登陆「微信」APP, 按右上角的「+」按钮並选择「扫一扫」扫描下方二维码(放置二维码)" | 691 | m2: "方法二:登陆「微信」APP, 按右上角的「+」按钮并选择「扫一扫」扫描下方二维码(放置二维码)" | 
| 689 | }, | 692 | }, | 
| 690 | qrcode: { | 693 | qrcode: { | 
| 691 | title: "官方公众号" | 694 | title: "官方公众号" | ... | ... | 
| ... | @@ -68,7 +68,9 @@ export default { | ... | @@ -68,7 +68,9 @@ export default { | 
| 68 | 68 | ||
| 69 | }, | 69 | }, | 
| 70 | loading: false, | 70 | loading: false, | 
| 71 | contactDateError: false | 71 | contactDateError: false, | 
| 72 | // 判断是否有合法的保单 | ||
| 73 | policyIllegal: true, | ||
| 72 | } | 74 | } | 
| 73 | }, | 75 | }, | 
| 74 | components: { | 76 | components: { | 
| ... | @@ -100,7 +102,9 @@ export default { | ... | @@ -100,7 +102,9 @@ export default { | 
| 100 | let b8 = this.data.HT41Uploading || this.data.HT26Uploading || this.data.HT29Uploading || this.data.HT34Uploading || this.data.HT16Uploading; | 102 | let b8 = this.data.HT41Uploading || this.data.HT26Uploading || this.data.HT29Uploading || this.data.HT34Uploading || this.data.HT16Uploading; | 
| 101 | let b9 = !this.agress; | 103 | let b9 = !this.agress; | 
| 102 | 104 | ||
| 103 | return b1 || b2 || b3 || b4 || b5 || b6 || b7 || b8 || b9; | 105 | let b10 = this.policyIllegal; | 
| 106 | |||
| 107 | return b1 || b2 || b3 || b4 || b5 || b6 || b7 || b8 || b9 || b10; | ||
| 104 | } | 108 | } | 
| 105 | }, | 109 | }, | 
| 106 | methods: { | 110 | methods: { | 
| ... | @@ -125,7 +129,7 @@ export default { | ... | @@ -125,7 +129,7 @@ export default { | 
| 125 | } | 129 | } | 
| 126 | }, | 130 | }, | 
| 127 | uploadSuccess(data) { | 131 | uploadSuccess(data) { | 
| 128 | console.log(data); | 132 | // console.log(data); | 
| 129 | switch (data.type) { | 133 | switch (data.type) { | 
| 130 | case "HT41": | 134 | case "HT41": | 
| 131 | this.data.HT41Uploading = false; | 135 | this.data.HT41Uploading = false; | 
| ... | @@ -150,7 +154,7 @@ export default { | ... | @@ -150,7 +154,7 @@ export default { | 
| 150 | } | 154 | } | 
| 151 | }, | 155 | }, | 
| 152 | beforeUpload(data) { | 156 | beforeUpload(data) { | 
| 153 | console.log(data); | 157 | // console.log(data); | 
| 154 | switch (data.type) { | 158 | switch (data.type) { | 
| 155 | case "HT41": | 159 | case "HT41": | 
| 156 | this.data.HT41Uploading = true; | 160 | this.data.HT41Uploading = true; | 
| ... | @@ -176,9 +180,6 @@ export default { | ... | @@ -176,9 +180,6 @@ export default { | 
| 176 | }, | 180 | }, | 
| 177 | checkDate(data) { | 181 | checkDate(data) { | 
| 178 | this.contactDateError = data.disable; | 182 | this.contactDateError = data.disable; | 
| 179 | if (this.contactDateError) { | ||
| 180 | |||
| 181 | } | ||
| 182 | }, | 183 | }, | 
| 183 | toContact() { | 184 | toContact() { | 
| 184 | this.$router.push({ | 185 | this.$router.push({ | 
| ... | @@ -211,17 +212,19 @@ export default { | ... | @@ -211,17 +212,19 @@ export default { | 
| 211 | cid: this.cid, | 212 | cid: this.cid, | 
| 212 | insuredId: insured.insuredId, | 213 | insuredId: insured.insuredId, | 
| 213 | policyId: policy.policyId, | 214 | policyId: policy.policyId, | 
| 214 | accidentTime : this.data.contactDate, | 215 | accidentTime: this.data.contactDate, | 
| 215 | applyReasonList: this.typeSelected.join(","), | 216 | applyReasonList: this.typeSelected.join(","), | 
| 216 | treatmentAmount: this.data.amount, | 217 | treatmentAmount: this.data.amount, | 
| 217 | imageList: imageList | 218 | imageList: imageList | 
| 218 | } | 219 | } | 
| 219 | console.log("params == ", params); | ||
| 220 | httpPost({ url: api.clarmsRegisterCase, data: params }).then(res => { | 220 | httpPost({ url: api.clarmsRegisterCase, data: params }).then(res => { | 
| 221 | this.$emit("showModal", 2); | 221 | this.$emit("showModal", 2); | 
| 222 | this.loading = false; | 222 | this.loading = false; | 
| 223 | this.agress = false; | ||
| 223 | }).catch(e => { | 224 | }).catch(e => { | 
| 224 | this.loading = false; | 225 | this.loading = false; | 
| 226 | this.showTips = true; | ||
| 227 | this.agress = false; | ||
| 225 | }) | 228 | }) | 
| 226 | }, | 229 | }, | 
| 227 | checkPolicy() { | 230 | checkPolicy() { | 
| ... | @@ -251,10 +254,21 @@ export default { | ... | @@ -251,10 +254,21 @@ export default { | 
| 251 | }, | 254 | }, | 
| 252 | watch: { | 255 | watch: { | 
| 253 | "data.insuredIndex": function () { | 256 | "data.insuredIndex": function () { | 
| 254 | this.checkPolicy(); | 257 | if (this.checkPolicy()) { | 
| 258 | this.policyIllegal = false; | ||
| 259 | } else { | ||
| 260 | this.policyIllegal = true; | ||
| 261 | } | ||
| 255 | }, | 262 | }, | 
| 256 | "data.contactDate": function () { | 263 | "data.contactDate": function () { | 
| 257 | this.checkPolicy(); | 264 | if (this.checkPolicy()) { | 
| 265 | this.policyIllegal = false; | ||
| 266 | } else { | ||
| 267 | this.policyIllegal = true; | ||
| 268 | } | ||
| 269 | }, | ||
| 270 | 'agree': function () { | ||
| 271 | this.showTips = false; | ||
| 258 | } | 272 | } | 
| 259 | }, | 273 | }, | 
| 260 | mounted() { | 274 | mounted() { | ... | ... | 
| ... | @@ -7,7 +7,7 @@ input { | ... | @@ -7,7 +7,7 @@ input { | 
| 7 | } | 7 | } | 
| 8 | 8 | ||
| 9 | .orange { | 9 | .orange { | 
| 10 | color: $cOrange; | 10 | color: #ff6839; | 
| 11 | } | 11 | } | 
| 12 | 12 | ||
| 13 | .gray { | 13 | .gray { | 
| ... | @@ -32,7 +32,7 @@ input { | ... | @@ -32,7 +32,7 @@ input { | 
| 32 | .reservation-container-2 { | 32 | .reservation-container-2 { | 
| 33 | @extend .bb; | 33 | @extend .bb; | 
| 34 | border-radius: .666667rem; | 34 | border-radius: .666667rem; | 
| 35 | border: solid .083333rem $cOrange; | 35 | border: solid .083333rem #ff6839; | 
| 36 | background-color: #ffffff; | 36 | background-color: #ffffff; | 
| 37 | padding: 1.666667rem 10rem 2.833333rem 10rem; | 37 | padding: 1.666667rem 10rem 2.833333rem 10rem; | 
| 38 | 38 | ||
| ... | @@ -51,7 +51,7 @@ input { | ... | @@ -51,7 +51,7 @@ input { | 
| 51 | 51 | ||
| 52 | .title { | 52 | .title { | 
| 53 | font-size: 1.333333rem; | 53 | font-size: 1.333333rem; | 
| 54 | color: $cOrange; | 54 | color: #ff6839; | 
| 55 | text-align: center; | 55 | text-align: center; | 
| 56 | margin: 1.666667rem auto 0 auto; | 56 | margin: 1.666667rem auto 0 auto; | 
| 57 | display: flex; | 57 | display: flex; | 
| ... | @@ -159,24 +159,24 @@ input { | ... | @@ -159,24 +159,24 @@ input { | 
| 159 | span { | 159 | span { | 
| 160 | font-size: 1rem ; | 160 | font-size: 1rem ; | 
| 161 | margin-left: .833333rem; | 161 | margin-left: .833333rem; | 
| 162 | color: $cOrange; | 162 | color: #ff6839; | 
| 163 | } | 163 | } | 
| 164 | } | 164 | } | 
| 165 | 165 | ||
| 166 | .contact { | 166 | .contact { | 
| 167 | text-align: center; | 167 | text-align: center; | 
| 168 | cursor: pointer; | 168 | cursor: pointer; | 
| 169 | color: $cOrange; | 169 | color: #ff6839; | 
| 170 | font-weight: 600; | 170 | font-weight: 600; | 
| 171 | } | 171 | } | 
| 172 | 172 | ||
| 173 | 173 | ||
| 174 | 174 | ||
| 175 | .tips { | 175 | .fail-tips { | 
| 176 | align-items: center; | 176 | align-items: center; | 
| 177 | justify-content: center; | 177 | justify-content: center; | 
| 178 | display: flex; | 178 | display: flex; | 
| 179 | font-size: 1.333333rem; | 179 | font-size: 1.166667rem; | 
| 180 | 180 | ||
| 181 | .icon { | 181 | .icon { | 
| 182 | width:1.333333rem; | 182 | width:1.333333rem; | 
| ... | @@ -186,9 +186,9 @@ input { | ... | @@ -186,9 +186,9 @@ input { | 
| 186 | 186 | ||
| 187 | .btn { | 187 | .btn { | 
| 188 | margin-left: 0; | 188 | margin-left: 0; | 
| 189 | color: $cOrange; | 189 | color: #ff6839; | 
| 190 | font-weight: 600; | 190 | font-weight: 600; | 
| 191 | font-size: 1.333333rem; | 191 | font-size: 1.166667rem; | 
| 192 | } | 192 | } | 
| 193 | } | 193 | } | 
| 194 | } | 194 | } | 
| ... | @@ -203,13 +203,13 @@ input { | ... | @@ -203,13 +203,13 @@ input { | 
| 203 | font-size: 1.333333rem ; | 203 | font-size: 1.333333rem ; | 
| 204 | font-weight: 600; | 204 | font-weight: 600; | 
| 205 | text-align: left; | 205 | text-align: left; | 
| 206 | color: $cOrange; | 206 | color: #ff6839; | 
| 207 | padding-left: 15px; | 207 | padding-left: 15px; | 
| 208 | } | 208 | } | 
| 209 | 209 | ||
| 210 | .ipt-date { | 210 | .ipt-date { | 
| 211 | width: 100%; | 211 | width: 100%; | 
| 212 | border: 1px solid $cOrange !important; | 212 | border: 1px solid #ff6839 !important; | 
| 213 | border-radius: .416667rem ; | 213 | border-radius: .416667rem ; | 
| 214 | height: 3rem; | 214 | height: 3rem; | 
| 215 | align-items: center; | 215 | align-items: center; | 
| ... | @@ -238,7 +238,7 @@ input { | ... | @@ -238,7 +238,7 @@ input { | 
| 238 | 238 | ||
| 239 | // input和下拉 | 239 | // input和下拉 | 
| 240 | .ipt { | 240 | .ipt { | 
| 241 | border: 1px solid $cOrange !important; | 241 | border: 1px solid #ff6839 !important; | 
| 242 | border-radius: .416667rem ; | 242 | border-radius: .416667rem ; | 
| 243 | height: 3rem; | 243 | height: 3rem; | 
| 244 | display:flex; | 244 | display:flex; | 
| ... | @@ -267,7 +267,7 @@ input { | ... | @@ -267,7 +267,7 @@ input { | 
| 267 | } | 267 | } | 
| 268 | 268 | ||
| 269 | .validator { | 269 | .validator { | 
| 270 | color: $cOrange; | 270 | color: #ff6839; | 
| 271 | margin-top: 0.5rem; | 271 | margin-top: 0.5rem; | 
| 272 | position: absolute; | 272 | position: absolute; | 
| 273 | right: 1rem; | 273 | right: 1rem; | 
| ... | @@ -298,7 +298,7 @@ input { | ... | @@ -298,7 +298,7 @@ input { | 
| 298 | 298 | ||
| 299 | .main-label { | 299 | .main-label { | 
| 300 | font-size: 1.5rem ; | 300 | font-size: 1.5rem ; | 
| 301 | color: $cOrange; | 301 | color: #ff6839; | 
| 302 | } | 302 | } | 
| 303 | } | 303 | } | 
| 304 | 304 | ||
| ... | @@ -314,7 +314,7 @@ input { | ... | @@ -314,7 +314,7 @@ input { | 
| 314 | 314 | ||
| 315 | // input和下拉 | 315 | // input和下拉 | 
| 316 | .ipt { | 316 | .ipt { | 
| 317 | border: 1px solid $cOrange !important; | 317 | border: 1px solid #ff6839 !important; | 
| 318 | border-radius: .416667rem ; | 318 | border-radius: .416667rem ; | 
| 319 | height: 3rem; | 319 | height: 3rem; | 
| 320 | display:flex; | 320 | display:flex; | ... | ... | 
| ... | @@ -134,7 +134,7 @@ | ... | @@ -134,7 +134,7 @@ | 
| 134 | 134 | ||
| 135 | <div class="contact" v-if="!showTips" @click="toContact">{{$t('clarms.step2.contact')}}</div> | 135 | <div class="contact" v-if="!showTips" @click="toContact">{{$t('clarms.step2.contact')}}</div> | 
| 136 | 136 | ||
| 137 | <div class="tips" v-if="showTips"> | 137 | <div class="fail-tips" v-if="showTips"> | 
| 138 | <img class="icon" src="@/assets/images/common/icon-alert-i.png" alt=""> | 138 | <img class="icon" src="@/assets/images/common/icon-alert-i.png" alt=""> | 
| 139 | <div class="txt"> | 139 | <div class="txt"> | 
| 140 | {{$t('clarms.step2.failure')}} | 140 | {{$t('clarms.step2.failure')}} | ... | ... | 
| 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, | 
| ... | @@ -9,7 +10,10 @@ import { getPolicyIdTypeList } from '@/utils/biz.js'; | ... | @@ -9,7 +10,10 @@ import { getPolicyIdTypeList } from '@/utils/biz.js'; | 
| 9 | import Vue from 'vue'; | 10 | import Vue from 'vue'; | 
| 10 | import DatePicker from '@/components/date-picker/date-picker.vue'; | 11 | import DatePicker from '@/components/date-picker/date-picker.vue'; | 
| 11 | import { Loading } from 'vant'; | 12 | import { Loading } from 'vant'; | 
| 12 | import { Selector, Options } from 'element-ui'; | 13 | import { Select, Option } from 'element-ui'; | 
| 14 | |||
| 15 | Vue.use(Select); | ||
| 16 | Vue.use(Option); | ||
| 13 | Vue.use(Loading); | 17 | Vue.use(Loading); | 
| 14 | 18 | ||
| 15 | export default { | 19 | export default { | 
| ... | @@ -19,17 +23,17 @@ export default { | ... | @@ -19,17 +23,17 @@ export default { | 
| 19 | loading: false, | 23 | loading: false, | 
| 20 | showTips: false, | 24 | showTips: false, | 
| 21 | data: { | 25 | data: { | 
| 22 | // firstName: "玛丽", | 26 | firstName: "玛丽", | 
| 23 | // lastName: "何", | 27 | lastName: "何", | 
| 24 | // birthDate: "1999-07-15", | 28 | birthDate: "1999-07-15", | 
| 25 | // idNo: "H4099030", | 29 | idNo: "H4099030", | 
| 26 | // idType: "40" | 30 | idType: "40" | 
| 27 | 31 | ||
| 28 | firstName: "", | 32 | // firstName: "", | 
| 29 | lastName: "", | 33 | // lastName: "", | 
| 30 | birthDate: "", | 34 | // birthDate: "", | 
| 31 | idNo: "", | 35 | // idNo: "", | 
| 32 | idType: "" | 36 | // idType: "" | 
| 33 | } | 37 | } | 
| 34 | } | 38 | } | 
| 35 | }, | 39 | }, | 
| ... | @@ -37,6 +41,10 @@ export default { | ... | @@ -37,6 +41,10 @@ export default { | 
| 37 | DatePicker | 41 | DatePicker | 
| 38 | }, | 42 | }, | 
| 39 | computed: { | 43 | computed: { | 
| 44 | ...mapState({ | ||
| 45 | userInfo: state => state.userInfo, | ||
| 46 | policyList: state => state.policyList | ||
| 47 | }), | ||
| 40 | i18n() { | 48 | i18n() { | 
| 41 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | 49 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | 
| 42 | }, | 50 | }, | ... | ... | 
| 1 | <template> | 1 | <template> | 
| 2 | <div class="reservation-container"> | 2 | <div class="reservation-container"> | 
| 3 | <div class="title"><u><span class="pointer" @click="toRegisterPage">{{$t('clarms.step1.register')}}</span>/<span class="pointer" @click="toLoginPage">{{$t('clarms.step1.login')}}</span></u>{{$t('clarms.step1.t1')}}</div> | 3 | <div class="title" v-if="!(userInfo && userInfo.name)"><u><span class="pointer" @click="toRegisterPage">{{$t('clarms.step1.register')}}</span>/<span class="pointer" @click="toLoginPage">{{$t('clarms.step1.login')}}</span></u>{{$t('clarms.step1.t1')}}</div> | 
| 4 | <div class="form-name default-mt"> {{$t('clarms.step1.label0')}}</div> | 4 | <div class="form-name default-mt"> {{$t('clarms.step1.label0')}}</div> | 
| 5 | <div class="gird-g form default-mt"> | 5 | <div class="gird-g form default-mt"> | 
| 6 | <div class="pure-u-1 pure-u-md-1-2 form-item"> | 6 | <div class="pure-u-1 pure-u-md-1-2 form-item"> | ... | ... | 
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ | 
| 21 | 21 | ||
| 22 | @extend .bb; | 22 | @extend .bb; | 
| 23 | max-width: 450px; | 23 | max-width: 450px; | 
| 24 | min-width: 100%; | 24 | min-width: 350px; | 
| 25 | height: 320px; | 25 | height: 320px; | 
| 26 | border-radius: $borderRadius; | 26 | border-radius: $borderRadius; | 
| 27 | background-color: wheat; | 27 | background-color: wheat; | ... | ... | 
| ... | @@ -67,7 +67,7 @@ export default { | ... | @@ -67,7 +67,7 @@ export default { | 
| 67 | if (this.policyList) { | 67 | if (this.policyList) { | 
| 68 | for (let index = 0; index < this.policyList.length; index++) { | 68 | for (let index = 0; index < this.policyList.length; index++) { | 
| 69 | let policy = this.policyList[index]; | 69 | let policy = this.policyList[index]; | 
| 70 | if (policy.checkFlag == "Y") { | 70 | if (policy.checkFlag == "N") { | 
| 71 | continue; | 71 | continue; | 
| 72 | } | 72 | } | 
| 73 | if (this.ignorePolicyCodes.indexOf(policy.policyCode) >= 0) { | 73 | if (this.ignorePolicyCodes.indexOf(policy.policyCode) >= 0) { | 
| ... | @@ -164,6 +164,7 @@ export default { | ... | @@ -164,6 +164,7 @@ export default { | 
| 164 | }, | 164 | }, | 
| 165 | toContact() { | 165 | toContact() { | 
| 166 | this.showPolicy = false; | 166 | this.showPolicy = false; | 
| 167 | sessionStorage.setItem("hidePolicy", "true"); | ||
| 167 | this.$router.push({ | 168 | this.$router.push({ | 
| 168 | path: "/custom/service?q=m1" | 169 | path: "/custom/service?q=m1" | 
| 169 | }); | 170 | }); | ... | ... | 
| ... | @@ -22,7 +22,12 @@ | ... | @@ -22,7 +22,12 @@ | 
| 22 | 22 | ||
| 23 | 23 | ||
| 24 | .orange { | 24 | .orange { | 
| 25 | color: $cOrange; | 25 | color: #ff6839; | 
| 26 | } | ||
| 27 | |||
| 28 | .bold { | ||
| 29 | font-weight: 600; | ||
| 30 | letter-spacing: .083333rem; | ||
| 26 | } | 31 | } | 
| 27 | 32 | ||
| 28 | .modal { | 33 | .modal { | 
| ... | @@ -33,11 +38,13 @@ | ... | @@ -33,11 +38,13 @@ | 
| 33 | border-radius: .8333rem; | 38 | border-radius: .8333rem; | 
| 34 | background-color: #ffffff; | 39 | background-color: #ffffff; | 
| 35 | padding: 3.5rem 2rem 2.5rem; | 40 | padding: 3.5rem 2rem 2.5rem; | 
| 36 | border: .083333rem solid $cOrange; | 41 | border: .083333rem solid #ff6839; | 
| 37 | 42 | ||
| 38 | .title { | 43 | .title { | 
| 39 | font-size: 1.5rem ; | 44 | letter-spacing: .083333rem ; | 
| 40 | color: $cOrange; | 45 | font-size: 1.666667rem; | 
| 46 | font-weight: 900; | ||
| 47 | color: #ff6839; | ||
| 41 | } | 48 | } | 
| 42 | 49 | ||
| 43 | .content { | 50 | .content { | 
| ... | @@ -68,7 +75,7 @@ | ... | @@ -68,7 +75,7 @@ | 
| 68 | 75 | ||
| 69 | .download-btn { | 76 | .download-btn { | 
| 70 | cursor: pointer; | 77 | cursor: pointer; | 
| 71 | border: 1px solid $cOrange; | 78 | border: 1px solid #ff6839; | 
| 72 | border-radius: .416667rem; | 79 | border-radius: .416667rem; | 
| 73 | padding: .5rem; | 80 | padding: .5rem; | 
| 74 | margin: 2rem auto; | 81 | margin: 2rem auto; | ... | ... | 
| 1 | 1 | ||
| 2 | <template> | 2 | <template> | 
| 3 | <div class="comp" v-if="policyDetail && showPolicy"> | 3 | <div class="comp" v-if="policyDetail && showPolicy"> | 
| 4 | <div @click="onOverLayHandler()" class="overlay"></div> | 4 | <div @click="handleIgnorePolicy" class="overlay"></div> | 
| 5 | <div class="modal"> | 5 | <div class="modal"> | 
| 6 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> | 6 | <div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div> | 
| 7 | <div class="title">{{$t('vhis.title')}}</div> | 7 | <div class="title">{{$t('vhis.title')}}</div> | ... | ... | 
| ... | @@ -53,6 +53,8 @@ export default { | ... | @@ -53,6 +53,8 @@ export default { | 
| 53 | }, | 53 | }, | 
| 54 | methods: { | 54 | methods: { | 
| 55 | initData() { | 55 | initData() { | 
| 56 | // this.step = 2; | ||
| 57 | // return; | ||
| 56 | if (this.userInfo && this.userInfo.name) { | 58 | if (this.userInfo && this.userInfo.name) { | 
| 57 | this.loadCidIfLogin(); | 59 | this.loadCidIfLogin(); | 
| 58 | sessionStorage.removeItem("clarmsRequestCid") | 60 | sessionStorage.removeItem("clarmsRequestCid") | ... | ... | 
| ... | @@ -8,10 +8,16 @@ import { contactMethodCheck, policyNumberCheck } from '@utils/utils.js'; | ... | @@ -8,10 +8,16 @@ import { contactMethodCheck, policyNumberCheck } from '@utils/utils.js'; | 
| 8 | 8 | ||
| 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 | |||
| 13 | import { checkName } from '@/utils/utils.js'; | ||
| 14 | import { Select, Option } from 'element-ui'; | ||
| 15 | |||
| 12 | import Vue from 'vue'; | 16 | import Vue from 'vue'; | 
| 13 | import { Loading } from 'vant'; | 17 | import { Loading } from 'vant'; | 
| 14 | Vue.use(Loading); | 18 | Vue.use(Loading); | 
| 19 | Vue.use(Select); | ||
| 20 | Vue.use(Option); | ||
| 15 | 21 | ||
| 16 | export default { | 22 | export default { | 
| 17 | data() { | 23 | data() { | 
| ... | @@ -66,7 +72,7 @@ export default { | ... | @@ -66,7 +72,7 @@ export default { | 
| 66 | submitBtnDisabled() { | 72 | submitBtnDisabled() { | 
| 67 | let b1 = !this.checked; | 73 | let b1 = !this.checked; | 
| 68 | let b2 = this.data.contactDate ? false : true; | 74 | let b2 = this.data.contactDate ? false : true; | 
| 69 | let b3 = this.data.name ? false : true; | 75 | let b3 = checkName(this.data.name) ? false : true; | 
| 70 | let b4 = this.checkContactMethod() ? true : false; | 76 | let b4 = this.checkContactMethod() ? true : false; | 
| 71 | let b5 = this.data.complain ? false : true; | 77 | let b5 = this.data.complain ? false : true; | 
| 72 | let b6 = this.contactDateError; | 78 | let b6 = this.contactDateError; | 
| ... | @@ -203,7 +209,13 @@ export default { | ... | @@ -203,7 +209,13 @@ export default { | 
| 203 | }, | 209 | }, | 
| 204 | watch: { | 210 | watch: { | 
| 205 | 'data.name': function () { | 211 | 'data.name': function () { | 
| 212 | // this.errorTips.nameErr = ""; | ||
| 213 | |||
| 214 | if (checkName(this.data.name)) { | ||
| 206 | this.errorTips.nameErr = ""; | 215 | this.errorTips.nameErr = ""; | 
| 216 | } else { | ||
| 217 | this.errorTips.nameErr = this.i18n.error.nameTip; | ||
| 218 | } | ||
| 207 | }, | 219 | }, | 
| 208 | 'data.contactType': function (val) { | 220 | 'data.contactType': function (val) { | 
| 209 | this.errorTips.contactTypeErr = ""; | 221 | this.errorTips.contactTypeErr = ""; | ... | ... | 
| ... | @@ -24,9 +24,9 @@ | ... | @@ -24,9 +24,9 @@ | 
| 24 | </div> | 24 | </div> | 
| 25 | <div class="ipt-wrap"> | 25 | <div class="ipt-wrap"> | 
| 26 | <div class="down-arrow"></div> | 26 | <div class="down-arrow"></div> | 
| 27 | <select class="ipt phone-ipt" v-model="data.contactType"> | 27 | <el-select class="ipt phone-ipt" v-model="data.contactType"> | 
| 28 | <option v-for="(item,index) in contactTypes" :key="index" :value="item.value">{{item.name}}</option> | 28 | <el-option v-for="(item,index) in contactTypes" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 29 | </select> | 29 | </el-select> | 
| 30 | </div> | 30 | </div> | 
| 31 | <div class="validator" v-if="errorTips.contactTypeErr.length > 0"> | 31 | <div class="validator" v-if="errorTips.contactTypeErr.length > 0"> | 
| 32 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.contactTypeErr}} | 32 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.contactTypeErr}} | ... | ... | 
| ... | @@ -48,11 +48,11 @@ | ... | @@ -48,11 +48,11 @@ | 
| 48 | <div class="ipt-wrap"> | 48 | <div class="ipt-wrap"> | 
| 49 | <div class="down-arrow"></div> | 49 | <div class="down-arrow"></div> | 
| 50 | 50 | ||
| 51 | <select disabled class="ipt disable" v-model="data.sex"> | 51 | <el-select disabled class="ipt disable" v-model="data.sex"> | 
| 52 | <template v-if="sexCandidates"> | 52 | <template v-if="sexCandidates"> | 
| 53 | <option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option> | 53 | <el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name">{{item.name}}</el-option> | 
| 54 | </template> | 54 | </template> | 
| 55 | </select> | 55 | </el-select> | 
| 56 | </div> | 56 | </div> | 
| 57 | </div> | 57 | </div> | 
| 58 | 58 | ||
| ... | @@ -80,9 +80,9 @@ | ... | @@ -80,9 +80,9 @@ | 
| 80 | </div> | 80 | </div> | 
| 81 | <div class="ipt-wrap"> | 81 | <div class="ipt-wrap"> | 
| 82 | <div class="down-arrow"></div> | 82 | <div class="down-arrow"></div> | 
| 83 | <select class="ipt" v-model="data.idType"> | 83 | <el-select class="ipt" v-model="data.idType"> | 
| 84 | <option v-for="(item,index) in policyIdTypeList" :key="index" :value="item.v">{{item.n}}</option> | 84 | <el-option v-for="(item,index) in policyIdTypeList" :key="index" :value="item.v" :label="item.n"></el-option> | 
| 85 | </select> | 85 | </el-select> | 
| 86 | </div> | 86 | </div> | 
| 87 | </div> | 87 | </div> | 
| 88 | 88 | ||
| ... | @@ -119,9 +119,9 @@ | ... | @@ -119,9 +119,9 @@ | 
| 119 | <!-- <input class="ipt" type="text" v-model="data.nature"> --> | 119 | <!-- <input class="ipt" type="text" v-model="data.nature"> --> | 
| 120 | 120 | ||
| 121 | <div class="down-arrow"></div> | 121 | <div class="down-arrow"></div> | 
| 122 | <select class="ipt" v-model="data.nature"> | 122 | <el-select class="ipt" v-model="data.nature"> | 
| 123 | <option v-for="(item,index) in nationList" :key="index" :value="item.v">{{item.n}}</option> | 123 | <el-option v-for="(item,index) in nationList" :key="index" :value="item.v" :label="item.n"></el-option> | 
| 124 | </select> | 124 | </el-select> | 
| 125 | </div> | 125 | </div> | 
| 126 | </div> | 126 | </div> | 
| 127 | 127 | ||
| ... | @@ -144,9 +144,9 @@ | ... | @@ -144,9 +144,9 @@ | 
| 144 | <div class="down-arrow"></div> | 144 | <div class="down-arrow"></div> | 
| 145 | 145 | ||
| 146 | <!-- <input class="ipt" type="text" v-model="data.marriage"> --> | 146 | <!-- <input class="ipt" type="text" v-model="data.marriage"> --> | 
| 147 | <select class="ipt" v-model="data.marriage"> | 147 | <el-select class="ipt" v-model="data.marriage"> | 
| 148 | <option v-for="(item,index) in marryList" :key="index" :value="item.v">{{item.n}}</option> | 148 | <el-option v-for="(item,index) in marryList" :key="index" :value="item.v" :label="item.n"></el-option> | 
| 149 | </select> | 149 | </el-select> | 
| 150 | </div> | 150 | </div> | 
| 151 | </div> | 151 | </div> | 
| 152 | 152 | ... | ... | 
| ... | @@ -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 | |||
| 13 | import { checkName } from '@/utils/utils.js'; | ||
| 14 | |||
| 12 | import Vue from 'vue'; | 15 | import Vue from 'vue'; | 
| 13 | import { Loading } from 'vant'; | 16 | import { Loading } from 'vant'; | 
| 14 | Vue.use(Loading); | 17 | Vue.use(Loading); | 
| ... | @@ -68,7 +71,7 @@ export default { | ... | @@ -68,7 +71,7 @@ export default { | 
| 68 | submitBtnDisabled() { | 71 | submitBtnDisabled() { | 
| 69 | let b1 = !this.checked; | 72 | let b1 = !this.checked; | 
| 70 | let b2 = this.data.contactDate ? false : true; | 73 | let b2 = this.data.contactDate ? false : true; | 
| 71 | let b3 = this.data.name ? false : true; | 74 | let b3 = checkName(this.data.name) ? false : true; | 
| 72 | let b4 = this.checkContactMethod() ? true : false; | 75 | let b4 = this.checkContactMethod() ? true : false; | 
| 73 | let b5 = this.contactDateError; | 76 | let b5 = this.contactDateError; | 
| 74 | return b1 || b2 || b3 || b4 || b5; | 77 | return b1 || b2 || b3 || b4 || b5; | 
| ... | @@ -186,7 +189,12 @@ export default { | ... | @@ -186,7 +189,12 @@ export default { | 
| 186 | watch: { | 189 | watch: { | 
| 187 | 'data.name': function () { | 190 | 'data.name': function () { | 
| 188 | this.errorTips.e8 = ""; | 191 | this.errorTips.e8 = ""; | 
| 192 | |||
| 193 | if (checkName(this.data.name)) { | ||
| 189 | this.errorTips.e1 = ""; | 194 | this.errorTips.e1 = ""; | 
| 195 | } else { | ||
| 196 | this.errorTips.e1 = this.i18n.error.nameTip; | ||
| 197 | } | ||
| 190 | }, | 198 | }, | 
| 191 | 'data.contactMethod': function () { | 199 | 'data.contactMethod': function () { | 
| 192 | this.errorTips.e8 = ""; | 200 | this.errorTips.e8 = ""; | ... | ... | 
| ... | @@ -24,9 +24,9 @@ | ... | @@ -24,9 +24,9 @@ | 
| 24 | </div> | 24 | </div> | 
| 25 | <div class="ipt-wrap"> | 25 | <div class="ipt-wrap"> | 
| 26 | <div class="down-arrow"></div> | 26 | <div class="down-arrow"></div> | 
| 27 | <select class="ipt" v-model="data.contactType"> | 27 | <el-select class="ipt" v-model="data.contactType"> | 
| 28 | <option v-for="(item,index) in contactTypes" :key="index" :value="item.value">{{item.name}}</option> | 28 | <el-option v-for="(item,index) in contactTypes" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 29 | </select> | 29 | </el-select> | 
| 30 | </div> | 30 | </div> | 
| 31 | </div> | 31 | </div> | 
| 32 | 32 | ||
| ... | @@ -48,9 +48,9 @@ | ... | @@ -48,9 +48,9 @@ | 
| 48 | </div> | 48 | </div> | 
| 49 | <div class="ipt-wrap"> | 49 | <div class="ipt-wrap"> | 
| 50 | <div class="down-arrow"></div> | 50 | <div class="down-arrow"></div> | 
| 51 | <select class="ipt" v-model="data.reservationType"> | 51 | <el-select class="ipt" v-model="data.reservationType"> | 
| 52 | <option v-for="(item,index) in reservationTypes" :key="index" :value="item.value">{{item.name}}</option> | 52 | <el-option v-for="(item,index) in reservationTypes" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 53 | </select> | 53 | </el-select> | 
| 54 | </div> | 54 | </div> | 
| 55 | </div> | 55 | </div> | 
| 56 | 56 | ... | ... | 
| ... | @@ -38,11 +38,11 @@ | ... | @@ -38,11 +38,11 @@ | 
| 38 | </div> | 38 | </div> | 
| 39 | <div class="ipt-wrap"> | 39 | <div class="ipt-wrap"> | 
| 40 | <div class="down-arrow"></div> | 40 | <div class="down-arrow"></div> | 
| 41 | <select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex"> | 41 | <el-select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex"> | 
| 42 | <template v-if="sexCandidates"> | 42 | <template v-if="sexCandidates"> | 
| 43 | <option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option> | 43 | <el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 44 | </template> | 44 | </template> | 
| 45 | </select> | 45 | </el-select> | 
| 46 | </div> | 46 | </div> | 
| 47 | </div> | 47 | </div> | 
| 48 | 48 | ||
| ... | @@ -62,11 +62,11 @@ | ... | @@ -62,11 +62,11 @@ | 
| 62 | </div> | 62 | </div> | 
| 63 | <div class="ipt-wrap"> | 63 | <div class="ipt-wrap"> | 
| 64 | <div class="down-arrow"></div> | 64 | <div class="down-arrow"></div> | 
| 65 | <select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType"> | 65 | <el-select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType"> | 
| 66 | <template v-if="idTypeCandidates"> | 66 | <template v-if="idTypeCandidates"> | 
| 67 | <option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value">{{item.name}}</option> | 67 | <el-option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 68 | </template> | 68 | </template> | 
| 69 | </select> | 69 | </el-select> | 
| 70 | </div> | 70 | </div> | 
| 71 | </div> | 71 | </div> | 
| 72 | 72 | ... | ... | 
| ... | @@ -11,7 +11,10 @@ import { | ... | @@ -11,7 +11,10 @@ import { | 
| 11 | import Auth from '@components/auth/auth.vue'; | 11 | import Auth from '@components/auth/auth.vue'; | 
| 12 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 12 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 
| 13 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 13 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 
| 14 | import DatePicker from '@/components/date-picker/date-picker.vue' | 14 | import DatePicker from '@/components/date-picker/date-picker.vue'; | 
| 15 | |||
| 16 | import { checkName } from '@/utils/utils.js'; | ||
| 17 | |||
| 15 | import Vue from 'vue'; | 18 | import Vue from 'vue'; | 
| 16 | import { Loading } from 'vant'; | 19 | import { Loading } from 'vant'; | 
| 17 | Vue.use(Loading); | 20 | Vue.use(Loading); | 
| ... | @@ -44,6 +47,8 @@ export default { | ... | @@ -44,6 +47,8 @@ export default { | 
| 44 | idType: "" | 47 | idType: "" | 
| 45 | }, | 48 | }, | 
| 46 | errorTips: { | 49 | errorTips: { | 
| 50 | fn: "", | ||
| 51 | ln: "", | ||
| 47 | e1: "", | 52 | e1: "", | 
| 48 | e2: "", | 53 | e2: "", | 
| 49 | e3: "", | 54 | e3: "", | 
| ... | @@ -82,8 +87,8 @@ export default { | ... | @@ -82,8 +87,8 @@ export default { | 
| 82 | return i18n.infomationImprove.candidates.idType; | 87 | return i18n.infomationImprove.candidates.idType; | 
| 83 | }, | 88 | }, | 
| 84 | submitBtnDisabled() { | 89 | submitBtnDisabled() { | 
| 85 | let b1 = !this.information.firstName ? true : false; | 90 | let b1 = !checkName(this.information.firstName) ? true : false; | 
| 86 | let b2 = !this.information.lastName ? true : false; | 91 | let b2 = !checkName(this.information.lastName) ? true : false; | 
| 87 | let b3 = !this.information.sex ? true : false; | 92 | let b3 = !this.information.sex ? true : false; | 
| 88 | let b4 = !this.information.birthDate ? true : false; | 93 | let b4 = !this.information.birthDate ? true : false; | 
| 89 | let b5 = !this.information.idNo ? true : false; | 94 | let b5 = !this.information.idNo ? true : false; | 
| ... | @@ -362,8 +367,20 @@ export default { | ... | @@ -362,8 +367,20 @@ export default { | 
| 362 | this.initData(); | 367 | this.initData(); | 
| 363 | }, | 368 | }, | 
| 364 | watch: { | 369 | watch: { | 
| 365 | 'information.cnName': function () { | 370 | |
| 366 | this.errorTips.e1 = ""; | 371 | 'information.firstName': function () { | 
| 372 | if (checkName(this.information.firstName)) { | ||
| 373 | this.errorTips.fn = ""; | ||
| 374 | } else { | ||
| 375 | this.errorTips.fn = this.i18n.error.nameTip; | ||
| 376 | } | ||
| 377 | }, | ||
| 378 | 'information.lastName': function () { | ||
| 379 | if (checkName(this.information.lastName)) { | ||
| 380 | this.errorTips.ln = ""; | ||
| 381 | } else { | ||
| 382 | this.errorTips.ln = this.i18n.error.nameTip; | ||
| 383 | } | ||
| 367 | }, | 384 | }, | 
| 368 | 'information.sex': function () { | 385 | 'information.sex': function () { | 
| 369 | this.errorTips.e2 = ""; | 386 | this.errorTips.e2 = ""; | ... | ... | 
| ... | @@ -20,10 +20,10 @@ | ... | @@ -20,10 +20,10 @@ | 
| 20 | <img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c1')}} | 20 | <img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c1')}} | 
| 21 | </div> | 21 | </div> | 
| 22 | <div class="ipt-wrap"> | 22 | <div class="ipt-wrap"> | 
| 23 | <input class="ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="information.lastName"> | 23 | <input class="ipt" :class="{err : errorTips.ln.length > 0}" type="text" v-model="information.lastName"> | 
| 24 | </div> | 24 | </div> | 
| 25 | <div class="validator" v-if="errorTips.e1.length > 0 "> | 25 | <div class="validator" v-if="errorTips.ln.length > 0 "> | 
| 26 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e1}} | 26 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.ln}} | 
| 27 | </div> | 27 | </div> | 
| 28 | </div> | 28 | </div> | 
| 29 | 29 | ||
| ... | @@ -32,10 +32,10 @@ | ... | @@ -32,10 +32,10 @@ | 
| 32 | <img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c2')}} | 32 | <img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c2')}} | 
| 33 | </div> | 33 | </div> | 
| 34 | <div class="ipt-wrap"> | 34 | <div class="ipt-wrap"> | 
| 35 | <input class="ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="information.firstName"> | 35 | <input class="ipt" :class="{err : errorTips.fn.length > 0}" type="text" v-model="information.firstName"> | 
| 36 | </div> | 36 | </div> | 
| 37 | <div class="validator" v-if="errorTips.e1.length > 0 "> | 37 | <div class="validator" v-if="errorTips.fn.length > 0 "> | 
| 38 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e1}} | 38 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.fn}} | 
| 39 | </div> | 39 | </div> | 
| 40 | </div> | 40 | </div> | 
| 41 | 41 | ||
| ... | @@ -45,11 +45,11 @@ | ... | @@ -45,11 +45,11 @@ | 
| 45 | </div> | 45 | </div> | 
| 46 | <div class="ipt-wrap"> | 46 | <div class="ipt-wrap"> | 
| 47 | <div class="down-arrow"></div> | 47 | <div class="down-arrow"></div> | 
| 48 | <select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex"> | 48 | <el-select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex"> | 
| 49 | <template v-if="sexCandidates"> | 49 | <template v-if="sexCandidates"> | 
| 50 | <option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option> | 50 | <el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name" ></el-option> | 
| 51 | </template> | 51 | </template> | 
| 52 | </select> | 52 | </el-select> | 
| 53 | </div> | 53 | </div> | 
| 54 | <div class="validator" v-if="errorTips.e2.length > 0 "> | 54 | <div class="validator" v-if="errorTips.e2.length > 0 "> | 
| 55 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e2}} | 55 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e2}} | 
| ... | @@ -75,11 +75,11 @@ | ... | @@ -75,11 +75,11 @@ | 
| 75 | </div> | 75 | </div> | 
| 76 | <div class="ipt-wrap"> | 76 | <div class="ipt-wrap"> | 
| 77 | <div class="down-arrow"></div> | 77 | <div class="down-arrow"></div> | 
| 78 | <select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType"> | 78 | <el-select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType"> | 
| 79 | <template v-if="idTypeCandidates"> | 79 | <template v-if="idTypeCandidates"> | 
| 80 | <option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value">{{item.name}}</option> | 80 | <el-option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value" :label="item.name"></el-option> | 
| 81 | </template> | 81 | </template> | 
| 82 | </select> | 82 | </el-select> | 
| 83 | </div> | 83 | </div> | 
| 84 | <div class="validator" v-if="errorTips.e4.length > 0 "> | 84 | <div class="validator" v-if="errorTips.e4.length > 0 "> | 
| 85 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e4}} | 85 | <img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e4}} | ... | ... | 
| ... | @@ -11,7 +11,7 @@ import { | ... | @@ -11,7 +11,7 @@ import { | 
| 11 | } from '@/api/fetch-api.js' | 11 | } from '@/api/fetch-api.js' | 
| 12 | 12 | ||
| 13 | 13 | ||
| 14 | import { contactMethodCheck ,checkVerifyCode} from '@utils/utils.js'; | 14 | import { contactMethodCheck, checkVerifyCode } from '@utils/utils.js'; | 
| 15 | 15 | ||
| 16 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 16 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 
| 17 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 17 | import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue'; | 
| ... | @@ -88,7 +88,7 @@ export default { | ... | @@ -88,7 +88,7 @@ export default { | 
| 88 | modalVisiable: false, | 88 | modalVisiable: false, | 
| 89 | modalSimpleVisiable: false, | 89 | modalSimpleVisiable: false, | 
| 90 | modalUploadCardVisiable: false, | 90 | modalUploadCardVisiable: false, | 
| 91 | modalProtocolVisiable:false, | 91 | modalProtocolVisiable: false, | 
| 92 | targetPath: "", | 92 | targetPath: "", | 
| 93 | modalIcon: "succ", | 93 | modalIcon: "succ", | 
| 94 | modalContent: "" | 94 | modalContent: "" | 
| ... | @@ -200,10 +200,17 @@ export default { | ... | @@ -200,10 +200,17 @@ export default { | 
| 200 | }); | 200 | }); | 
| 201 | }, | 201 | }, | 
| 202 | _handlerIsShowImageVcodeResponse(response) { | 202 | _handlerIsShowImageVcodeResponse(response) { | 
| 203 | if (response.returnCode == "0" && response.data.isShowVcode == "N") { | 203 | if (response.returnCode == "0") { | 
| 204 | this.values.token = response.data.token; | ||
| 205 | if (response.data.isShowVcode == "N") { | ||
| 204 | return true; | 206 | return true; | 
| 207 | } else { | ||
| 208 | // image 值: | ||
| 209 | this.loginCheck.showImageCode = true; | ||
| 210 | this.values.vcodeuuid = response.data.vcodeuuid; | ||
| 211 | this.values.imageBase64 = response.data.image; | ||
| 212 | } | ||
| 205 | } | 213 | } | 
| 206 | this.values.token = response.data.token; | ||
| 207 | return false; | 214 | return false; | 
| 208 | }, | 215 | }, | 
| 209 | handlerRefreshVcode() { | 216 | handlerRefreshVcode() { | 
| ... | @@ -439,10 +446,10 @@ export default { | ... | @@ -439,10 +446,10 @@ export default { | 
| 439 | _handlerIsShowImageVcode() { | 446 | _handlerIsShowImageVcode() { | 
| 440 | return new Promise((resolve, reject) => { | 447 | return new Promise((resolve, reject) => { | 
| 441 | // 如果这个值不为空,标识出现了图片验证码,不需要重新询问是否需要图像验证码了 | 448 | // 如果这个值不为空,标识出现了图片验证码,不需要重新询问是否需要图像验证码了 | 
| 442 | if (this.values.vcodeuuid) { | 449 | // if (this.values.vcodeuuid) { | 
| 443 | resolve(); | 450 | // resolve(); | 
| 444 | return; | 451 | // return; | 
| 445 | } | 452 | // } | 
| 446 | httpPost({ | 453 | httpPost({ | 
| 447 | url: api.stdIsShowImageVcode, | 454 | url: api.stdIsShowImageVcode, | 
| 448 | data: { | 455 | data: { | 
| ... | @@ -451,24 +458,9 @@ export default { | ... | @@ -451,24 +458,9 @@ export default { | 
| 451 | } | 458 | } | 
| 452 | }).then(response => { | 459 | }).then(response => { | 
| 453 | // 判断是否显示图形验证码 | 460 | // 判断是否显示图形验证码 | 
| 454 | if (response.returnCode == "0") { | 461 | if (this._handlerIsShowImageVcodeResponse(response)) { | 
| 455 | this.values.token = response.data.token; | ||
| 456 | if (response.data.isShowVcode == "N") { | ||
| 457 | // if (!this.values.vcodeuuid) { | ||
| 458 | // this.loginCheck.showImageCode = true; | ||
| 459 | // this.values.vcodeuuid = "123456"; | ||
| 460 | // return; | ||
| 461 | // } | ||
| 462 | this.values.vcodeuuid = null; | ||
| 463 | resolve(response); | 462 | resolve(response); | 
| 464 | } else { | ||
| 465 | // image 值: | ||
| 466 | this.loginCheck.showImageCode = true; | ||
| 467 | this.values.vcodeuuid = response.data.vcodeuuid; | ||
| 468 | this.values.imageBase64 = response.data.image; | ||
| 469 | } | ||
| 470 | } | 463 | } | 
| 471 | return false; | ||
| 472 | }) | 464 | }) | 
| 473 | }); | 465 | }); | 
| 474 | }, | 466 | }, | ... | ... | 
| ... | @@ -102,9 +102,9 @@ | ... | @@ -102,9 +102,9 @@ | 
| 102 | <div class="ipt-wrap"> | 102 | <div class="ipt-wrap"> | 
| 103 | <div class="region-tel ipt-wrap"> | 103 | <div class="region-tel ipt-wrap"> | 
| 104 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 104 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 
| 105 | <select class="ipt" v-model="mobileNoType"> | 105 | <el-select class="ipt" v-model="mobileNoType"> | 
| 106 | <option v-for="(item,index) in mobileOptions" :key="index" :value="item.type">{{item.areaCode}}</option> | 106 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode"></el-option> | 
| 107 | </select> | 107 | </el-select> | 
| 108 | </div> | 108 | </div> | 
| 109 | 109 | ||
| 110 | <div class="ipt ipt2" :class="{err : errorTips.oe1.length > 0}"> | 110 | <div class="ipt ipt2" :class="{err : errorTips.oe1.length > 0}"> | ... | ... | 
| ... | @@ -36,9 +36,9 @@ | ... | @@ -36,9 +36,9 @@ | 
| 36 | 36 | ||
| 37 | <div class="region-tel ipt-wrap"> | 37 | <div class="region-tel ipt-wrap"> | 
| 38 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 38 | <img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt=""> | 
| 39 | <select class="ipt" v-model="mobileNoType"> | 39 | <el-select class="ipt" v-model="mobileNoType"> | 
| 40 | <option v-for="(item,index) in mobileOptions" :key="index" :value="item.type">{{item.areaCode}}</option> | 40 | <el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option> | 
| 41 | </select> | 41 | </el-select> | 
| 42 | </div> | 42 | </div> | 
| 43 | 43 | ||
| 44 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> | 44 | <div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}"> | ... | ... | 
| ... | @@ -278,3 +278,7 @@ export function policyNumberCheck(policyNumber) { | ... | @@ -278,3 +278,7 @@ export function policyNumberCheck(policyNumber) { | 
| 278 | export function checkVerifyCode(verifyCode) { | 278 | export function checkVerifyCode(verifyCode) { | 
| 279 | return /^\d{6}$/.test(verifyCode) | 279 | return /^\d{6}$/.test(verifyCode) | 
| 280 | } | 280 | } | 
| 281 | |||
| 282 | export function checkName(name) { | ||
| 283 | return /^\D+$/.test(name); | ||
| 284 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... | 
- 
Please register or sign in to post a comment