wxz 2 years ago
parent
commit
21456e35e7
  1. 21
      src/utils/validate.js
  2. 93
      src/views/components/resiForm.vue
  3. 10
      src/views/modules/base/residentManagement/publicWelfarePost/addForm.vue

21
src/utils/validate.js

@ -49,3 +49,24 @@ export function isPassport(s) {
return reg.test(s);
}
/**
* 港澳身份证
* @param {*} s
*/
export function isHKPassport(s) {
return /^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(s);;
}
/**
* 台湾身份证
* @param {*} s
*/
export function isTwPassport(s) {
return /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(s);;
}
/**
* 军官证
* @param {*} s
*/
export function isSoldier(s) {
return /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(s);;
}

93
src/views/components/resiForm.vue

@ -128,7 +128,9 @@
:placeholder="`请选择${item.label}`"
size="small"
clearable
class="u-item-width-normal">
class="u-item-width-normal"
@change="handleChangSelect(item.formName)"
>
<el-option v-for="items in item.opction"
:key="items.value"
:label="items.label"
@ -401,7 +403,7 @@
</template>
<script>
import { isCard, isPassport, isMobile, isPhone } from '@/utils/validate'
import { isCard, isPassport, isMobile, isPhone,isHKPassport,isTwPassport,isSoldier } from '@/utils/validate'
import { computedCard } from '@/utils/index'
import { idTypeList } from "@/js/columns/constants";
import {requestGet} from "@/js/dai/request";
@ -495,17 +497,7 @@ export default {
label: "证件号",
itemType: "input",
formName: "idNum",
rules: [{ required: true, message: '证件号不能为空' },
{
validator: (rule, value, callback) => {
if (!/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(value)) {
return callback(new Error('证件格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
],
rules: [{ required: true, message: '证件号不能为空' },],
opction: [],
},
{
@ -1583,6 +1575,7 @@ export default {
}
},
computed: {
},
watch: {
form: {
@ -2130,6 +2123,80 @@ export default {
if (this.supportAdd) newForm = this.handlerMuscForm()
return newForm
},
//
handleChangSelect(formName){
if(formName != 'idType') return
this.basicInformation.forEach(item=>{
if(item.formName == 'idNum'){
item.rules.length = 1
if(this.form.idType == 4){
let obj = {
validator: (rule, value, callback) => {
if (!/^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(value)) {
return callback(new Error('军人证格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
} else if(this.form.idType == 3){
let obj = {
validator: (rule, value, callback) => {
if (!/^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(value)) {
return callback(new Error('港澳通行证格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 5){
let obj = {
validator: (rule, value, callback) => {
if (!/^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(value)) {
return callback(new Error('台胞证不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 1 ){
let obj = {
validator: (rule, value, callback) => {
if (!/^(\d{15}$)|(^\d{17}([0-9]|X)$)|^[a-zA-Z0-9]{8,9}$/.test(value)) {
return callback(new Error('身份证不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 2 ){
let obj = {
validator: (rule, value, callback) => {
if (!/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/.test(value)) {
return callback(new Error('护照不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 0 ){
let obj = {
validator: (rule, value, callback) => {
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}
}
})
},
//
handleChangeH (val) {
let item = this.optionsH.find(item => item.value === val);

10
src/views/modules/base/residentManagement/publicWelfarePost/addForm.vue

@ -165,10 +165,10 @@
<el-col :span="12">
<div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">入职时间: </span>
<span>{{ formData.hireDate || '--' }}</span>
<span>{{ formData.hireData || '--' }}</span>
</div>
<el-form-item label-width="100px" label="入职时间" v-else>
<el-date-picker v-model="formData.hireDate" type="date" value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker v-model="formData.hireData" type="date" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期" style="width: 202px" clearable>
</el-date-picker>
</el-form-item>
@ -235,7 +235,7 @@
<el-col :span="24">
<div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">管理范围: </span>
<span>{{ formData.manageScopesName || "--" }}</span>
<span>{{ manageScopesName || "--" }}</span>
</div>
<el-form-item label="管理范围" prop="agencyId" label-width="100px" v-else>
<el-cascader class="u-item-width-normal" ref="myCascader" v-model="formData.manageScopes"
@ -300,7 +300,7 @@ export default {
remark: "",
postTypes: [],
manageScopes: [],
hireDate: '',
hireData: '',
isParty: null
},
agencyIdTemp: [],
@ -349,7 +349,6 @@ export default {
this.startLoading();
await this.endLoading();
},
methods: {
async initForm(type, row) {
this.formType = type;
@ -361,6 +360,7 @@ export default {
const { data, code, msg } = await requestGet(url);
if (code === 0) {
this.formData = { ...data };
this.manageScopesName = data.manageScopes.map(item => item.scopeName).join(', ');
this.formData.manageScopes = data.manageScopes[0].scopeId
await this.setAgencyIdFromLastLayerId(data.agencyId)
console.log(this.agencyIdTemp);

Loading…
Cancel
Save