archive added
This commit is contained in:
@@ -99,4 +99,9 @@
|
|||||||
.has-error .vpd-input-group{
|
.has-error .vpd-input-group{
|
||||||
border: 1px solid #f5222d;
|
border: 1px solid #f5222d;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
.ant-tabs-ink-bar {
|
||||||
|
left: auto !important;
|
||||||
|
right: auto !important;
|
||||||
|
transform-origin: 0 !important;
|
||||||
|
}
|
||||||
|
|||||||
@@ -118,7 +118,7 @@
|
|||||||
|
|
||||||
.feather-icon{
|
.feather-icon{
|
||||||
color: #565656;
|
color: #565656;
|
||||||
margin-right: 14px;
|
margin-left: 14px;
|
||||||
.feather{
|
.feather{
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height:20px;
|
height:20px;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
url: '/config',
|
url: '/config',
|
||||||
icon: 'LayersIcon',
|
icon: 'SlidersIcon',
|
||||||
i18n: 'پیکربندی',
|
i18n: 'پیکربندی',
|
||||||
slug: 'config',
|
slug: 'config',
|
||||||
permissionId:'config'
|
permissionId:'config'
|
||||||
@@ -19,7 +19,7 @@ export default [
|
|||||||
url: "/proposal",
|
url: "/proposal",
|
||||||
name: "proposal",
|
name: "proposal",
|
||||||
slug: "proposal",
|
slug: "proposal",
|
||||||
icon: "AlignJustifyIcon",
|
icon: "FileTextIcon",
|
||||||
i18n: "درخواست ها",
|
i18n: "درخواست ها",
|
||||||
permissionId:'request'
|
permissionId:'request'
|
||||||
},
|
},
|
||||||
@@ -27,7 +27,7 @@ export default [
|
|||||||
url: "/personel",
|
url: "/personel",
|
||||||
name: "personel",
|
name: "personel",
|
||||||
slug: "personel",
|
slug: "personel",
|
||||||
icon: "AlignJustifyIcon",
|
icon: "UsersIcon",
|
||||||
i18n: "اطلاعات پرسنلی",
|
i18n: "اطلاعات پرسنلی",
|
||||||
permissionId:'personnel'
|
permissionId:'personnel'
|
||||||
},
|
},
|
||||||
@@ -43,7 +43,7 @@ export default [
|
|||||||
url: "/permission",
|
url: "/permission",
|
||||||
name: "permission",
|
name: "permission",
|
||||||
slug: "permission",
|
slug: "permission",
|
||||||
icon: "AlignJustifyIcon",
|
icon: "SettingsIcon",
|
||||||
i18n: "سطح دسترسی",
|
i18n: "سطح دسترسی",
|
||||||
permissionId:'permission.show'
|
permissionId:'permission.show'
|
||||||
},
|
},
|
||||||
@@ -54,6 +54,14 @@ export default [
|
|||||||
icon: "UserIcon",
|
icon: "UserIcon",
|
||||||
i18n: "کاربران",
|
i18n: "کاربران",
|
||||||
permissionId:'user'
|
permissionId:'user'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: "/restore",
|
||||||
|
name: "restore",
|
||||||
|
slug: "restore",
|
||||||
|
icon: "ArchiveIcon",
|
||||||
|
i18n: "بایگانی",
|
||||||
|
permissionId:'archive'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,15 @@ const router = new Router({
|
|||||||
parent: 'main'
|
parent: 'main'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/restore',
|
||||||
|
name: 'users',
|
||||||
|
component: () => import('./views/restore/restore.vue'),
|
||||||
|
meta: {
|
||||||
|
rule: 'editor',
|
||||||
|
parent: 'main'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/register/users',
|
path: '/register/users',
|
||||||
name: 'register-users',
|
name: 'register-users',
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
<a-spin :spinning="showLoading" tip="در حال دریافت اطلاعات">
|
<a-spin :spinning="showLoading" tip="در حال دریافت اطلاعات">
|
||||||
<div class="spin-content">
|
<div class="spin-content">
|
||||||
<a-card>
|
<a-card>
|
||||||
<a-button @click="$router.push('/register/personnel')" :disabled="!$getAccess('personnel.create')">
|
<!-- <a-button @click="$router.push('/register/personnel')" :disabled="!$getAccess('personnel.create')">
|
||||||
ثبت پرسنل جدید
|
ثبت پرسنل جدید
|
||||||
</a-button>
|
</a-button>-->
|
||||||
<x-table ref="personelTbl" class="mt-4"
|
<x-table ref="personelTbl" class="mt-4"
|
||||||
:model="cols">
|
:model="cols">
|
||||||
<template slot="operator" slot-scope="text,record">
|
<template slot="operator" slot-scope="text,record">
|
||||||
@@ -149,7 +149,9 @@
|
|||||||
<input class="ant-input" autocomplete="off" v-decorator="['proposal.iden_place']"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['proposal.iden_place']"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="محل تولد">
|
<a-form-item label="محل تولد">
|
||||||
<input class="ant-input" autocomplete="off" v-decorator="['proposal.birth_place']"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['proposal.birth_place',{rules: [{
|
||||||
|
pattern: /^([\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C ])+$/,
|
||||||
|
message: `محل صدور باید فارسی باشد `, }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="ایمیل">
|
<a-form-item label="ایمیل">
|
||||||
<input class="ant-input" autocomplete="off" v-decorator="['proposal.email']"/>
|
<input class="ant-input" autocomplete="off" v-decorator="['proposal.email']"/>
|
||||||
@@ -255,11 +257,11 @@
|
|||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- v-if="flags.marriage_sts == 2"-->
|
||||||
<div v-if="flags.marriage_sts == 2">
|
<div>
|
||||||
<a-form-item label="تعداد فرزند">
|
<a-form-item label="تعداد فرزند">
|
||||||
<input class="ant-input"
|
<input class="ant-input"
|
||||||
v-decorator="['proposal.count_child',{rules: [{ required: true, message: 'لطفا مقدار را وارد کنید' },{ pattern: /^[0-9]+$/, message: 'فقط عدد مجاز است' }] }]"/>
|
v-decorator="['proposal.count_child',{rules: [{ required: false, message: 'لطفا مقدار را وارد کنید' },{ pattern: /^[0-9]+$/, message: 'فقط عدد مجاز است' }] }]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="flags.gender == 1">
|
<div v-if="flags.gender == 1">
|
||||||
@@ -516,7 +518,8 @@
|
|||||||
<a-button :disabled="!$getAccess('personnel.train.create')" class="mt-4 ml-2"
|
<a-button :disabled="!$getAccess('personnel.train.create')" class="mt-4 ml-2"
|
||||||
@click="showAddEducationalInformation=true;isAlertUpload = false">افزودن ردیف
|
@click="showAddEducationalInformation=true;isAlertUpload = false">افزودن ردیف
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('2')">
|
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('2')"
|
||||||
|
v-if="training && training.length > 0">
|
||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@@ -666,7 +669,8 @@
|
|||||||
</a-list-item>
|
</a-list-item>
|
||||||
</a-list>
|
</a-list>
|
||||||
<a-button class="mt-3 ml-2" @click="showAddContract = true">افزودن ردیف</a-button>
|
<a-button class="mt-3 ml-2" @click="showAddContract = true">افزودن ردیف</a-button>
|
||||||
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('3')">
|
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('3')"
|
||||||
|
v-if="contract && contract.length > 0">
|
||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@@ -808,7 +812,8 @@
|
|||||||
<a-button class="ml-2" :disabled="!$getAccess('personnel.function.create')"
|
<a-button class="ml-2" :disabled="!$getAccess('personnel.function.create')"
|
||||||
@click="showAddPerformance=true">افزودن ردیف
|
@click="showAddPerformance=true">افزودن ردیف
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('6')">
|
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('6')"
|
||||||
|
v-if="estimate && estimate.length > 0">
|
||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@@ -845,7 +850,8 @@
|
|||||||
<a-button :disabled="!$getAccess('personnel.rule.create')" class="mt-4 ml-2"
|
<a-button :disabled="!$getAccess('personnel.rule.create')" class="mt-4 ml-2"
|
||||||
@click="showAddDocument=true;isAlertUpload = false">افزودن ردیف
|
@click="showAddDocument=true;isAlertUpload = false">افزودن ردیف
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('7')">
|
<a-button type="primary" @click="savefromPersonel" class="mt-5" :disabled="checkPermission('7')"
|
||||||
|
v-if="writ && writ.length > 0">
|
||||||
ویرایش
|
ویرایش
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<a-switch default-checked class="mr-2"/>
|
<a-switch default-checked class="mr-2"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>-->
|
</div>-->
|
||||||
<x-table :model="cols" class="mt-3">
|
<x-table :model="cols" ref="proposalTbl" class="mt-3">
|
||||||
<template slot="operator" slot-scope="text,record">
|
<template slot="operator" slot-scope="text,record">
|
||||||
<a-dropdown>
|
<a-dropdown>
|
||||||
<a class="ant-dropdown-link" @click="e => e.preventDefault()">
|
<a class="ant-dropdown-link" @click="e => e.preventDefault()">
|
||||||
@@ -29,6 +29,12 @@
|
|||||||
<a-menu-item v-if="$getAccess('request.employment') && !text.record.employed">
|
<a-menu-item v-if="$getAccess('request.employment') && !text.record.employed">
|
||||||
<a href="javascript:;" @click="showSetEmployeModal(text.record.id)">استخدام</a>
|
<a href="javascript:;" @click="showSetEmployeModal(text.record.id)">استخدام</a>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-item v-if="$getAccess('request.delete')">
|
||||||
|
<a href="javascript:;" @click="deleteProposal(text.record.id)">حذف درخواست</a>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item v-if="$getAccess('personnel.type') && text.record.employed">
|
||||||
|
<a href="javascript:;" @click="showUpdateTypeModal(text.record.id)">تغییر نوع کاربری درخواست</a>
|
||||||
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
</template>
|
</template>
|
||||||
@@ -591,14 +597,40 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<a-modal force-render v-model="setEmployeModel" :closable="false" ok-text="بله" cancel-text="خیر" @ok="setEmploye">
|
<a-modal force-render v-model="setEmployeModel" :closable="false" ok-text="بله" cancel-text="خیر" @ok="setEmploye">
|
||||||
<template #title>
|
<template #title>
|
||||||
<div class="flex justify-between">
|
<div class="flex justify-between">
|
||||||
|
<a-icon type="alert-circle" style="color:#faad14"/>
|
||||||
<div>
|
<div>
|
||||||
آیا مطمئن به استخدام هستید ؟
|
آیا مطمئن به استخدام هستید ؟
|
||||||
</div>
|
</div>
|
||||||
<a-icon type="question-circle" style="color:#faad14"/>
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<a-spin type="loading" :spinning="loading">
|
||||||
|
<div>در صورتی که گزینه تایید را انتخاب نمایید فرد مورد نظر به عنوان پرسنل در سیستم ثبت می شود</div>
|
||||||
|
<a-form :form="fromPersonel">
|
||||||
|
<a-form-item label="نمایش برای نوع کاربری">
|
||||||
|
<a-select v-decorator="['user_type',{ rules:[{ required: true, message: 'نوع کاربری را وارد نمایید' }] }]" style="width: 120px">
|
||||||
|
<a-select-option v-for="item in userTypes" :value="item.id">
|
||||||
|
{{ item.value }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="id" class="hidden">
|
||||||
|
<a-innput v-decorator="['id',{ rules:[{ required: true, message: 'نوع کاربری را وارد نمایید' }] }]" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
|
||||||
|
</a-modal>
|
||||||
|
<a-modal force-render v-model="updateType" :closable="false" ok-text="بله" cancel-text="خیر" @ok="updateTypeProposal">
|
||||||
|
<template #title>
|
||||||
|
<div class="flex justify-between">
|
||||||
|
<a-icon type="alert-circle" style="color:#faad14"/>
|
||||||
|
<div>
|
||||||
|
آیا مطمئن به ویرایش هستید ؟
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -956,6 +988,7 @@ export default {
|
|||||||
fromMosahebe2: this.$form.createForm(this, {name: 'coordinated'}),
|
fromMosahebe2: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
fromPersonel: this.$form.createForm(this, {name: 'coordinated'}),
|
fromPersonel: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
setEmployeModel: false,
|
setEmployeModel: false,
|
||||||
|
updateType: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
userTypes: [],
|
userTypes: [],
|
||||||
}
|
}
|
||||||
@@ -1111,12 +1144,51 @@ export default {
|
|||||||
this.$message.error('خطا در دریافت اطلاعات');
|
this.$message.error('خطا در دریافت اطلاعات');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
async deleteProposal(id) {
|
||||||
|
try {
|
||||||
|
this.is_skeleton = true
|
||||||
|
await axios.get(`proposal/delete/${id}`)
|
||||||
|
this.$refs.proposalTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
} catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
} finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async updateTypeProposal(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.fromPersonel.validateFields(async (err, values) => {
|
||||||
|
try {
|
||||||
|
if (!err) {
|
||||||
|
this.loading = true
|
||||||
|
await axios.get(`personnel/update/type/${values.id}/${values.user_type}`)
|
||||||
|
this.setEmployeModel = false
|
||||||
|
this.$refs.proposalTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.$message.error('انتخاب نوع کاربر الزامی است')
|
||||||
|
}
|
||||||
|
} catch ({message}) {
|
||||||
|
this.$message.error('این کاربر قبلا استخدام شده است.')
|
||||||
|
} finally {
|
||||||
|
this.loading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
showSetEmployeModal(id) {
|
showSetEmployeModal(id) {
|
||||||
this.setEmployeModel = true
|
this.setEmployeModel = true
|
||||||
this.fromPersonel.setFieldsValue({
|
this.fromPersonel.setFieldsValue({
|
||||||
id
|
id
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
showUpdateTypeModal(id) {
|
||||||
|
this.updateType = true
|
||||||
|
this.fromPersonel.setFieldsValue({
|
||||||
|
id
|
||||||
|
})
|
||||||
|
},
|
||||||
async setEmploye(e) {
|
async setEmploye(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.fromPersonel.validateFields(async (err, values) => {
|
this.fromPersonel.validateFields(async (err, values) => {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="mx-5">
|
<div class="mx-5">
|
||||||
<div class="flex justify-center">
|
<router-link to="/" class="flex justify-center">
|
||||||
<img src="@/assets/images/logo.svg" width="150px" class="mt-10"/>
|
<img src="@/assets/images/logo.svg" width="150px" class="mt-10"/>
|
||||||
</div>
|
</router-link>
|
||||||
<vx-card class="mx-auto mt-10">
|
<vx-card class="mx-auto mt-10">
|
||||||
|
|
||||||
<a-steps :current="current" v-show="current<2">
|
<a-steps :current="current" v-show="current<2">
|
||||||
@@ -139,17 +139,18 @@
|
|||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شماره حساب بانک پاسارگاد">
|
<a-form-item label="شماره حساب بانک پاسارگاد">
|
||||||
<input class="ant-input" autocomplete="off"
|
<a-input-number class="w-full" autocomplete="off"
|
||||||
v-decorator="['pasargad_bank_number',{initialValue: null},{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
|
v-decorator="['pasargad_bank_number',{initialValue: null}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="حقوق درخواستی">
|
<a-form-item label="حقوق درخواستی">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['requested_salary',{initialValue: null,rules: [{ required: true, message: 'حقوق درخواستی را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'}]}]"/>
|
v-decorator="['requested_salary',{initialValue: null,rules: [{ required: true, message: 'حقوق درخواستی را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'}]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="تعداد فرزند" v-if="flags.marriage_sts == 2">
|
<!-- v-if="flags.marriage_sts == 2"-->
|
||||||
|
<a-form-item label="تعداد فرزند">
|
||||||
<input class="ant-input"
|
<input class="ant-input"
|
||||||
v-decorator="['count_child',{rules: [{ required: true, message: 'لطفا مقدار را وارد کنید' },{ pattern: /^[0-9]+$/,type: 'string', message: 'فقط عدد مجاز است' }] }]"/>
|
v-decorator="['count_child',{rules: [{ required: false, message: 'لطفا مقدار را وارد کنید' },{ pattern: /^[0-9]+$/,type: 'string', message: 'فقط عدد مجاز است' }] }]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="وضعیت نظام وظیفه" v-if="flags.gender == 1">
|
<a-form-item label="وضعیت نظام وظیفه" v-if="flags.gender == 1">
|
||||||
@@ -170,7 +171,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="شماره شناسنامه">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['iden_code',{initialValue: null,rules: [{ required: true, message: 'شماره شناسنامه را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'}]}]"/>
|
v-decorator="['iden_code',{rules: [{ required: true, message: 'شماره شناسنامه را وارد نمایید' },{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'}]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="سریال شناسنامه">
|
<a-form-item label="سریال شناسنامه">
|
||||||
@@ -180,8 +181,8 @@
|
|||||||
{{ item }}
|
{{ item }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
<input class="ant-input"
|
<a-input-number class="ant-input"
|
||||||
v-decorator="['iden_no_right',{initialValue: null},{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"
|
v-decorator="['iden_no_right']"
|
||||||
autocomplete="off" style="width: 77%;direction: rtl"/>
|
autocomplete="off" style="width: 77%;direction: rtl"/>
|
||||||
</a-input-group>
|
</a-input-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -200,12 +201,16 @@
|
|||||||
|
|
||||||
<a-form-item label="محل صدور">
|
<a-form-item label="محل صدور">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'محل صدور را وارد نمایید' }]}]"/>
|
v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'محل صدور را وارد نمایید' },{
|
||||||
|
pattern: /^([\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C ])+$/,
|
||||||
|
message: `محل صدور باید فارسی باشد `, }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="محل تولد">
|
<a-form-item label="محل تولد">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'محل تولد را وارد نمایید' }]}]"/>
|
v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'محل تولد را وارد نمایید' },{
|
||||||
|
pattern: /^([\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C ])+$/,
|
||||||
|
message: `محل صدور باید فارسی باشد `, }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|||||||
@@ -151,8 +151,8 @@
|
|||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="شماره حساب بانک پاسارگاد">
|
<a-form-item label="شماره حساب بانک پاسارگاد">
|
||||||
<input class="ant-input" autocomplete="off"
|
<a-input-number class="w-full" autocomplete="off"
|
||||||
v-decorator="['pasargad_bank_number',{initialValue: null},{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"/>
|
v-decorator="['pasargad_bank_number',{initialValue: null}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="حقوق درخواستی">
|
<a-form-item label="حقوق درخواستی">
|
||||||
@@ -191,8 +191,8 @@
|
|||||||
{{ item }}
|
{{ item }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
<input class="ant-input"
|
<a-input-number class="ant-input"
|
||||||
v-decorator="['iden_no_right',{initialValue: null},{ rules: [{pattern:/^[0-9]+$/,message:'مقدار وارد شده باید عددی باشد.'},] }]"
|
v-decorator="['iden_no_right']"
|
||||||
autocomplete="off" style="width: 77%;direction: rtl"/>
|
autocomplete="off" style="width: 77%;direction: rtl"/>
|
||||||
</a-input-group>
|
</a-input-group>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -210,12 +210,16 @@
|
|||||||
|
|
||||||
<a-form-item label="محل صدور">
|
<a-form-item label="محل صدور">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'محل صدور را وارد نمایید' }]}]"/>
|
v-decorator="['iden_where',{initialValue: null,rules: [{ required: true, message: 'محل صدور را وارد نمایید' },{
|
||||||
|
pattern: /^([\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C ])+$/,
|
||||||
|
message: `محل صدور باید فارسی باشد `, }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="محل تولد">
|
<a-form-item label="محل تولد">
|
||||||
<input class="ant-input" autocomplete="off"
|
<input class="ant-input" autocomplete="off"
|
||||||
v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'محل تولد را وارد نمایید' }]}]"/>
|
v-decorator="['birth_where',{initialValue: null,rules: [{ required: true, message: 'محل تولد را وارد نمایید' },{
|
||||||
|
pattern: /^([\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C ])+$/,
|
||||||
|
message: `محل صدور باید فارسی باشد `, }]}]"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/new-x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('/personnel/table/delete', 'لیست درخواست ها');
|
||||||
|
tbl.add(new Xtc('id', 'شناسه').filterText());
|
||||||
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
||||||
|
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||||
|
tbl.add(new Xtc('caj', 'ثبت نام').filterDate())
|
||||||
|
tbl.add(new Xtc('uaj', 'به روز رسانی').filterDate().filterKey('updated_at'))
|
||||||
|
tbl.add(new Xtc('id', 'عملیات').renderSlot('operator'))
|
||||||
|
/*tbl.addOpt()*/
|
||||||
|
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import XTbl, {Xtc} from '../../components/new-x-table/index';
|
||||||
|
|
||||||
|
const tbl = new XTbl('/proposal/table/delete', 'لیست درخواست ها');
|
||||||
|
tbl.add(new Xtc('id', 'شناسه').filterText());
|
||||||
|
tbl.add(new Xtc('name', 'نام و نام خانوادگی').filterText());
|
||||||
|
tbl.add(new Xtc('ncode', 'کد ملی').filterText())
|
||||||
|
tbl.add(new Xtc('caj', 'ثبت نام').filterDate())
|
||||||
|
tbl.add(new Xtc('uaj', 'به روز رسانی').filterDate().filterKey('updated_at'))
|
||||||
|
tbl.add(new Xtc('id', 'عملیات').renderSlot('operator'))
|
||||||
|
/*tbl.addOpt()*/
|
||||||
|
|
||||||
|
export default tbl;
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
<template>
|
||||||
|
<a-card>
|
||||||
|
|
||||||
|
<vs-tabs alignment="center" v-model="tabs">
|
||||||
|
<vs-tab label="بایگانی پرسنل">
|
||||||
|
<x-table v-if="$getAccess('archive.personnel.show')" v-show="tabs == 0" :model="personnelCols" ref="personnelTbl" class="mt-3">
|
||||||
|
<div slot="operator" slot-scope="text,record" class="grid grid-cols-1 md:grid-cols-1 gap-2">
|
||||||
|
<!-- v-if="$getAccess('personnel.delete')"-->
|
||||||
|
<a-popconfirm title="آیا می خواهید بازیافت کنید؟" v-if="$getAccess('archive.personnel.restore')"
|
||||||
|
ok-text="بله"
|
||||||
|
cancel-text="خیر"
|
||||||
|
@confirm="restorePersonnel(text.record.id)"
|
||||||
|
>
|
||||||
|
<a-button type="primary">بازیافت اطلاعات</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
<!-- <a-popconfirm title="آیا می خواهید حذف کنید؟" v-if="$getAccess('archive.personnel.destroy')"
|
||||||
|
ok-text="بله"
|
||||||
|
cancel-text="خیر"
|
||||||
|
@confirm="deletePersonnel(text.record.id)"
|
||||||
|
>
|
||||||
|
<a-button type="danger">حذف اطلاعات</a-button>
|
||||||
|
</a-popconfirm>-->
|
||||||
|
</div>
|
||||||
|
</x-table>
|
||||||
|
</vs-tab>
|
||||||
|
<vs-tab label="بایگانی درخواست ها">
|
||||||
|
<x-table v-if="$getAccess('archive.proposal.show')" v-show="tabs == 1" :model="proposalCols" ref="proposalTbl" class="mt-3">
|
||||||
|
<div slot="operator" slot-scope="text,record" class="grid grid-cols-1 md:grid-cols-1 gap-2">
|
||||||
|
<a-popconfirm title="آیا می خواهید بازیافت کنید؟" v-if="$getAccess('archive.proposal.restore')"
|
||||||
|
ok-text="بله"
|
||||||
|
cancel-text="خیر"
|
||||||
|
@confirm="restoreProposal(text.record.id)"
|
||||||
|
>
|
||||||
|
<a-button type="primary">بازیافت اطلاعات</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
<!-- <a-popconfirm title="آیا می خواهید حذف کنید؟" v-if="$getAccess('archive.proposal.destroy')"
|
||||||
|
ok-text="بله"
|
||||||
|
cancel-text="خیر"
|
||||||
|
@confirm="deleteProposal(text.record.id)"
|
||||||
|
>
|
||||||
|
<a-button type="danger">حذف اطلاعات</a-button>
|
||||||
|
</a-popconfirm>-->
|
||||||
|
</div>
|
||||||
|
</x-table>
|
||||||
|
</vs-tab>
|
||||||
|
</vs-tabs>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import personnelCols from './personelTbl';
|
||||||
|
import proposalCols from './proposalTbl';
|
||||||
|
import XTable from "@/components/new-x-table/XTable";
|
||||||
|
import axios from "@/axios"
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
XTable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
/* prsonalFileList: [],
|
||||||
|
file_id: undefined,
|
||||||
|
showMosahebeModal: false,
|
||||||
|
showInformationModal: false,
|
||||||
|
showAddMosahebeModal: false,
|
||||||
|
personalInformation: {},
|
||||||
|
personalDetails: {},*/
|
||||||
|
personnelCols,
|
||||||
|
proposalCols,
|
||||||
|
tabs: 0,
|
||||||
|
/* current: 0,
|
||||||
|
fromMosahebe: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
mosahebe: null,
|
||||||
|
interview_at: null,
|
||||||
|
row_id: null,
|
||||||
|
interview: [],
|
||||||
|
title_interview: ['دانش تخصصی', 'تحصیلات مرتبط', 'تجربه کاری مرتبط', 'رفتار و شخصیت عمومی', 'ویژگی های اختصاصی شغل'],
|
||||||
|
is_skeleton: false,
|
||||||
|
|
||||||
|
// requestEditMode:false,
|
||||||
|
editInterviewModel: false,
|
||||||
|
editingInterviewIndex: undefined,
|
||||||
|
mosahebeData: {},
|
||||||
|
fromMosahebe0: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
fromMosahebe1: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
fromMosahebe2: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
fromPersonel: this.$form.createForm(this, {name: 'coordinated'}),
|
||||||
|
setEmployeModel: false,
|
||||||
|
loading: false,
|
||||||
|
userTypes: [],*/
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/* computed: {
|
||||||
|
admin(){
|
||||||
|
return JSON.parse(localStorage.userInfo).name
|
||||||
|
}
|
||||||
|
},*/
|
||||||
|
methods: {
|
||||||
|
async restorePersonnel(id) {
|
||||||
|
try {
|
||||||
|
this.is_skeleton = true
|
||||||
|
await axios.get(`personnel/restore/${id}`)
|
||||||
|
this.$refs.personnelTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
} catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
} finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async deletePersonnel(id) {
|
||||||
|
try {
|
||||||
|
this.is_skeleton = true
|
||||||
|
await axios.delete(`personnel/delete/${id}`)
|
||||||
|
this.$refs.personnelTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
} catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
} finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async restoreProposal(id) {
|
||||||
|
try {
|
||||||
|
this.is_skeleton = true
|
||||||
|
await axios.get(`proposal/restore/${id}`)
|
||||||
|
this.$refs.proposalTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
} catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
} finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async deleteProposal(id) {
|
||||||
|
try {
|
||||||
|
this.is_skeleton = true
|
||||||
|
await axios.delete(`proposal/${id}`)
|
||||||
|
this.$refs.proposalTbl.fetch()
|
||||||
|
this.$ntSet()
|
||||||
|
} catch (e) {
|
||||||
|
this.$ntSetError()
|
||||||
|
} finally {
|
||||||
|
this.is_skeleton = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
// await this.getUserTypes()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user