update 1399-12-24
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'p-yek';
|
font-family: 'p-yek';
|
||||||
src: url("../fonts/yekan/medium.woff") format("woff");
|
src: url("../fonts/yekan/iran-yekan-400.woff2") format("woff");
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal
|
font-style: normal
|
||||||
}
|
}
|
||||||
@@ -9,27 +9,27 @@
|
|||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'p-yek';
|
font-family: 'p-yek';
|
||||||
src: url("../fonts/yekan/bold.woff") format("woff");
|
src: url("../fonts/yekan/iran-yekan-400.woff2") format("woff");
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'p-yek';
|
font-family: 'p-yek';
|
||||||
src: url("../fonts/yekan/heavy.woff") format("woff");
|
src: url("../fonts/yekan/iran-yekan-400.woff2") format("woff");
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'p-yek';
|
font-family: 'p-yek';
|
||||||
src: url("../fonts/yekan/light.woff") format("woff");
|
src: url("../fonts/yekan/iran-yekan-400.woff2") format("woff");
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'p-yek';
|
font-family: 'p-yek';
|
||||||
src: url("../fonts/yekan/regular.woff") format("woff");
|
src: url("../fonts/yekan/iran-yekan-400.woff2") format("woff");
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,156 @@
|
|||||||
|
<template>
|
||||||
|
<div class="clearfix">
|
||||||
|
<AUpload
|
||||||
|
:action="url"
|
||||||
|
:headers="headers"
|
||||||
|
:accept="accept"
|
||||||
|
list-type="picture-card"
|
||||||
|
:multiple="false"
|
||||||
|
:data="getData"
|
||||||
|
:file-list="fileList"
|
||||||
|
@preview="handlePreview"
|
||||||
|
@select="select"
|
||||||
|
@beforeUpload="beforeUpload"
|
||||||
|
@change="handleChange"
|
||||||
|
:remove="handleRemove"
|
||||||
|
>
|
||||||
|
<div v-if="fileList.length < 8">
|
||||||
|
<a-icon type="plus"/>
|
||||||
|
<div class="ant-upload-text">
|
||||||
|
{{ title || label }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</AUpload>
|
||||||
|
<AModal :visible="previewVisible" :footer="null" @cancel="handleCancel">
|
||||||
|
<img alt="example" style="width: 100%" :src="previewImage"/>
|
||||||
|
</AModal>
|
||||||
|
<AFormItem ref="fi">
|
||||||
|
<input v-decorator="[field]" type="hidden"/>
|
||||||
|
</AFormItem>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
function getBase64(file) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
reader.onload = () => resolve(reader.result);
|
||||||
|
reader.onerror = error => reject(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//import themeConfig from "../../../../themeConfig";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'UploadInput',
|
||||||
|
props: {
|
||||||
|
title: {},
|
||||||
|
label: {},
|
||||||
|
field: {},
|
||||||
|
size: {
|
||||||
|
default: 2
|
||||||
|
},
|
||||||
|
accept: {default: "image/jpeg"},
|
||||||
|
serverType: {
|
||||||
|
types: {
|
||||||
|
1: 'عکس',
|
||||||
|
2: 'فیلم',
|
||||||
|
3: 'مدارک',
|
||||||
|
4: 'صوت',
|
||||||
|
5: 'pdf',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
url: 'http://hr.asco-intl.com/back/public/api/register/upload',
|
||||||
|
previewVisible: false,
|
||||||
|
previewImage: '',
|
||||||
|
fileList: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
fileList(n, o) {
|
||||||
|
if (n.length > o.length) {
|
||||||
|
this.$emit('add-file', n);
|
||||||
|
} else if (n.length < o.length) {
|
||||||
|
this.$emit('remove-file', n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleRemove(){
|
||||||
|
const a = {};
|
||||||
|
a[`${this.field}`] =null
|
||||||
|
this.$refs.fi.FormContext.form.setFieldsValue(a)
|
||||||
|
},
|
||||||
|
beforeUpload(file) {
|
||||||
|
const isJpgOrPng = this.types.includes(file.type);
|
||||||
|
if (!isJpgOrPng) {
|
||||||
|
this.$message.error('تنها مجاز به ارسال تصویر با پسوند jpg هستید.');
|
||||||
|
}
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < this.size;
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error(`فایل بارگذاری شده بیش از ${this.size} مگا بایت نباید باشد.`);
|
||||||
|
}
|
||||||
|
return isJpgOrPng && isLt2M;
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.previewVisible = false;
|
||||||
|
},
|
||||||
|
async handlePreview(file) {
|
||||||
|
if (!file.url && !file.preview) {
|
||||||
|
file.preview = await getBase64(file.originFileObj);
|
||||||
|
}
|
||||||
|
this.previewImage = file.url || file.preview;
|
||||||
|
this.previewVisible = true;
|
||||||
|
},
|
||||||
|
handleChange({fileList, event, file}) {
|
||||||
|
if (fileList.length > 1) {
|
||||||
|
this.$message.error('تنها یک فایل در این قست قابل بارگذاری می باشد.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (file.response && file.response.id) {
|
||||||
|
this.$emit('ok', file.response);
|
||||||
|
const a = {};
|
||||||
|
a[`${this.field}`] = file.response.id
|
||||||
|
this.$refs.fi.FormContext.form.setFieldsValue(a)
|
||||||
|
}
|
||||||
|
this.fileList = fileList;
|
||||||
|
},
|
||||||
|
select() {
|
||||||
|
console.log("555 ==> ", 555);
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
return {
|
||||||
|
has_thumb: 1,
|
||||||
|
has_watermark: 1,
|
||||||
|
type: this.serverType || 1,
|
||||||
|
subject: 1,
|
||||||
|
title: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,
|
||||||
|
computed: {
|
||||||
|
headers() {
|
||||||
|
return {
|
||||||
|
'Authorization': 'Bearer ' + localStorage.getItem("accessToken") || localStorage.accessToken
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
;
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
/* you can make up upload button and sample style by using stylesheets */
|
||||||
|
.ant-upload-select-picture-card i {
|
||||||
|
font-size: 32px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-upload-select-picture-card .ant-upload-text {
|
||||||
|
margin-top: 8px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
<template>
|
||||||
|
<div class="clearfix">
|
||||||
|
<AUpload
|
||||||
|
:action="url"
|
||||||
|
:headers="headers"
|
||||||
|
accept="image/jpeg"
|
||||||
|
list-type="picture-card"
|
||||||
|
:multiple="true"
|
||||||
|
:data="getData"
|
||||||
|
:file-list="fileList"
|
||||||
|
@preview="handlePreview"
|
||||||
|
@select="select"
|
||||||
|
@beforeUpload="beforeUpload"
|
||||||
|
@change="handleChange"
|
||||||
|
>
|
||||||
|
<div v-if="fileList.length < 8">
|
||||||
|
<a-icon type="plus"/>
|
||||||
|
<div class="ant-upload-text">
|
||||||
|
{{ title || label }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</AUpload>
|
||||||
|
<AModal :visible="previewVisible" :footer="null" @cancel="handleCancel">
|
||||||
|
<img alt="example" style="width: 100%" :src="previewImage"/>
|
||||||
|
</AModal>
|
||||||
|
<AFormItem ref="fi">
|
||||||
|
<input v-decorator="[field]" type="hidden"/>
|
||||||
|
</AFormItem>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
function getBase64(file) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
reader.onload = () => resolve(reader.result);
|
||||||
|
reader.onerror = error => reject(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
import themeConfig from "../../../../themeConfig";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'UploadInput',
|
||||||
|
props: {
|
||||||
|
title: {},
|
||||||
|
field: {},
|
||||||
|
size: {
|
||||||
|
default: 2
|
||||||
|
},
|
||||||
|
label: {},
|
||||||
|
serverType: {
|
||||||
|
types: {
|
||||||
|
1: 'عکس',
|
||||||
|
2: 'فیلم',
|
||||||
|
3: 'مدارک',
|
||||||
|
4: 'صوت',
|
||||||
|
5: 'pdf',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
url: themeConfig.home('cu/file/create'),
|
||||||
|
previewVisible: false,
|
||||||
|
previewImage: '',
|
||||||
|
fileList: [],
|
||||||
|
resList: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
fileList(n, o) {
|
||||||
|
if (n.length > o.length) {
|
||||||
|
this.$emit('add-file', n);
|
||||||
|
} else if (n.length < o.length) {
|
||||||
|
this.$emit('remove-file', n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
beforeUpload(file) {
|
||||||
|
const isJpgOrPng = this.types.includes(file.type);
|
||||||
|
if (!isJpgOrPng) {
|
||||||
|
this.$message.error('پسوند قابل قبول نیست.');
|
||||||
|
}
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < this.size;
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error(`فایل بارگذاری شده بیش از ${this.size} مگا بایت نباید باشد.`);
|
||||||
|
}
|
||||||
|
return isJpgOrPng && isLt2M;
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.previewVisible = false;
|
||||||
|
},
|
||||||
|
async handlePreview(file) {
|
||||||
|
if (!file.url && !file.preview) {
|
||||||
|
file.preview = await getBase64(file.originFileObj);
|
||||||
|
}
|
||||||
|
this.previewImage = file.url || file.preview;
|
||||||
|
this.previewVisible = true;
|
||||||
|
},
|
||||||
|
handleChange({fileList, event, file}) {
|
||||||
|
if (file.response && file.response.id) {
|
||||||
|
this.$emit('ok', file.response);
|
||||||
|
this.resList.push(file.response.id);
|
||||||
|
const a = {};
|
||||||
|
a[`${this.field}`] = this.resList
|
||||||
|
this.$refs.fi.FormContext.form.setFieldsValue(a)
|
||||||
|
}
|
||||||
|
this.fileList = fileList;
|
||||||
|
},
|
||||||
|
select() {
|
||||||
|
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
return {
|
||||||
|
has_thumb: 1,
|
||||||
|
has_watermark: 1,
|
||||||
|
type: this.serverType || 1,
|
||||||
|
subject: 1,
|
||||||
|
title: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
headers() {
|
||||||
|
return {
|
||||||
|
'Authorization': 'Bearer ' + localStorage.getItem("accessToken") || localStorage.accessToken
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
/* you can make up upload button and sample style by using stylesheets */
|
||||||
|
.ant-upload-select-picture-card i {
|
||||||
|
font-size: 32px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-upload-select-picture-card .ant-upload-text {
|
||||||
|
margin-top: 8px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<ACard ref="tblCard">
|
<ACard ref="tblCard">
|
||||||
<ASpin :spinning="loading">
|
<ASpin :spinning="loading">
|
||||||
<div class="flex w-full justify-between">
|
<div class="flex w-full justify-between">
|
||||||
<a-input-search class="w-1/4 pb-4 input-ltr" placeholder="جستجو بر اساس نام / کد ملی / کد پرسنلی / شمار بیمه" enter-button="جستجو" @search="onSearch"/>
|
<a-input-search class="w-1/4 pb-4 input-ltr" placeholder="" enter-button="جستجو" @search="onSearch"/>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<a class="left-table-btn" @click="fullScreen">
|
<a class="left-table-btn" @click="fullScreen">
|
||||||
<feather-icon :icon="getFullIcon" svg-classes="w-5 h-5"/>
|
<feather-icon :icon="getFullIcon" svg-classes="w-5 h-5"/>
|
||||||
|
|||||||
@@ -22,9 +22,9 @@
|
|||||||
:parent="parent"
|
:parent="parent"
|
||||||
:hiddenBackground="clickNotClose"
|
:hiddenBackground="clickNotClose"
|
||||||
:reduce="reduce"
|
:reduce="reduce"
|
||||||
v-hammer:swipe="onMenuSwipe">
|
v-hammer:swipe="onMenuSwipe" >
|
||||||
|
|
||||||
<div @mouseenter="mouseEnter" @mouseleave="mouseLeave">
|
<div @mouseenter="mouseEnter" @mouseleave="mouseLeave" >
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="header-sidebar flex items-end justify-between" slot="header">
|
<div class="header-sidebar flex items-end justify-between" slot="header">
|
||||||
@@ -352,4 +352,9 @@ export default {
|
|||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vs-sidebar
|
||||||
|
{
|
||||||
|
width: 16% !important;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
export default [
|
export default [
|
||||||
{
|
{
|
||||||
url: '/dashboard',
|
url: '/dashboard',
|
||||||
name: 'داشبرد',
|
name: 'داشبورد',
|
||||||
icon: 'HomeIcon',
|
icon: 'HomeIcon',
|
||||||
i18n: 'داشبرد',
|
i18n: 'داشبورد',
|
||||||
slug: "config",
|
slug: "config",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
+9
-9
@@ -27,10 +27,10 @@ import axios from './axios.js'
|
|||||||
Vue.prototype.$http = axios
|
Vue.prototype.$http = axios
|
||||||
|
|
||||||
// API Calls
|
// API Calls
|
||||||
import './http/requests'
|
/*import './http/requests'*/
|
||||||
|
|
||||||
// mock
|
// mock
|
||||||
import './fake-db/index.js'
|
/*import './fake-db/index.js'*/
|
||||||
|
|
||||||
// Theme Configurations
|
// Theme Configurations
|
||||||
import '../themeConfig.js'
|
import '../themeConfig.js'
|
||||||
@@ -78,16 +78,16 @@ import './filters/filters'
|
|||||||
|
|
||||||
|
|
||||||
// Clipboard
|
// Clipboard
|
||||||
import VueClipboard from 'vue-clipboard2'
|
/*import VueClipboard from 'vue-clipboard2'
|
||||||
|
|
||||||
Vue.use(VueClipboard)
|
Vue.use(VueClipboard)*/
|
||||||
|
|
||||||
|
|
||||||
// Tour
|
// Tour
|
||||||
import VueTour from 'vue-tour'
|
/*import VueTour from 'vue-tour'
|
||||||
|
|
||||||
Vue.use(VueTour)
|
Vue.use(VueTour)
|
||||||
require('vue-tour/dist/vue-tour.css')
|
require('vue-tour/dist/vue-tour.css')*/
|
||||||
|
|
||||||
|
|
||||||
// VeeValidate
|
// VeeValidate
|
||||||
@@ -97,7 +97,7 @@ Vue.use(VeeValidate)
|
|||||||
|
|
||||||
|
|
||||||
// Google Maps
|
// Google Maps
|
||||||
import * as VueGoogleMaps from 'vue2-google-maps'
|
/*import * as VueGoogleMaps from 'vue2-google-maps'
|
||||||
|
|
||||||
Vue.use(VueGoogleMaps, {
|
Vue.use(VueGoogleMaps, {
|
||||||
load: {
|
load: {
|
||||||
@@ -105,7 +105,7 @@ Vue.use(VueGoogleMaps, {
|
|||||||
key: 'AIzaSyB4DDathvvwuwlwnUu7F4Sow3oU22y5T1Y',
|
key: 'AIzaSyB4DDathvvwuwlwnUu7F4Sow3oU22y5T1Y',
|
||||||
libraries: 'places' // This is required if you use the Auto complete plug-in
|
libraries: 'places' // This is required if you use the Auto complete plug-in
|
||||||
}
|
}
|
||||||
})
|
})*/
|
||||||
|
|
||||||
// Vuejs - Vue wrapper for hammerjs
|
// Vuejs - Vue wrapper for hammerjs
|
||||||
import {VueHammer} from 'vue2-hammer'
|
import {VueHammer} from 'vue2-hammer'
|
||||||
@@ -120,7 +120,7 @@ Vue.use(notify)
|
|||||||
|
|
||||||
|
|
||||||
// PrismJS
|
// PrismJS
|
||||||
import 'prismjs'
|
//import 'prismjs'
|
||||||
import 'prismjs/themes/prism-tomorrow.css'
|
import 'prismjs/themes/prism-tomorrow.css'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -4,14 +4,14 @@ export default {
|
|||||||
Vue.prototype.$ntSetError = function (msg) {
|
Vue.prototype.$ntSetError = function (msg) {
|
||||||
this.$vs.notify({
|
this.$vs.notify({
|
||||||
title: 'خطا در ثبت اطلاعات',
|
title: 'خطا در ثبت اطلاعات',
|
||||||
text: msg || 'اطلاعات ثبت نگردید.',
|
//text: msg || 'اطلاعات ثبت نگردید.',
|
||||||
color: 'danger',
|
color: 'danger',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
Vue.prototype.$ntSet = function (msg) {
|
Vue.prototype.$ntSet = function (msg) {
|
||||||
this.$vs.notify({
|
this.$vs.notify({
|
||||||
title: 'اطلاعات ثبت شد.',
|
//title: 'اطلاعات ثبت شد.',
|
||||||
text: msg || 'اطلاعات با موفقیت به ثبت رسید',
|
text: msg || 'اطلاعات با موفقیت به ثبت رسید',
|
||||||
color: 'primary',
|
color: 'primary',
|
||||||
})
|
})
|
||||||
|
|||||||
+4
-4
@@ -54,7 +54,7 @@ const router = new Router({
|
|||||||
{
|
{
|
||||||
path: '/dashboard',
|
path: '/dashboard',
|
||||||
name: 'dashborrdPage',
|
name: 'dashborrdPage',
|
||||||
component: () => import('./views/DashboardAnalytics.vue'),
|
component: () => import('./views/dashboard/DashboardAnalytics.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
rule: 'editor'
|
rule: 'editor'
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ router.afterEach(() => {
|
|||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
// return next();
|
// return next();
|
||||||
let isLogin = sessionStorage.getItem('accessToken');
|
let isLogin = sessionStorage.getItem('accessToken');
|
||||||
console.log("to.path ==> ", to.path);
|
//console.log("to.path ==> ", to.path);
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
to.path === "/register/form" ||
|
to.path === "/register/form" ||
|
||||||
@@ -115,9 +115,9 @@ router.beforeEach((to, from, next) => {
|
|||||||
to.path === "/auth/forgot-password"
|
to.path === "/auth/forgot-password"
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if (isLogin) {
|
/* if (isLogin) {
|
||||||
router.push({path: '/'});
|
router.push({path: '/'});
|
||||||
}
|
}*/
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,130 +0,0 @@
|
|||||||
<!-- =========================================================================================
|
|
||||||
File Name: DashboardAnalytics.vue
|
|
||||||
Description: Dashboard Analytics
|
|
||||||
----------------------------------------------------------------------------------------
|
|
||||||
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
|
|
||||||
Author: Pixinvent
|
|
||||||
Author URL: http://www.themeforest.net/user/pixinvent
|
|
||||||
========================================================================================== -->
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
|
|
||||||
<div class="grid grid-cols-4 gap-4">
|
|
||||||
<div>
|
|
||||||
<a-card >
|
|
||||||
<span>تعداد کل پرسنل</span>
|
|
||||||
<h1>{{ model.total_personnel }}</h1>
|
|
||||||
<a-divider />
|
|
||||||
<span>ثبت نام شده در 30 روز گذشته {{ model.last_month_personnel }}</span>
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a-card >
|
|
||||||
<span>تعداد کل درخواست ها</span>
|
|
||||||
<h1>{{ model.total_proposal }}</h1>
|
|
||||||
<a-divider />
|
|
||||||
<span>ثبت شده در 30 روز گذشته {{ model.last_month_proposal }}</span>
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a-card >
|
|
||||||
<span>تعداد کل قراداد ها</span>
|
|
||||||
<h1>{{ model.total_contract }}</h1>
|
|
||||||
<a-divider />
|
|
||||||
<span>ثبت شده در 30 روز گذشته {{ model.last_month_contract }}</span>
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-4">
|
|
||||||
<div>
|
|
||||||
<div>
|
|
||||||
<a-card title="پرسنل استخدام شده در 30 روزگذشته">
|
|
||||||
|
|
||||||
<ATable
|
|
||||||
class="p-0 m-0"
|
|
||||||
:pagination="true"
|
|
||||||
bordered
|
|
||||||
:locale="{emptyText:'داده ای یافت نشد'}"
|
|
||||||
:columns="cols" :data-source="personelPerMonth">
|
|
||||||
|
|
||||||
</ATable>
|
|
||||||
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div>
|
|
||||||
<a-card title="پرسنلی که تازه و یا نزدیک به اتمام قرادادشان هست">
|
|
||||||
<ATable
|
|
||||||
class="p-0 m-0"
|
|
||||||
:pagination="true"
|
|
||||||
bordered
|
|
||||||
:locale="{emptyText:'داده ای یافت نشد'}"
|
|
||||||
:columns="cols" :data-source="personelPerMonth">
|
|
||||||
|
|
||||||
</ATable>
|
|
||||||
</a-card>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import * as TableCol from "@/table/personelPerMonth";
|
|
||||||
//import {ax} from "@/axios";
|
|
||||||
import axios from "@/axios"
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
col:null,
|
|
||||||
model:{},
|
|
||||||
personelPerMonth:[],
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
|
|
||||||
},
|
|
||||||
async created() {
|
|
||||||
this.cols = TableCol.default;
|
|
||||||
//console.log('111111111',axios.defaults.headers);
|
|
||||||
try {
|
|
||||||
await axios.get('dashboard')
|
|
||||||
.then((res)=>{
|
|
||||||
//console.log('dsfsdfsdfds');
|
|
||||||
this.model=res.data;
|
|
||||||
this.personelPerMonth=res.data.personnel;
|
|
||||||
}).catch((error)=>{
|
|
||||||
//console.log('dsafsdfsdfsdf');
|
|
||||||
console.log(error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
catch (error)
|
|
||||||
{
|
|
||||||
// console.log('gggggggg');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.ant-pagination
|
|
||||||
{
|
|
||||||
direction: ltr !important;
|
|
||||||
}
|
|
||||||
td,th{
|
|
||||||
text-align: right !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
+387
-86
@@ -2,72 +2,220 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<a-card>
|
<a-card>
|
||||||
|
|
||||||
<a-tabs default-active-key="1" style="direction: ltr" >
|
<a-tabs default-active-key="1" style="direction: ltr" >
|
||||||
|
|
||||||
<a-tab-pane key="2" tab="مدیریت شهرها">
|
<a-tab-pane key="3" tab="شهرهای محل همکاری">
|
||||||
|
|
||||||
|
<input
|
||||||
|
v-if="inputCityVisible"
|
||||||
|
class="ant-input"
|
||||||
|
ref="input"
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
:style="{ width: '78px' }"
|
||||||
|
:value="inputValue"
|
||||||
|
@change="handleInputChange"
|
||||||
|
@blur="handleInputConfirmCity"
|
||||||
|
@keyup.enter="handleInputConfirmCity"
|
||||||
|
/>
|
||||||
|
<a-tag v-else style="background: #fff; borderStyle: dashed;" @click="showInputCity">
|
||||||
|
<a-icon type="plus" />افزودن
|
||||||
|
</a-tag>
|
||||||
|
<template v-for="(city, index) in configCities">
|
||||||
|
<a-tag :key="city.id" :closable="true" @close="() => handleCloseCity(city.id)">
|
||||||
|
{{ city.title }}
|
||||||
|
</a-tag>
|
||||||
|
</template>
|
||||||
|
<br>
|
||||||
|
<a-button type="primary" class="mt-10" @click="saveCity()">
|
||||||
|
ذخیره اطلاعات
|
||||||
|
</a-button>
|
||||||
|
|
||||||
|
|
||||||
|
</a-tab-pane>
|
||||||
|
|
||||||
|
|
||||||
|
<a-tab-pane key="2" tab="دسته های آموزشی">
|
||||||
|
<input
|
||||||
|
v-if="inputVisible"
|
||||||
|
class="ant-input"
|
||||||
|
ref="input"
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
:style="{ width: '78px' }"
|
||||||
|
:value="inputValue"
|
||||||
|
@change="handleInputChange"
|
||||||
|
@blur="handleInputConfirm"
|
||||||
|
@keyup.enter="handleInputConfirm"
|
||||||
|
/>
|
||||||
|
<a-tag v-else style="background: #fff; borderStyle: dashed;" @click="showInput">
|
||||||
|
<a-icon type="plus" /> افزودن دسته جدید آموزشی
|
||||||
|
</a-tag>
|
||||||
|
<template v-for="(tag, index) in tags">
|
||||||
|
<!-- <a-tooltip v-if="tag.length > 20" :key="tag" :title="tag">
|
||||||
|
<a-tag :key="tag" :closable="index !== 0" @close="() => handleClose(tag)">
|
||||||
|
{{ `${tag.slice(0, 20)}...` }}
|
||||||
|
</a-tag>
|
||||||
|
</a-tooltip>-->
|
||||||
|
<a-tag :key="tag" :closable="true" @close="() => handleClose(tag)">
|
||||||
|
{{ tag }}
|
||||||
|
</a-tag>
|
||||||
|
</template>
|
||||||
|
<br>
|
||||||
|
<a-button type="primary" class="mt-10" @click="saveCategory()">
|
||||||
|
ذخیره اطلاعات
|
||||||
|
</a-button>
|
||||||
|
<!-- <template v-for="(item, index) in category">
|
||||||
|
<!– <a-tooltip v-if="tag.length > 20" :key="tag" :title="tag">
|
||||||
|
<a-tag :key="tag" :closable="index !== 0" @close="() => handleClose(tag)">
|
||||||
|
{{ `${tag.slice(0, 20)}...` }}
|
||||||
|
</a-tag>
|
||||||
|
</a-tooltip>–>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a-tag :key="item" :closable="index !== 0" @close="() => handleClose(item)">
|
||||||
|
{{ item }}
|
||||||
|
</a-tag>
|
||||||
|
</template>-->
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="1" tab="مدیریت شهرها">
|
||||||
<div>
|
<div>
|
||||||
<a-card title="شهرهای محل همکاری" :bordered="true" >
|
<!-- <a-card title="شهرهای محل همکاری" :bordered="true" >
|
||||||
|
<a-form :form="formCities" @submit="handleSubmitCities">
|
||||||
<div class="grid grid-cols-6 gap-4">
|
<div class="grid grid-cols-6 gap-4">
|
||||||
<div>
|
<div>
|
||||||
<a-button type="primary" class="mt-5">
|
<a-form-item>
|
||||||
ذخیره شهر ها
|
<a-button type="primary" @click="handleSubmitCities" class="mt-5">
|
||||||
|
ذخیره شهر ها
|
||||||
</a-button>
|
</a-button>
|
||||||
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-span-5">
|
||||||
<div class="col-span-5">
|
<a-form-item >
|
||||||
<a-select
|
<a-select
|
||||||
class="mt-5"
|
v-decorator="['select',{ rules: [{ required: true, message: 'لطفا شهر را انتخاب نمایید' }] },]"
|
||||||
mode="multiple"
|
class="mt-5"
|
||||||
:default-value="[]"
|
mode="tags"
|
||||||
style="width: 100%;direction: ltr !important;"
|
style="width: 100%;direction: ltr !important;"
|
||||||
placeholder="انتخاب شهر"
|
placeholder="انتخاب شهر" >
|
||||||
>
|
<a-select-option v-for="item,ndex in cities" :value="item.id" :key="item.id" style="direction: rtl !important;">
|
||||||
<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>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-modal
|
|
||||||
v-model="showAddJob"
|
|
||||||
okText="ثبت تغییرات "
|
|
||||||
@ok="handleSubmit"
|
|
||||||
cancelText="بستن"
|
|
||||||
title="افزودن شغل" >
|
|
||||||
<a-form :form="form" @submit="handleSubmit">
|
|
||||||
|
|
||||||
<a-form-item label="شغل">
|
|
||||||
<a-input
|
|
||||||
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }],},]"/>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="شهر های همکاری">
|
|
||||||
|
|
||||||
<a-select
|
|
||||||
class="mt-3"
|
|
||||||
mode="multiple"
|
|
||||||
style="width: 100%;direction: rtl !important;"
|
|
||||||
placeholder="انتخاب شهر"
|
|
||||||
v-decorator="['cities',{rules: [{ required: true, message: 'وارد کردن شهر های همکاری الزامی است' }],},]"
|
|
||||||
>
|
|
||||||
<a-select-option v-for="item,index in cities" :key="`${item.id}`">
|
|
||||||
{{item.title}}
|
|
||||||
</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
|
|
||||||
</a-form>
|
|
||||||
</a-modal>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-form>
|
||||||
|
<!–
|
||||||
|
<a-form :form="formCities" @submit="">
|
||||||
|
<div>
|
||||||
|
<a-form-item >
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="col-span-5">
|
||||||
|
<a-form-item label="">
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
</a-form>
|
||||||
|
</div>–>
|
||||||
|
</a-card>-->
|
||||||
|
<a-spin :spinning="spinning">
|
||||||
|
<a-modal
|
||||||
|
v-model="showAddJob"
|
||||||
|
okText="ثبت تغییرات "
|
||||||
|
@ok="handleSubmit"
|
||||||
|
cancelText="بستن"
|
||||||
|
title="افزودن شغل" >
|
||||||
|
<a-form :form="form">
|
||||||
|
<a-form-item label="شغل">
|
||||||
|
<input class="ant-input"
|
||||||
|
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }],},]"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="نمایش در لیست ثبت نام">
|
||||||
|
<a-checkbox v-decorator="['is_visible',{valuePropName:'checked',rules: [{ required: false, message: '' }],},]" >
|
||||||
|
نمایش بده
|
||||||
|
</a-checkbox>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
<a-form-item label="شهر های همکاری">
|
||||||
|
<a-select
|
||||||
|
show-search
|
||||||
|
:filter-option="filterOption"
|
||||||
|
notFoundContent="اطلاعاتی یافت نشد"
|
||||||
|
class="mt-3"
|
||||||
|
mode="multiple"
|
||||||
|
style="width: 100%;direction: rtl !important;"
|
||||||
|
placeholder="انتخاب شهر"
|
||||||
|
v-decorator="['cities',{rules: [{ required: true, message: 'وارد کردن شهر های همکاری الزامی است' }],},]" >
|
||||||
|
<a-select-option v-for="item,index in cities" :key="`${item.id}`">
|
||||||
|
{{item.title}}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
</a-form>
|
||||||
|
|
||||||
|
</a-modal>
|
||||||
|
</a-spin>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a-button @click="showAddJob =true" type="primary" class="mt-5">
|
<a-button @click="showAddJob =true" type="primary" class="mt-5">
|
||||||
افزودن شغل
|
افزودن شغل
|
||||||
</a-button>
|
</a-button >
|
||||||
<br/>
|
<br/>
|
||||||
<ATable
|
<x-table ref="jobTbl" class="mt-4" style="direction: rtl"
|
||||||
|
:model="cols">
|
||||||
|
<!-- <template slot="operator" slot-scope="text,record">
|
||||||
|
<a-button type="primary" @click="showPersonal(text.record)">
|
||||||
|
مشاهده و ویرایش اطلاعات
|
||||||
|
</a-button>
|
||||||
|
</template>-->
|
||||||
|
|
||||||
|
<template slot="cities_str_slot" slot-scope="{text,record}">
|
||||||
|
<!--{{ record.cities_str }}-->
|
||||||
|
<a-tag v-for="item,index in record.cities_str" :key="index" >{{item}}</a-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template slot="visible" slot-scope="{text,record}">
|
||||||
|
<a-tag color="green" v-if="record.is_visible">
|
||||||
|
نمایش
|
||||||
|
</a-tag>
|
||||||
|
|
||||||
|
<a-tag color="red" v-else>
|
||||||
|
عدم نمایش
|
||||||
|
</a-tag>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<template slot="operator" slot-scope="{text,record}">
|
||||||
|
<a-tooltip placement="bottomLeft">
|
||||||
|
<template slot="title">
|
||||||
|
<span>حذف</span>
|
||||||
|
</template>
|
||||||
|
<a-popconfirm
|
||||||
|
title="آیا می خواهید حذف کنید؟"
|
||||||
|
ok-text="بله"
|
||||||
|
cancel-text="خیر"
|
||||||
|
@confirm="okDelete(record.id)"
|
||||||
|
>
|
||||||
|
<a-button type="danger" class="ml-3">
|
||||||
|
حذف
|
||||||
|
</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
</a-tooltip>
|
||||||
|
|
||||||
|
<a-button type="primary" @click="showEditModal(record)" >
|
||||||
|
ویرایش
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
|
</x-table>
|
||||||
|
|
||||||
|
<!-- <ATable
|
||||||
class="mt-5"
|
class="mt-5"
|
||||||
:pagination="true"
|
:pagination="true"
|
||||||
bordered
|
bordered
|
||||||
@@ -101,16 +249,19 @@
|
|||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
<!-- <a-button type="primary">
|
<!– <a-button type="primary">
|
||||||
Primary
|
Primary
|
||||||
</a-button>-->
|
</a-button>–>
|
||||||
|
|
||||||
|
</ATable>-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ATable>
|
|
||||||
|
|
||||||
|
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="1" tab="پیکربندی سیستم">
|
|
||||||
|
|
||||||
|
<!-- <a-tab-pane key="1" tab="پیکربندی سیستم">
|
||||||
<a-checkbox v-model="global" style="direction: rtl">
|
<a-checkbox v-model="global" style="direction: rtl">
|
||||||
ثبت نام در تمامی شهر ها
|
ثبت نام در تمامی شهر ها
|
||||||
</a-checkbox>
|
</a-checkbox>
|
||||||
@@ -118,59 +269,69 @@
|
|||||||
<a-button type="primary" class="mt-5" @click="setConfig()">
|
<a-button type="primary" class="mt-5" @click="setConfig()">
|
||||||
ثبت اطلاعات
|
ثبت اطلاعات
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tab-pane>
|
</a-tab-pane>-->
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
|
||||||
|
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model="showJobEditModal"
|
v-model="showJobEditModal"
|
||||||
okText="ثبت تغییرات "
|
okText="ثبت تغییرات "
|
||||||
@ok="saveEditJob"
|
@ok="saveEditJob"
|
||||||
cancelText="بستن"
|
cancelText="بستن"
|
||||||
title="ویرایش شغل" >
|
title="ویرایش شغل" >
|
||||||
<a-form :form="fromJobEdit" @submit="saveEditJob" >
|
<a-form :form="fromJobEdit">
|
||||||
|
|
||||||
<a-form-item label="شغل">
|
<a-form-item label="شغل">
|
||||||
<a-input
|
<input class="ant-input"
|
||||||
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
v-decorator="['title',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
<a-form-item label="نمایش در لیست ثبت نام">
|
||||||
|
<a-checkbox v-decorator="['is_visible',{valuePropName:'checked',rules: [{ required: false, message: '' }],},]" >
|
||||||
|
نمایش بده
|
||||||
|
</a-checkbox>
|
||||||
|
</a-form-item>
|
||||||
<a-form-item label="شهر های همکاری">
|
<a-form-item label="شهر های همکاری">
|
||||||
|
|
||||||
<a-select
|
<a-select
|
||||||
|
show-search
|
||||||
|
:filter-option="filterOption"
|
||||||
|
notFoundContent="اطلاعاتی یافت نشد"
|
||||||
class="mt-3"
|
class="mt-3"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
style="width: 100%;direction: rtl !important;"
|
style="width: 100%;direction: rtl !important;"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
placeholder="انتخاب شهر"
|
placeholder="انتخاب شهر"
|
||||||
v-decorator="['cities',{rules: [{ required: true, 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>
|
||||||
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as TableCol from "./jobCols";
|
//import * as TableCol from "./jobCols";
|
||||||
|
//import * from TblJobs from "./pe"
|
||||||
/*import * as TableCol from './jobTbl';*/
|
/*import * as TableCol from './jobTbl';*/
|
||||||
|
//import XTable from "@/components/x-table/XTable";
|
||||||
|
import * as TableCol from './jobTbl';
|
||||||
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 {
|
||||||
titleJobModal: '',
|
tags: [],
|
||||||
|
configCities:[{id:1,title:'تهران'},{id:2,title:'اصفهان'}],
|
||||||
|
inputVisible: false,
|
||||||
|
inputCityVisible:false,
|
||||||
|
inputValue: '',
|
||||||
|
spinning: false,
|
||||||
|
titleJobModal: '',
|
||||||
col: null,
|
col: null,
|
||||||
global: false,
|
global: false,
|
||||||
showAddJob: false,
|
showAddJob: false,
|
||||||
@@ -184,6 +345,7 @@
|
|||||||
username: '',
|
username: '',
|
||||||
form: this.$form.createForm(this, {name: 'coordinated'}),
|
form: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
fromJobEdit: this.$form.createForm(this, {name: 'coordinated'}),
|
fromJobEdit: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
formCities:this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
defaultCity:[]
|
defaultCity:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -196,7 +358,107 @@
|
|||||||
}*/
|
}*/
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getJobs()
|
saveCategory(){
|
||||||
|
axios.post('/category',{category:this.tags})
|
||||||
|
.then((res)=>{
|
||||||
|
//console.log(res.data);
|
||||||
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
|
//this.getJobs();
|
||||||
|
//this.showAddJob=false;
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
saveCity(){
|
||||||
|
axios.post('/add-city',{cities:this.configCities})
|
||||||
|
.then((res)=>{
|
||||||
|
//console.log(res.data);
|
||||||
|
this.configCities=res.data.map((item)=>{ return {id:item.id,title:item.title} });
|
||||||
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
|
//this.getJobs();
|
||||||
|
//this.showAddJob=false;
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
handleClose(removedTag) {
|
||||||
|
const tags = this.tags.filter(tag => tag !== removedTag);
|
||||||
|
console.log(tags);
|
||||||
|
this.tags = tags;
|
||||||
|
},
|
||||||
|
handleCloseCity(removedTag){
|
||||||
|
if(removedTag!=null)
|
||||||
|
{
|
||||||
|
axios.post('/remove-city',{id:removedTag}).then((res)=>{
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let index=this.configCities.findIndex((item)=> {
|
||||||
|
return item.id==removedTag;
|
||||||
|
});
|
||||||
|
|
||||||
|
if(index>-1){
|
||||||
|
this.configCities.splice(index,1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showInput() {
|
||||||
|
this.inputVisible = true;
|
||||||
|
this.$nextTick(function() {
|
||||||
|
this.$refs.input.focus();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showInputCity() {
|
||||||
|
this.inputCityVisible = true;
|
||||||
|
this.$nextTick(function() {
|
||||||
|
this.$refs.input.focus();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleInputChange(e) {
|
||||||
|
this.inputValue = e.target.value;
|
||||||
|
},
|
||||||
|
handleInputConfirmCity(){
|
||||||
|
|
||||||
|
const inputValue = this.inputValue;
|
||||||
|
if(inputValue.length==0)
|
||||||
|
return ;
|
||||||
|
let index=this.configCities.findIndex((item)=>{
|
||||||
|
return item.title==inputValue;
|
||||||
|
})
|
||||||
|
if(index==-1){
|
||||||
|
this.configCities.push({id:null,title:inputValue});
|
||||||
|
}
|
||||||
|
this.inputCityVisible=false;
|
||||||
|
this.inputValue='';
|
||||||
|
},
|
||||||
|
handleInputConfirm() {
|
||||||
|
const inputValue = this.inputValue;
|
||||||
|
let tags = this.tags;
|
||||||
|
//console.log('tags',tags);
|
||||||
|
/* if(tags.length==0)
|
||||||
|
{
|
||||||
|
tags.push(inputValue);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
}*/
|
||||||
|
if (inputValue && tags.indexOf(inputValue) === -1) {
|
||||||
|
tags = [...tags, inputValue];
|
||||||
|
}
|
||||||
|
//console.log(tags);
|
||||||
|
Object.assign(this, {
|
||||||
|
tags,
|
||||||
|
inputVisible: false,
|
||||||
|
inputValue: '',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
);
|
||||||
|
},
|
||||||
|
/* async getJobs()
|
||||||
{
|
{
|
||||||
await axios.get('/jobs')
|
await axios.get('/jobs')
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@@ -204,30 +466,36 @@
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
});
|
||||||
},
|
},*/
|
||||||
showEditModal(id)
|
showEditModal(record)
|
||||||
{
|
{
|
||||||
this.showJobEditModal=true;
|
this.showJobEditModal=true;
|
||||||
var item=this.jobs.find((item) => item.id==id);
|
//var item=this.jobs.find((item) => item.id==id);
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(()=>{
|
||||||
this.currentJobID=item.id;
|
this.currentJobID=record.id;
|
||||||
this.fromJobEdit.setFieldsValue(item);
|
this.fromJobEdit.setFieldsValue(record);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
saveEditJob(e)
|
saveEditJob(e)
|
||||||
{
|
{
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromJobEdit.validateFields((err, values) => {
|
this.fromJobEdit.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
this.spinning = true;
|
||||||
try{
|
try{
|
||||||
values.id=this.currentJobID;
|
values.id=this.currentJobID;
|
||||||
axios.post('/jobs',values)
|
axios.post('/jobs',values).then((res)=>{
|
||||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
this.$refs.jobTbl.fetch();
|
||||||
this.getJobs();
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
this.showJobEditModal = false;
|
this.showJobEditModal = false;
|
||||||
|
})
|
||||||
|
//this.getJobs();
|
||||||
|
//this.$refs.jobTbl.fetch();
|
||||||
}catch (e) {
|
}catch (e) {
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
}
|
}
|
||||||
|
this.spinning =false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -235,20 +503,43 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.form.validateFields((err, values) => {
|
this.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
this.spinning = true;
|
||||||
axios.post('/jobs',values)
|
axios.post('/jobs',values)
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
//console.log(res.data);
|
//console.log(res.data);
|
||||||
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
this.getJobs();
|
this.$refs.jobTbl.fetch();
|
||||||
|
this.form.resetFields();
|
||||||
|
//this.getJobs();
|
||||||
this.showAddJob=false;
|
this.showAddJob=false;
|
||||||
}).catch((error)=>{
|
}).catch((error)=>{
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
});
|
||||||
|
this.spinning = false;
|
||||||
//console.log('Received values of form: ', values);
|
//console.log('Received values of form: ', values);
|
||||||
//this.$store.commit('update', values);
|
//this.$store.commit('update', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
handleSubmitCities(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.formCities.validateFields((err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
//console.log("fdgsdfgdfg",values);
|
||||||
|
/* axios.post('/jobs',values)
|
||||||
|
.then((res)=>{
|
||||||
|
//console.log(res.data);
|
||||||
|
this.$message.success('اطلاعات با موفقیت ثبت شد');
|
||||||
|
this.getJobs();
|
||||||
|
this.showAddJob=false;
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
|
});*/
|
||||||
|
//console.log('Received values of form: ', values);
|
||||||
|
//this.$store.commit('update', values);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
async changeTab() {
|
async changeTab() {
|
||||||
/* switch (this.activeTab)
|
/* switch (this.activeTab)
|
||||||
{
|
{
|
||||||
@@ -284,11 +575,11 @@
|
|||||||
this.$message.error('خطا در ثبت اطلاعات');
|
this.$message.error('خطا در ثبت اطلاعات');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
async okDelete(id){
|
async okDelete(id){
|
||||||
try{
|
try{
|
||||||
await axios.post('/jobs',{ id:id , delete:true })
|
await axios.post('/jobs',{ id:id , delete:true })
|
||||||
this.getJobs()
|
this.$refs.jobTbl.fetch();
|
||||||
|
//this.getJobs()
|
||||||
}catch (e) {
|
}catch (e) {
|
||||||
|
|
||||||
}finally {
|
}finally {
|
||||||
@@ -311,15 +602,24 @@
|
|||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await axios.get('/get-category')
|
||||||
|
.then((res) => {
|
||||||
|
//console.log(res.data);
|
||||||
|
this.tags=res.data;
|
||||||
|
}).catch((error) => {
|
||||||
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
|
});
|
||||||
|
|
||||||
await axios.get('/cities')
|
await axios.get('/cities')
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.cities = res.data;
|
this.cities = res.data;
|
||||||
|
this.configCities=res.data.map((item)=>{ return {id:item.id,title:item.title} });
|
||||||
console.log(res.data);
|
console.log(res.data);
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.getJobs();
|
//this.getJobs();
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -369,4 +669,5 @@
|
|||||||
direction: rtl;
|
direction: rtl;
|
||||||
margin-right: 25px;
|
margin-right: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('/jobsList', '');
|
||||||
|
tbl.add(new Xtc('title', 'عنوان شغل').noSort());
|
||||||
|
tbl.add(new Xtc('cities_str_slot', 'شهر های فعال در شغل').renderSlot('cities_str_slot').noSort());
|
||||||
|
tbl.add(new Xtc('is_visible', 'نمایش در ثبت نام').renderSlot('visible').noSort());
|
||||||
|
tbl.add(new Xtc('id', 'عملیات').renderSlot('operator').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
<!-- =========================================================================================
|
||||||
|
File Name: DashboardAnalytics.vue
|
||||||
|
Description: Dashboard Analytics
|
||||||
|
----------------------------------------------------------------------------------------
|
||||||
|
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
|
||||||
|
Author: Pixinvent
|
||||||
|
Author URL: http://www.themeforest.net/user/pixinvent
|
||||||
|
========================================================================================== -->
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- <div class="grid grid-cols-4 gap-4">
|
||||||
|
<div>
|
||||||
|
<a-card >
|
||||||
|
<span>تعداد کل پرسنل</span>
|
||||||
|
<h1>{{ model.total_personnel }}</h1>
|
||||||
|
<a-divider />
|
||||||
|
<span>ثبت نام شده در 30 روز گذشته {{ model.last_month_personnel }}</span>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a-card >
|
||||||
|
<span>تعداد کل درخواست ها</span>
|
||||||
|
<h1>{{ model.total_proposal }}</h1>
|
||||||
|
<a-divider />
|
||||||
|
<span>ثبت شده در 30 روز گذشته {{ model.last_month_proposal }}</span>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a-card >
|
||||||
|
<span>تعداد کل قراداد ها</span>
|
||||||
|
<h1>{{ model.total_contract }}</h1>
|
||||||
|
<a-divider />
|
||||||
|
<span>ثبت شده در 30 روز گذشته {{ model.last_month_contract }}</span>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</div>-->
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل اتمام قرارداد در ماه گذشته">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="contractEndPastMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل اتمام قرارداد در ماه جاری">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="contractEndCurrentMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل اتمام قرارداد در ماه آینده">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="contractEndNextMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل استخدام شده در ماه گذشته">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="PersonelPastMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل استخدام شده در ماه جاری">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="PersonelCurrentMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل فسخ قرارداد در ماه گذشته">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="contractTerminationPastMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-card title="لیست پرسنل فسخ قرارداد در ماه جاری">
|
||||||
|
<x-table style="height: 400px;overflow: auto" class="mt-4" :model="contractTerminationCurrentMonth"></x-table>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
//import * as TableCol from "@/table/personelPerMonth";
|
||||||
|
import * as TableColcontractEndPastMonth from './personelEndContractPastmonthTbl';
|
||||||
|
import * as TableColcontractEndNextMonth from './personelEndContractNextmonthTbl';
|
||||||
|
import * as TableColcontractCurrentMonth from './personelEndContractCurrentmonthTbl';
|
||||||
|
import * as TableColPersonelPastMonth from './personelPastmonthTbl';
|
||||||
|
import * as TableColPersonelCurrentMonth from './personelCurrentmonthTbl';
|
||||||
|
import * as TableColcontractTerminationCurrentMonth from './contractTerminationCurrentMonthTbl';
|
||||||
|
import * as TableColcontractTerminationPastMonth from './contractTerminationPastMonthTbl';
|
||||||
|
import XTable from "@/components/x-table/XTable";
|
||||||
|
//import {ax} from "@/axios";
|
||||||
|
import axios from "@/axios"
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
contractEndNextMonth,
|
||||||
|
contractEndPastMonth,
|
||||||
|
contractEndCurrentMonth,
|
||||||
|
PersonelCurrentMonth,
|
||||||
|
PersonelPastMonth,
|
||||||
|
contractTerminationPastMonth,
|
||||||
|
contractTerminationCurrentMonth
|
||||||
|
//col:null,
|
||||||
|
//model:{},
|
||||||
|
//personelPerMonth:[],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
XTable,
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.contractEndPastMonth = TableColcontractEndPastMonth.default;
|
||||||
|
this.contractEndNextMonth = TableColcontractEndNextMonth.default;
|
||||||
|
this.contractEndCurrentMonth = TableColcontractCurrentMonth.default;
|
||||||
|
this.PersonelCurrentMonth=TableColPersonelCurrentMonth.default;
|
||||||
|
this.PersonelPastMonth= TableColPersonelPastMonth.default;
|
||||||
|
this.contractTerminationPastMonth=TableColcontractTerminationPastMonth.default;
|
||||||
|
this.contractTerminationCurrentMonth=TableColcontractTerminationCurrentMonth.default;
|
||||||
|
//console.log('111111111',axios.defaults.headers);
|
||||||
|
// try {
|
||||||
|
// await axios.get('dashboard')
|
||||||
|
// .then((res)=>{
|
||||||
|
// //console.log('dsfsdfsdfds');
|
||||||
|
// this.model=res.data;
|
||||||
|
// this.personelPerMonth=res.data.personnel;
|
||||||
|
// }).catch((error)=>{
|
||||||
|
// //console.log('dsafsdfsdfsdf');
|
||||||
|
// console.log(error);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// catch (error)
|
||||||
|
// {
|
||||||
|
// // console.log('gggggggg');
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" >
|
||||||
|
.ant-pagination
|
||||||
|
{
|
||||||
|
direction: ltr !important;
|
||||||
|
}
|
||||||
|
td,th{
|
||||||
|
text-align: right !important;
|
||||||
|
}
|
||||||
|
/* .ant-input-search
|
||||||
|
{
|
||||||
|
display: none !important;
|
||||||
|
}*/
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('contractTerminationCurrentMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personnel.personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('personnel.name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('start_atj', 'تاریخ شروع قرارداد').noSort())
|
||||||
|
tbl.add(new Xtc('end_atj', 'تاریخ اتمام قرارداد').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('contractTerminationPastMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personnel.personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('personnel.name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('start_atj', 'تاریخ شروع قرارداد').noSort())
|
||||||
|
tbl.add(new Xtc('end_atj', 'تاریخ اتمام قرارداد').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('personelCurrentMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('caj', 'تاریخ استخدام').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('personelContactEndCurrentMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personnel.personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('personnel.name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('start_atj', 'تاریخ شروع قرارداد').noSort())
|
||||||
|
tbl.add(new Xtc('end_atj', 'تاریخ اتمام قرارداد').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('personelContactEndNextMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personnel.personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('personnel.name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('start_atj', 'تاریخ شروع قرارداد').noSort())
|
||||||
|
tbl.add(new Xtc('end_atj', 'تاریخ اتمام قرارداد').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('personelContactEndPastMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personnel.personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('personnel.name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('start_atj', 'تاریخ شروع قرارداد').noSort())
|
||||||
|
tbl.add(new Xtc('end_atj', 'تاریخ اتمام قرارداد').noSort())
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('personelPastMonth', 'لیست پرسنل');
|
||||||
|
tbl.add(new Xtc('personel_id', 'کد پرسنلی').noSort());
|
||||||
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').noSort())
|
||||||
|
tbl.add(new Xtc('caj', 'تاریخ استخدام').noSort())
|
||||||
|
export default tbl;
|
||||||
+1039
-644
File diff suppressed because it is too large
Load Diff
@@ -2,8 +2,8 @@ import XTbl, {Xtc} from '../../components/x-table/index';
|
|||||||
|
|
||||||
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/personnel', 'لیست پرسنل');
|
const tbl = new XTbl('http://hr.asco-intl.com/back/public/api/personnel', 'لیست پرسنل');
|
||||||
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
||||||
tbl.add(new Xtc('fname', 'کد پرسنلی').filterText())
|
tbl.add(new Xtc('personel_id', 'کد پرسنلی').filterText())
|
||||||
tbl.add(new Xtc('id', 'شماره بیمه').filterText())
|
tbl.add(new Xtc('insurance_no', 'شماره بیمه').filterText())
|
||||||
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||||
tbl.add(new Xtc('caj', 'ثبت نام').filterDate().noSort())
|
tbl.add(new Xtc('caj', 'ثبت نام').filterDate().noSort())
|
||||||
tbl.add(new Xtc('uaj', 'به روز رسانی').filterText().noSort())
|
tbl.add(new Xtc('uaj', 'به روز رسانی').filterText().noSort())
|
||||||
|
|||||||
+139
-122
@@ -35,7 +35,6 @@
|
|||||||
</x-table>
|
</x-table>
|
||||||
|
|
||||||
<a-modal :width="1000" v-model="showMosahebeModal" title="مشاهده مصاحبه ها" >
|
<a-modal :width="1000" v-model="showMosahebeModal" title="مشاهده مصاحبه ها" >
|
||||||
|
|
||||||
<div v-if="is_skeleton">
|
<div v-if="is_skeleton">
|
||||||
<ASkeleton/>
|
<ASkeleton/>
|
||||||
</div>
|
</div>
|
||||||
@@ -56,12 +55,12 @@
|
|||||||
{{ item.interviewer }}
|
{{ item.interviewer }}
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<a-descriptions-item label="وضعیت">
|
<a-descriptions-item label="وضعیت">
|
||||||
{{ item.type }}
|
{{ item.sts_str }}
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
<a-card title="جزییات">
|
<a-card title="جزییات" >
|
||||||
<a-list>
|
<a-list >
|
||||||
<a-list-item v-for="element,index in item.result" :key="index" v-if="item.result">
|
<a-list-item v-for="element,index in item.result" :key="index" v-if="item.result" style="direction: rtl">
|
||||||
<div class="flex w-full flex-col">
|
<div class="flex w-full flex-col">
|
||||||
<div class="flex justify-between w-full items-center">
|
<div class="flex justify-between w-full items-center">
|
||||||
<h3>{{title_interview[index]}}</h3>
|
<h3>{{title_interview[index]}}</h3>
|
||||||
@@ -86,7 +85,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<a-button key="back" @click="showMosahebeModal=false">
|
<a-button key="back" @click="showMosahebeModal=false">
|
||||||
بستن
|
بستن
|
||||||
@@ -96,27 +94,22 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<a-modal force-render :width="990" v-model="showAddMosahebeModal" title="ثبت مصاحبه">
|
<a-modal force-render :width="990" v-model="showAddMosahebeModal" title="ثبت مصاحبه">
|
||||||
|
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
|
|
||||||
<a-button v-if="current < 2" type="primary" @click="savefromMosahebe">
|
<a-button v-if="current < 2" type="primary" @click="savefromMosahebe">
|
||||||
بعدی
|
بعدی
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
v-if="current == 2"
|
v-if="current == 2"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="savefromMosahebe"
|
@click="savefromMosahebe">
|
||||||
>
|
|
||||||
ثبت اطلاعات
|
ثبت اطلاعات
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button v-if="current > 0" style="margin-left: 8px" @click="prev">
|
<a-button v-if="current > 0" style="margin-left: 8px" @click="prev">
|
||||||
قبلی
|
قبلی
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a-steps :current="current" style="direction: ltr">
|
<a-steps :current="current" style="direction:rtl">
|
||||||
<a-step title="ثبت تاریخ و مصاحبه کننده" />
|
<a-step title="ثبت تاریخ و مصاحبه کننده" />
|
||||||
<a-step title="ثبت جزئیات" />
|
<a-step title="ثبت جزئیات" />
|
||||||
<a-step title="ایجاد پرونده" />
|
<a-step title="ایجاد پرونده" />
|
||||||
@@ -139,13 +132,13 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
<date-picker
|
<date-picker
|
||||||
:auto-submit="true"
|
:auto-submit="true"
|
||||||
color="#4f72ab"
|
color="#1DA57A"
|
||||||
v-model="interview_at"
|
v-model="interview_at"
|
||||||
element="interview_at"
|
element="interview_at"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<a-form-item label="نام مصاحبه کننده">
|
<a-form-item label="نام مصاحبه کننده">
|
||||||
<a-input autocomplete="off" v-decorator="['interviewer',{rules: [{ required: true, message: 'وارد کردن شغل الزامی است' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['interviewer',{rules: [{ required: true, message: 'نام مصاحبه کننده را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
@@ -162,14 +155,14 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="توضیحات">
|
<a-form-item label="توضیحات">
|
||||||
<a-textarea
|
<textarea class="ant-input"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
v-decorator="['result_1.desc']"
|
v-decorator="['result_1.desc']"
|
||||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="نتیجه">
|
<!--<a-form-item label="نتیجه">
|
||||||
<a-radio-group v-decorator="['result_1.sts']">
|
<a-radio-group v-decorator="['result_1.sts']">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
رد شده
|
رد شده
|
||||||
@@ -179,7 +172,7 @@
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
|
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -190,14 +183,14 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="توضیحات">
|
<a-form-item label="توضیحات">
|
||||||
<a-textarea
|
<textarea class="ant-input"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
v-decorator="['result_2.desc']"
|
v-decorator="['result_2.desc']"
|
||||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="نتیجه">
|
<!-- <a-form-item label="نتیجه">
|
||||||
<a-radio-group v-decorator="['result_2.sts']">
|
<a-radio-group v-decorator="['result_2.sts']">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
رد شده
|
رد شده
|
||||||
@@ -207,7 +200,7 @@
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
|
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -219,7 +212,8 @@
|
|||||||
|
|
||||||
<a-form-item label="توضیحات">
|
<a-form-item label="توضیحات">
|
||||||
|
|
||||||
<a-textarea
|
<textarea
|
||||||
|
class="ant-input"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
v-decorator="['result_3.desc']"
|
v-decorator="['result_3.desc']"
|
||||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||||
@@ -227,7 +221,7 @@
|
|||||||
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="نتیجه">
|
<!-- <a-form-item label="نتیجه">
|
||||||
<a-radio-group v-decorator="['result_3.sts']">
|
<a-radio-group v-decorator="['result_3.sts']">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
رد شده
|
رد شده
|
||||||
@@ -237,7 +231,7 @@
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
|
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -249,14 +243,14 @@
|
|||||||
|
|
||||||
<a-form-item label="توضیحات">
|
<a-form-item label="توضیحات">
|
||||||
|
|
||||||
<a-textarea
|
<textarea class="ant-input"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
v-decorator="['result_4.desc']"
|
v-decorator="['result_4.desc']"
|
||||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
<!--
|
||||||
<a-form-item label="نتیجه">
|
<a-form-item label="نتیجه">
|
||||||
<a-radio-group v-decorator="['result_4.sts']">
|
<a-radio-group v-decorator="['result_4.sts']">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
@@ -267,7 +261,7 @@
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
|
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -279,7 +273,7 @@
|
|||||||
|
|
||||||
<a-form-item label="توضیحات">
|
<a-form-item label="توضیحات">
|
||||||
|
|
||||||
<a-textarea
|
<textarea class="ant-input"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
v-decorator="['result_5.desc']"
|
v-decorator="['result_5.desc']"
|
||||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||||
@@ -287,7 +281,7 @@
|
|||||||
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="نتیجه">
|
<!-- <a-form-item label="نتیجه">
|
||||||
<a-radio-group v-decorator="['result_5.sts']">
|
<a-radio-group v-decorator="['result_5.sts']">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
رد شده
|
رد شده
|
||||||
@@ -297,25 +291,27 @@
|
|||||||
</a-radio>
|
</a-radio>
|
||||||
|
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-show="current==2">
|
<div v-show="current==2">
|
||||||
|
|
||||||
<a-form-item label="نتیجه کلی مصاحبه">
|
<a-form-item label="نتیجه کلی مصاحبه">
|
||||||
<a-radio-group v-decorator="['sts']">
|
<a-radio-group v-decorator="['sts',{rules: [{ required: true, message: 'نتیجه مصاحبه را انتخاب نمایید' }]}]">
|
||||||
<a-radio :value="-1">
|
<a-radio :value="-1">
|
||||||
رد شده
|
رد شده
|
||||||
</a-radio>
|
</a-radio>
|
||||||
<a-radio :value="1">
|
<a-radio :value="1">
|
||||||
قبول
|
قبول
|
||||||
</a-radio>
|
</a-radio>
|
||||||
|
<a-radio :value="2">
|
||||||
|
الویت دوم
|
||||||
|
</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-alert message="توجه داشته باشید که در صورت قبول انتخاب کردن نتیجه کلی مصاحبه برای فرد مورد نظر کد پرسنلی ایجاد خواهد شد." type="warning" />
|
<!-- <a-alert message="توجه داشته باشید که در صورت قبول انتخاب کردن نتیجه کلی مصاحبه برای فرد مورد نظر کد پرسنلی ایجاد خواهد شد." type="warning" />-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -345,72 +341,80 @@
|
|||||||
<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>
|
||||||
<div>جنسیت : {{ personalInformation.gender }}</div>
|
<div>جنسیت : {{ personalInformation.gender_str }}</div>
|
||||||
<div>وضعیت تاهل : {{personalInformation.marriage_sts }}</div>
|
<div>وضعیت تاهل : {{personalInformation.marriage_sts_str }}</div>
|
||||||
<div>شماره شناسنامه : {{ personalInformation.iden_id }}</div>
|
<div>شماره شناسنامه : {{ personalInformation.iden_id }}</div>
|
||||||
<div>سریال شناسنامه : {{ personalInformation.iden_serial }}</div>
|
<div>سریال شناسنامه : {{ personalInformation.iden_serial }}</div>
|
||||||
<div>محل صدور : {{ personalInformation.iden_place }}</div>
|
<div>محل صدور : {{ personalInformation.iden_place }}</div>
|
||||||
<div>محل تولد : {{ personalInformation.birth_place }}</div>
|
<div>محل تولد : {{ personalInformation.birth_place }}</div>
|
||||||
<div>وضعیت مسکن : {{ personalInformation.record }}</div>
|
<div>وضعیت مسکن : {{ personalInformation.house_sts_str }}</div>
|
||||||
<div>آدرس : {{ personalInformation.address }}</div>
|
|
||||||
<div>ایمیل : {{ personalInformation.email }}</div>
|
<div>ایمیل : {{ personalInformation.email }}</div>
|
||||||
<div>تلفن ثابت : {{ personalInformation.phone }}</div>
|
<div>تلفن ثابت : {{ personalInformation.phone }}</div>
|
||||||
<div>شماره بیمه : {{ personalInformation.name }}</div>
|
<div>شماره بیمه : {{ personalInformation.insurance_no }}</div>
|
||||||
<div>تلفن ضروری : {{ personalInformation.phone_emergency }}</div>
|
<div>تلفن ضروری : {{ personalInformation.phone_emergency }}</div>
|
||||||
<div>نام فرد مرتبط : {{ personalInformation.phone_emergency_related }}</div>
|
<div>نام فرد مرتبط : {{ personalInformation.phone_emergency_name }}</div>
|
||||||
<div>نسبت فرد : </div>
|
<div>نسبت فرد : {{ personalInformation.phone_emergency_related }}</div>
|
||||||
|
<div>حقوق درخواستی : {{ personalInformation.requested_salary }}</div>
|
||||||
|
<div class="col-span-2">شماره حساب بانک پاسارگاد : {{ personalInformation.pasargad_bank_number }}</div>
|
||||||
|
<div class="col-span-3">آدرس : {{ personalInformation.address }}</div>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<!-- <a-card title="اطلاعات خانوادگی" :bordered="true" >
|
<a-card title="اطلاعات خانوادگی" :bordered="true" >
|
||||||
<div class="grid grid-cols-3 gap-4" v-if="personalDetails.family[0]">
|
<template v-for="(item,index) in personalDetails['family']" >
|
||||||
<div>مقطع : {{ personalDetails.pro[0].university }}</div>
|
<div class="grid grid-cols-3 gap-1" >
|
||||||
<div>دانشگاه : {{ personalDetails.pro[0].university }}</div>
|
<div>نام : {{ item.name }}</div>
|
||||||
<div>رشته تحصیلی: {{ personalDetails.pro[0].title }}</div>
|
<div>نسبت : {{ item.relation }}</div>
|
||||||
<div>گرایش: {{ personalDetails.pro[0].trend }}</div>
|
<div>مقطع : {{ item.edu_level_str }}</div>
|
||||||
<div>سال شروع: {{ personalDetails.pro[0].start_at }}</div>
|
<div> رشته تحصیلی : {{ item.edu_title }}</div>
|
||||||
<div>سال خاتمه: {{ personalDetails.pro[0].end_at }}</div>
|
<div> شغل : {{ item.job }}</div>
|
||||||
|
</div>
|
||||||
</div>
|
<a-divider />
|
||||||
</a-card>-->
|
</template>
|
||||||
<br/>
|
</a-card>
|
||||||
|
<br/>
|
||||||
<a-card title="اطلاعات تحصیلی" :bordered="true" >
|
<a-card title="اطلاعات تحصیلی" :bordered="true" >
|
||||||
<div class="grid grid-cols-3 gap-4" v-if="personalDetails.pro && personalDetails.pro[0] ">
|
<template v-for="(item,index) in personalDetails['education']">
|
||||||
<div>مقطع : {{ personalDetails.pro[0].university }}</div>
|
<div class="grid grid-cols-3 gap-4" >
|
||||||
<div>دانشگاه : {{ personalDetails.pro[0].university }}</div>
|
<div>مقطع : {{ item.level_str }}</div>
|
||||||
<div>رشته تحصیلی: {{ personalDetails.pro[0].title }}</div>
|
<div>دانشگاه : {{ item.university }}</div>
|
||||||
<div>گرایش: {{ personalDetails.pro[0].trend }}</div>
|
<div>رشته تحصیلی: {{ item.title }}</div>
|
||||||
<div>سال شروع: {{ personalDetails.pro[0].start_at }}</div>
|
<div>گرایش: {{ item.trend }}</div>
|
||||||
<div>سال خاتمه: {{ personalDetails.pro[0].end_at }}</div>
|
<div>سال شروع: {{ item.start_at }}</div>
|
||||||
|
<div>سال خاتمه: {{ item.end_at }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<a-divider />
|
||||||
|
</template>
|
||||||
|
</a-card>
|
||||||
|
<br/>
|
||||||
|
<a-card title="سوابق آموزشی" :bordered="true" >
|
||||||
|
<template v-for="(item,index) in personalDetails['traning']">
|
||||||
|
<div class="grid grid-cols-3 gap-4">
|
||||||
|
<div>مرکز برگزاری : {{ item.university }}</div>
|
||||||
|
<div>عنوان دوره : {{ item.title }}</div>
|
||||||
|
<div>سال : {{ item.start_at }}</div>
|
||||||
|
<div>امکان ارائه گواهینامه : {{ item.has_certificate_str }}</div>
|
||||||
|
</div>
|
||||||
|
<a-divider />
|
||||||
|
</template>
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
<!-- <a-card title="سوابق آموزشی" :bordered="true" >
|
<a-card title="سوابق کاری" :bordered="true" >
|
||||||
|
<template v-for="(item,index) in personalDetails['jobs_history']">
|
||||||
<div class="grid grid-cols-3 gap-4" v-if="personalDetails.pro[1]">
|
<div class="grid grid-cols-4 gap-4" >
|
||||||
<div>مرکز برگزاری : {{ personalDetails.pro[1].university }}</div>
|
<div>نام سازمان : {{ item.university }}</div>
|
||||||
<div>عنوان دوره : {{ personalDetails.pro[1].title }}</div>
|
<div>عنوان شغل : {{ item.title }}</div>
|
||||||
<div>سال : {{ personalDetails.pro[1].start_at }}</div>
|
<div>سال شروع : {{ item.start_at }}</div>
|
||||||
|
<div v-if="item.end_at">سال خاتمه : {{ item.end_at }}</div>
|
||||||
|
<div v-else>سال خاتمه : تاکنون</div>
|
||||||
|
<!--<div>تاکنون : {{ item.end_at }}</div>-->
|
||||||
|
<div class="col-span-2">دلیل خاتمه : {{ item.note }}</div>
|
||||||
</div>
|
</div>
|
||||||
</a-card>-->
|
<a-divider />
|
||||||
<br/>
|
</template>
|
||||||
|
</a-card>
|
||||||
<!--<a-card title="سوابق کاری" :bordered="true" >
|
|
||||||
<div class="grid grid-cols-3 gap-4" v-if="personalDetails.pro[2]">
|
|
||||||
<div>نام سازمان : {{ personalDetails.pro[2].university }}</div>
|
|
||||||
<div>عنوان شغل : {{ personalDetails.pro[2].title }}</div>
|
|
||||||
<div>سال شروع : {{ personalDetails.pro[2].start_at }}</div>
|
|
||||||
<div>سال خاتمه : {{ personalDetails.pro[2].end_at }}</div>
|
|
||||||
</div>
|
|
||||||
</a-card>-->
|
|
||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -470,35 +474,35 @@
|
|||||||
savefromMosahebe(e) {
|
savefromMosahebe(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromMosahebe.validateFields(async(err, values) => {
|
this.fromMosahebe.validateFields(async(err, values) => {
|
||||||
if (!err) {
|
try{
|
||||||
|
if(this.current < 2)
|
||||||
try{
|
{
|
||||||
if(this.current < 2)
|
this.next();
|
||||||
{
|
|
||||||
this.next();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
console.log(values,'values')
|
|
||||||
const id = this.row_id
|
|
||||||
values.interview_at = this.interview_at
|
|
||||||
values.id = id
|
|
||||||
await axios.post('proposal/update',values)
|
|
||||||
this.showAddMosahebeModal = false
|
|
||||||
this.$ntSet('اطلاعات با موفقیت کامل شد')
|
|
||||||
this.fromMosahebe.resetFields()
|
|
||||||
}
|
|
||||||
}catch (e) {
|
|
||||||
this.$ntSetError()
|
|
||||||
throw e
|
|
||||||
}finally {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!err) {
|
||||||
|
console.log(values,'values')
|
||||||
|
const id = this.row_id
|
||||||
|
values.interview_at = this.interview_at
|
||||||
|
values.id = id
|
||||||
|
await axios.post('proposal/update',values)
|
||||||
|
this.showAddMosahebeModal = false
|
||||||
|
this.current=0;
|
||||||
|
//this.fromMosahebe.resetFields();
|
||||||
|
this.$ntSet('اطلاعات با موفقیت کامل شد')
|
||||||
|
this.fromMosahebe.resetFields();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
throw e
|
||||||
|
}finally {
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
interview(e) {
|
/* interview(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromMosahebe.validateFields(async (err, values) => {
|
this.fromMosahebe.validateFields(async (err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
@@ -513,7 +517,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},*/
|
||||||
next() {
|
next() {
|
||||||
this.current++;
|
this.current++;
|
||||||
},
|
},
|
||||||
@@ -521,11 +525,12 @@
|
|||||||
this.current--;
|
this.current--;
|
||||||
},
|
},
|
||||||
showDetails(record) {
|
showDetails(record) {
|
||||||
|
console.log('aaaaa',record);
|
||||||
axios.post('/proposal/details', {id:record.id})
|
axios.post('/proposal/details', {id:record.id})
|
||||||
.then((res)=>{
|
.then((res)=>{
|
||||||
this.personalInformation=record;
|
this.personalInformation=record;
|
||||||
this.personalDetails=res.data;
|
this.personalDetails=res.data;
|
||||||
console.log(this.personalDetails);
|
// console.log(this.personalDetails);
|
||||||
this.showInformationModal=true;
|
this.showInformationModal=true;
|
||||||
}).catch((error)=>{
|
}).catch((error)=>{
|
||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
@@ -535,9 +540,9 @@
|
|||||||
let self = this
|
let self = this
|
||||||
this.$confirm({
|
this.$confirm({
|
||||||
title: 'آیا مطمئن به استخدام هستید ؟',
|
title: 'آیا مطمئن به استخدام هستید ؟',
|
||||||
content: 'در صورتی که گزینه بله را انتخاب کنید کد پرسنلی برای فرد درخواست کننده در سیستم اختصاص خواهد یافت',
|
content: 'در صورتی که گزینه تایید را انتخاب نمایید فرد مورد نظر به عنوان پرسنل در سیستم ثبت می شود ',
|
||||||
cancelText:'انصراف',
|
cancelText:'انصراف',
|
||||||
okText:'بله',
|
okText:'تایید',
|
||||||
onOk() {
|
onOk() {
|
||||||
|
|
||||||
// this.$message.success('درخواست شما ثبت شد.');
|
// this.$message.success('درخواست شما ثبت شد.');
|
||||||
@@ -555,7 +560,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onCancel() {
|
onCancel() {
|
||||||
console.log('Cancel');
|
//console.log('Cancel');
|
||||||
},
|
},
|
||||||
//class: 'test',
|
//class: 'test',
|
||||||
});
|
});
|
||||||
@@ -570,13 +575,25 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.ant-modal-mask
|
.ant-modal-mask
|
||||||
{
|
{
|
||||||
z-index: 9999999 !important;
|
z-index: 9999999 !important;
|
||||||
}
|
}
|
||||||
.ant-modal-wrap
|
.ant-modal-wrap
|
||||||
{
|
{
|
||||||
z-index: 999999999 !important;
|
z-index: 999999999 !important;
|
||||||
}
|
}
|
||||||
|
ant-modal-title{
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
.ant-steps-item-title::after{
|
||||||
|
/*left: unset !important;*/
|
||||||
|
right:100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.ant-modal-close
|
||||||
|
{
|
||||||
|
left: 0 !important;
|
||||||
|
}*/
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
+163
-114
@@ -6,58 +6,51 @@
|
|||||||
</div>
|
</div>
|
||||||
<vx-card class="mx-auto mt-10">
|
<vx-card class="mx-auto mt-10">
|
||||||
|
|
||||||
<a-steps :current="current" style="direction: ltr">
|
<a-steps :current="current" >
|
||||||
<a-step title="مرحله اول" />
|
<a-step title="مرحله اول" />
|
||||||
<a-step title="مرحله دوم" />
|
<a-step title="مرحله دوم" />
|
||||||
<a-step title="مرحله سوم" />
|
<a-step title="مرحله سوم" />
|
||||||
</a-steps>
|
</a-steps>
|
||||||
|
|
||||||
|
|
||||||
<div v-show="current == 0">
|
<div v-show="current == 0">
|
||||||
<p class="mt-6">
|
<p class="mt-6">
|
||||||
متقاضی گرامی ضمن سپاس از علاقه مندی شما برای همکاری با مجموعه آسکو بین الملل، لطفا اطلاعات شخصی و شغل مورد نظر خود را به دقت تکمیل فرمایید.
|
متقاضی گرامی ضمن سپاس از علاقه مندی شما برای همکاری با مجموعه آسکو بین الملل، لطفا اطلاعات شخصی و شغل مورد نظر خود را به دقت تکمیل فرمایید.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
درخواستها مورد بررسی قرار گرفته و در صورت هماهنگی با فرصتهای شغلی شرکت، با شما تماس گرفته خواهد شد.
|
درخواستها مورد بررسی قرار گرفته و در صورت هماهنگی با فرصتهای شغلی شرکت، با شما تماس گرفته خواهد شد.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
با تشکر و آرزوی موفقیت
|
با تشکر و آرزوی موفقیت
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-divider/>
|
<a-divider/>
|
||||||
|
|
||||||
<div class="steps-content">
|
<div class="steps-content">
|
||||||
<ASpin :spinning="loading">
|
<ASpin :spinning="loading">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a-form :form="formFirst">
|
<a-form :form="formFirst">
|
||||||
|
<!-- <a-form-item label="نام و نام خانوادگی">
|
||||||
|
<!–<a-input autocomplete="off" v-decorator="['name2',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />–>
|
||||||
|
<!– <a-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" placeholder="Basic usage" />–>
|
||||||
|
<!–<input type="text" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" >–>
|
||||||
|
<!– <vs-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />–>
|
||||||
|
</a-form-item>-->
|
||||||
|
|
||||||
|
<div v-show="current==0" class="mt-4" >
|
||||||
|
|
||||||
|
|
||||||
<a-form-item label="نام و نام خانوادگی">
|
<a-button type="primary" @click="addCity()">
|
||||||
<!--<a-input autocomplete="off" v-decorator="['name2',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
|
|
||||||
<a-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" placeholder="Basic usage" />
|
|
||||||
<!--<input type="text" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" class="ant-input" >-->
|
|
||||||
<!-- <vs-input v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
|
|
||||||
</a-form-item>
|
|
||||||
|
|
||||||
<div v-show="current==0" class="mt-4">
|
|
||||||
<a-button type="primary" @click="addCity()">
|
|
||||||
افزودن ردیف
|
افزودن ردیف
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-card :bordered="true" class="mt-3" v-for="(item,index) in jobs">
|
<a-card :bordered="true" class="mt-3" v-for="(item,index) in jobsList">
|
||||||
<div class="grid sm:grid-cols-1 md:grid-cols-2 md:gap-3 lg:grid-cols-2 lg:gap-3">
|
<div class="grid sm:grid-cols-1 md:grid-cols-2 md:gap-3 lg:grid-cols-2 lg:gap-3">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a-form-item label="انتخاب شهر">
|
<a-form-item label="انتخاب شهر">
|
||||||
<a-select
|
<a-select
|
||||||
v-decorator="[`jobs[${index}].city`,{rules: [{ required: true, message: 'انتخاب شهر الزامی است.' }]}]"
|
:filter-option="filterOption"
|
||||||
|
show-search
|
||||||
|
v-decorator="[`jobs[${index}].city`,{rules: [{ required: true, message: 'انتخاب شهر الزامی است.' }]}]"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
placeholder="لطفا شهر را انتخاب کنید."
|
@select="getJob(index)"
|
||||||
>
|
notFoundContent="اطلاعاتی یافت نشد"
|
||||||
|
placeholder="لطفا شهر را انتخاب کنید." >
|
||||||
<a-select-option v-for="item in city" :value="item.id">
|
<a-select-option v-for="item in city" :value="item.id">
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
@@ -65,13 +58,20 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
<a-form-item label="انتخاب شغل">
|
<a-form-item label="انتخاب شغل">
|
||||||
<a-select autocomplete="off" aria-placeholder="لطفا شغل خود را انتخاب کنید." v-decorator="[`jobs[${index}].job`,{rules: [{ required: true, message: 'انتخاب شغل الزامی است.' }]}]">
|
<a-select
|
||||||
<a-select-option v-for="item in job" :value="item.id">
|
:filter-option="filterOption"
|
||||||
|
show-search
|
||||||
|
notFoundContent="اطلاعاتی یافت نشد"
|
||||||
|
autocomplete="off" aria-placeholder="لطفا شغل خود را انتخاب کنید." v-decorator="[`jobs[${index}].job`,{rules: [{ required: true, message: 'انتخاب شغل الزامی است.' }]}]">
|
||||||
|
<a-select-option v-for="item in jobsList[index].jobs" :value="item.id">
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
<a-button type="danger" @click="deleteCity(index)" v-if="index >0" >
|
||||||
|
حذف
|
||||||
|
</a-button>
|
||||||
</a-card>
|
</a-card>
|
||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
@@ -84,32 +84,38 @@
|
|||||||
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4 mt-5">
|
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4 mt-5">
|
||||||
|
|
||||||
<a-form-item label="نام و نام خانوادگی">
|
<a-form-item label="نام و نام خانوادگی">
|
||||||
<a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<!-- <a-input autocomplete="off" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
|
||||||
|
<input autocomplete="off" type="text" v-decorator="['name',{initialValue: null,rules: [{ required: true, message: 'نام و نام خانوادگی را وارد نمایید' }]}]" class="ant-input" >
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="نام پدر">
|
<a-form-item label="نام پدر">
|
||||||
<a-input autocomplete="off" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<!--<a-input autocomplete="off" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'نام پدر را وارد نمایید' }]}]" />-->
|
||||||
|
<input autocomplete="off" type="text" class="ant-input" v-decorator="['father_name',{initialValue: null,rules: [{ required: true, message: 'نام پدر را وارد نمایید' }]}]">
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a-form-item label="تاریخ تولد">
|
<a-form-item label="تاریخ تولد" :required="birth_day ? false:true" :validateStatus=" birth_day ? '' : 'error'" :help=" birth_day ? '':'تاریخ تولد را وارد نمایید'" >
|
||||||
<!-- birth_date-->
|
<!-- birth_date-->
|
||||||
<a-input
|
<input
|
||||||
v-model="birth_day"
|
class="ant-input"
|
||||||
id="birth_day"
|
readonly="true"
|
||||||
autocomplete="off"
|
v-model="birth_day"
|
||||||
|
id="birth_day"
|
||||||
|
autocomplete="off"
|
||||||
/>
|
/>
|
||||||
|
<!-- v-decorator="['birthdate',{initialValue: null,rules: [{ required: true, message: 'تاریخ تولد را وارد نمایید' }]}]"-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<date-picker
|
<date-picker
|
||||||
:auto-submit="true"
|
:auto-submit="true"
|
||||||
color="#4f72ab"
|
color="#1da57a"
|
||||||
v-model="birth_day"
|
v-model="birth_day"
|
||||||
element="birth_day"
|
element="birth_day"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-form-item label="کد ملی">
|
<a-form-item label="کد ملی">
|
||||||
<a-input autocomplete="off" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<!--<a-input autocomplete="off" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />-->
|
||||||
|
<input autocomplete="off" type="text" v-decorator="['ncode',{initialValue: null,rules: [{ required: true, message: 'کد ملی را وارد نمایید' },{ min : 10, message: 'کد ملی 10 رقمی می باشد' },{ max : 10, message: 'کد ملی 10 رقمی می باشد' }]}]" class="ant-input" >
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -136,11 +142,11 @@
|
|||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شماره حساب بانک پاسارگاد">
|
<a-form-item label="شماره حساب بانک پاسارگاد">
|
||||||
<a-input autocomplete="off" v-decorator="['pasargad_bank_number',{initialValue: null}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['pasargad_bank_number',{initialValue: null}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="حقوق درخواستی">
|
<a-form-item label="حقوق درخواستی">
|
||||||
<a-input autocomplete="off" v-decorator="['requested_salary',{initialValue: null}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['requested_salary',{initialValue: null,rules: [{ required: true, message: 'حقوق درخواستی را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -151,7 +157,7 @@
|
|||||||
|
|
||||||
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4">
|
<div class="grid sm:grid-cols-1 md:grid-cols-4 lg:grid-cols-4 gap-4">
|
||||||
<a-form-item label="شماره شناسنامه">
|
<a-form-item label="شماره شناسنامه">
|
||||||
<a-input autocomplete="off" v-decorator="['iden_code',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['iden_code',{initialValue: null,rules: [{ required: true, message: 'شماره شناسنامه را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="سریال شناسنامه">
|
<a-form-item label="سریال شناسنامه">
|
||||||
@@ -161,7 +167,7 @@
|
|||||||
{{ item }}
|
{{ item }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
<a-input v-decorator="['iden_no_right',{initialValue: null}]" autocomplete="off" style="width: 70%;direction: rtl" />
|
<input class="ant-input" v-decorator="['iden_no_right',{initialValue: null}]" autocomplete="off" style="width: 77%;direction: rtl" />
|
||||||
</a-input-group>
|
</a-input-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<!-- <a-input-group compact>
|
<!-- <a-input-group compact>
|
||||||
@@ -178,11 +184,11 @@
|
|||||||
|
|
||||||
|
|
||||||
<a-form-item label="محل صدور">
|
<a-form-item label="محل صدور">
|
||||||
<a-input autocomplete="off" v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'محل صدور را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="محل تولد">
|
<a-form-item label="محل تولد">
|
||||||
<a-input autocomplete="off" v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'محل تولد را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
@@ -190,7 +196,7 @@
|
|||||||
<a-card title="اطلاعات سکونت" :bordered="true" >
|
<a-card title="اطلاعات سکونت" :bordered="true" >
|
||||||
|
|
||||||
<a-form-item label="وضعیت مسکن">
|
<a-form-item label="وضعیت مسکن">
|
||||||
<a-radio-group style="direction: ltr" v-decorator="['house_status',{initialValue: '1'}]" button-style="solid">
|
<a-radio-group style="direction: ltr" v-decorator="['house_sts',{initialValue: '1'}]" button-style="solid">
|
||||||
<a-radio-button value="2">
|
<a-radio-button value="2">
|
||||||
مستاجر
|
مستاجر
|
||||||
</a-radio-button>
|
</a-radio-button>
|
||||||
@@ -201,34 +207,34 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="آدرس">
|
<a-form-item label="آدرس">
|
||||||
<a-input autocomplete="off" v-decorator="['address',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<input class="ant-input" autocomplete="off" v-decorator="['address',{initialValue: null,rules: [{ required: true, message: 'آدرس را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div class="md:flex">
|
<div class="md:flex">
|
||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="ایمیل">
|
<a-form-item label="ایمیل">
|
||||||
<a-input style="direction: rtl !important;" v-decorator="['email',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]">
|
<input class="ant-input" style="direction: rtl !important;" v-decorator="['email',{initialValue: null,rules: [{ required: true, message: 'ایمیل را وارد نمایید' }]}]">
|
||||||
<!-- <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
<!-- <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="موبایل">
|
<a-form-item label="موبایل">
|
||||||
<a-input autocomplete="off" v-decorator="['mobile',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" >
|
<input class="ant-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" />-->
|
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="تلفن ثابت">
|
<a-form-item label="تلفن ثابت">
|
||||||
<a-input autocomplete="off" v-decorator="['phone',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]" >
|
<input class="ant-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" />-->
|
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
@@ -240,27 +246,27 @@
|
|||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="تلفن ضروری">
|
<a-form-item label="تلفن ضروری">
|
||||||
<a-input style="direction: rtl !important;" v-decorator="['phone_emergency',{initialValue: null,rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]">
|
<input class="ant-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" />-->
|
<!-- <feather-icon style="direction: ltr !important;" icon="MailIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="نام فرد">
|
<a-form-item label="نام فرد">
|
||||||
<a-input autocomplete="off" v-decorator="['phone_emergency_name',{initialValue: null}]" >
|
<input class="ant-input" autocomplete="off" v-decorator="['phone_emergency_name',{initialValue: null}]" >
|
||||||
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
<!--<feather-icon style="direction: ltr !important;" icon="SmartPhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/4 md:pl-4">
|
<div class="md:w-1/4 md:pl-4">
|
||||||
<a-row >
|
<a-row >
|
||||||
<a-form-item label="نسبت">
|
<a-form-item label="نسبت">
|
||||||
<a-input autocomplete="off" v-decorator="['phone_emergency_related',{initialValue: null}]" >
|
<input class="ant-input" autocomplete="off" v-decorator="['phone_emergency_related',{initialValue: null}]" >
|
||||||
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
<!--<feather-icon style="direction: ltr !important;" icon="PhoneIcon" slot="addonAfter" class="pt-1" svgClasses="w-5 h-5" />-->
|
||||||
</a-input>
|
<!-- </a-input>-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
@@ -271,25 +277,25 @@
|
|||||||
<a-card title="سابقه بیمه" :bordered="true" >
|
<a-card title="سابقه بیمه" :bordered="true" >
|
||||||
|
|
||||||
<a-form-item label="سابقه بیمه">
|
<a-form-item label="سابقه بیمه">
|
||||||
<a-radio-group style="direction: ltr" v-decorator="['has_insurance',{initialValue: '1'}]" button-style="solid" @change="number_insurance">
|
<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 :value="1">
|
||||||
دارم
|
دارم
|
||||||
</a-radio-button>
|
</a-radio-button>
|
||||||
<a-radio-button value="-1">
|
<a-radio-button :value="-1">
|
||||||
ندارم
|
ندارم
|
||||||
</a-radio-button>
|
</a-radio-button>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="شماره بیمه" v-if="has_instructor == '-1' ">
|
<a-form-item label="شماره بیمه" v-if="has_instructor == 1 ">
|
||||||
<a-input autocomplete="off" style="width: 40%" v-decorator="['insurance_no',{initialValue: null,rules: [{ required: false, message: 'این فیلد نمیتواند خالی باشد.' }]}]" />
|
<input class="ant-input" autocomplete="off" style="width: 40%" v-decorator="['insurance_no',{initialValue: null,rules: [{ required: false, message: 'شماره بیمه را وارد نمایید' }]}]" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
</a-card>
|
</a-card>
|
||||||
<br/>
|
<br/>
|
||||||
<a-card title="اطلاعات خانوادگی" :bordered="true" >
|
<a-card title="اطلاعات خانوادگی" :bordered="true" >
|
||||||
|
|
||||||
<a-list class="mb-5" v-if="family.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
<a-list class="mb-5" v-if="family.length > 0" :locale="{emptyText:'اطلاعاتی برای نمایش وجود ندارد.'}" bordered item-layout="horizontal" >
|
||||||
<a-list-item class="grid grid-cols-4" v-for="(item,index) in family" :key="index" >
|
<a-list-item class="grid grid-cols-4" v-for="(item,index) in family" :key="index" >
|
||||||
<div>
|
<div>
|
||||||
<div style="direction: ltr" > نام :{{ item.name }}</div>
|
<div style="direction: ltr" > نام :{{ item.name }}</div>
|
||||||
@@ -331,7 +337,7 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<a-card title="سوابق تحصیلی" :bordered="true" >
|
<a-card title="سوابق تحصیلی" :bordered="true" >
|
||||||
|
|
||||||
<a-list class="mb-5" v-if="edu.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
<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" >
|
<a-list-item class="grid grid-cols-4" v-for="(item,index) in edu" :key="index" >
|
||||||
<div>
|
<div>
|
||||||
<div style="direction: ltr" v-if="item.grade"> مقطع :{{ item.grade.title }}</div>
|
<div style="direction: ltr" v-if="item.grade"> مقطع :{{ item.grade.title }}</div>
|
||||||
@@ -376,7 +382,7 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<a-card title="سوابق آموزشی" :bordered="true" >
|
<a-card title="سوابق آموزشی" :bordered="true" >
|
||||||
|
|
||||||
<a-list class="mb-5" v-if="educational.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
<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" >
|
<a-list-item class="grid grid-cols-3" v-for="(item,index) in educational" :key="index" >
|
||||||
<div>
|
<div>
|
||||||
<div style="direction: rtl"> مرکز برگزار کننده : {{ item.university }}</div>
|
<div style="direction: rtl"> مرکز برگزار کننده : {{ item.university }}</div>
|
||||||
@@ -387,7 +393,7 @@
|
|||||||
<div style="direction: rtl">سال : {{ item.start }}</div>
|
<div style="direction: rtl">سال : {{ item.start }}</div>
|
||||||
<div style="direction: rtl">
|
<div style="direction: rtl">
|
||||||
امکان ارائه گواهینامه دارم:
|
امکان ارائه گواهینامه دارم:
|
||||||
<feather-icon icon="CheckIcon" v-if="item.has_file" svgClasses="w-5 h-5 text-success"/>
|
<feather-icon icon="CheckIcon" v-if="item.has_certificate" svgClasses="w-5 h-5 text-success"/>
|
||||||
<feather-icon icon="XIcon" v-else svgClasses="w-5 h-5 text-danger"/>
|
<feather-icon icon="XIcon" v-else svgClasses="w-5 h-5 text-danger"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -420,7 +426,7 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<a-card title="سوابق کاری" :bordered="true" >
|
<a-card title="سوابق کاری" :bordered="true" >
|
||||||
|
|
||||||
<a-list class="mb-5" v-if="work.length > 0" :locale="{emptyText:'رکوردی وجود ندارد.'}" bordered item-layout="horizontal" >
|
<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" >
|
<a-list-item class="grid grid-cols-4" v-for="(item,index) in work" :key="index" >
|
||||||
<div>
|
<div>
|
||||||
<div style="direction: rtl"> نام سازمان : {{ item.university }}</div>
|
<div style="direction: rtl"> نام سازمان : {{ item.university }}</div>
|
||||||
@@ -469,7 +475,7 @@
|
|||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-checkbox v-decorator="['commitment',{initialValue:false,rules: [{ required: true, message: 'تعهد الزامی است.' }]}]">
|
<a-checkbox v-decorator="['commitment',{valuePropName: 'checked',initialValue: true,rules: [{ required: true, message: 'نام را وارد نمایید' }]}]">
|
||||||
با آگاهی از قوانین و مقررات و صحت اطلاعات تایید میکنم.
|
با آگاهی از قوانین و مقررات و صحت اطلاعات تایید میکنم.
|
||||||
</a-checkbox>
|
</a-checkbox>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -487,8 +493,7 @@
|
|||||||
<a-result
|
<a-result
|
||||||
status="success"
|
status="success"
|
||||||
title="اطلاعات با موفقیت ثبت شد"
|
title="اطلاعات با موفقیت ثبت شد"
|
||||||
sub-title="لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است."
|
sub-title="">
|
||||||
>
|
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<a-button @click="LoginUser">
|
<a-button @click="LoginUser">
|
||||||
اتمام
|
اتمام
|
||||||
@@ -503,16 +508,16 @@
|
|||||||
<a-modal :visible="visibleFamily" title="اطلاعات خانوادگی" @ok="createFamily" @cancel="cancelFamily" ok-text="ایجاد" cancel-text="انصراف">
|
<a-modal :visible="visibleFamily" title="اطلاعات خانوادگی" @ok="createFamily" @cancel="cancelFamily" ok-text="ایجاد" cancel-text="انصراف">
|
||||||
<a-form :form="formFamily">
|
<a-form :form="formFamily">
|
||||||
<a-form-item label="نام">
|
<a-form-item label="نام">
|
||||||
<a-input autocomplete="off" v-decorator="['name',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['name',{rules: [{ required: true, message: 'نام را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="نسبت">
|
<a-form-item label="نسبت">
|
||||||
<a-input autocomplete="off" v-decorator="['relation',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['relation',{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"
|
||||||
style="width: 100%;direction: rtl !important;"
|
style="width: 100%;direction: rtl !important;"
|
||||||
v-decorator="['level',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"
|
v-decorator="['level',{rules: [{ required: false, message: 'مقطع را وارد نمایید' }]}]"
|
||||||
@change="changeGrade"
|
@change="changeGrade"
|
||||||
allowClear
|
allowClear
|
||||||
>
|
>
|
||||||
@@ -522,10 +527,10 @@
|
|||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="رشته تحصیلی">
|
<a-form-item label="رشته تحصیلی">
|
||||||
<a-input autocomplete="off" v-decorator="['edu_title',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['edu_title',{rules: [{ required: false, message: 'رشته تحصیلی را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شغل">
|
<a-form-item label="شغل">
|
||||||
<a-input autocomplete="off" v-decorator="['job',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['job',{rules: [{ required: false, message: 'شغل را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<!-- <a-form-item label="مقطع">
|
<!-- <a-form-item label="مقطع">
|
||||||
<a-select
|
<a-select
|
||||||
@@ -570,13 +575,13 @@
|
|||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<a-modal :visible="visibleEdu" title="افزودن سابقه تحصیلی" @ok="createEdu" @cancel="cancelEdu" ok-text="ایجاد" cancel-text="انصراف">
|
<a-modal :forceRender="true" :visible="visibleEdu" title="افزودن سابقه تحصیلی" @ok="createEdu" @cancel="cancelEdu" ok-text="ایجاد" cancel-text="انصراف">
|
||||||
<a-form :form="formEdu">
|
<a-form :form="formEdu">
|
||||||
<a-form-item label="مقطع">
|
<a-form-item label="مقطع">
|
||||||
<a-select
|
<a-select
|
||||||
class="mt-3"
|
class="mt-3"
|
||||||
style="width: 100%;direction: rtl !important;"
|
style="width: 100%;direction: rtl !important;"
|
||||||
v-decorator="['level',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"
|
v-decorator="['level',{rules: [{ required: true, message: 'مقطع را وارد نمایید ' }]}]"
|
||||||
@change="changeGrade"
|
@change="changeGrade"
|
||||||
allowClear
|
allowClear
|
||||||
>
|
>
|
||||||
@@ -586,24 +591,25 @@
|
|||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="دانشگاه">
|
<a-form-item label="دانشگاه">
|
||||||
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'دانشگاه را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="رشته تحصیلی">
|
<a-form-item label="رشته تحصیلی">
|
||||||
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'رشته تحصیلی را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="گرایش تحصیلی">
|
<a-form-item label="گرایش تحصیلی">
|
||||||
<a-input autocomplete="off" v-decorator="['orientation',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['orientation',{rules: [{ required: false, message: 'گرایش تحصیلی را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div class="md:flex">
|
<div class="md:flex">
|
||||||
<div class="md:w-1/2">
|
<div class="md:w-1/2">
|
||||||
<a-form-item label="سال شروع">
|
<a-form-item label="سال شروع">
|
||||||
<a-input-number autocomplete="off" :min="1350" :max="1401" v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
<a-input-number autocomplete="off" :min="1350" :max="1401" v-decorator="['start',{rules: [{ required: true, message: 'لطفا مقدار سال شروع را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
||||||
|
<!--<a-input-number v-decorator="['result_1.score',{initialValue: 0}]" :min="0" :max="20" />-->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/2">
|
<div class="md:w-1/2">
|
||||||
<a-form-item label="سال خاتمه">
|
<a-form-item label="سال خاتمه">
|
||||||
<a-input-number id="end" ref="end" autocomplete="off" :disabled="is_check" :min="1350" :max="1401" v-decorator="['end',{rules: [{ required: is_check ? false : true, message: 'لطفا مقدار سال خاتمه را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
<a-input-number type="number" class="ant-input-number" id="end" ref="end" autocomplete="off" :disabled="is_check" :min="1350" :max="1401" v-decorator="['end',{rules: [{ required: is_check ? false : true, message: 'لطفا مقدار سال خاتمه را به درستی بین 1350 تا 1401 وارد کنید.' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/3">
|
<div class="md:w-1/3">
|
||||||
@@ -622,10 +628,10 @@
|
|||||||
<a-form :form="formEducational">
|
<a-form :form="formEducational">
|
||||||
|
|
||||||
<a-form-item label="مرکز برگزار کننده">
|
<a-form-item label="مرکز برگزار کننده">
|
||||||
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'مرکز برگزار کننده را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="عنوان دوره">
|
<a-form-item label="عنوان دوره">
|
||||||
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'عنوان دوره را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div class="md:flex">
|
<div class="md:flex">
|
||||||
@@ -636,7 +642,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="md:w-1/3">
|
<div class="md:w-1/3">
|
||||||
<a-form-item label="امکان ارائه گواهینامه دارم">
|
<a-form-item label="امکان ارائه گواهینامه دارم">
|
||||||
<a-checkbox v-decorator="['has_file',{initialValue:false,valuePropName: 'checked'}]"/>
|
<a-checkbox v-decorator="['has_certificate',{initialValue:false,valuePropName: 'checked'}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -647,13 +653,13 @@
|
|||||||
<a-modal :visible="visibleWork" title="افزودن سابقه کاری" @ok="createWork" @cancel="cancelWork" ok-text="ایجاد" cancel-text="انصراف">
|
<a-modal :visible="visibleWork" title="افزودن سابقه کاری" @ok="createWork" @cancel="cancelWork" ok-text="ایجاد" cancel-text="انصراف">
|
||||||
<a-form :form="formWork">
|
<a-form :form="formWork">
|
||||||
<a-form-item label="نام سازمان">
|
<a-form-item label="نام سازمان">
|
||||||
<a-input autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['university',{rules: [{ required: true, message: 'نام سازمان را وارد نمایید ' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="عنوان شغل">
|
<a-form-item label="عنوان شغل">
|
||||||
<a-input autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['major',{rules: [{ required: true, message: 'عنوان شغل را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="دلیل خاتمه">
|
<a-form-item label="دلیل خاتمه">
|
||||||
<a-input autocomplete="off" v-decorator="['note',{rules: [{ required:false, message: 'این فیلد نمیتواند خالی باشد.' }]}]"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['note',{rules: [{ required:is_work_check ? false : true, message: 'دلیل خاتمه را وارد نمایید' }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<div class="md:flex">
|
<div class="md:flex">
|
||||||
@@ -677,7 +683,7 @@
|
|||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<a-modal :visible="visibleAccept" title="شرایط و مقررات" @ok="visibleAccept = false" @cancel="visibleAccept = false" ok-text="باشه" cancel-text="انصراف">
|
<a-modal :visible="visibleAccept" title="شرایط و مقررات" @ok="visibleAccept = false" @cancel="visibleAccept = false" ok-text="تایید" cancel-text="انصراف">
|
||||||
اینجانب {{ fullName }} در تاریخ {{ date }} فرم بالا را تکمیل نموده و صحت کلیه اطلاعات تکمیل شده را تأیید می نمایم.
|
اینجانب {{ fullName }} در تاریخ {{ date }} فرم بالا را تکمیل نموده و صحت کلیه اطلاعات تکمیل شده را تأیید می نمایم.
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
@@ -717,7 +723,8 @@
|
|||||||
edu:[],
|
edu:[],
|
||||||
family:[],
|
family:[],
|
||||||
work:[],
|
work:[],
|
||||||
jobs:[{city:null,job:null}],
|
jobsList:[{jobs:[]}],
|
||||||
|
//jobs:[{city:null,job:null}],
|
||||||
//model:[],
|
//model:[],
|
||||||
educational:[],
|
educational:[],
|
||||||
birth_day:'',
|
birth_day:'',
|
||||||
@@ -746,9 +753,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
deleteCity(index){
|
||||||
|
this.jobsList.splice(index,1);
|
||||||
|
//console.log(index);
|
||||||
|
},
|
||||||
|
filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
);
|
||||||
|
},
|
||||||
|
/* Agrement(rule, value, callback){
|
||||||
|
|
||||||
|
},*/
|
||||||
addCity()
|
addCity()
|
||||||
{
|
{
|
||||||
this.jobs.push({city:null,job:null})
|
this.jobsList.push({jobs:[]});
|
||||||
},
|
},
|
||||||
number_insurance(e){
|
number_insurance(e){
|
||||||
this.has_instructor = e.target.value
|
this.has_instructor = e.target.value
|
||||||
@@ -759,9 +778,9 @@
|
|||||||
{
|
{
|
||||||
this.formFirst.validateFields(async(err, values) => {
|
this.formFirst.validateFields(async(err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
//this.current++;
|
this.current++;
|
||||||
|
|
||||||
console.log(values,'first')
|
// console.log(values,'first')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -795,28 +814,46 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
async getCity(){
|
getCity(){
|
||||||
try{
|
try{
|
||||||
const {data} = await axios.get('/register/cities')
|
//const {data} = await axios.get('/register/cities')
|
||||||
this.city = data
|
axios.get('/register/cities').then((res)=>{
|
||||||
|
this.city = res.data;
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.$ntSetError()
|
||||||
|
});
|
||||||
}catch (e) {
|
}catch (e) {
|
||||||
this.$ntSetError()
|
this.$ntSetError()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getDate(){
|
getDate(){
|
||||||
try{
|
try{
|
||||||
const {data} = await axios.get('/register/date')
|
//const {data} = await axios.get('/register/date')
|
||||||
this.date = data
|
axios.get('/register/date').then((res)=>{
|
||||||
|
this.date = res.data;
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.$ntSetError()
|
||||||
|
});;
|
||||||
|
|
||||||
}catch (e) {
|
}catch (e) {
|
||||||
this.$ntSetError()
|
this.$ntSetError()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getJob(){
|
getJob(index){
|
||||||
try{
|
if(index!=undefined)
|
||||||
const {data} = await axios.post('/register/jobs')
|
{
|
||||||
this.job = data
|
try{
|
||||||
}catch (e) {
|
this.formFirst.resetFields(`jobs[${index}].job`);
|
||||||
|
axios.post('/register/jobs',{city:""+this.formFirst.getFieldValue(`jobs[${index}].city`)+""}).then((res)=>{
|
||||||
|
//this.formFirst.setFieldsValue(`jobs[${index}].city`)
|
||||||
|
this.jobsList[index].jobs=res.data;
|
||||||
|
console.log(this.jobsList[index].jobs);
|
||||||
|
//console.log(this.jobsList[0].map((item)=> item.title))
|
||||||
|
});
|
||||||
|
//this.job = data
|
||||||
|
}catch (e) {
|
||||||
this.$ntSetError()
|
this.$ntSetError()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
openModalEdu(){
|
openModalEdu(){
|
||||||
@@ -1034,20 +1071,32 @@
|
|||||||
computed:{
|
computed:{
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
created() {
|
||||||
this.getCity()
|
this.getCity()
|
||||||
this.getJob()
|
this.getJob()
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style>
|
||||||
[dir=rtl] .anticon.anticon-plus{
|
[dir=rtl] .anticon.anticon-plus{
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 4px;
|
top: 4px;
|
||||||
left: 5px;
|
left: 5px;
|
||||||
}
|
}
|
||||||
.ant-modal-title{
|
.ant-modal-title{
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
|
.ant-steps-item-title::after{
|
||||||
|
/*left: unset !important;*/
|
||||||
|
right:100% !important;
|
||||||
|
}
|
||||||
|
/*.ant-select-arrow
|
||||||
|
{
|
||||||
|
left: 11px !important;
|
||||||
|
}*/
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ module.exports = {
|
|||||||
configureWebpack: {
|
configureWebpack: {
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
|
||||||
{
|
{
|
||||||
test: /\.less$/,
|
test: /\.less$/,
|
||||||
loader: 'less-loader',
|
loader: 'less-loader',
|
||||||
|
|||||||
Reference in New Issue
Block a user