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); 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}`" :placeholder="`请选择${item.label}`"
size="small" size="small"
clearable clearable
class="u-item-width-normal"> class="u-item-width-normal"
@change="handleChangSelect(item.formName)"
>
<el-option v-for="items in item.opction" <el-option v-for="items in item.opction"
:key="items.value" :key="items.value"
:label="items.label" :label="items.label"
@ -401,7 +403,7 @@
</template> </template>
<script> <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 { computedCard } from '@/utils/index'
import { idTypeList } from "@/js/columns/constants"; import { idTypeList } from "@/js/columns/constants";
import {requestGet} from "@/js/dai/request"; import {requestGet} from "@/js/dai/request";
@ -495,17 +497,7 @@ export default {
label: "证件号", label: "证件号",
itemType: "input", itemType: "input",
formName: "idNum", formName: "idNum",
rules: [{ required: true, message: '证件号不能为空' }, 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
}
],
opction: [], opction: [],
}, },
{ {
@ -1583,6 +1575,7 @@ export default {
} }
}, },
computed: { computed: {
}, },
watch: { watch: {
form: { form: {
@ -2130,6 +2123,80 @@ export default {
if (this.supportAdd) newForm = this.handlerMuscForm() if (this.supportAdd) newForm = this.handlerMuscForm()
return newForm 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) { handleChangeH (val) {
let item = this.optionsH.find(item => item.value === 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"> <el-col :span="12">
<div class="info-prop" v-if="formType == 'detail'"> <div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">入职时间: </span> <span class="info-title-2">入职时间: </span>
<span>{{ formData.hireDate || '--' }}</span> <span>{{ formData.hireData || '--' }}</span>
</div> </div>
<el-form-item label-width="100px" label="入职时间" v-else> <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> placeholder="选择日期" style="width: 202px" clearable>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@ -235,7 +235,7 @@
<el-col :span="24"> <el-col :span="24">
<div class="info-prop" v-if="formType == 'detail'"> <div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">管理范围: </span> <span class="info-title-2">管理范围: </span>
<span>{{ formData.manageScopesName || "--" }}</span> <span>{{ manageScopesName || "--" }}</span>
</div> </div>
<el-form-item label="管理范围" prop="agencyId" label-width="100px" v-else> <el-form-item label="管理范围" prop="agencyId" label-width="100px" v-else>
<el-cascader class="u-item-width-normal" ref="myCascader" v-model="formData.manageScopes" <el-cascader class="u-item-width-normal" ref="myCascader" v-model="formData.manageScopes"
@ -300,7 +300,7 @@ export default {
remark: "", remark: "",
postTypes: [], postTypes: [],
manageScopes: [], manageScopes: [],
hireDate: '', hireData: '',
isParty: null isParty: null
}, },
agencyIdTemp: [], agencyIdTemp: [],
@ -349,7 +349,6 @@ export default {
this.startLoading(); this.startLoading();
await this.endLoading(); await this.endLoading();
}, },
methods: { methods: {
async initForm(type, row) { async initForm(type, row) {
this.formType = type; this.formType = type;
@ -361,6 +360,7 @@ export default {
const { data, code, msg } = await requestGet(url); const { data, code, msg } = await requestGet(url);
if (code === 0) { if (code === 0) {
this.formData = { ...data }; this.formData = { ...data };
this.manageScopesName = data.manageScopes.map(item => item.scopeName).join(', ');
this.formData.manageScopes = data.manageScopes[0].scopeId this.formData.manageScopes = data.manageScopes[0].scopeId
await this.setAgencyIdFromLastLayerId(data.agencyId) await this.setAgencyIdFromLastLayerId(data.agencyId)
console.log(this.agencyIdTemp); console.log(this.agencyIdTemp);

Loading…
Cancel
Save