e4f94203 by joe

部分BUG修复

1 parent 6be746b0
......@@ -21,6 +21,9 @@ module.exports = {
back: "證件反面",
}
},
error : {
nameTip : "name illegal"
},
nav: {
loginData: {
name: "Login",
......@@ -686,8 +689,8 @@ module.exports = {
},
pulbic: {
title: "Official WeChat Account",
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\"",
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)"
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\"",
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)"
},
qrcode: {
title: "Official WeChat Account"
......
......@@ -21,6 +21,9 @@ module.exports = {
back: "證件反面",
}
},
error : {
nameTip : "請輸入合法的名字"
},
nav: {
loginData: {
name: "登入",
......@@ -667,14 +670,14 @@ module.exports = {
service: {
center: {
title: "客戶服務中心",
address: "地址:香港尖沙嘴港威永金融大樓",
time: "服務時間:星期壹至五9:00-18:00",
address: "地址:香港九龍尖沙咀港威塔樓第5座35樓組織3501-7和14",
time: "服務時間:星期一至五,上午9時 - 下午6時",
},
hotline: {
title: "客戶服務熱線",
hk: "香港號碼:(852)2983 8866",
cn: "內地號碼:(86)40078 95511",
time: "服務時間:星期壹至五9:00-18:00"
time: "服務時間:星期一至五,上午9時 - 下午6時"
},
mail: {
title: "客戶服務電郵",
......@@ -683,8 +686,8 @@ module.exports = {
},
pulbic: {
title: "微信公眾號",
m1: "登陸「微信」APP, 按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」 輸入並搜索「平安人壽香港」",
m2: "登陸「微信」APP, 按右上角的「+」按鈕並選擇「掃壹掃」掃描下方二維碼(放置二維碼)"
m1: "方法一:登入「微信」APP,按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」輸入並蒐索「平安人壽香港」",
m2: "方法二:登入「微信」APP,按右上角的「+」按鈕並選擇「掃一掃」掃描下方二維碼(放置二維碼)"
},
qrcode: {
title: "官方公眾號"
......
......@@ -21,6 +21,9 @@ module.exports = {
back: "证件反面",
}
},
error : {
nameTip : "请输入合法的名字"
},
nav: {
loginData: {
name: "登入",
......@@ -668,14 +671,14 @@ module.exports = {
service: {
center: {
title: "客户服务中心",
address: "地址:香港尖沙嘴港威永金融大楼",
time: "服务时间:星期一至五9:00-18:00",
address: "地址:香港九龙尖沙咀港威大厦第5座35楼单位3501-7和14",
time: "服务时间:星期一至五, 上午9时 - 下午6时",
},
hotline: {
title: "客户服务热线",
hk: "香港号码:(852)2983 8866",
cn: "内地号码:(86)40078 95511",
time: "服务时间:星期一至五9:00-18:00"
time: "服务时间:星期一至五, 上午9时 - 下午6时"
},
mail: {
title: "客户服务电邮",
......@@ -684,8 +687,8 @@ module.exports = {
},
pulbic: {
title: "微信公众号",
m1: "登陆「微信」APP, 按右上角的「+」按钮並选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」",
m2: "登陆「微信」APP, 按右上角的「+」按钮並选择「扫一扫」扫描下方二维码(放置二维码)"
m1: "方法一:登陆「微信」APP, 按右上角的「+」按钮并选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」",
m2: "方法二:登陆「微信」APP, 按右上角的「+」按钮并选择「扫一扫」扫描下方二维码(放置二维码)"
},
qrcode: {
title: "官方公众号"
......
......@@ -68,7 +68,9 @@ export default {
},
loading: false,
contactDateError: false
contactDateError: false,
// 判断是否有合法的保单
policyIllegal: true,
}
},
components: {
......@@ -100,7 +102,9 @@ export default {
let b8 = this.data.HT41Uploading || this.data.HT26Uploading || this.data.HT29Uploading || this.data.HT34Uploading || this.data.HT16Uploading;
let b9 = !this.agress;
return b1 || b2 || b3 || b4 || b5 || b6 || b7 || b8 || b9;
let b10 = this.policyIllegal;
return b1 || b2 || b3 || b4 || b5 || b6 || b7 || b8 || b9 || b10;
}
},
methods: {
......@@ -125,7 +129,7 @@ export default {
}
},
uploadSuccess(data) {
console.log(data);
// console.log(data);
switch (data.type) {
case "HT41":
this.data.HT41Uploading = false;
......@@ -150,7 +154,7 @@ export default {
}
},
beforeUpload(data) {
console.log(data);
// console.log(data);
switch (data.type) {
case "HT41":
this.data.HT41Uploading = true;
......@@ -176,9 +180,6 @@ export default {
},
checkDate(data) {
this.contactDateError = data.disable;
if (this.contactDateError) {
}
},
toContact() {
this.$router.push({
......@@ -211,17 +212,19 @@ export default {
cid: this.cid,
insuredId: insured.insuredId,
policyId: policy.policyId,
accidentTime : this.data.contactDate,
accidentTime: this.data.contactDate,
applyReasonList: this.typeSelected.join(","),
treatmentAmount: this.data.amount,
imageList: imageList
}
console.log("params == ", params);
httpPost({ url: api.clarmsRegisterCase, data: params }).then(res => {
this.$emit("showModal", 2);
this.loading = false;
this.agress = false;
}).catch(e => {
this.loading = false;
this.showTips = true;
this.agress = false;
})
},
checkPolicy() {
......@@ -251,10 +254,21 @@ export default {
},
watch: {
"data.insuredIndex": function () {
this.checkPolicy();
if (this.checkPolicy()) {
this.policyIllegal = false;
} else {
this.policyIllegal = true;
}
},
"data.contactDate": function () {
this.checkPolicy();
if (this.checkPolicy()) {
this.policyIllegal = false;
} else {
this.policyIllegal = true;
}
},
'agree': function () {
this.showTips = false;
}
},
mounted() {
......
......@@ -7,7 +7,7 @@ input {
}
.orange {
color: $cOrange;
color: #ff6839;
}
.gray {
......@@ -32,7 +32,7 @@ input {
.reservation-container-2 {
@extend .bb;
border-radius: .666667rem;
border: solid .083333rem $cOrange;
border: solid .083333rem #ff6839;
background-color: #ffffff;
padding: 1.666667rem 10rem 2.833333rem 10rem;
......@@ -51,7 +51,7 @@ input {
.title {
font-size: 1.333333rem;
color: $cOrange;
color: #ff6839;
text-align: center;
margin: 1.666667rem auto 0 auto;
display: flex;
......@@ -159,24 +159,24 @@ input {
span {
font-size: 1rem ;
margin-left: .833333rem;
color: $cOrange;
color: #ff6839;
}
}
.contact {
text-align: center;
cursor: pointer;
color: $cOrange;
color: #ff6839;
font-weight: 600;
}
.tips {
.fail-tips {
align-items: center;
justify-content: center;
display: flex;
font-size: 1.333333rem;
font-size: 1.166667rem;
.icon {
width:1.333333rem;
......@@ -186,9 +186,9 @@ input {
.btn {
margin-left: 0;
color: $cOrange;
color: #ff6839;
font-weight: 600;
font-size: 1.333333rem;
font-size: 1.166667rem;
}
}
}
......@@ -203,13 +203,13 @@ input {
font-size: 1.333333rem ;
font-weight: 600;
text-align: left;
color: $cOrange;
color: #ff6839;
padding-left: 15px;
}
.ipt-date {
width: 100%;
border: 1px solid $cOrange !important;
border: 1px solid #ff6839 !important;
border-radius: .416667rem ;
height: 3rem;
align-items: center;
......@@ -238,7 +238,7 @@ input {
// input和下拉
.ipt {
border: 1px solid $cOrange !important;
border: 1px solid #ff6839 !important;
border-radius: .416667rem ;
height: 3rem;
display:flex;
......@@ -267,7 +267,7 @@ input {
}
.validator {
color: $cOrange;
color: #ff6839;
margin-top: 0.5rem;
position: absolute;
right: 1rem;
......@@ -298,7 +298,7 @@ input {
.main-label {
font-size: 1.5rem ;
color: $cOrange;
color: #ff6839;
}
}
......@@ -314,7 +314,7 @@ input {
// input和下拉
.ipt {
border: 1px solid $cOrange !important;
border: 1px solid #ff6839 !important;
border-radius: .416667rem ;
height: 3rem;
display:flex;
......
......@@ -134,7 +134,7 @@
<div class="contact" v-if="!showTips" @click="toContact">{{$t('clarms.step2.contact')}}</div>
<div class="tips" v-if="showTips">
<div class="fail-tips" v-if="showTips">
<img class="icon" src="@/assets/images/common/icon-alert-i.png" alt="">
<div class="txt">
{{$t('clarms.step2.failure')}}
......
import { mapState } from "vuex";
import api from '@/api/api'
import {
httpGet,
......@@ -9,7 +10,10 @@ import { getPolicyIdTypeList } from '@/utils/biz.js';
import Vue from 'vue';
import DatePicker from '@/components/date-picker/date-picker.vue';
import { Loading } from 'vant';
import { Selector, Options } from 'element-ui';
import { Select, Option } from 'element-ui';
Vue.use(Select);
Vue.use(Option);
Vue.use(Loading);
export default {
......@@ -19,17 +23,17 @@ export default {
loading: false,
showTips: false,
data: {
// firstName: "玛丽",
// lastName: "何",
// birthDate: "1999-07-15",
// idNo: "H4099030",
// idType: "40"
firstName: "玛丽",
lastName: "何",
birthDate: "1999-07-15",
idNo: "H4099030",
idType: "40"
firstName: "",
lastName: "",
birthDate: "",
idNo: "",
idType: ""
// firstName: "",
// lastName: "",
// birthDate: "",
// idNo: "",
// idType: ""
}
}
},
......@@ -37,6 +41,10 @@ export default {
DatePicker
},
computed: {
...mapState({
userInfo: state => state.userInfo,
policyList: state => state.policyList
}),
i18n() {
return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {};
},
......
<template>
<div class="reservation-container">
<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>
<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>
<div class="form-name default-mt"> {{$t('clarms.step1.label0')}}</div>
<div class="gird-g form default-mt">
<div class="pure-u-1 pure-u-md-1-2 form-item">
......
......@@ -21,7 +21,7 @@
@extend .bb;
max-width: 450px;
min-width: 100%;
min-width: 350px;
height: 320px;
border-radius: $borderRadius;
background-color: wheat;
......
......@@ -67,7 +67,7 @@ export default {
if (this.policyList) {
for (let index = 0; index < this.policyList.length; index++) {
let policy = this.policyList[index];
if (policy.checkFlag == "Y") {
if (policy.checkFlag == "N") {
continue;
}
if (this.ignorePolicyCodes.indexOf(policy.policyCode) >= 0) {
......@@ -164,6 +164,7 @@ export default {
},
toContact() {
this.showPolicy = false;
sessionStorage.setItem("hidePolicy", "true");
this.$router.push({
path: "/custom/service?q=m1"
});
......
......@@ -22,7 +22,12 @@
.orange {
color: $cOrange;
color: #ff6839;
}
.bold {
font-weight: 600;
letter-spacing: .083333rem;
}
.modal {
......@@ -33,11 +38,13 @@
border-radius: .8333rem;
background-color: #ffffff;
padding: 3.5rem 2rem 2.5rem;
border: .083333rem solid $cOrange;
border: .083333rem solid #ff6839;
.title {
font-size: 1.5rem ;
color: $cOrange;
letter-spacing: .083333rem ;
font-size: 1.666667rem;
font-weight: 900;
color: #ff6839;
}
.content {
......@@ -68,7 +75,7 @@
.download-btn {
cursor: pointer;
border: 1px solid $cOrange;
border: 1px solid #ff6839;
border-radius: .416667rem;
padding: .5rem;
margin: 2rem auto;
......
<template>
<div class="comp" v-if="policyDetail && showPolicy">
<div @click="onOverLayHandler()" class="overlay"></div>
<div @click="handleIgnorePolicy" class="overlay"></div>
<div class="modal">
<div class="close" @click="onOverLayHandler()"><img src="@/assets/images/vhis/close.png"></div>
<div class="title">{{$t('vhis.title')}}</div>
......
......@@ -53,6 +53,8 @@ export default {
},
methods: {
initData() {
// this.step = 2;
// return;
if (this.userInfo && this.userInfo.name) {
this.loadCidIfLogin();
sessionStorage.removeItem("clarmsRequestCid")
......
......@@ -8,10 +8,16 @@ import { contactMethodCheck, policyNumberCheck } from '@utils/utils.js';
import Auth from '@components/auth/auth.vue';
import modalComp from '@/components/modal-comp/modal-comp.vue';
import DatePicker from '@/components/date-picker/date-picker.vue'
import DatePicker from '@/components/date-picker/date-picker.vue';
import { checkName } from '@/utils/utils.js';
import { Select, Option } from 'element-ui';
import Vue from 'vue';
import { Loading } from 'vant';
Vue.use(Loading);
Vue.use(Select);
Vue.use(Option);
export default {
data() {
......@@ -66,7 +72,7 @@ export default {
submitBtnDisabled() {
let b1 = !this.checked;
let b2 = this.data.contactDate ? false : true;
let b3 = this.data.name ? false : true;
let b3 = checkName(this.data.name) ? false : true;
let b4 = this.checkContactMethod() ? true : false;
let b5 = this.data.complain ? false : true;
let b6 = this.contactDateError;
......@@ -203,7 +209,13 @@ export default {
},
watch: {
'data.name': function () {
this.errorTips.nameErr = "";
// this.errorTips.nameErr = "";
if (checkName(this.data.name)) {
this.errorTips.nameErr = "";
} else {
this.errorTips.nameErr = this.i18n.error.nameTip;
}
},
'data.contactType': function (val) {
this.errorTips.contactTypeErr = "";
......
......@@ -24,9 +24,9 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt phone-ipt" v-model="data.contactType">
<option v-for="(item,index) in contactTypes" :key="index" :value="item.value">{{item.name}}</option>
</select>
<el-select class="ipt phone-ipt" v-model="data.contactType">
<el-option v-for="(item,index) in contactTypes" :key="index" :value="item.value" :label="item.name"></el-option>
</el-select>
</div>
<div class="validator" v-if="errorTips.contactTypeErr.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.contactTypeErr}}
......
@import '@/styles/_support';
.contact-us-container {}
.contact-us-container {
.info-item {
padding-right: 1.25rem;
}
}
.border {
@extend .bb;
......
......@@ -48,11 +48,11 @@
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select disabled class="ipt disable" v-model="data.sex">
<el-select disabled class="ipt disable" v-model="data.sex">
<template v-if="sexCandidates">
<option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option>
<el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name">{{item.name}}</el-option>
</template>
</select>
</el-select>
</div>
</div>
......@@ -80,9 +80,9 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" v-model="data.idType">
<option v-for="(item,index) in policyIdTypeList" :key="index" :value="item.v">{{item.n}}</option>
</select>
<el-select class="ipt" v-model="data.idType">
<el-option v-for="(item,index) in policyIdTypeList" :key="index" :value="item.v" :label="item.n"></el-option>
</el-select>
</div>
</div>
......@@ -119,9 +119,9 @@
<!-- <input class="ipt" type="text" v-model="data.nature"> -->
<div class="down-arrow"></div>
<select class="ipt" v-model="data.nature">
<option v-for="(item,index) in nationList" :key="index" :value="item.v">{{item.n}}</option>
</select>
<el-select class="ipt" v-model="data.nature">
<el-option v-for="(item,index) in nationList" :key="index" :value="item.v" :label="item.n"></el-option>
</el-select>
</div>
</div>
......@@ -144,9 +144,9 @@
<div class="down-arrow"></div>
<!-- <input class="ipt" type="text" v-model="data.marriage"> -->
<select class="ipt" v-model="data.marriage">
<option v-for="(item,index) in marryList" :key="index" :value="item.v">{{item.n}}</option>
</select>
<el-select class="ipt" v-model="data.marriage">
<el-option v-for="(item,index) in marryList" :key="index" :value="item.v" :label="item.n"></el-option>
</el-select>
</div>
</div>
......
......@@ -9,6 +9,9 @@ import { contactMethodCheck } from '@utils/utils.js';
import DatePicker from '@/components/date-picker/date-picker.vue';
import Auth from '@components/auth/auth.vue';
import modalComp from '@/components/modal-comp/modal-comp.vue';
import { checkName } from '@/utils/utils.js';
import Vue from 'vue';
import { Loading } from 'vant';
Vue.use(Loading);
......@@ -68,7 +71,7 @@ export default {
submitBtnDisabled() {
let b1 = !this.checked;
let b2 = this.data.contactDate ? false : true;
let b3 = this.data.name ? false : true;
let b3 = checkName(this.data.name) ? false : true;
let b4 = this.checkContactMethod() ? true : false;
let b5 = this.contactDateError;
return b1 || b2 || b3 || b4 || b5;
......@@ -186,7 +189,12 @@ export default {
watch: {
'data.name': function () {
this.errorTips.e8 = "";
this.errorTips.e1 = "";
if (checkName(this.data.name)) {
this.errorTips.e1 = "";
} else {
this.errorTips.e1 = this.i18n.error.nameTip;
}
},
'data.contactMethod': function () {
this.errorTips.e8 = "";
......
......@@ -24,9 +24,9 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" v-model="data.contactType">
<option v-for="(item,index) in contactTypes" :key="index" :value="item.value">{{item.name}}</option>
</select>
<el-select class="ipt" v-model="data.contactType">
<el-option v-for="(item,index) in contactTypes" :key="index" :value="item.value" :label="item.name"></el-option>
</el-select>
</div>
</div>
......@@ -48,9 +48,9 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" v-model="data.reservationType">
<option v-for="(item,index) in reservationTypes" :key="index" :value="item.value">{{item.name}}</option>
</select>
<el-select class="ipt" v-model="data.reservationType">
<el-option v-for="(item,index) in reservationTypes" :key="index" :value="item.value" :label="item.name"></el-option>
</el-select>
</div>
</div>
......
......@@ -38,11 +38,11 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex">
<el-select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex">
<template v-if="sexCandidates">
<option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option>
<el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name"></el-option>
</template>
</select>
</el-select>
</div>
</div>
......@@ -62,11 +62,11 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType">
<el-select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType">
<template v-if="idTypeCandidates">
<option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value">{{item.name}}</option>
<el-option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value" :label="item.name"></el-option>
</template>
</select>
</el-select>
</div>
</div>
......
......@@ -11,7 +11,10 @@ import {
import Auth from '@components/auth/auth.vue';
import modalComp from '@/components/modal-comp/modal-comp.vue';
import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue';
import DatePicker from '@/components/date-picker/date-picker.vue'
import DatePicker from '@/components/date-picker/date-picker.vue';
import { checkName } from '@/utils/utils.js';
import Vue from 'vue';
import { Loading } from 'vant';
Vue.use(Loading);
......@@ -44,6 +47,8 @@ export default {
idType: ""
},
errorTips: {
fn: "",
ln: "",
e1: "",
e2: "",
e3: "",
......@@ -82,8 +87,8 @@ export default {
return i18n.infomationImprove.candidates.idType;
},
submitBtnDisabled() {
let b1 = !this.information.firstName ? true : false;
let b2 = !this.information.lastName ? true : false;
let b1 = !checkName(this.information.firstName) ? true : false;
let b2 = !checkName(this.information.lastName) ? true : false;
let b3 = !this.information.sex ? true : false;
let b4 = !this.information.birthDate ? true : false;
let b5 = !this.information.idNo ? true : false;
......@@ -223,7 +228,7 @@ export default {
message = this.i18n.infomationImprove.successMsg;
let path = this.$route.query.c || "/";
this.targetPath = path;
let userInfo = JSON.parse(JSON.stringify(this.userInfo));
userInfo.hadFullInfo = 1;
userInfo.name = this.information.lastName + this.information.firstName;
......@@ -362,8 +367,20 @@ export default {
this.initData();
},
watch: {
'information.cnName': function () {
this.errorTips.e1 = "";
'information.firstName': function () {
if (checkName(this.information.firstName)) {
this.errorTips.fn = "";
} else {
this.errorTips.fn = this.i18n.error.nameTip;
}
},
'information.lastName': function () {
if (checkName(this.information.lastName)) {
this.errorTips.ln = "";
} else {
this.errorTips.ln = this.i18n.error.nameTip;
}
},
'information.sex': function () {
this.errorTips.e2 = "";
......
......@@ -20,10 +20,10 @@
<img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c1')}}
</div>
<div class="ipt-wrap">
<input class="ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="information.lastName">
<input class="ipt" :class="{err : errorTips.ln.length > 0}" type="text" v-model="information.lastName">
</div>
<div class="validator" v-if="errorTips.e1.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e1}}
<div class="validator" v-if="errorTips.ln.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.ln}}
</div>
</div>
......@@ -32,10 +32,10 @@
<img src="@/assets/images/improve-infomation/icon-improve-infomation-user.png"> {{$t('infomationImprove.t1c2')}}
</div>
<div class="ipt-wrap">
<input class="ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="information.firstName">
<input class="ipt" :class="{err : errorTips.fn.length > 0}" type="text" v-model="information.firstName">
</div>
<div class="validator" v-if="errorTips.e1.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e1}}
<div class="validator" v-if="errorTips.fn.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.fn}}
</div>
</div>
......@@ -45,11 +45,11 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex">
<el-select class="ipt" :class="{err : errorTips.e2.length > 0}" v-model="information.sex">
<template v-if="sexCandidates">
<option v-for="(item,index) in sexCandidates" :key="index" :value="item.value">{{item.name}}</option>
<el-option v-for="(item,index) in sexCandidates" :key="index" :value="item.value" :label="item.name" ></el-option>
</template>
</select>
</el-select>
</div>
<div class="validator" v-if="errorTips.e2.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e2}}
......@@ -75,11 +75,11 @@
</div>
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType">
<el-select class="ipt" :class="{err : errorTips.e4.length > 0}" v-model="information.idType">
<template v-if="idTypeCandidates">
<option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value">{{item.name}}</option>
<el-option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value" :label="item.name"></el-option>
</template>
</select>
</el-select>
</div>
<div class="validator" v-if="errorTips.e4.length > 0 ">
<img src="@/assets/images/common/icon-notice.png" alt=""> {{errorTips.e4}}
......
......@@ -11,7 +11,7 @@ import {
} from '@/api/fetch-api.js'
import { contactMethodCheck ,checkVerifyCode} from '@utils/utils.js';
import { contactMethodCheck, checkVerifyCode } from '@utils/utils.js';
import modalComp from '@/components/modal-comp/modal-comp.vue';
import modalSimpleComp from '@/components/modal-simple-comp/modal-simple-comp.vue';
......@@ -88,7 +88,7 @@ export default {
modalVisiable: false,
modalSimpleVisiable: false,
modalUploadCardVisiable: false,
modalProtocolVisiable:false,
modalProtocolVisiable: false,
targetPath: "",
modalIcon: "succ",
modalContent: ""
......@@ -200,10 +200,17 @@ export default {
});
},
_handlerIsShowImageVcodeResponse(response) {
if (response.returnCode == "0" && response.data.isShowVcode == "N") {
return true;
if (response.returnCode == "0") {
this.values.token = response.data.token;
if (response.data.isShowVcode == "N") {
return true;
} else {
// image 值:
this.loginCheck.showImageCode = true;
this.values.vcodeuuid = response.data.vcodeuuid;
this.values.imageBase64 = response.data.image;
}
}
this.values.token = response.data.token;
return false;
},
handlerRefreshVcode() {
......@@ -439,10 +446,10 @@ export default {
_handlerIsShowImageVcode() {
return new Promise((resolve, reject) => {
// 如果这个值不为空,标识出现了图片验证码,不需要重新询问是否需要图像验证码了
if (this.values.vcodeuuid) {
resolve();
return;
}
// if (this.values.vcodeuuid) {
// resolve();
// return;
// }
httpPost({
url: api.stdIsShowImageVcode,
data: {
......@@ -451,24 +458,9 @@ export default {
}
}).then(response => {
// 判断是否显示图形验证码
if (response.returnCode == "0") {
this.values.token = response.data.token;
if (response.data.isShowVcode == "N") {
// if (!this.values.vcodeuuid) {
// this.loginCheck.showImageCode = true;
// this.values.vcodeuuid = "123456";
// return;
// }
this.values.vcodeuuid = null;
resolve(response);
} else {
// image 值:
this.loginCheck.showImageCode = true;
this.values.vcodeuuid = response.data.vcodeuuid;
this.values.imageBase64 = response.data.image;
}
if (this._handlerIsShowImageVcodeResponse(response)) {
resolve(response);
}
return false;
})
});
},
......
......@@ -197,6 +197,7 @@
.region-tel {
margin-right: .8rem;
max-width: 30%;
}
.verify-btn {
......
......@@ -102,9 +102,9 @@
<div class="ipt-wrap">
<div class="region-tel ipt-wrap">
<img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt="">
<select class="ipt" v-model="mobileNoType">
<option v-for="(item,index) in mobileOptions" :key="index" :value="item.type">{{item.areaCode}}</option>
</select>
<el-select class="ipt" v-model="mobileNoType">
<el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode"></el-option>
</el-select>
</div>
<div class="ipt ipt2" :class="{err : errorTips.oe1.length > 0}">
......
......@@ -201,6 +201,7 @@
.region-tel {
margin-right: .8rem;
max-width: 30%;
}
......
......@@ -36,9 +36,9 @@
<div class="region-tel ipt-wrap">
<img class="down-arrow" src="@/assets/images/reservation/re-down-arrow.png" alt="">
<select class="ipt" v-model="mobileNoType">
<option v-for="(item,index) in mobileOptions" :key="index" :value="item.type">{{item.areaCode}}</option>
</select>
<el-select class="ipt" v-model="mobileNoType">
<el-option v-for="(item,index) in mobileOptions" :key="index" :value="item.type" :label="item.areaCode">{{item.areaCode}}</el-option>
</el-select>
</div>
<div class="ipt ipt2" :class="{err : errorTips.p1.length > 0}">
......
......@@ -56,6 +56,8 @@
padding: 0 2rem;
flex: 1;
letter-spacing: 0.1rem;
display: flex;
align-items: center;
}
.down-arrow {
......
......@@ -277,4 +277,8 @@ export function policyNumberCheck(policyNumber) {
export function checkVerifyCode(verifyCode) {
return /^\d{6}$/.test(verifyCode)
}
export function checkName(name) {
return /^\D+$/.test(name);
}
\ No newline at end of file
......