fixed edu_level null string bug

This commit is contained in:
sedmedgh
2022-06-06 15:49:52 +04:30
parent bafe47af1d
commit c3a195c7e3
3 changed files with 71 additions and 72 deletions
+28 -28
View File
@@ -236,26 +236,26 @@
</a-form-item>
<a-form-item label="نام">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.family[${index}].name`]"/>
v-decorator="[`personal_details.family[${index}].name`, {initialValue: item.name}]"/>
</a-form-item>
<a-form-item label="نسبت">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.family[${index}].relation`]"/>
v-decorator="[`personal_details.family[${index}].relation`, {initialValue: item.relation}]"/>
</a-form-item>
<a-form-item label="مقطع">
<a-select v-decorator="[`personal_details.family[${index}].edu_level`]">
<a-select-option v-for="(item,index) in grade" :value="index">
<a-select v-decorator="[`personal_details.family[${index}].edu_level`, {initialValue: item.edu_level}]">
<a-select-option v-for="(item,subIndex) in grade" :value="subIndex">
{{ item }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="رشته تحصیلی">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.family[${index}].edu_title`]"/>
v-decorator="[`personal_details.family[${index}].edu_title`, {initialValue: item.edu_title}]"/>
</a-form-item>
<a-form-item label="شغل">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.family[${index}].job`]"/>
v-decorator="[`personal_details.family[${index}].job`, {initialValue: item.job}]"/>
</a-form-item>
</div>
<a-divider/>
@@ -272,34 +272,34 @@
<div class="grid sm:grid-cols-1 md:grid-cols-3 md:gap-3 lg:grid-cols-3 lg:gap-3">
<a-form-item style="display: none">
<input type="hidden" class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].id`]"/>
v-decorator="[`personal_details.education[${index}].id`, {initialValue: item.id}]"/>
</a-form-item>
<a-form-item label="مقطع">
<a-select v-decorator="[`personal_details.education[${index}].level`]">
<a-select-option v-for="(item,index) in grade" :value="index">
<a-select v-decorator="[`personal_details.education[${index}].level`, {initialValue: item.level}]">
<a-select-option v-for="(item,subIndex) in grade" :value="subIndex">
{{ item }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="دانشگاه">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].university`]"/>
v-decorator="[`personal_details.education[${index}].university`, {initialValue: item.university}]"/>
</a-form-item>
<a-form-item label="رشته تحصیلی">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].title`]"/>
v-decorator="[`personal_details.education[${index}].title`, {initialValue: item.title}]"/>
</a-form-item>
<a-form-item label="گرایش">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].trend`]"/>
v-decorator="[`personal_details.education[${index}].trend`, {initialValue: item.trend}]"/>
</a-form-item>
<a-form-item label="سال شروع">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
v-decorator="[`personal_details.education[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},],initialValue: item.start_at }]"/>
</a-form-item>
<a-form-item label="سال خاتمه">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.education[${index}].end_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
v-decorator="[`personal_details.education[${index}].end_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},],initialValue: item.end_at }]"/>
</a-form-item>
</div>
<a-divider/>
@@ -320,19 +320,19 @@
</a-form-item>
<a-form-item label="مرکز برگزاری">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.traning[${index}].university`]"/>
v-decorator="[`personal_details.traning[${index}].university`, {initialValue: item.university}]"/>
</a-form-item>
<a-form-item label="عنوان دوره ">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.traning[${index}].title`]"/>
v-decorator="[`personal_details.traning[${index}].title`, {initialValue: item.title}]"/>
</a-form-item>
<a-form-item label="سال">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.traning[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
v-decorator="[`personal_details.traning[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},],initialValue: item.start_at }]"/>
</a-form-item>
<a-form-item label="امکان ارائه گواهینامه دارم">
<a-checkbox
v-decorator="[`personal_details.traning[${index}].has_certificate`,{initialValue:false,valuePropName: 'checked'}]"/>
v-decorator="[`personal_details.traning[${index}].has_certificate`,{initialValue:item.has_certificate,valuePropName: 'checked'}]"/>
</a-form-item>
</div>
<a-divider/>
@@ -353,24 +353,24 @@
</a-form-item>
<a-form-item label="نام سازمان ">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.jobs_history[${index}].university`]"/>
v-decorator="[`personal_details.jobs_history[${index}].university`, {initialValue: item.university}]"/>
</a-form-item>
<a-form-item label="عنوان شغل">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.jobs_history[${index}].title`]"/>
v-decorator="[`personal_details.jobs_history[${index}].title`, {initialValue: item.title}]"/>
</a-form-item>
<a-form-item label="دلیل خاتمه">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.jobs_history[${index}].note`]"/>
v-decorator="[`personal_details.jobs_history[${index}].note`, {initialValue: item.note}]"/>
</a-form-item>
<a-form-item label="سال شروع">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.jobs_history[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
v-decorator="[`personal_details.jobs_history[${index}].start_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},], initialValue: item.start_at }]"/>
</a-form-item>
<a-form-item label="سال خاتمه">
<input class="ant-input" autocomplete="off"
v-decorator="[`personal_details.jobs_history[${index}].end_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
v-decorator="[`personal_details.jobs_history[${index}].end_at`,{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},], initialValue: item.end_at }]"/>
</a-form-item>
</div>
<a-divider/>
@@ -1264,13 +1264,13 @@ export default {
"title": null,
"university": null,
"start_at": null,
"has_certificate": null,
"has_certificate": false,
}
this.personalDetails['traning'].push(obj);
},
AddEducation() {
const obj = {
"level": 1,
"level": null,
"title": null,
"trend": null,
"university": null,
@@ -1283,7 +1283,7 @@ export default {
const obj = {
"name": null,
"relation": null,
"edu_level": 1,
"edu_level": null,
"edu_title": null,
"job": null,
};
@@ -1719,10 +1719,10 @@ export default {
this.flags = {gender: record.proposal.gender, marriage_sts: record.proposal.marriage_sts,}
record.personal_details.education.forEach((item) => {
item.level = `${item.level}`
item.level = item.level ? `${item.level}` : item.level
})
record.personal_details.family.forEach((item) => {
item.edu_level = `${item.edu_level}`
item.edu_level = item.edu_level ? `${item.edu_level}` : item.edu_level
})
// personal_details.family[${index}].edu_level
this.$nextTick(() => {
+3 -6
View File
@@ -1045,11 +1045,8 @@ export default {
this.formFamily.validateFields(async (err, values) => {
if (!err) {
try {
if (this.find_grade) {
values.edu = this.find_grade;
values.edu_level = this.find_grade.level;
}
// values.edu = {level: this.find_grade, title:this.grade[this.find_grade]}
values.edu_level = this.find_grade;
if (this.editMode) {
const find = this.family.findIndex(item => item.id == this.tempRow.id)
Object.assign(this.family[find], values);
@@ -1077,7 +1074,7 @@ export default {
this.formEdu.validateFields(async (err, values) => {
if (!err) {
try {
if (this.find_grade) values.grade = this.find_grade
// if (this.find_grade) values.grade = this.find_grade
if (this.editMode) {
const find = this.edu.findIndex(item => item.id == this.tempRow.id)
Object.assign(this.edu[find], values);
+40 -38
View File
@@ -1,9 +1,10 @@
<!--
<template>
<div class="mx-5">
<!-- <div class="flex justify-center">
&lt;!&ndash; <div class="flex justify-center">
<img src="@/assets/images/logo.svg" width="150px" class="mt-10"/>
</div>-->
</div>&ndash;&gt;
<vx-card class="mx-auto mt-10">
<a-steps :current="current" v-show="current<2">
@@ -27,20 +28,20 @@
<div class="steps-content">
<ASpin :spinning="loading">
<a-form :form="formFirst">
<!-- <a-form-item label="نام و نام خانوادگی">
&lt;!&ndash; <a-form-item label="نام و نام خانوادگی">
&lt;!&ndash;<a-input autocomplete="off" v-decorator="['name2',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
&lt;!&ndash; <a-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" placeholder="Basic usage" />&ndash;&gt;
&lt;!&ndash;<input type="text" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" >&ndash;&gt;
&lt;!&ndash; <vs-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
</a-form-item>-->
</a-form-item>&ndash;&gt;
<div v-show="current==0" class="mt-4">
<!-- <a-button type="primary" @click="addCity()">
&lt;!&ndash; <a-button type="primary" @click="addCity()">
افزودن ردیف
</a-button>-->
</a-button>&ndash;&gt;
<a-card :bordered="true" class="mt-3" v-for="(item,index) in jobsList">
<div class="grid sm:grid-cols-1 md:grid-cols-2 md:gap-3 lg:grid-cols-2 lg:gap-3">
<div>
<!--<a-form-item label="انتخاب شهر">
&lt;!&ndash;<a-form-item label="انتخاب شهر">
<a-select
:filter-option="filterOption"
show-search
@@ -53,16 +54,16 @@
{{ item.title }}
</a-select-option>
</a-select>
</a-form-item>-->
</a-form-item>&ndash;&gt;
<a-form-item label=" شهر">
<!-- <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
&lt;!&ndash; <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
<input autocomplete="off" type="text"
v-decorator="[`jobs[${index}].city`,{initialValue: null,rules: [{ required: true, message: 'شهر را وارد نمایید' }]}]"
class="ant-input">
</a-form-item>
</div>
<!--<a-form-item label="انتخاب شغل">
&lt;!&ndash;<a-form-item label="انتخاب شغل">
<a-select
:filter-option="filterOption"
show-search
@@ -72,18 +73,18 @@
{{ item.title }}
</a-select-option>
</a-select>
</a-form-item>-->
</a-form-item>&ndash;&gt;
<a-form-item label="شغل">
<!-- <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
&lt;!&ndash; <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
<input autocomplete="off" type="text"
v-decorator="[`jobs[${index}].job`,{initialValue: null,rules: [{ required: true, message: 'شغل را وارد نمایید' }]}]"
class="ant-input">
</a-form-item>
</div>
<!-- <a-button type="danger" @click="deleteCity(index)" v-if="index >0" >
&lt;!&ndash; <a-button type="danger" @click="deleteCity(index)" v-if="index >0" >
حذف
</a-button>-->
</a-button>&ndash;&gt;
</a-card>
</div>
</a-form>
@@ -97,7 +98,7 @@
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4 mt-5">
<a-form-item label="نام و نام خانوادگی">
<!-- <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
&lt;!&ndash; <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
<input autocomplete="off" type="text"
v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'نام و نام خانوادگی را وارد نمایید' }]}]"
class="ant-input">
@@ -107,7 +108,7 @@
</a-form-item>
<a-form-item label="نام پدر">
<!--<a-input autocomplete="off" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'نام پدر را وارد نمایید' }]}]" />-->
&lt;!&ndash;<a-input autocomplete="off" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'نام پدر را وارد نمایید' }]}]" />&ndash;&gt;
<input autocomplete="off" type="text" class="ant-input"
v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'نام پدر را وارد نمایید' }]}]">
</a-form-item>
@@ -117,12 +118,12 @@
<input v-if="!birth_day" class="hidden" autocomplete="off"
v-decorator="['note',{ rules:[{ required: true, message: 'تاریخ را وارد نمایید' }] }]"/>
<date-picker v-model="birth_day"/>
<!-- v-decorator="['birthdate',{initialValue: null,rules: [{ required: true, message: 'تاریخ تولد را وارد نمایید' }]}]"-->
&lt;!&ndash; v-decorator="['birthdate',{initialValue: null,rules: [{ required: true, message: 'تاریخ تولد را وارد نمایید' }]}]"&ndash;&gt;
</a-form-item>
</div>
<a-form-item label="کد ملی">
<!--<a-input autocomplete="off" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
&lt;!&ndash;<a-input autocomplete="off" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />&ndash;&gt;
<input autocomplete="off" type="text"
v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'کد ملی را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},{ min : 10, message: 'کد ملی 10 رقمی می باشد' },{ max : 10, message: 'کد ملی 10 رقمی می باشد' }]}]"
class="ant-input">
@@ -174,13 +175,13 @@
</a-select-option>
</a-select>
</a-form-item>
<!-- <a-form-item label="آخرین مدرک تحصیلی">
&lt;!&ndash; <a-form-item label="آخرین مدرک تحصیلی">
<a-select v-decorator="[`last_education`]">
<a-select-option v-for="(item,index) in grade" :value="index">
{{ item }}
</a-select-option>
</a-select>
</a-form-item>-->
</a-form-item>&ndash;&gt;
</div>
@@ -206,7 +207,7 @@
autocomplete="off" style="width: 77%;direction: rtl"/>
</a-input-group>
</a-form-item>
<!-- <a-input-group compact>
&lt;!&ndash; <a-input-group compact>
<a-select default-value="Option1">
<a-select-option value="Option1">
Option1
@@ -216,7 +217,7 @@
</a-select-option>
</a-select>
<a-input style="width: 50%" default-value="input content" />
</a-input-group>-->
</a-input-group>&ndash;&gt;
<a-form-item label="محل صدور">
<input class="ant-input" autocomplete="off"
@@ -259,8 +260,8 @@
<a-form-item label="ایمیل">
<input class="ant-input" style="direction: rtl !important;"
v-decorator="['email',{initialValue: null,rules: [{ required: true, message: 'ایمیل را وارد نمایید' }]}]">
<!-- <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash; <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -269,8 +270,8 @@
<a-form-item label="موبایل">
<input class="ant-input" autocomplete="off"
v-decorator="['mobile',{initialValue: null,rules: [{ required: true, message: 'شماره موبایل را وارد نمایید' },{pattern:/^(\+98|0098|98|0)?9\d{9}$/g,message:'موبایل وارد شده معتبر نیست.'}]}]">
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash;<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -279,8 +280,8 @@
<a-form-item label="تلفن ثابت">
<input class="ant-input" autocomplete="off"
v-decorator="['phone',{initialValue: null,rules: [{ required: true, message: 'تلفن ثابت را وارد نمایید' },{pattern:/^((\+98|0098|98|0)\d1)?\d{8}$/g,message:'تلفن وارد شده معتبر نیست.'}]}]">
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash;<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -294,8 +295,8 @@
<a-form-item label="تلفن ضروری">
<input class="ant-input" style="direction: rtl !important;"
v-decorator="['phone_emergency',{initialValue: null,rules: [{ required: true, message: 'تلفن ضروری را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},{max: 11,message:'تلفن ضروری حد اکثر 11 رقم است'}]}]">
<!-- <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash; <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -304,8 +305,8 @@
<a-form-item label="نام فرد">
<input class="ant-input" autocomplete="off"
v-decorator="['phone_emergency_name',{initialValue: null}]">
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash;<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -314,8 +315,8 @@
<a-form-item label="نسبت">
<input class="ant-input" autocomplete="off"
v-decorator="['phone_emergency_related',{initialValue: null}]">
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
<!-- </a-input>-->
&lt;!&ndash;<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />&ndash;&gt;
&lt;!&ndash; </a-input>&ndash;&gt;
</a-form-item>
</a-row>
</div>
@@ -616,7 +617,7 @@
<input class="ant-input" autocomplete="off"
v-decorator="['job',{rules: [{ required: false, message: 'شغل را وارد نمایید' }]}]"/>
</a-form-item>
<!-- <a-form-item label="مقطع">
&lt;!&ndash; <a-form-item label="مقطع">
<a-select
class="mt-3"
style="width: 100%;direction: rtl !important;"
@@ -655,7 +656,7 @@
<a-checkbox v-decorator="['end_now',{initialValue:false,valuePropName: 'checked'}]" @change="isChecked"/>
</a-form-item>
</div>
</div>-->
</div>&ndash;&gt;
</a-form>
</a-modal>
@@ -693,7 +694,7 @@
<a-form-item label="سال شروع">
<a-input-number autocomplete="off" :min="1350" :max="1401"
v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
<!--<a-input-number v-decorator="['result_1.score',{initialValue: 0}]" :min="0" :max="20" />-->
&lt;!&ndash;<a-input-number v-decorator="['result_1.score',{initialValue: 0}]" :min="0" :max="20" />&ndash;&gt;
</a-form-item>
</div>
<div class="md:w-1/2">
@@ -1202,7 +1203,7 @@ export default {
this.current++;
},
prev() {
this.current--;
this.current&#45;&#45;;
},
async getGrad(){
try {
@@ -1250,3 +1251,4 @@ export default {
}*/
</style>
-->