Init project

This commit is contained in:
alirezakarari
2021-01-09 20:53:13 +03:30
commit 8d06c89a89
1005 changed files with 105625 additions and 0 deletions
+480
View File
@@ -0,0 +1,480 @@
<template>
<div>
<a-card>
<div class="grid grid-cols-2 gap-4">
<a-form-item class="flex" label="فقط پرونده های باز ">
<a-switch default-checked class="mr-2"/>
</a-form-item>
</div>
<x-table :model="cols" class="mt-3">
<template slot="operator" slot-scope="text,record">
<a-dropdown>
<a class="ant-dropdown-link" @click="e => e.preventDefault()">
عملیات <a-icon type="down" />
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;" @click="showMosahebe()">مشاهده مصاحبه</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="showDetails(text.record)">مشاهده اطلاعات</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="showAddMosahebe()">ثبت مصاحبه</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="showConfirme()">استخدام</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</template>
</x-table>
<a-modal v-model="showMosahebeModal" title="مشاهده مصاحبه ها" >
<template slot="footer">
<a-button key="back" @click="showMosahebeModal=false">
بستن
</a-button>
</template>
</a-modal>
<a-modal force-render :width="990" v-model="showAddMosahebeModal" title="ثبت مصاحبه">
<template slot="footer">
<a-button v-if="current < 2" type="primary" @click="savefromMosahebe">
بعدی
</a-button>
<a-button
v-if="current == 2"
type="primary"
@click="savefromMosahebe"
>
ثبت اطلاعات
</a-button>
<a-button v-if="current > 0" style="margin-left: 8px" @click="prev">
قبلی
</a-button>
</template>
<div>
<a-steps :current="current" style="direction: ltr">
<a-step title="ثبت تاریخ و مصاحبه کننده" />
<a-step title="ثبت جزئیات" />
<a-step title="ایجاد پرونده" />
</a-steps>
<div class="steps-content">
<a-form :form="fromMosahebe">
<div v-show="current==0" class="mt-4">
<p style="font-weight: bold">موضوع بررسی</p>
<a-card title="مشاغل" :bordered="true" class="mt-3">
<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-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>
<a-form-item label="نام مصاحبه کننده">
<a-input autocomplete="off" v-decorator="['interviewer',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }]}]"/>
</a-form-item>
</div>
</a-card>
</div>
<div v-show="current==1">
<a-row>
<span>موضوع بررسی</span>
</a-row>
<a-card title="دانش تخصصی" :bordered="true" >
<a-form-item label="نمره">
<a-input-number v-decorator="['result_1.score',{initialValue: 0}]" :min="0" :max="20" />
</a-form-item>
<a-form-item label="توضیحات">
<a-textarea
placeholder=""
v-decorator="['result_1.desc']"
:auto-size="{ minRows: 2, maxRows: 6 }"
/>
</a-form-item>
<a-form-item label="نتیجه">
<a-radio-group v-decorator="['result_1.sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
</a-card>
<br/>
<a-card title="تحصیلات مرتبط" :bordered="true" >
<a-form-item label="نمره">
<a-input-number v-decorator="['result_2.score',{initialValue: 0}]" :min="0" :max="20" />
</a-form-item>
<a-form-item label="توضیحات">
<a-textarea
placeholder=""
v-decorator="['result_2.desc']"
:auto-size="{ minRows: 2, maxRows: 6 }"
/>
</a-form-item>
<a-form-item label="نتیجه">
<a-radio-group v-decorator="['result_2.sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
</a-card>
<br/>
<a-card title="تجربه کاری مرتبط" :bordered="true" >
<a-form-item label="نمره">
<a-input-number v-decorator="['result_3.score',{initialValue: 0}]" :min="0" :max="20" />
</a-form-item>
<a-form-item label="توضیحات">
<a-textarea
placeholder=""
v-decorator="['result_3.desc']"
:auto-size="{ minRows: 2, maxRows: 6 }"
/>
</a-form-item>
<a-form-item label="نتیجه">
<a-radio-group v-decorator="['result_3.sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
</a-card>
<br/>
<a-card title="رفتار و شخصیت عمومی" :bordered="true" >
<a-form-item label="نمره">
<a-input-number v-decorator="['result_4.score',{initialValue: 0}]" :min="0" :max="20" />
</a-form-item>
<a-form-item label="توضیحات">
<a-textarea
placeholder=""
v-decorator="['result_4.desc']"
:auto-size="{ minRows: 2, maxRows: 6 }"
/>
</a-form-item>
<a-form-item label="نتیجه">
<a-radio-group v-decorator="['result_4.sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
</a-card>
<br/>
<a-card title="ویژگی های اختصاصی شغل" :bordered="true" >
<a-form-item label="نمره">
<a-input-number v-decorator="['result_5.score',{initialValue: 0}]" :min="0" :max="20" />
</a-form-item>
<a-form-item label="توضیحات">
<a-textarea
placeholder=""
v-decorator="['result_5.desc']"
:auto-size="{ minRows: 2, maxRows: 6 }"
/>
</a-form-item>
<a-form-item label="نتیجه">
<a-radio-group v-decorator="['result_5.sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
</a-card>
</div>
<div v-show="current==2">
<a-form-item label="نتیجه کلی مصاحبه">
<a-radio-group v-decorator="['sts']">
<a-radio :value="-1">
رد شده
</a-radio>
<a-radio :value="1">
قبول
</a-radio>
</a-radio-group>
</a-form-item>
<a-alert message="توجه داشته باشید که در صورت قبول انتخاب کردن نتیجه کلی مصاحبه برای فرد مورد نظر کد پرسنلی ایجاد خواهد شد." type="warning" />
</div>
</a-form>
</div>
</div>
</a-modal>
<a-modal :width="800" v-model="showInformationModal" title="جزییات درخواست" >
<template slot="footer">
<a-button key="back" @click="showInformationModal=false">
بستن
</a-button>
</template>
<a-card :title="personalInformation.name" :bordered="true" >
<div class="grid grid-cols-3 gap-4">
<div>نام و نام خانوادگی : {{ personalInformation.name }}</div>
<div>کد ملی : {{ personalInformation.ncode }}</div>
<div>موبایل : {{ personalInformation.mobile }}</div>
<div>تاریخ ثبت نام : {{ personalInformation.created_at }}</div>
<div>تاریخ به روز رسانی : {{ personalInformation.updated_at }}</div>
<div>شغل متقاضی : {{ personalInformation.job_title }}</div>
<div>نام پدر : {{ personalInformation.father_name }}</div>
<div>تاریخ تولد : {{ personalInformation.birth_date }}</div>
<div>جنسیت : {{ personalInformation.gender }}</div>
<div>وضعیت تاهل : {{personalInformation.marriage_sts }}</div>
<div>شماره شناسنامه : {{ personalInformation.iden_id }}</div>
<div>سریال شناسنامه : {{ personalInformation.iden_serial }}</div>
<div>محل صدور : {{ personalInformation.iden_place }}</div>
<div>محل تولد : {{ personalInformation.birth_place }}</div>
<div>وضعیت مسکن : {{ personalInformation.record }}</div>
<div>آدرس : {{ personalInformation.address }}</div>
<div>ایمیل : {{ personalInformation.email }}</div>
<div>تلفن ثابت : {{ personalInformation.phone }}</div>
<div>شماره بیمه : {{ personalInformation.name }}</div>
<div>تلفن ضروری : {{ personalInformation.phone_emergency }}</div>
<div>نام طرف مرتبط : {{ personalInformation.phone_emergency_related }}</div>
<div>نسبت طرف : </div>
</div>
</a-card>
<br/>
<a-card title="اطلاعات تحصیلی" :bordered="true" >
<div class="grid grid-cols-3 gap-4" v-if="personalDetails[0]">
<div>مقطع : {{ personalDetails[0].university }}</div>
<div>دانشگاه : {{ personalDetails[0].university }}</div>
<div>رشته تحصیلی: {{ personalDetails[0].title }}</div>
<div>گرایش: {{ personalDetails[0].trend }}</div>
<div>سال شروع: {{ personalDetails[0].start_at }}</div>
<div>سال خاتمه: {{ personalDetails[0].end_at }}</div>
</div>
</a-card>
<br/>
<a-card title="سوابق آموزشی" :bordered="true" >
<div class="grid grid-cols-3 gap-4" v-if="personalDetails[1]">
<div>مرکز برگزاری : {{ personalDetails[1].university }}</div>
<div>عنوان دوره : {{ personalDetails[1].title }}</div>
<div>سال : {{ personalDetails[1].start_at }}</div>
</div>
</a-card>
<br/>
<a-card title="سوابق کاری" :bordered="true" >
<div class="grid grid-cols-3 gap-4" v-if="personalDetails[2]">
<div>نام سازمان : {{ personalDetails[2].university }}</div>
<div>عنوان شغل : {{ personalDetails[2].title }}</div>
<div>سال شروع : {{ personalDetails[2].start_at }}</div>
<div>سال خاتمه : {{ personalDetails[2].end_at }}</div>
</div>
</a-card>
</a-modal>
</a-card>
</div>
</template>
<script>
import * as TableCol from './proposalTbl';
import XTable from "@/components/x-table/XTable.vue";
import axios from "@/axios";
import VuePersianDatetimePicker from "vue-persian-datetime-picker";
export default {
components:{
XTable,
datePicker: VuePersianDatetimePicker
},
data() {
return {
showMosahebeModal:false,
showInformationModal:false,
showAddMosahebeModal:false,
personalInformation:{},
personalDetails:{},
cols:null,
current:0,
fromMosahebe: this.$form.createForm(this, {name: 'coordinated'}),
mosahebe:null,
interview_at:null
}
},
methods:{
showAddMosahebe()
{
this.showAddMosahebeModal=true;
},
showMosahebe(){
this.showMosahebeModal=true;
},
savefromMosahebe(e) {
e.preventDefault();
this.fromMosahebe.validateFields(async(err, values) => {
if (!err) {
try{
if(this.current < 2)
{
this.next();
}
else
{
console.log(values,'values')
values.interview_at = this.interview_at
await axios.post('/update',values)
this.$message.success('اطلاعات با موفقیت کامل شد')
}
}catch (e) {
this.$ntSetError()
throw e
}finally {
}
}
});
},
interview(e) {
e.preventDefault();
this.fromMosahebe.validateFields(async (err, values) => {
if (!err) {
if(this.current<2)
{
this.next();
}
else
{
}
}
});
},
next() {
this.current++;
},
prev() {
this.current--;
},
showDetails(record) {
axios.post('/proposal/details', {id:record.id})
.then((res)=>{
this.personalInformation=record;
this.personalDetails=res.data;
this.showInformationModal=true;
}).catch((error)=>{
this.$message.error('خطا در دریافت اطلاعات');
});
},
showConfirme(){
this.$confirm({
title: 'آیا مطمئن به استخدام هستید ؟',
content: 'در صورتی که گزینه بله را انتخاب کنید کد پرسنلی برای فرد درخواست کننده در سیستم اختصاص خواهد یافت',
cancelText:'بی خیال ',
okText:'بله',
onOk() {
console.log('OK');
},
onCancel() {
console.log('Cancel');
},
});
},
},
created() {
this.cols = TableCol.default;
}
}
</script>
<style>
.ant-modal-mask
{
z-index: 9999999 !important;
}
.ant-modal-wrap
{
z-index: 999999999 !important;
}
</style>
+14
View File
@@ -0,0 +1,14 @@
import XTbl, {Xtc} from '../../components/x-table/index';
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/proposal', 'لیست درخواست ها');
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
tbl.add(new Xtc('fname', 'موبایل').filterText())
tbl.add(new Xtc('job_title', 'شغل').filterText())
tbl.add(new Xtc('for_cities', 'شهر').filterText().noSort())
tbl.add(new Xtc('created_at', 'ثبت نام').filterDate().noSort())
tbl.add(new Xtc('updated_at', 'به روز رسانی').filterText().noSort())
tbl.add(new Xtc('id', 'عملیات').filterSwitch().renderSlot('operator').noSort())
/*tbl.addOpt()*/
export default tbl;