hr admin
This commit is contained in:
+2
-2
@@ -26,7 +26,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 3px solid transparent;
|
border: 3px solid transparent;
|
||||||
border-left: 3px solid #1DA57A;
|
border-left: 3px solid #28ace0;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
-webkit-box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 3px solid transparent;
|
border: 3px solid transparent;
|
||||||
border-left: 3px solid #1DA57A;
|
border-left: 3px solid #28ace0;
|
||||||
-webkit-animation: rotateOpacity 1s ease infinite .2s;
|
-webkit-animation: rotateOpacity 1s ease infinite .2s;
|
||||||
animation: rotateOpacity 1s ease infinite .2s;
|
animation: rotateOpacity 1s ease infinite .2s;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
|||||||
+83
-4
@@ -1,3 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- =========================================================================================
|
<!-- =========================================================================================
|
||||||
File Name: App.vue
|
File Name: App.vue
|
||||||
Description: Main vue file - APP
|
Description: Main vue file - APP
|
||||||
@@ -66,21 +70,96 @@ export default {
|
|||||||
// Then we set the value in the --vh custom property to the root of the document
|
// Then we set the value in the --vh custom property to the root of the document
|
||||||
document.documentElement.style.setProperty('--vh', `${vh}px`)
|
document.documentElement.style.setProperty('--vh', `${vh}px`)
|
||||||
},
|
},
|
||||||
async created () {
|
async created() {
|
||||||
|
|
||||||
|
|
||||||
|
//console.log("this ==> ", this);
|
||||||
|
const dict = {
|
||||||
|
attributes: {
|
||||||
|
old: "رمز عبور فعلی",
|
||||||
|
confirm_password: "تکرار رمز عبور فعلی",
|
||||||
|
password: "رمز عبور",
|
||||||
|
email: 'ایمیل',
|
||||||
|
mobile: 'موبایل',
|
||||||
|
fname: 'نام',
|
||||||
|
phone: 'تلفن',
|
||||||
|
zip: 'کد پستی',
|
||||||
|
address: 'آدرس',
|
||||||
|
state: 'استان',
|
||||||
|
city: 'شهر',
|
||||||
|
company: 'دریافت کننده',
|
||||||
|
lname: 'نام خانوادگی',
|
||||||
|
},
|
||||||
|
messages: {
|
||||||
|
required: (field) => `وارد کردن ${field} الزامی است`,
|
||||||
|
email: (field) => 'ایمیل وارد شده نامعتبر می باشد',
|
||||||
|
min: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
max: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
alpha_dash: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
digits: (field) => 'مقدار ورودی صحیح نیست'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.$validator.localize('fa', dict);
|
||||||
// jwt
|
// jwt
|
||||||
jwt.init()
|
jwt.init()
|
||||||
|
|
||||||
const dir = this.$vs.rtl ? 'rtl' : 'ltr'
|
//const dir = this.$vs.rtl ? 'rtl' : 'ltr'
|
||||||
document.documentElement.setAttribute('dir', dir)
|
// document.documentElement.setAttribute('dir', dir)
|
||||||
|
|
||||||
window.addEventListener('resize', this.handleWindowResize)
|
window.addEventListener('resize', this.handleWindowResize)
|
||||||
window.addEventListener('scroll', this.handleScroll)
|
window.addEventListener('scroll', this.handleScroll)
|
||||||
|
|
||||||
// Auth0
|
// Auth0
|
||||||
try { await this.$auth.renewTokens() } catch (e) { console.error(e) }
|
try {
|
||||||
|
await this.$auth.renewTokens()
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
// async created () {
|
||||||
|
//
|
||||||
|
// //console.log("this ==> ", this);
|
||||||
|
// const dict = {
|
||||||
|
// attributes: {
|
||||||
|
// old: "رمز عبور فعلی",
|
||||||
|
// confirm_password: "تکرار رمز عبور فعلی",
|
||||||
|
// password: "رمز عبور",
|
||||||
|
// email: 'ایمیل',
|
||||||
|
// mobile: 'موبایل',
|
||||||
|
// fname: 'نام',
|
||||||
|
// phone: 'تلفن',
|
||||||
|
// zip: 'کد پستی',
|
||||||
|
// address: 'آدرس',
|
||||||
|
// state: 'استان',
|
||||||
|
// city: 'شهر',
|
||||||
|
// company: 'دریافت کننده',
|
||||||
|
// lname: 'نام خانوادگی',
|
||||||
|
// },
|
||||||
|
// messages: {
|
||||||
|
// required: (field) => `وارد کردن ${field} الزامی است`,
|
||||||
|
// email: (field) => 'ایمیل وارد شده نامعتبر می باشد',
|
||||||
|
// min: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
// max: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
// alpha_dash: (field) => 'مقدار ورودی صحیح نیست',
|
||||||
|
// digits: (field) => 'مقدار ورودی صحیح نیست'
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// this.$validator.localize('fa', dict);
|
||||||
|
//
|
||||||
|
// // jwt
|
||||||
|
// jwt.init()
|
||||||
|
//
|
||||||
|
// const dir = this.$vs.rtl ? 'rtl' : 'ltr'
|
||||||
|
// document.documentElement.setAttribute('dir', dir)
|
||||||
|
//
|
||||||
|
// window.addEventListener('resize', this.handleWindowResize)
|
||||||
|
// window.addEventListener('scroll', this.handleScroll)
|
||||||
|
//
|
||||||
|
// // Auth0
|
||||||
|
// try { await this.$auth.renewTokens() } catch (e) { console.error(e) }
|
||||||
|
//
|
||||||
|
// },
|
||||||
destroyed () {
|
destroyed () {
|
||||||
window.removeEventListener('resize', this.handleWindowResize)
|
window.removeEventListener('resize', this.handleWindowResize)
|
||||||
window.removeEventListener('scroll', this.handleScroll)
|
window.removeEventListener('scroll', this.handleScroll)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<!-- Logo -->
|
<!-- Logo -->
|
||||||
<router-link tag="div" class="vx-logo cursor-pointer flex items-center" to="/">
|
<router-link tag="div" class="vx-logo cursor-pointer flex items-center" to="/">
|
||||||
<img src="../../../../public/logo.svg" width="75px"/>
|
<img src="../../../../public/logo.svg" width="150px"/>
|
||||||
<span class="vx-logo-text text-primary" v-show="isMouseEnter || !reduce" v-if="title">{{ title }}</span>
|
<span class="vx-logo-text text-primary" v-show="isMouseEnter || !reduce" v-if="title">{{ title }}</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
<!-- /Logo -->
|
<!-- /Logo -->
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ export default [
|
|||||||
icon: "AlignJustifyIcon",
|
icon: "AlignJustifyIcon",
|
||||||
i18n: "اطلاعات پرسنلی",
|
i18n: "اطلاعات پرسنلی",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
url: "/auth/register",
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
+8
-8
@@ -24,14 +24,14 @@ const router = new Router({
|
|||||||
rule: 'editor'
|
rule: 'editor'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// path: '/auth/register',
|
path: '/auth/register',
|
||||||
// name: 'auth-register',
|
name: 'auth-register',
|
||||||
// component: () => import('@/views/auth/Register.vue'),
|
component: () => import('./views/register/Register.vue'),
|
||||||
// meta: {
|
meta: {
|
||||||
// rule: 'editor'
|
rule: 'editor'
|
||||||
// }
|
}
|
||||||
// },
|
},
|
||||||
// {
|
// {
|
||||||
// path: '/auth/forgot-password',
|
// path: '/auth/forgot-password',
|
||||||
// name: 'auth-forget',
|
// name: 'auth-forget',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<div id="loading-bg">
|
<div id="loading-bg">
|
||||||
<div class="loading-logo">
|
<div class="loading-logo">
|
||||||
<img src="@/assets/images/logo/logo.svg" width="130px" alt="Logo">
|
<img src="@/assets/images/logo/logo.svg" width="150px" alt="Logo">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="loading">
|
<div class="loading">
|
||||||
|
|||||||
+20
-34
@@ -1,15 +1,4 @@
|
|||||||
<!-- =========================================================================================
|
|
||||||
File Name: Login.vue
|
|
||||||
Description: Login Page
|
|
||||||
----------------------------------------------------------------------------------------
|
|
||||||
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
|
|
||||||
Author: Pixinvent
|
|
||||||
Author URL: http://www.themeforest.net/user/pixinvent
|
|
||||||
========================================================================================== -->
|
|
||||||
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="h-screen flex w-full bg-img vx-row no-gutter items-center justify-center" id="page-login">
|
<div class="h-screen flex w-full bg-img vx-row no-gutter items-center justify-center" id="page-login">
|
||||||
<div class="vx-col sm:w-1/2 md:w-1/2 lg:w-2/4 xl:w-1/4 sm:m-0 m-4">
|
<div class="vx-col sm:w-1/2 md:w-1/2 lg:w-2/4 xl:w-1/4 sm:m-0 m-4">
|
||||||
<vx-card>
|
<vx-card>
|
||||||
@@ -17,16 +6,18 @@
|
|||||||
|
|
||||||
<div class="vx-row no-gutter justify-center items-center">
|
<div class="vx-row no-gutter justify-center items-center">
|
||||||
|
|
||||||
|
<!-- <div class="vx-col hidden lg:block lg:w-1/2">
|
||||||
|
<img src="@/assets/images/pages/login.png" alt="login" class="mx-auto">
|
||||||
|
</div>-->
|
||||||
|
|
||||||
<div class="vx-col sm:w-full md:w-full lg:w-full d-theme-dark-bg">
|
<div class="vx-col sm:w-full md:w-full lg:w-full d-theme-dark-bg">
|
||||||
<div class="px-4 pt-1 login-tabs-container flex items-stretch flex-col justify-center ">
|
<div class="px-4 pt-1 login-tabs-container flex items-stretch flex-col justify-center ">
|
||||||
<img src="@/assets/images/logo.svg" width="120px" height="120px" class="mx-auto">
|
<img src="@/assets/images/logo.svg" width="120px" height="120px" class="mx-auto">
|
||||||
<div class="vx-card__title mb-4">
|
<div class="vx-card__title mb-4">
|
||||||
<h4 class="mb-4">
|
<h4 class="mb-4">
|
||||||
ورود
|
{{$t('Login')}}
|
||||||
</h4>
|
</h4>
|
||||||
<p>
|
<p>{{$t('Welcome Login')}}</p>
|
||||||
به آسکو خوش آمدید.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<vs-input
|
<vs-input
|
||||||
@@ -36,11 +27,11 @@
|
|||||||
icon-no-border
|
icon-no-border
|
||||||
icon="icon icon-user"
|
icon="icon icon-user"
|
||||||
icon-pack="feather"
|
icon-pack="feather"
|
||||||
label-placeholder="شماره تلفن همراه یا ایمیل"
|
:label-placeholder="$t('Mail or Mobile')"
|
||||||
v-model="email"
|
v-model="email"
|
||||||
@keydown.enter="loginJWT"
|
@keydown.enter="loginJWT"
|
||||||
class="w-full"/>
|
class="w-full"/>
|
||||||
<span class="text-danger text-sm">شماره موبایل الزامی است.</span>
|
<span class="text-danger text-sm">{{ errors.first('mobile') }}</span>
|
||||||
|
|
||||||
<vs-input
|
<vs-input
|
||||||
data-vv-validate-on="blur"
|
data-vv-validate-on="blur"
|
||||||
@@ -50,26 +41,29 @@
|
|||||||
icon-no-border
|
icon-no-border
|
||||||
icon="icon icon-lock"
|
icon="icon icon-lock"
|
||||||
icon-pack="feather"
|
icon-pack="feather"
|
||||||
label-placeholder="رمزعبور"
|
:label-placeholder="$t('Password')"
|
||||||
v-model="password"
|
v-model="password"
|
||||||
@keydown.enter="loginJWT"
|
@keydown.enter="loginJWT"
|
||||||
class="w-full mt-8" />
|
class="w-full mt-8" />
|
||||||
<span class="text-danger text-sm">رمزعبور الزامی است.</span>
|
<span class="text-danger text-sm">{{ errors.first('password') }}</span>
|
||||||
|
|
||||||
<div class="flex flex-wrap justify-between my-5">
|
<div class="flex flex-wrap justify-between my-5">
|
||||||
<router-link to="/auth/forgot-password">
|
<!-- <router-link to="/auth/forgot-password">
|
||||||
رمز عبور خود را فراموش کردم
|
{{$t('Forgot Password')}}
|
||||||
</router-link>
|
</router-link>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-wrap justify-between mb-3 ">
|
<div class="flex flex-wrap justify-between mb-3 ">
|
||||||
<vs-button class="mx-auto" :disabled="!validateForm" @click="loginJWT" >
|
<vs-button class="mx-auto" :disabled="!validateForm" @click="loginJWT" >
|
||||||
ورود
|
{{$t('Login')}}
|
||||||
</vs-button>
|
</vs-button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<router-link to="/auth/register">
|
<!-- <router-link to="/auth/register">
|
||||||
آیا شما ثبت نام نکرده اید ؟
|
{{$t('Are you register')}}
|
||||||
</router-link>
|
</router-link>-->
|
||||||
|
<a-button type="link" @click="registerUser">
|
||||||
|
آیا هنوز ثبت نام نکرده اید؟
|
||||||
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -133,13 +127,6 @@
|
|||||||
}
|
}
|
||||||
this.$vs.loading.close()
|
this.$vs.loading.close()
|
||||||
this.$message.error(msg);
|
this.$message.error(msg);
|
||||||
/*this.$vs.notify({
|
|
||||||
title: 'خطا در ورود',
|
|
||||||
text: msg,
|
|
||||||
iconPack: 'feather',
|
|
||||||
icon: 'icon-alert-circle',
|
|
||||||
color: 'danger',
|
|
||||||
})*/
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
registerUser() {
|
registerUser() {
|
||||||
@@ -165,4 +152,3 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+26
-27
@@ -1,8 +1,9 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<a-card>
|
<a-card>
|
||||||
|
|
||||||
<a-tabs default-active-key="1" style="direction: ltr" @change="changeTab()">
|
<a-tabs default-active-key="1" style="direction: ltr" >
|
||||||
|
|
||||||
<a-tab-pane key="2" tab="مدیریت شهرها">
|
<a-tab-pane key="2" tab="مدیریت شهرها">
|
||||||
<div>
|
<div>
|
||||||
@@ -16,14 +17,13 @@
|
|||||||
|
|
||||||
<div class="col-span-5">
|
<div class="col-span-5">
|
||||||
<a-select
|
<a-select
|
||||||
class="mt-3"
|
class="mt-5"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
:default-value="[]"
|
:default-value="[]"
|
||||||
style="width: 100%;direction: rtl !important;"
|
style="width: 100%;direction: ltr !important;"
|
||||||
size="large"
|
|
||||||
placeholder="انتخاب شهر"
|
placeholder="انتخاب شهر"
|
||||||
>
|
>
|
||||||
<a-select-option v-for="item,index in cities" :key="item.id">
|
<a-select-option v-for="item,index in cities" :key="item.id" style="direction: rtl !important;">
|
||||||
{{item.title}}
|
{{item.title}}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -39,16 +39,16 @@
|
|||||||
|
|
||||||
<a-form-item label="شغل">
|
<a-form-item label="شغل">
|
||||||
<a-input
|
<a-input
|
||||||
v-decorator="['title',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }],},]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شهر های همکاری">
|
<a-form-item label="شهر های همکاری">
|
||||||
|
|
||||||
<a-select
|
<a-select
|
||||||
class="mt-3"
|
class="mt-3"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
size="large"
|
style="width: 100%;direction: rtl !important;"
|
||||||
placeholder="انتخاب شهر"
|
placeholder="انتخاب شهر"
|
||||||
v-decorator="['cities',{rules: [{ required: false, message: 'وارد کردن شهر های همکاری الزامی است' }]}]"
|
v-decorator="['cities',{rules: [{ required: true, message: 'وارد کردن شهر های همکاری الزامی است' }],},]"
|
||||||
>
|
>
|
||||||
<a-select-option v-for="item,index in cities" :key="`${item.id}`">
|
<a-select-option v-for="item,index in cities" :key="`${item.id}`">
|
||||||
{{item.title}}
|
{{item.title}}
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<template slot="cities_str_slot" slot-scope="items">
|
<template slot="cities_str_slot" slot-scope="items">
|
||||||
<a-tag v-for="item,index in items" >{{item}}</a-tag>
|
<a-tag v-for="item,index in items" :key="index" >{{item}}</a-tag>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template slot="operator" slot-scope="id">
|
<template slot="operator" slot-scope="id">
|
||||||
@@ -101,9 +101,9 @@
|
|||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
<a-button type="primary">
|
<!-- <a-button type="primary">
|
||||||
Primary
|
Primary
|
||||||
</a-button>
|
</a-button>-->
|
||||||
|
|
||||||
</ATable>
|
</ATable>
|
||||||
|
|
||||||
@@ -127,12 +127,12 @@
|
|||||||
okText="ثبت تغییرات "
|
okText="ثبت تغییرات "
|
||||||
@ok="saveEditJob"
|
@ok="saveEditJob"
|
||||||
cancelText="بستن"
|
cancelText="بستن"
|
||||||
title="ویرایش شفل" >
|
title="ویرایش شغل" >
|
||||||
<a-form :form="fromJobEdit" @submit="saveEditJob" >
|
<a-form :form="fromJobEdit" @submit="saveEditJob" >
|
||||||
|
|
||||||
<a-form-item label="شغل">
|
<a-form-item label="شغل">
|
||||||
<a-input
|
<a-input
|
||||||
v-decorator="['title',{rules: [{ required: false, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شهر های همکاری">
|
<a-form-item label="شهر های همکاری">
|
||||||
|
|
||||||
@@ -140,11 +140,11 @@
|
|||||||
class="mt-3"
|
class="mt-3"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
style="width: 100%;direction: rtl !important;"
|
style="width: 100%;direction: rtl !important;"
|
||||||
size="large"
|
autocomplete="off"
|
||||||
placeholder="انتخاب شهر"
|
placeholder="انتخاب شهر"
|
||||||
v-decorator="['cities',{rules: [{ required: false, message: 'وارد کردن شهر های همکاری الزامی است' }],},]"
|
v-decorator="['cities',{rules: [{ required: true, message: 'وارد کردن شهر های همکاری الزامی است' }]}]"
|
||||||
>
|
>
|
||||||
<a-select-option v-for="item,index in cities" :key="`${item.id}`">
|
<a-select-option v-for="(item,index) in cities" :key="`${item.id}`">
|
||||||
{{item.title}}
|
{{item.title}}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -166,6 +166,7 @@
|
|||||||
import XTable from "@/components/x-table/XTable";
|
import XTable from "@/components/x-table/XTable";
|
||||||
import axios from "@/axios";
|
import axios from "@/axios";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -218,18 +219,15 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromJobEdit.validateFields((err, values) => {
|
this.fromJobEdit.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
values.id=this.currentJobID;
|
try{
|
||||||
axios.post('/jobs',values)
|
values.id=this.currentJobID;
|
||||||
.then((res)=>{
|
axios.post('/jobs',values)
|
||||||
//console.log(res.data);
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
this.getJobs();
|
||||||
this.getJobs();
|
this.showJobEditModal = false;
|
||||||
this.showAddJob=false;
|
}catch (e) {
|
||||||
}).catch((error)=>{
|
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
}
|
||||||
// console.log('Received values of form: ', values);
|
|
||||||
//this.$store.commit('update', values);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -330,6 +328,7 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.ant-pagination
|
.ant-pagination
|
||||||
{
|
{
|
||||||
|
|||||||
+665
-433
File diff suppressed because it is too large
Load Diff
@@ -5,9 +5,8 @@ tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
|||||||
tbl.add(new Xtc('fname', 'کد پرسنلی').filterText())
|
tbl.add(new Xtc('fname', 'کد پرسنلی').filterText())
|
||||||
tbl.add(new Xtc('id', 'شماره بیمه').filterText())
|
tbl.add(new Xtc('id', 'شماره بیمه').filterText())
|
||||||
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||||
tbl.add(new Xtc('created_at', 'ثبت نام').filterDate().noSort())
|
tbl.add(new Xtc('caj', 'ثبت نام').filterDate().noSort())
|
||||||
tbl.add(new Xtc('updated_at', 'به روز رسانی').filterText().noSort())
|
tbl.add(new Xtc('uaj', 'به روز رسانی').filterText().noSort())
|
||||||
tbl.add(new Xtc('operator', 'عملیات').filterSwitch().renderSlot('operator').noSort())
|
tbl.add(new Xtc('operator', 'عملیات').filterSwitch().renderSlot('operator').noSort())
|
||||||
/*tbl.addOpt()*/
|
|
||||||
|
|
||||||
export default tbl;
|
export default tbl;
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
<a-switch default-checked class="mr-2"/>
|
<a-switch default-checked class="mr-2"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
<x-table :model="cols" class="mt-3">
|
<x-table
|
||||||
|
:model="cols" class="mt-3">
|
||||||
<template slot="operator" slot-scope="text,record">
|
<template slot="operator" slot-scope="text,record">
|
||||||
<a-dropdown>
|
<a-dropdown>
|
||||||
<a class="ant-dropdown-link" @click="e => e.preventDefault()">
|
<a class="ant-dropdown-link" @click="e => e.preventDefault()">
|
||||||
@@ -14,7 +15,7 @@
|
|||||||
</a>
|
</a>
|
||||||
<a-menu slot="overlay">
|
<a-menu slot="overlay">
|
||||||
<a-menu-item>
|
<a-menu-item>
|
||||||
<a href="javascript:;" @click="showMosahebe()">مشاهده مصاحبه</a>
|
<a href="javascript:;" @click="showMosahebe(text.record.id)">مشاهده مصاحبه</a>
|
||||||
|
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item>
|
<a-menu-item>
|
||||||
@@ -22,7 +23,7 @@
|
|||||||
|
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item>
|
<a-menu-item>
|
||||||
<a href="javascript:;" @click="showAddMosahebe()">ثبت مصاحبه</a>
|
<a href="javascript:;" @click="showAddMosahebe(text.record.id)">ثبت مصاحبه</a>
|
||||||
|
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item>
|
<a-menu-item>
|
||||||
@@ -33,13 +34,63 @@
|
|||||||
</template>
|
</template>
|
||||||
</x-table>
|
</x-table>
|
||||||
|
|
||||||
<a-modal v-model="showMosahebeModal" title="مشاهده مصاحبه ها" >
|
<a-modal :width="1000" v-model="showMosahebeModal" title="مشاهده مصاحبه ها" >
|
||||||
|
|
||||||
|
<div v-if="is_skeleton">
|
||||||
|
<ASkeleton/>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div v-if="interview.length == 0">
|
||||||
|
<a-card>
|
||||||
|
مصاحبه ای ثبت نشده است.
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div v-for="item in interview" v-if="interview">
|
||||||
|
<a-card :title="item.caj" class="mt-10">
|
||||||
|
<a-descriptions>
|
||||||
|
<a-descriptions-item label="تاریخ مصاحبه">
|
||||||
|
{{ item.interview_at }}
|
||||||
|
</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="مصاحبه کننده">
|
||||||
|
{{ item.interviewer }}
|
||||||
|
</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="وضعیت">
|
||||||
|
{{ item.type }}
|
||||||
|
</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
<a-card title="جزییات">
|
||||||
|
<a-list>
|
||||||
|
<a-list-item v-for="element,index in item.result" :key="index" v-if="item.result">
|
||||||
|
<div class="flex w-full flex-col">
|
||||||
|
<div class="flex justify-between w-full items-center">
|
||||||
|
<h3>{{title_interview[index]}}</h3>
|
||||||
|
<div>
|
||||||
|
<a-tag color="blue">
|
||||||
|
نمره: {{element.score}}
|
||||||
|
</a-tag>
|
||||||
|
<a-tag color="green" v-if="element.sts == 1">
|
||||||
|
قبول
|
||||||
|
</a-tag>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a-divider/>
|
||||||
|
<p v-if="element.desc">{{ element.desc }}</p>
|
||||||
|
<p v-else>بدون توضیحات</p>
|
||||||
|
</div>
|
||||||
|
</a-list-item>
|
||||||
|
</a-list>
|
||||||
|
</a-card>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<a-button key="back" @click="showMosahebeModal=false">
|
<a-button key="back" @click="showMosahebeModal=false">
|
||||||
بستن
|
بستن
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
@@ -73,10 +124,9 @@
|
|||||||
<div class="steps-content">
|
<div class="steps-content">
|
||||||
|
|
||||||
<a-form :form="fromMosahebe">
|
<a-form :form="fromMosahebe">
|
||||||
|
|
||||||
<div v-show="current==0" class="mt-4">
|
<div v-show="current==0" class="mt-4">
|
||||||
|
|
||||||
<p style="font-weight: bold">موضوع بررسی</p>
|
<p style="font-weight: bold">موضوع بررسی</p>
|
||||||
|
|
||||||
<a-card title="مشاغل" :bordered="true" class="mt-3">
|
<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 class="grid sm:grid-cols-1 md:grid-cols-2 md:gap-3 lg:grid-cols-2 lg:gap-3">
|
||||||
<div>
|
<div>
|
||||||
@@ -277,7 +327,6 @@
|
|||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
|
||||||
<a-modal :width="800" v-model="showInformationModal" title="جزییات درخواست" >
|
<a-modal :width="800" v-model="showInformationModal" title="جزییات درخواست" >
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<a-button key="back" @click="showInformationModal=false">
|
<a-button key="back" @click="showInformationModal=false">
|
||||||
@@ -291,8 +340,8 @@
|
|||||||
<div>نام و نام خانوادگی : {{ personalInformation.name }}</div>
|
<div>نام و نام خانوادگی : {{ personalInformation.name }}</div>
|
||||||
<div>کد ملی : {{ personalInformation.ncode }}</div>
|
<div>کد ملی : {{ personalInformation.ncode }}</div>
|
||||||
<div>موبایل : {{ personalInformation.mobile }}</div>
|
<div>موبایل : {{ personalInformation.mobile }}</div>
|
||||||
<div>تاریخ ثبت نام : {{ personalInformation.created_at }}</div>
|
<div>تاریخ ثبت نام : {{ personalInformation.caj }}</div>
|
||||||
<div>تاریخ به روز رسانی : {{ personalInformation.updated_at }}</div>
|
<div>تاریخ به روز رسانی : {{ personalInformation.uaj }}</div>
|
||||||
<div>شغل متقاضی : {{ personalInformation.job_title }}</div>
|
<div>شغل متقاضی : {{ personalInformation.job_title }}</div>
|
||||||
<div>نام پدر : {{ personalInformation.father_name }}</div>
|
<div>نام پدر : {{ personalInformation.father_name }}</div>
|
||||||
<div>تاریخ تولد : {{ personalInformation.birth_date }}</div>
|
<div>تاریخ تولد : {{ personalInformation.birth_date }}</div>
|
||||||
@@ -355,7 +404,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as TableCol from './proposalTbl';
|
import * as TableCol from './proposalTbl';
|
||||||
import XTable from "@/components/x-table/XTable.vue";
|
import XTable from "@/components/x-table/XTable";
|
||||||
import axios from "@/axios";
|
import axios from "@/axios";
|
||||||
import VuePersianDatetimePicker from "vue-persian-datetime-picker";
|
import VuePersianDatetimePicker from "vue-persian-datetime-picker";
|
||||||
|
|
||||||
@@ -375,17 +424,36 @@
|
|||||||
current:0,
|
current:0,
|
||||||
fromMosahebe: this.$form.createForm(this, {name: 'coordinated'}),
|
fromMosahebe: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
mosahebe:null,
|
mosahebe:null,
|
||||||
interview_at:null
|
interview_at:null,
|
||||||
|
row_id:null,
|
||||||
|
interview:[],
|
||||||
|
title_interview:['دانش تخصصی','تحصیلات مرتبط','تجربه کاری مرتبط','رفتار و شخصیت عمومی','ویژگی های اختصاصی شغل'],
|
||||||
|
is_skeleton:false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
showAddMosahebe()
|
showAddMosahebe(id)
|
||||||
{
|
{
|
||||||
this.showAddMosahebeModal=true;
|
this.showAddMosahebeModal=true;
|
||||||
|
this.row_id = id
|
||||||
},
|
},
|
||||||
showMosahebe(){
|
showMosahebe(id){
|
||||||
this.showMosahebeModal=true;
|
this.showMosahebeModal=true;
|
||||||
|
this.getInterView(id)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async getInterView(id){
|
||||||
|
try{
|
||||||
|
this.is_skeleton = true
|
||||||
|
const {data} = await axios.post('proposal/interview',{id:id})
|
||||||
|
this.interview = data
|
||||||
|
}catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
}finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
savefromMosahebe(e) {
|
savefromMosahebe(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromMosahebe.validateFields(async(err, values) => {
|
this.fromMosahebe.validateFields(async(err, values) => {
|
||||||
@@ -399,9 +467,12 @@
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
console.log(values,'values')
|
console.log(values,'values')
|
||||||
|
const id = this.row_id
|
||||||
values.interview_at = this.interview_at
|
values.interview_at = this.interview_at
|
||||||
await axios.post('/update',values)
|
values.id = id
|
||||||
|
await axios.post('proposal/update',values)
|
||||||
this.$message.success('اطلاعات با موفقیت کامل شد')
|
this.$message.success('اطلاعات با موفقیت کامل شد')
|
||||||
|
this.fromMosahebe.resetFields()
|
||||||
}
|
}
|
||||||
}catch (e) {
|
}catch (e) {
|
||||||
this.$ntSetError()
|
this.$ntSetError()
|
||||||
@@ -457,6 +528,7 @@
|
|||||||
onCancel() {
|
onCancel() {
|
||||||
console.log('Cancel');
|
console.log('Cancel');
|
||||||
},
|
},
|
||||||
|
//class: 'test',
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ import XTbl, {Xtc} from '../../components/x-table/index';
|
|||||||
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/proposal', 'لیست درخواست ها');
|
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/proposal', 'لیست درخواست ها');
|
||||||
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
||||||
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||||
tbl.add(new Xtc('fname', 'موبایل').filterText())
|
tbl.add(new Xtc('mobile', 'موبایل').filterText())
|
||||||
tbl.add(new Xtc('job_title', 'شغل').filterText())
|
tbl.add(new Xtc('job_title', 'شغل').filterText())
|
||||||
tbl.add(new Xtc('for_cities', 'شهر').filterText().noSort())
|
tbl.add(new Xtc('for_cities', 'شهر').filterText().noSort())
|
||||||
tbl.add(new Xtc('created_at', 'ثبت نام').filterDate().noSort())
|
tbl.add(new Xtc('caj', 'ثبت نام').filterDate().noSort())
|
||||||
tbl.add(new Xtc('updated_at', 'به روز رسانی').filterText().noSort())
|
tbl.add(new Xtc('uaj', 'به روز رسانی').filterText().noSort())
|
||||||
tbl.add(new Xtc('id', 'عملیات').filterSwitch().renderSlot('operator').noSort())
|
tbl.add(new Xtc('id', 'عملیات').filterSwitch().renderSlot('operator').noSort())
|
||||||
/*tbl.addOpt()*/
|
/*tbl.addOpt()*/
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,833 @@
|
|||||||
|
<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>
|
||||||
+1
-1
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
// MAIN COLORS - VUESAX THEME COLORS
|
// MAIN COLORS - VUESAX THEME COLORS
|
||||||
export const colors = {
|
export const colors = {
|
||||||
primary : '#1DA57A',
|
primary : '#41b883',
|
||||||
// primary : '#7367F0',
|
// primary : '#7367F0',
|
||||||
success : '#28C76F',
|
success : '#28C76F',
|
||||||
danger : '#EA5455',
|
danger : '#EA5455',
|
||||||
|
|||||||
Reference in New Issue
Block a user