833 lines
45 KiB
Vue
833 lines
45 KiB
Vue
<template>
|
||||
|
|
|
|||
|
|
<div class="mx-5">
|
|||
|
|
<div class="flex justify-center">
|
|||
|
|
<img src="@/assets/images/logo.svg" width="150px" class="mt-10"/>
|
|||
|
|
</div>
|
|||
|
|
<vx-card class="mx-auto mt-10">
|
|||
|
|
|
|||
|
|
<a-steps :current="current" style="direction: ltr">
|
|||
|
|
<a-step title="مرحله اول" />
|
|||
|
|
<a-step title="مرحله دوم" />
|
|||
|
|
<a-step title="مرحله سوم" />
|
|||
|
|
</a-steps>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div v-show="current == 0">
|
|||
|
|
<p class="mt-6">
|
|||
|
|
متقاضی گرامی ضمن سپاس از علاقه مندی شما برای همکاری با مجموعه آسکو بین الملل، لطفا اطلاعات شخصی و شغل مورد نظر خود را به دقت تکمیل فرمایید.
|
|||
|
|
</p>
|
|||
|
|
|
|||
|
|
<p>
|
|||
|
|
درخواستها مورد بررسی قرار گرفته و در صورت هماهنگی با فرصتهای شغلی شرکت، با شما تماس گرفته خواهد شد.
|
|||
|
|
</p>
|
|||
|
|
|
|||
|
|
<p>
|
|||
|
|
با تشکر و آرزوی موفقیت
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a-divider/>
|
|||
|
|
|
|||
|
|
<div class="steps-content">
|
|||
|
|
<ASpin :spinning="loading">
|
|||
|
|
<a-form :form="formFirst">
|
|||
|
|
<div v-show="current==0" class="mt-4">
|
|||
|
|
<a-button type="primary" @click="addCity()">
|
|||
|
|
افزودن ردیف
|
|||
|
|
</a-button>
|
|||
|
|
<a-card :bordered="true" class="mt-3" v-for="(item,index) in jobs">
|
|||
|
|
<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="انتخاب شهر">
|
|||
|
|
<a-select
|
|||
|
|
v-decorator="[`jobs[${index}].city`,{rules: [{ required: true, message: 'انتخاب شهر الزامی است.' }]}]"
|
|||
|
|
autocomplete="off"
|
|||
|
|
placeholder="لطفا شهر را انتخاب کنید."
|
|||
|
|
>
|
|||
|
|
<a-select-option v-for="item in city" :value="item.id">
|
|||
|
|
{{ item.title }}
|
|||
|
|
</a-select-option>
|
|||
|
|
</a-select>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<a-form-item label="انتخاب شغل">
|
|||
|
|
<a-select autocomplete="off" aria-placeholder="لطفا شغل خود را انتخاب کنید." v-decorator="[`jobs[${index}].job`,{rules: [{ required: true, message: 'انتخاب شغل الزامی است.' }]}]">
|
|||
|
|
<a-select-option v-for="item in job" :value="item.id">
|
|||
|
|
{{ item.title }}
|
|||
|
|
</a-select-option>
|
|||
|
|
</a-select>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
</a-card>
|
|||
|
|
</div>
|
|||
|
|
</a-form>
|
|||
|
|
|
|||
|
|
<a-form :form="from">
|
|||
|
|
<div v-show="current==1">
|
|||
|
|
|
|||
|
|
<a-alert message="توجه داشته باشید پس از ثبت اطلاعات، بازگشت عملیات امکان پذیر نخواهد بود." type="warning" />
|
|||
|
|
|
|||
|
|
<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: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-form-item label="نام پدر">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<a-form-item label="تاریخ تولد">
|
|||
|
|
<!-- birth_date-->
|
|||
|
|
<a-input
|
|||
|
|
v-model="birth_day"
|
|||
|
|
id="birth_day"
|
|||
|
|
autocomplete="off"
|
|||
|
|
/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<date-picker
|
|||
|
|
:auto-submit="true"
|
|||
|
|
color="#4f72ab"
|
|||
|
|
v-model="birth_day"
|
|||
|
|
element="birth_day"
|
|||
|
|
/>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a-form-item label="کد ملی">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="grid lg:grid-cols-2 md:grid-cols-2 sm:grid-cols-1">
|
|||
|
|
<a-form-item label="جنسیت">
|
|||
|
|
<a-radio-group style="direction: ltr" v-decorator="['gender',{ initialValue: '1' }]" button-style="solid">
|
|||
|
|
<a-radio-button value="2">
|
|||
|
|
زن
|
|||
|
|
</a-radio-button>
|
|||
|
|
<a-radio-button value="1">
|
|||
|
|
مرد
|
|||
|
|
</a-radio-button>
|
|||
|
|
</a-radio-group>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="وضعیت تاهل">
|
|||
|
|
<a-radio-group style="direction: ltr" v-decorator="['married',{initialValue: '1'}]" button-style="solid">
|
|||
|
|
<a-radio-button value="1">
|
|||
|
|
مجرد
|
|||
|
|
</a-radio-button>
|
|||
|
|
<a-radio-button value="2">
|
|||
|
|
متاهل
|
|||
|
|
</a-radio-button>
|
|||
|
|
</a-radio-group>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a-card :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-alert message="توضیحات سریال شناسنامه" type="info" />
|
|||
|
|
|
|||
|
|
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4">
|
|||
|
|
<a-form-item label="شماره شناسنامه">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['iden_code',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-form-item label="سریال شناسنامه">
|
|||
|
|
<a-input-group compact style="direction: ltr">
|
|||
|
|
<a-select style="width: 15%" v-decorator="['iden_no_left',{initialValue: null}]">
|
|||
|
|
<a-select-option style="width: 100% !important;" v-for="item in alphabet" :value="item">
|
|||
|
|
{{ item }}
|
|||
|
|
</a-select-option>
|
|||
|
|
</a-select>
|
|||
|
|
<a-input v-decorator="['iden_no_right',{initialValue: null}]" autocomplete="off" style="width: 85%;direction: rtl" />
|
|||
|
|
</a-input-group>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a-form-item label="محل صدور">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-form-item label="محل تولد">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
</a-card>
|
|||
|
|
<br/>
|
|||
|
|
<a-card title="اطلاعات سکونت" :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-form-item label="وضعیت مسکن">
|
|||
|
|
<a-radio-group style="direction: ltr" v-decorator="['house_status',{initialValue: '1'}]" button-style="solid">
|
|||
|
|
<a-radio-button value="2">
|
|||
|
|
مستاجر
|
|||
|
|
</a-radio-button>
|
|||
|
|
<a-radio-button value="1">
|
|||
|
|
مالک
|
|||
|
|
</a-radio-button>
|
|||
|
|
</a-radio-group>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-form-item label="آدرس">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['address',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<div class="md:flex">
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="ایمیل">
|
|||
|
|
<a-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>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="موبایل">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['mobile',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" >
|
|||
|
|
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
|||
|
|
</a-input>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="تلفن ثابت">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['phone',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" >
|
|||
|
|
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
|||
|
|
</a-input>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a-divider/>
|
|||
|
|
|
|||
|
|
<div class="md:flex">
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="تلفن ضروری">
|
|||
|
|
<a-input style="direction: rtl !important;" v-decorator="['phone_emergency',{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>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="نام طرف">
|
|||
|
|
<a-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>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/4 md:pl-4">
|
|||
|
|
<a-row >
|
|||
|
|
<a-form-item label="نسبت">
|
|||
|
|
<a-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>
|
|||
|
|
</a-form-item>
|
|||
|
|
</a-row>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-card>
|
|||
|
|
<a-divider>دیگر اطلاعات</a-divider>
|
|||
|
|
<a-card title="سابقه بیمه" :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-form-item label="سابقه بیمه">
|
|||
|
|
<a-radio-group style="direction: ltr" v-decorator="['has_insurance',{initialValue: '1'}]" button-style="solid" @change="number_insurance">
|
|||
|
|
<a-radio-button value="1">
|
|||
|
|
دارم
|
|||
|
|
</a-radio-button>
|
|||
|
|
<a-radio-button value="-1">
|
|||
|
|
ندارم
|
|||
|
|
</a-radio-button>
|
|||
|
|
</a-radio-group>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-form-item label="شماره بیمه" v-if="has_instructor == '-1' ">
|
|||
|
|
<a-input autocomplete="off" style="width: 40%" v-decorator="['insurance_no',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
</a-card>
|
|||
|
|
<br/>
|
|||
|
|
<a-card title="سوابق تحصیلی" :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-list class="mb-5" v-if="edu.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
|||
|
|
<a-list-item class="grid grid-cols-4" v-for="(item,index) in edu" :key="index" >
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: ltr" v-if="item.grade"> مقطع :{{ item.grade.title }}</div>
|
|||
|
|
<div style="direction: rtl">دانشگاه : {{ item.university }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl">سال شروع : {{ item.start }}</div>
|
|||
|
|
<div style="direction: rtl">سال خاتمه : {{ item.end }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl">رشته تحصیلی : {{ item.major }}</div>
|
|||
|
|
<div style="direction: rtl">گرایش تحصیلی : {{ item.orientation }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<a-popconfirm
|
|||
|
|
placement="right"
|
|||
|
|
title="آیا می خواهید حذف کنید؟"
|
|||
|
|
ok-text="بله"
|
|||
|
|
cancel-text="خیر"
|
|||
|
|
@confirm="removeEdu(item)"
|
|||
|
|
>
|
|||
|
|
<a-button type="danger" class="mr-3">حذف</a-button>
|
|||
|
|
</a-popconfirm>
|
|||
|
|
|
|||
|
|
<a-button class="mr-3" @click="openModalEduModeEDit(item)">
|
|||
|
|
مشاهده و ویرایش
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-list-item>
|
|||
|
|
</a-list>
|
|||
|
|
|
|||
|
|
<a-button type="dashed" icon="plus" @click="openModalEdu">
|
|||
|
|
افزودن سابقه تحصیلی
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</a-card>
|
|||
|
|
<br/>
|
|||
|
|
<a-card title="سوابق آموزشی" :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-list class="mb-5" v-if="educational.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
|||
|
|
<a-list-item class="grid grid-cols-3" v-for="(item,index) in educational" :key="index" >
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl"> مرکز برگزار کننده : {{ item.university }}</div>
|
|||
|
|
<div style="direction: rtl">عنوان دوره : {{ item.major }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl">سال : {{ item.start }}</div>
|
|||
|
|
<div style="direction: rtl">
|
|||
|
|
امکان ارائه گواهینامه دارم:
|
|||
|
|
<feather-icon icon="CheckIcon" v-if="item.has_file" svgClasses="w-5 h-5 text-success"/>
|
|||
|
|
<feather-icon icon="XIcon" v-else svgClasses="w-5 h-5 text-danger"/>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<a-popconfirm
|
|||
|
|
placement="right"
|
|||
|
|
title="آیا می خواهید حذف کنید؟"
|
|||
|
|
ok-text="بله"
|
|||
|
|
cancel-text="خیر"
|
|||
|
|
@confirm="removeEducational(item)"
|
|||
|
|
>
|
|||
|
|
<a-button type="danger" class="mr-3">حذف</a-button>
|
|||
|
|
</a-popconfirm>
|
|||
|
|
|
|||
|
|
<a-button class="mr-3" @click="openModalEducationalEDit(item)">
|
|||
|
|
مشاهده و ویرایش
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-list-item>
|
|||
|
|
</a-list>
|
|||
|
|
|
|||
|
|
<a-button type="dashed" icon="plus" @click="openModalEducational">
|
|||
|
|
افزودن سابقه آموزشی
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</a-card>
|
|||
|
|
<br/>
|
|||
|
|
<a-card title="سوابق کاری" :bordered="true" >
|
|||
|
|
|
|||
|
|
<a-list class="mb-5" v-if="work.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
|||
|
|
<a-list-item class="grid grid-cols-4" v-for="(item,index) in work" :key="index" >
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl"> نام سازمان : {{ item.university }}</div>
|
|||
|
|
<div style="direction: rtl">عنوان شغل : {{ item.major }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl">سال شروع : {{ item.start }}</div>
|
|||
|
|
<div style="direction: rtl">سال خاتمه : {{ item.end }}</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div style="direction: rtl">دلیل خاتمه : {{ item.note }}</div>
|
|||
|
|
<div style="direction: rtl">
|
|||
|
|
تاکنون:
|
|||
|
|
<feather-icon icon="CheckIcon" v-if="item.end_now" svgClasses="w-5 h-5 text-success"/>
|
|||
|
|
<feather-icon icon="XIcon" v-else svgClasses="w-5 h-5 text-danger"/>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<a-popconfirm
|
|||
|
|
placement="right"
|
|||
|
|
title="آیا می خواهید حذف کنید؟"
|
|||
|
|
ok-text="بله"
|
|||
|
|
cancel-text="خیر"
|
|||
|
|
@confirm="removeWork(item)"
|
|||
|
|
>
|
|||
|
|
<a-button type="danger" class="mr-3">حذف</a-button>
|
|||
|
|
</a-popconfirm>
|
|||
|
|
|
|||
|
|
<a-button class="mr-3" @click="openModalWorkEDit(item)">
|
|||
|
|
مشاهده و ویرایش
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-list-item>
|
|||
|
|
</a-list>
|
|||
|
|
|
|||
|
|
<a-button type="dashed" icon="plus" @click="openModalWork">
|
|||
|
|
افزودن سابقه کاری
|
|||
|
|
</a-button>
|
|||
|
|
|
|||
|
|
</a-card>
|
|||
|
|
<br/>
|
|||
|
|
|
|||
|
|
<a-form-item>
|
|||
|
|
<a-checkbox v-decorator="['commitment',{initialValue:false,rules: [{ required: true, message: 'تعهد الزامی است.' }]}]">
|
|||
|
|
با آگاهی از قوانین و مقررات و صحت اطلاعات تایید میکنم.
|
|||
|
|
</a-checkbox>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<a-alert type="warning">
|
|||
|
|
<div slot="message">
|
|||
|
|
<a-button @click="openAccept" class="font-bold" type="link" style="color: #0091ae">
|
|||
|
|
مشاهده قوانین و مقررات
|
|||
|
|
</a-button>
|
|||
|
|
</div>
|
|||
|
|
</a-alert>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
<div v-show="current==2">
|
|||
|
|
<a-result
|
|||
|
|
status="success"
|
|||
|
|
title="اطلاعات با موفقیت ثبت شد"
|
|||
|
|
sub-title="لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است."
|
|||
|
|
>
|
|||
|
|
<template #extra>
|
|||
|
|
<a-button>
|
|||
|
|
اتمام
|
|||
|
|
</a-button>
|
|||
|
|
</template>
|
|||
|
|
</a-result>
|
|||
|
|
</div>
|
|||
|
|
</a-form>
|
|||
|
|
</ASpin>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a-modal :visible="visibleEdu" title="افزودن سابقه تحصیلی" @ok="createEdu" @cancel="cancelEdu" ok-text="ایجاد" cancel-text="انصراف">
|
|||
|
|
<a-form :form="formEdu">
|
|||
|
|
<a-form-item label="مقطع">
|
|||
|
|
<a-select
|
|||
|
|
class="mt-3"
|
|||
|
|
style="width: 100%;direction: rtl !important;"
|
|||
|
|
v-decorator="['level',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"
|
|||
|
|
@change="changeGrade"
|
|||
|
|
allowClear
|
|||
|
|
>
|
|||
|
|
<a-select-option v-for="item in grade" :value="item.level">
|
|||
|
|
{{ item.title }}
|
|||
|
|
</a-select-option>
|
|||
|
|
</a-select>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="دانشگاه">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="رشته تحصیلی">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="گرایش تحصیلی">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['orientation',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<div class="md:flex">
|
|||
|
|
<div class="md:w-1/2">
|
|||
|
|
<a-form-item label="سال شروع">
|
|||
|
|
<a-input-number autocomplete="off" :min="1350" :max="1401" v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/2">
|
|||
|
|
<a-form-item label="سال خاتمه">
|
|||
|
|
<a-input-number autocomplete="off" :disabled="is_check" :min="1350" :max="1401" v-decorator="['end',{rules: [{ required: is_check ? false : true, message: 'لطفا مقدار سال خاتمه را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/3">
|
|||
|
|
<a-form-item label="تاکنون">
|
|||
|
|
<a-checkbox v-decorator="['end_now',{initialValue:false,valuePropName: 'checked'}]" @change="isChecked"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-form>
|
|||
|
|
</a-modal>
|
|||
|
|
|
|||
|
|
<a-modal :visible="visibleEducational" title="افزودن سابقه آموزشی" @ok="createEducational" @cancel="cancelEducational" ok-text="ایجاد" cancel-text="انصراف">
|
|||
|
|
<a-form :form="formEducational">
|
|||
|
|
|
|||
|
|
<a-form-item label="مرکز برگزار کننده">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="عنوان دوره">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<div class="md:flex">
|
|||
|
|
<div class="md:w-1/2">
|
|||
|
|
<a-form-item label="سال">
|
|||
|
|
<a-input-number autocomplete="off" :min="1350" :max="1401" v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/3">
|
|||
|
|
<a-form-item label="امکان ارائه گواهینامه دارم">
|
|||
|
|
<a-checkbox v-decorator="['has_file',{initialValue:false,valuePropName: 'checked'}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-form>
|
|||
|
|
</a-modal>
|
|||
|
|
|
|||
|
|
<a-modal :visible="visibleWork" title="افزودن سابقه کاری" @ok="createWork" @cancel="cancelWork" ok-text="ایجاد" cancel-text="انصراف">
|
|||
|
|
<a-form :form="formWork">
|
|||
|
|
|
|||
|
|
<a-form-item label="نام سازمان">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="عنوان شغل">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
<a-form-item label="دلیل خاتمه">
|
|||
|
|
<a-input autocomplete="off" v-decorator="['note',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
|
|||
|
|
<div class="md:flex">
|
|||
|
|
<div class="md:w-1/2">
|
|||
|
|
<a-form-item label="سال شروع">
|
|||
|
|
<a-input-number autocomplete="off" :min="1350" :max="1401" v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/2">
|
|||
|
|
<a-form-item label="سال خاتمه">
|
|||
|
|
<a-input-number :disabled="is_work_check" autocomplete="off" :min="1350" :max="1401" v-decorator="['end',{rules: [{ required: is_work_check ? false : true, message: 'لطفا مقدار سال خاتمه را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
<div class="md:w-1/3">
|
|||
|
|
<a-form-item label="تاکنون">
|
|||
|
|
<a-checkbox v-decorator="['end_now',{initialValue:false,valuePropName: 'checked'}]" @change="isCheckedWork"/>
|
|||
|
|
</a-form-item>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</a-form>
|
|||
|
|
</a-modal>
|
|||
|
|
|
|||
|
|
<a-modal :visible="visibleAccept" title="شرایط و مقررات" @ok="visibleAccept = false" @cancel="visibleAccept = false" ok-text="باشه" cancel-text="انصراف">
|
|||
|
|
اینجانب.... در تاریخ......... فرم بالا را تکمیل نموده و صحت کلیه اطلاعات تکمیل شده را تأیید می نمایم
|
|||
|
|
</a-modal>
|
|||
|
|
|
|||
|
|
<div class="mt-5">
|
|||
|
|
<a-button v-if="current < 2" type="primary" @click="handleSubmit">
|
|||
|
|
مرحله بعدی
|
|||
|
|
</a-button>
|
|||
|
|
<!-- <a-button-->
|
|||
|
|
<!-- v-if="current == 2"-->
|
|||
|
|
<!-- type="primary"-->
|
|||
|
|
<!-- @click="handleSubmit"-->
|
|||
|
|
<!-- >-->
|
|||
|
|
<!-- ثبت اطلاعات-->
|
|||
|
|
<!-- </a-button>-->
|
|||
|
|
<!-- <a-button v-if="current > 0" style="margin-left: 8px" @click="prev">-->
|
|||
|
|
<!-- قبلی-->
|
|||
|
|
<!-- </a-button>-->
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</vx-card>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
|
|||
|
|
import axios from '@/axios'
|
|||
|
|
import VuePersianDatetimePicker from 'vue-persian-datetime-picker';
|
|||
|
|
|
|||
|
|
export default {
|
|||
|
|
name: "Register",
|
|||
|
|
components:{
|
|||
|
|
datePicker: VuePersianDatetimePicker
|
|||
|
|
},
|
|||
|
|
data(){
|
|||
|
|
return{
|
|||
|
|
current: 0,
|
|||
|
|
from: this.$form.createForm(this, {name: 'coordinated'}),
|
|||
|
|
formEdu: this.$form.createForm(this, {name: 'coordinated'}),
|
|||
|
|
formEducational: this.$form.createForm(this, {name: 'coordinated'}),
|
|||
|
|
formWork: this.$form.createForm(this, {name: 'coordinated'}),
|
|||
|
|
formFirst: this.$form.createForm(this, {name: 'coordinated'}),
|
|||
|
|
city:[],
|
|||
|
|
job:[],
|
|||
|
|
edu:[],
|
|||
|
|
work:[],
|
|||
|
|
jobs:[{city:null,job:null}],
|
|||
|
|
//model:[],
|
|||
|
|
educational:[],
|
|||
|
|
birth_day:'',
|
|||
|
|
has_instructor: '-1',
|
|||
|
|
visibleEdu: false,
|
|||
|
|
visibleEducational: false,
|
|||
|
|
visibleWork: false,
|
|||
|
|
visibleAccept: false,
|
|||
|
|
is_check:false,
|
|||
|
|
is_work_check:false,
|
|||
|
|
find_grade:null,
|
|||
|
|
grade:[
|
|||
|
|
{ level: 1, title:'کاردانی' },
|
|||
|
|
{ level: 2, title:'کارشناسی' },
|
|||
|
|
{ level: 3, title:'کارشناسی ارشد' },
|
|||
|
|
{ level: 4, title:'دکتری' }
|
|||
|
|
],
|
|||
|
|
alphabet:['الف','ب','پ','ت','ث','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی'],
|
|||
|
|
loading:false,
|
|||
|
|
editMode:false,
|
|||
|
|
id:0,
|
|||
|
|
tempRow:{}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods:{
|
|||
|
|
addCity()
|
|||
|
|
{
|
|||
|
|
this.jobs.push({city:null,job:null})
|
|||
|
|
//this.model.push(jobs);
|
|||
|
|
//console.log(this.model);
|
|||
|
|
},
|
|||
|
|
number_insurance(e){
|
|||
|
|
this.has_instructor = e.target.value
|
|||
|
|
},
|
|||
|
|
handleSubmit(e) {
|
|||
|
|
e.preventDefault();
|
|||
|
|
//console.log(this.formFirst.getFieldsValue(),'this.formFirst.getFieldsValue()');
|
|||
|
|
if(this.current ==0)
|
|||
|
|
{
|
|||
|
|
this.formFirst.validateFields(async(err, values) => {
|
|||
|
|
if (!err) {
|
|||
|
|
this.current++;
|
|||
|
|
console.log(values,'first')
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
this.from.validateFields(async(err, values) => {
|
|||
|
|
if (!err) {
|
|||
|
|
|
|||
|
|
try{
|
|||
|
|
|
|||
|
|
this.loading = true
|
|||
|
|
console.log(values,'values')
|
|||
|
|
values.model = this.formFirst.getFieldsValue();
|
|||
|
|
//Object.assign(values,this.formFirst.getFieldsValue());
|
|||
|
|
console.log(this.formFirst.getFieldsValue(),'this.formFirst.getFieldsValue()')
|
|||
|
|
values.birth_date = this.birth_day
|
|||
|
|
values.work = this.work
|
|||
|
|
values.training = this.educational
|
|||
|
|
values.academic = this.edu
|
|||
|
|
await axios.post('register/save', values)
|
|||
|
|
this.$message.success('اطلاعات با موفقیت کامل شد')
|
|||
|
|
this.fromMosahebe.resetFields()
|
|||
|
|
this.current++
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
throw e
|
|||
|
|
}finally {
|
|||
|
|
this.loading = false
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
async getCity(){
|
|||
|
|
try{
|
|||
|
|
const {data} = await axios.get('/register/cities')
|
|||
|
|
this.city = data
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
async getJob(){
|
|||
|
|
try{
|
|||
|
|
const {data} = await axios.post('/register/jobs')
|
|||
|
|
this.job = data
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
openModalEdu(){
|
|||
|
|
this.visibleEdu = true
|
|||
|
|
this.editMode = false
|
|||
|
|
this.formEdu.resetFields()
|
|||
|
|
},
|
|||
|
|
openModalEducational(){
|
|||
|
|
this.visibleEducational = true
|
|||
|
|
this.formEducational.resetFields()
|
|||
|
|
},
|
|||
|
|
openModalWork(){
|
|||
|
|
this.visibleWork = true
|
|||
|
|
this.formWork.resetFields()
|
|||
|
|
},
|
|||
|
|
openModalEduModeEDit(item){
|
|||
|
|
console.log(item,'item')
|
|||
|
|
this.visibleEdu = true
|
|||
|
|
this.editMode = true
|
|||
|
|
this.tempRow = item
|
|||
|
|
this.formEdu.setFieldsValue(item)
|
|||
|
|
},
|
|||
|
|
openModalEducationalEDit(item){
|
|||
|
|
this.visibleEducational = true
|
|||
|
|
this.formEducational.setFieldsValue(item)
|
|||
|
|
},
|
|||
|
|
openModalWorkEDit(item){
|
|||
|
|
this.visibleWork = true
|
|||
|
|
this.formWork.setFieldsValue(item)
|
|||
|
|
},
|
|||
|
|
cancelEdu(){
|
|||
|
|
this.visibleEdu = false
|
|||
|
|
},
|
|||
|
|
cancelEducational(){
|
|||
|
|
this.visibleEducational = false
|
|||
|
|
},
|
|||
|
|
cancelWork(){
|
|||
|
|
this.visibleWork = false
|
|||
|
|
},
|
|||
|
|
createEdu(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
this.formEdu.validateFields(async(err, values) => {
|
|||
|
|
if (!err) {
|
|||
|
|
try{
|
|||
|
|
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);
|
|||
|
|
this.visibleEdu = false
|
|||
|
|
}else{
|
|||
|
|
values.id = this.id
|
|||
|
|
this.edu.push(values)
|
|||
|
|
this.id +=1
|
|||
|
|
///console.log(values,'values')
|
|||
|
|
this.formEdu.resetFields()
|
|||
|
|
this.visibleEdu = false
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
throw e
|
|||
|
|
}finally {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
createEducational(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
this.formEducational.validateFields(async(err, values) => {
|
|||
|
|
if (!err) {
|
|||
|
|
try{
|
|||
|
|
this.educational.push(values)
|
|||
|
|
console.log(values,'values')
|
|||
|
|
this.formEducational.resetFields()
|
|||
|
|
this.visibleEducational = false
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
throw e
|
|||
|
|
}finally {
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
createWork(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
this.formWork.validateFields(async(err, values) => {
|
|||
|
|
if (!err) {
|
|||
|
|
try{
|
|||
|
|
this.work.push(values)
|
|||
|
|
console.log(values,'values')
|
|||
|
|
this.formWork.resetFields()
|
|||
|
|
this.visibleWork = false
|
|||
|
|
}catch (e) {
|
|||
|
|
this.$ntSetError()
|
|||
|
|
throw e
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
isChecked(e){
|
|||
|
|
this.is_check = e.target.checked
|
|||
|
|
// if(this.is_check){
|
|||
|
|
// this.formEdu.resetField('end_now')
|
|||
|
|
// }
|
|||
|
|
},
|
|||
|
|
isCheckedWork(e){
|
|||
|
|
this.is_work_check = e.target.checked
|
|||
|
|
},
|
|||
|
|
removeEdu(item){
|
|||
|
|
const index = this.edu.indexOf(item)
|
|||
|
|
this.edu.splice(index,1)
|
|||
|
|
},
|
|||
|
|
removeEducational(item){
|
|||
|
|
const index = this.educational.indexOf(item)
|
|||
|
|
this.educational.splice(index,1)
|
|||
|
|
},
|
|||
|
|
removeWork(item){
|
|||
|
|
const index = this.work.indexOf(item)
|
|||
|
|
this.work.splice(index,1)
|
|||
|
|
},
|
|||
|
|
changeGrade(id){
|
|||
|
|
console.log(id,'id')
|
|||
|
|
this.find_grade = this.grade.find(item=>item.level == id)
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
openAccept(){
|
|||
|
|
this.visibleAccept = true
|
|||
|
|
},
|
|||
|
|
next() {
|
|||
|
|
this.current++;
|
|||
|
|
},
|
|||
|
|
prev() {
|
|||
|
|
this.current--;
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
this.getCity()
|
|||
|
|
this.getJob()
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped>
|
|||
|
|
[dir=rtl] .anticon.anticon-plus{
|
|||
|
|
position: relative;
|
|||
|
|
top: 4px;
|
|||
|
|
left: 5px;
|
|||
|
|
}
|
|||
|
|
.ant-modal-title{
|
|||
|
|
margin-right: 1rem;
|
|||
|
|
}
|
|||
|
|
</style>
|