Init project
This commit is contained in:
@@ -0,0 +1,758 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-card>
|
||||
|
||||
|
||||
<x-table class="mt-4"
|
||||
:model="cols">
|
||||
<template slot="operator" slot-scope="text,record">
|
||||
<a-button type="primary" @click="showPersonal(text.record)">
|
||||
مشاهده و ویرایش اطلاعات
|
||||
</a-button>
|
||||
</template>
|
||||
</x-table>
|
||||
|
||||
<a-modal @ok="savefromPersonel" :forceRender="true" okText="ویرایش" cancelText="بستن" :width="1200" v-model="showPersonalModal" title="ویرایش اطلاعات پرسنلی">
|
||||
<a-form :form="fromPersonel">
|
||||
<a-tabs default-active-key="1" style="direction: ltr">
|
||||
<a-tab-pane force-render key="8" tab="احکام / اخطار / پاداش">
|
||||
<a-list :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
||||
<a-list-item class="grid grid-cols-3" v-for="(item,index) in writ" :key="index" >
|
||||
<div>
|
||||
<a-tooltip placement="bottomRight">
|
||||
<template slot="title">
|
||||
<span>حذف</span>
|
||||
</template>
|
||||
<a-popconfirm
|
||||
placement="right"
|
||||
style="z-index: 999999999999"
|
||||
title="آیا می خواهید حذف کنید؟"
|
||||
ok-text="بله"
|
||||
cancel-text="خیر"
|
||||
@confirm="removeDocs(item)"
|
||||
>
|
||||
<a-button type="danger" class="mr-3">حذف</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div style="direction: rtl">{{ item.type }} : نوع</div>
|
||||
<div style="direction: rtl">عنوان : {{ item.title }}</div>
|
||||
</a-list-item>
|
||||
</a-list>
|
||||
<a-button class="mt-4" @click="showAddDocument=true;isAlertUpload = false">افزودن ردیف</a-button>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane force-render key="7" tab="ارزیابی عملکرد">
|
||||
<a-list :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
||||
<a-list-item class="grid grid-cols-3" v-for="(item,index) in educationalInformation" :key="index" >
|
||||
<div>
|
||||
<a-tooltip placement="bottomRight">
|
||||
<template slot="title">
|
||||
<span>حذف</span>
|
||||
</template>
|
||||
<a-popconfirm
|
||||
placement="right"
|
||||
style="z-index: 999999999999"
|
||||
title="آیا می خواهید حذف کنید؟"
|
||||
ok-text="بله"
|
||||
cancel-text="خیر"
|
||||
@confirm="okDelete(item)"
|
||||
>
|
||||
<a-button type="danger" class="mr-3">حذف</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div>{{ item.note }} : برنامه توسعه دوره</div>
|
||||
<div>نمره : {{ item.score }}</div>
|
||||
</a-list-item>
|
||||
</a-list>
|
||||
<br/>
|
||||
<a-button @click="showAddPerformance=true">افزودن ردیف</a-button>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane force-render key="6" tab="تحویل تجهیزات">
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.first',{valuePropName:'checked'}]" >کلاه</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.second',{valuePropName:'checked'}]" >لباس</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item label="سایز">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['equip_checklist.cloth_size']"/>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.third',{valuePropName:'checked'}]">دستکش</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.forth',{valuePropName:'checked'}]" >عینک</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.fifth',{valuePropName:'checked'}]">کفش</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['equip_checklist.sixth',{valuePropName:'checked'}]">مهر</a-checkbox>
|
||||
</a-form-item>
|
||||
<a-form-item label="سایر">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['equip_checklist.other']"/>
|
||||
</a-form-item>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane force-render key="5" tab="آشنا سازی">
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['intro_checklist.first',{valuePropName:'checked'}]">
|
||||
تکمیل پرونده
|
||||
</a-checkbox>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['intro_checklist.second',{valuePropName:'checked'}]">آشنا سازی با قوانین</a-checkbox>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item>
|
||||
<a-checkbox v-decorator="['intro_checklist.third',{valuePropName:'checked'}]">اصول اخلاقی</a-checkbox>
|
||||
</a-form-item>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="4" tab="قرارد دادها" force-render>
|
||||
<a-list :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
||||
<a-list-item class="grid grid-cols-3" v-for="(item,index) in training" :key="index" >
|
||||
<div>
|
||||
<a-tooltip placement="bottomRight">
|
||||
<template slot="title">
|
||||
<span>حذف</span>
|
||||
</template>
|
||||
<a-popconfirm
|
||||
placement="right"
|
||||
style="z-index: 999999999999"
|
||||
title="آیا می خواهید حذف کنید؟"
|
||||
ok-text="بله"
|
||||
cancel-text="خیر"
|
||||
@confirm="removeEdu(item)"
|
||||
>
|
||||
<a-button type="danger" class="mr-3">حذف</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div>{{ item.type }} : دسته گواهینامه</div>
|
||||
<div style="direction: rtl">عنوان گواهینامه : {{ item.title }}</div>
|
||||
</a-list-item>
|
||||
</a-list>
|
||||
<a-button @click="showAddContract = true">افزودن ردیف</a-button>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="3" tab="اطلاعات آموزشی" force-render>
|
||||
<a-list :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
||||
<a-list-item class="grid grid-cols-3" v-for="(item,index) in training" :key="index" >
|
||||
<div>
|
||||
<a-tooltip placement="bottomRight">
|
||||
<template slot="title">
|
||||
<span>حذف</span>
|
||||
</template>
|
||||
<a-popconfirm
|
||||
placement="right"
|
||||
style="z-index: 999999999999"
|
||||
title="آیا می خواهید حذف کنید؟"
|
||||
ok-text="بله"
|
||||
cancel-text="خیر"
|
||||
@confirm="removeEdu(item)"
|
||||
>
|
||||
<a-button type="danger" class="mr-3">حذف</a-button>
|
||||
</a-popconfirm>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div>{{ item.type }} : دسته گواهینامه</div>
|
||||
<div style="direction: rtl">عنوان گواهینامه : {{ item.title }}</div>
|
||||
</a-list-item>
|
||||
</a-list>
|
||||
<a-button class="mt-4" @click="showAddEducationalInformation=true;isAlertUpload = false">افزودن ردیف</a-button>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2" tab="اطلاعات پایه" force-render>
|
||||
<a-form-item label="وضعیت بیمه:">
|
||||
<a-radio-group v-decorator="['insurance_sts']">
|
||||
<a-radio :value="-1">
|
||||
ندارد
|
||||
</a-radio>
|
||||
<a-radio :value="1">
|
||||
دارد
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="شماره بیمه">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['insurance_no']"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="شماره کارت">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['bank_card_number']"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="شمار ه حساب">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['bank_account']"/>
|
||||
</a-form-item>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="1" tab="اطلاعات فردی" force-render style="direction: rtl">
|
||||
|
||||
<a-card title="اطلاعات فردی">
|
||||
<div class="grid sm:grid-cols-1 md:grid-cols-3 md:gap-3 lg:grid-cols-3 lg:gap-3">
|
||||
<a-form-item label="نام و نام خانوادگی">
|
||||
<a-input autocomplete="off" v-decorator="['name',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="کدملی">
|
||||
<a-input autocomplete="off" v-decorator="['ncode',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="موبایل">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.mobile',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="تاریخ ثبت نام">
|
||||
<a-input autocomplete="off" v-decorator="['created_at',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="تاریخ به روز رسانی ">
|
||||
<a-input autocomplete="off" v-decorator="['updated_at',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="شغل متقاضی">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.job_title',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="نام پدر">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.father_name',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item label="تاریخ تولد">-->
|
||||
<!-- <a-input autocomplete="off" v-decorator="['personal.birth_date',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<a-form-item label="شماره شناسنامه">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.iden_id',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سریال شناسنامه">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.iden_serial',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="محل صدور">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.iden_place',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="محل تولد">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.birth_place',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="ایمیل">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.email',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="تلفن ثابت">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.phone',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="شماره بیمه">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.name',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="نام طرف مرتبط">
|
||||
<a-input autocomplete="off" v-decorator="['proposal.phone_emergency_related',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="جنسیت">
|
||||
<a-radio-group v-decorator="['proposal.gender']">
|
||||
<a-radio :value="1">
|
||||
مرد
|
||||
</a-radio>
|
||||
<a-radio :value="-1">
|
||||
زن
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item label="وضعیت تاهل">
|
||||
<a-radio-group v-decorator="['proposal.marriage_sts']">
|
||||
<a-radio :value="1">
|
||||
مرد
|
||||
</a-radio>
|
||||
<a-radio :value="-1">
|
||||
زن
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
<a-card title="اطلاعات تحصیلی" class="mt-5">
|
||||
<div class="grid sm:grid-cols-1 md:grid-cols-3 md:gap-3 lg:grid-cols-3 lg:gap-3">
|
||||
<a-form-item label="مقطع">
|
||||
<a-input autocomplete="off" v-decorator="['personal_details[0].university',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="دانشگاه">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${0}].university`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="رشته تحصیلی">
|
||||
<a-input autocomplete="off" v-decorator="['personal_details[0].title',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="گرایش">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${0}].trend`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سال شروع">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${0}].start_at`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سال خاتمه">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${0}].end_at`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
<a-card title="سوابق آموزشی" class="mt-5">
|
||||
<div class="grid sm:grid-cols-1 md:grid-cols-3 md:gap-3 lg:grid-cols-3 lg:gap-3">
|
||||
<a-form-item label="مرکز برگزاری">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${1}].university`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="عنوان دوره ">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${1}].title`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سال">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${1}].start_at`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
|
||||
<a-card title="سوابق کاری" class="mt-5">
|
||||
<div class="grid sm:grid-cols-1 md:grid-cols-3 md:gap-3 lg:grid-cols-3 lg:gap-3">
|
||||
<a-form-item label="نام سازمان ">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${2}].university`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="عنوان شغل">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${2}].title`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سال شروع">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${2}].start_at`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="سال خاتمه">
|
||||
<a-input autocomplete="off" v-decorator="[`personal_details[${2}].end_at`,{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
<a-modal okText="ایجاد" cancelText="بستن" v-model="showAddEducationalInformation" title="افزودن اطلاعات آموزشی" @ok="addEdu">
|
||||
<a-form :form="fromEducationalInformation">
|
||||
<div class="grid sm:grid-cols-1 md:grid-cols-2 md:gap-4 lg:grid-cols-2 lg:gap-4">
|
||||
<a-form-item label="دسته گواهینامه">
|
||||
<a-input autocomplete="off" v-decorator="['type',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="عنوان گواهینامه">
|
||||
<a-input autocomplete="off" v-decorator="['title',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<a-form-item label="فایل">
|
||||
<div class="dropbox">
|
||||
<a-upload-dragger
|
||||
v-if="!isAlertUpload"
|
||||
:customRequest="uploadImage"
|
||||
:show-upload-list="false"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<p class="ant-upload-drag-icon">
|
||||
<a-icon type="inbox" />
|
||||
</p>
|
||||
<p class="ant-upload-text">
|
||||
فایل را درگ کنید یا اینکه کاوش کنید.
|
||||
</p>
|
||||
<p class="ant-upload-hint">
|
||||
فایل را درگ کنید یا اینکه کاوش کنید.
|
||||
</p>
|
||||
</a-upload-dragger>
|
||||
<div v-else>
|
||||
<a-alert message="آپلود سند با موفقیت انجام شد." type="success" />
|
||||
</div>
|
||||
</div>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
<a-modal okText="ایجاد" cancelText="بستن" v-model="showAddContract" title="افزودن قرارداد" >
|
||||
<a-form :form="fromEducationalInformation">
|
||||
<a-form-item label="نوع قرار داد" has-feedback>
|
||||
<a-select
|
||||
v-decorator="['select', { rules: [{ required: false, message: 'Please select your country!' }] }]"
|
||||
placeholder="انتخاب نوع قرار داد"
|
||||
>
|
||||
<a-select-option value="china">
|
||||
نوع اول
|
||||
</a-select-option>
|
||||
<a-select-option value="amirican">
|
||||
نوع دوم
|
||||
</a-select-option>
|
||||
<a-select-option value="usa">
|
||||
نوع سوم
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<!-- <div>-->
|
||||
<!-- <a-form-item label="تاریخ شروع">-->
|
||||
<!-- <a-input-->
|
||||
<!-- v-model="interview_at"-->
|
||||
<!-- id="interview_at"-->
|
||||
<!-- autocomplete="off"-->
|
||||
<!-- />-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <date-picker-->
|
||||
<!-- :auto-submit="true"-->
|
||||
<!-- color="#4f72ab"-->
|
||||
<!-- v-model="interview_at"-->
|
||||
<!-- element="interview_at"-->
|
||||
<!-- />-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>-->
|
||||
<!-- <a-form-item label="تاریخ خاتمه">-->
|
||||
<!-- <a-input-->
|
||||
<!-- v-model="interview_at"-->
|
||||
<!-- id="interview_at"-->
|
||||
<!-- autocomplete="off"-->
|
||||
<!-- />-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <date-picker-->
|
||||
<!-- :auto-submit="true"-->
|
||||
<!-- color="#4f72ab"-->
|
||||
<!-- v-model="interview_at"-->
|
||||
<!-- element="interview_at"-->
|
||||
<!-- />-->
|
||||
<!-- </div>-->
|
||||
<div>
|
||||
<a-form-item label="تاریخ خاتمه">
|
||||
<a-input style="width: 40%" v-decorator="['title2',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid grid-cols-3 gap-4">
|
||||
<div>
|
||||
<a-form-item label="حقوق پایه">
|
||||
<a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="بن کارگری">
|
||||
<a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="کمک هزینه مسکن">
|
||||
<a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="حق جذب">
|
||||
<a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="حق سرپرستی">
|
||||
<a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-form-item label="دلیل فسخ قرارداد">
|
||||
<a-input style="width: 40%"
|
||||
v-decorator="['title2',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="فایل">
|
||||
<div class="dropbox">
|
||||
<a-upload-dragger
|
||||
v-decorator="[
|
||||
'dragger',
|
||||
{
|
||||
valuePropName: 'fileList',
|
||||
},
|
||||
]"
|
||||
name="files"
|
||||
action="/upload.do"
|
||||
>
|
||||
<p class="ant-upload-drag-icon">
|
||||
<a-icon type="inbox" />
|
||||
</p>
|
||||
<p class="ant-upload-text">
|
||||
فایل را درگ کنید یا اینکه کاوش کنید.
|
||||
</p>
|
||||
<p class="ant-upload-hint">
|
||||
تصویر که بارگذاری می کنید باید زیر ۵ مگابایت باشد.
|
||||
</p>
|
||||
</a-upload-dragger>
|
||||
</div>
|
||||
</a-form-item>
|
||||
|
||||
</a-form>
|
||||
|
||||
</a-modal>
|
||||
|
||||
<a-modal @ok="savefromPerformance" okText="ایجاد" cancelText="بستن" v-model="showAddPerformance" title="افزودن ارزیابی عملکرد" >
|
||||
<a-form :form="fromPerformance">
|
||||
<a-form-item label="نمره">
|
||||
<a-input-number autocomplete="off" v-decorator="['score',{rules: [{ required: false, message: 'وارد کردن الزامی است' }]}]" :min="0" :max="20" />
|
||||
</a-form-item>
|
||||
<a-form-item label="برنامه توسعه دوره">
|
||||
<a-input autocomplete="off" v-decorator="['note',{rules: [{ required: false, message: 'وارد کردن الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
<a-modal okText="ایجاد" cancelText="بستن" v-model="showAddDocument" title="افزودن سند" @ok="addDocs">
|
||||
<a-form :form="fromDocs">
|
||||
|
||||
<a-form-item label="نوع" has-feedback>
|
||||
<a-select
|
||||
v-decorator="['type', { rules: [{ required: false, message: 'Please select your country!' }] }]"
|
||||
placeholder="انتخاب نوع"
|
||||
>
|
||||
<a-select-option value="حکم">
|
||||
حکم
|
||||
</a-select-option>
|
||||
<a-select-option value="اخطار">
|
||||
اخطار
|
||||
</a-select-option>
|
||||
<a-select-option value="پاداش">
|
||||
پاداش
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
|
||||
|
||||
</a-form-item>
|
||||
<a-form-item label="شرح">
|
||||
<a-input style="width:100%"
|
||||
autocomplete="off"
|
||||
v-decorator="['title',{initialValue:null,rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||
</a-form-item>
|
||||
<a-form-item label="فایل">
|
||||
<div class="dropbox">
|
||||
<a-upload-dragger
|
||||
v-if="!isAlertUpload"
|
||||
:customRequest="uploadImage"
|
||||
:show-upload-list="false"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<p class="ant-upload-drag-icon">
|
||||
<a-icon type="inbox" />
|
||||
</p>
|
||||
<p class="ant-upload-text">
|
||||
فایل را درگ کنید یا اینکه کاوش کنید.
|
||||
</p>
|
||||
<p class="ant-upload-hint">
|
||||
تصویر که بارگذاری می کنید باید زیر ۵ مگابایت باشد.
|
||||
</p>
|
||||
</a-upload-dragger>
|
||||
<div v-else>
|
||||
<a-alert message="آپلود سند با موفقیت انجام شد." type="success" />
|
||||
</div>
|
||||
</div>
|
||||
</a-form-item>
|
||||
|
||||
</a-form>
|
||||
|
||||
</a-modal>
|
||||
|
||||
</a-card>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import * as TableCol from './personelTbl';
|
||||
import XTable from "@/components/x-table/XTable";
|
||||
import axios from "@/axios";
|
||||
|
||||
export default {
|
||||
components:{
|
||||
XTable,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
cols:null,
|
||||
fromPersonel:this.$form.createForm(this, {name: 'coordinated'}),
|
||||
fromPerformance:this.$form.createForm(this, {name: 'coordinated'}),
|
||||
fromEducationalInformation:this.$form.createForm(this, {name: 'coordinated'}),
|
||||
fromDocs:this.$form.createForm(this, {name: 'coordinated'}),
|
||||
showPersonalModal:false,
|
||||
showAddEducationalInformation:false,
|
||||
showAddContract:false,
|
||||
showAddPerformance:false,
|
||||
showAddDocument:false,
|
||||
personel:{},
|
||||
educationalInformation:[],
|
||||
writ:[],
|
||||
training:[],
|
||||
isAlertUpload:false,
|
||||
isShowDocs:false,
|
||||
image_data:null,
|
||||
personal_details:[]
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
savefromPerformance(e){
|
||||
e.preventDefault();
|
||||
this.fromPerformance.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.educationalInformation.push(values);
|
||||
this.showAddPerformance = false;
|
||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||
this.fromPerformance.resetFields()
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
addDocs(e){
|
||||
e.preventDefault();
|
||||
this.fromDocs.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
if(this.image_data){
|
||||
values.file_id = this.image_data.id
|
||||
values.file = this.image_data.storage
|
||||
}
|
||||
this.writ.push(values);
|
||||
this.showAddDocument = false;
|
||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||
this.fromDocs.resetFields()
|
||||
}
|
||||
});
|
||||
},
|
||||
addEdu(e){
|
||||
e.preventDefault();
|
||||
this.fromEducationalInformation.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
if(this.image_data){
|
||||
values.file_id = this.image_data.id
|
||||
values.file = this.image_data.storage
|
||||
}
|
||||
this.training.push(values);
|
||||
this.showAddEducationalInformation = false;
|
||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||
this.fromEducationalInformation.resetFields()
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
savefromPersonel(e) {
|
||||
e.preventDefault();
|
||||
this.fromPersonel.validateFields(async(err, values) => {
|
||||
if (!err) {
|
||||
try{
|
||||
console.log(values);
|
||||
await axios.post('/update',values)
|
||||
this.$ntSet()
|
||||
}catch (e) {
|
||||
this.$ntSetError()
|
||||
throw e
|
||||
}finally {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
okDelete(item){
|
||||
const index = this.educationalInformation.indexOf(item)
|
||||
this.educationalInformation.splice(index,1)
|
||||
},
|
||||
|
||||
removeDocs(item){
|
||||
const index = this.writ.indexOf(item)
|
||||
this.writ.splice(index,1)
|
||||
},
|
||||
|
||||
removeEdu(item){
|
||||
const index = this.training.indexOf(item)
|
||||
this.training.splice(index,1)
|
||||
},
|
||||
|
||||
async uploadImage(input) {
|
||||
try {
|
||||
let formData = new FormData();
|
||||
formData.append("file", input.file);
|
||||
const { data } = await axios.post("register/upload",formData, {'Content-Type': 'multipart/form-data'});
|
||||
console.log(data,'dataaaa')
|
||||
this.image_data = data
|
||||
this.$message.success('آپلود سند با موفقیت انجام شد.');
|
||||
this.isAlertUpload = true
|
||||
} catch (e) {
|
||||
this.$message.error('خطا در بارگذاری اطلاعات');
|
||||
} finally {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
beforeUpload(file) {
|
||||
const isFormat = ['image/']
|
||||
const isJpgOrPng = isFormat.some((item) =>file.type.includes(item));
|
||||
if (!isJpgOrPng) {
|
||||
this.$message.error('نوع فایل قابل قبول نیست.');
|
||||
}
|
||||
const isLt2M = file.size / 1024 / 1024 < 5;
|
||||
if (!isLt2M) {
|
||||
this.$message.error(`سایز فایل نمی تواند بیشتر از ۵ مگ باشد.`);
|
||||
}
|
||||
return isLt2M && isJpgOrPng;
|
||||
},
|
||||
async showPersonal(record) {
|
||||
try {
|
||||
console.log(record,'record')
|
||||
this.showPersonalModal=true;
|
||||
this.personel = record;
|
||||
const {data} = await axios.post('/proposal/details', {id:record.proposal_id})
|
||||
record.personal_details = data
|
||||
this.$nextTick(()=>{
|
||||
this.fromPersonel.setFieldsValue(record);
|
||||
});
|
||||
}catch (e) {
|
||||
throw e
|
||||
}finally {
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.cols = TableCol.default;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.ant-pagination
|
||||
{
|
||||
direction: ltr !important;
|
||||
}
|
||||
td,th{
|
||||
text-align: right !important;
|
||||
}
|
||||
.ant-tabs-nav-wrap
|
||||
{
|
||||
float: right !important;
|
||||
}
|
||||
.ant-tabs-content
|
||||
{
|
||||
text-align: right !important;
|
||||
}
|
||||
.ant-modal-mask
|
||||
{
|
||||
z-index: 9999999 !important;
|
||||
}
|
||||
.ant-modal-wrap
|
||||
{
|
||||
z-index: 999999999 !important;
|
||||
}
|
||||
.ant-select-dropdown{
|
||||
z-index: 999999999!important;
|
||||
}
|
||||
.ant-modal-content
|
||||
{
|
||||
direction: ltr !important;
|
||||
}
|
||||
.ant-modal-body
|
||||
{
|
||||
direction: rtl !important;
|
||||
}
|
||||
.ant-modal-header
|
||||
{
|
||||
direction: rtl;
|
||||
margin-right: 25px;
|
||||
}
|
||||
.ant-popover.ant-popover-placement-right{
|
||||
z-index: 999999999;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,13 @@
|
||||
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||
|
||||
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/personnel', 'لیست پرسنل');
|
||||
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
||||
tbl.add(new Xtc('fname', 'کد پرسنلی').filterText())
|
||||
tbl.add(new Xtc('id', 'شماره بیمه').filterText())
|
||||
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||
tbl.add(new Xtc('created_at', 'ثبت نام').filterDate().noSort())
|
||||
tbl.add(new Xtc('updated_at', 'به روز رسانی').filterText().noSort())
|
||||
tbl.add(new Xtc('operator', 'عملیات').filterSwitch().renderSlot('operator').noSort())
|
||||
/*tbl.addOpt()*/
|
||||
|
||||
export default tbl;
|
||||
Reference in New Issue
Block a user