|
|
@@ -4,32 +4,32 @@
|
|
|
<template #detail>
|
|
|
<a-form ref="formRef" :labelCol="labelCol" :wrapperCol="wrapperCol" class="antd-modal-form" name="PostInfoForm">
|
|
|
<a-row>
|
|
|
- <a-col :span="12">
|
|
|
- <a-form-item id="PostInfoForm-enterpriseId" label="关联企业" name="enterpriseId" v-bind="validateInfos.enterpriseId">
|
|
|
- <JSearchSelect v-model:value="formData.enterpriseId" dict="enterprise_info,company_name,id" placeholder="请选择关联企业" />
|
|
|
+ <a-col :span="8">
|
|
|
+ <a-form-item id="PostInfoForm-enterpriseId" label="单位名称" name="enterpriseId" v-bind="validateInfos.enterpriseId">
|
|
|
+ <JSearchSelect v-model:value="formData.enterpriseId" dict="enterprise_info,company_name,id" placeholder="请选择关联单位" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
- <a-form-item id="PostInfoForm-occupation" label="职业" name="occupation" v-bind="validateInfos.occupation">
|
|
|
- <a-input v-model:value="formData.occupation" allow-clear placeholder="请输入职业"></a-input>
|
|
|
+ <a-col :span="8">
|
|
|
+ <a-form-item id="PostInfoForm-occupation" label="职业工种" name="occupation" v-bind="validateInfos.occupation">
|
|
|
+ <a-input v-model:value="formData.occupation" allow-clear placeholder="请输入职业工种"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-postName" label="岗位名称" name="postName" v-bind="validateInfos.postName">
|
|
|
<a-input v-model:value="formData.postName" allow-clear placeholder="请输入岗位名称"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-workNature" label="工作性质" name="workNature" v-bind="validateInfos.workNature">
|
|
|
- <a-input v-model:value="formData.workNature" allow-clear placeholder="请输入工作性质"></a-input>
|
|
|
+ <a-select v-model:value="formData.workNature" allow-clear placeholder="请选择工作性质" :options="workNatureOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-salaryType" label="薪酬待遇" name="salaryType" v-bind="validateInfos.salaryType">
|
|
|
- <a-input v-model:value="formData.salaryType" allow-clear placeholder="请输入薪酬待遇"></a-input>
|
|
|
+ <a-select v-model:value="formData.salaryType" allow-clear placeholder="请选择薪酬待遇" :options="salaryTypeOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-salaryMin" label="最低薪酬" name="salaryMin" v-bind="validateInfos.salaryMin">
|
|
|
<a-input-number
|
|
|
v-model:value="formData.salaryMin"
|
|
|
@@ -41,7 +41,7 @@
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-salaryMax" label="最高薪酬" name="salaryMax" v-bind="validateInfos.salaryMax">
|
|
|
<a-input-number
|
|
|
v-model:value="formData.salaryMax"
|
|
|
@@ -53,12 +53,12 @@
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-recruitCount" label="招聘人数" name="recruitCount" v-bind="validateInfos.recruitCount">
|
|
|
<a-input-number v-model:value="formData.recruitCount" :min="1" allow-clear placeholder="请输入招聘人数" style="width: 100%" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-postValidDate" label="岗位有效期" name="postValidDate" v-bind="validateInfos.postValidDate">
|
|
|
<a-date-picker
|
|
|
v-model:value="formData.postValidDate"
|
|
|
@@ -69,81 +69,81 @@
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-postTag" label="职位标签" name="postTag" v-bind="validateInfos.postTag">
|
|
|
- <a-input v-model:value="formData.postTag" allow-clear placeholder="请输入职位标签"></a-input>
|
|
|
+ <a-select v-model:value="formData.postTag" allow-clear placeholder="请选择职位标签" :options="postTagOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-otherBenefits" label="其他福利" name="otherBenefits" v-bind="validateInfos.otherBenefits">
|
|
|
<a-textarea v-model:value="formData.otherBenefits" :rows="3" allow-clear placeholder="请输入其他福利"></a-textarea>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="24">
|
|
|
- <a-form-item
|
|
|
- id="PostInfoForm-postDesc"
|
|
|
- :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
|
|
|
- :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }"
|
|
|
- label="岗位描述"
|
|
|
- name="postDesc"
|
|
|
- v-bind="validateInfos.postDesc"
|
|
|
- >
|
|
|
- <a-textarea v-model:value="formData.postDesc" :rows="4" allow-clear placeholder="请输入岗位描述"></a-textarea>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-educationRequire" label="学历要求" name="educationRequire" v-bind="validateInfos.educationRequire">
|
|
|
- <a-input v-model:value="formData.educationRequire" allow-clear placeholder="请输入学历要求"></a-input>
|
|
|
+ <a-select v-model:value="formData.educationRequire" allow-clear placeholder="请选择学历要求" :options="educationOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
id="PostInfoForm-workExperienceRequire"
|
|
|
label="工作经验"
|
|
|
name="workExperienceRequire"
|
|
|
v-bind="validateInfos.workExperienceRequire"
|
|
|
>
|
|
|
- <a-input v-model:value="formData.workExperienceRequire" allow-clear placeholder="请输入工作经验"></a-input>
|
|
|
+ <a-select v-model:value="formData.workExperienceRequire" allow-clear placeholder="请选择工作经验" :options="workExperienceOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="24">
|
|
|
+ <a-form-item
|
|
|
+ id="PostInfoForm-postDesc"
|
|
|
+ :labelCol="{ span: 2}"
|
|
|
+ :wrapperCol="{ span: 21 }"
|
|
|
+ label="岗位描述"
|
|
|
+ name="postDesc"
|
|
|
+ v-bind="validateInfos.postDesc"
|
|
|
+ >
|
|
|
+ <a-textarea v-model:value="formData.postDesc" :rows="4" allow-clear placeholder="请输入岗位描述"></a-textarea>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-skillLevelRequire" label="职业技能等级" name="skillLevelRequire" v-bind="validateInfos.skillLevelRequire">
|
|
|
- <a-input v-model:value="formData.skillLevelRequire" allow-clear placeholder="请输入职业技能等级"></a-input>
|
|
|
+ <a-select v-model:value="formData.skillLevelRequire" allow-clear placeholder="请选择职业技能等级" :options="skillLevelOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-foreignLanguage" label="外语语种" name="foreignLanguage" v-bind="validateInfos.foreignLanguage">
|
|
|
<a-input v-model:value="formData.foreignLanguage" allow-clear placeholder="请输入外语语种"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-languageLevel" label="外语水平要求" name="languageLevel" v-bind="validateInfos.languageLevel">
|
|
|
- <a-input v-model:value="formData.languageLevel" allow-clear placeholder="请输入外语水平要求"></a-input>
|
|
|
+ <a-select v-model:value="formData.languageLevel" allow-clear placeholder="请选择外语水平要求" :options="languageLevelOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-contactPerson" label="联系人" name="contactPerson" v-bind="validateInfos.contactPerson">
|
|
|
<a-input v-model:value="formData.contactPerson" allow-clear placeholder="请输入联系人"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-contactPhone" label="联系电话" name="contactPhone" v-bind="validateInfos.contactPhone">
|
|
|
<a-input v-model:value="formData.contactPhone" allow-clear placeholder="请输入联系电话"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-workLocation" label="工作地点" name="workLocation" v-bind="validateInfos.workLocation">
|
|
|
<a-input v-model:value="formData.workLocation" allow-clear placeholder="请输入工作地点"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-detailedAddress" label="详细地址" name="detailedAddress" v-bind="validateInfos.detailedAddress">
|
|
|
<a-input v-model:value="formData.detailedAddress" allow-clear placeholder="请输入详细地址"></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="12">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item id="PostInfoForm-dataSource" label="数据来源" name="dataSource" v-bind="validateInfos.dataSource">
|
|
|
- <a-input v-model:value="formData.dataSource" allow-clear placeholder="请输入数据来源"></a-input>
|
|
|
+ <a-select v-model:value="formData.dataSource" allow-clear placeholder="请选择数据来源" :options="dataSourceOptions" />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
@@ -161,6 +161,7 @@
|
|
|
import JSearchSelect from '/@/components/Form/src/jeecg/components/JSearchSelect.vue';
|
|
|
import { Form } from 'ant-design-vue';
|
|
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
|
|
+ import { useDict } from '/@/hooks/dictionary/useDict';
|
|
|
|
|
|
const props = defineProps({
|
|
|
formDisabled: { type: Boolean, default: false },
|
|
|
@@ -200,20 +201,34 @@
|
|
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
|
|
const confirmLoading = ref<boolean>(false);
|
|
|
|
|
|
+ // 预加载字典
|
|
|
+ const { getDictOptions } = useDict([
|
|
|
+ 'WorkNature', 'SalaryType', 'PostTag', 'Education',
|
|
|
+ 'WorkExperience', 'SkillLevel', 'LanguageLevel', 'DataSource'
|
|
|
+ ]);
|
|
|
+ const workNatureOptions = computed(() => getDictOptions('WorkNature'));
|
|
|
+ const salaryTypeOptions = computed(() => getDictOptions('SalaryType'));
|
|
|
+ const postTagOptions = computed(() => getDictOptions('PostTag'));
|
|
|
+ const educationOptions = computed(() => getDictOptions('Education'));
|
|
|
+ const workExperienceOptions = computed(() => getDictOptions('WorkExperience'));
|
|
|
+ const skillLevelOptions = computed(() => getDictOptions('SkillLevel'));
|
|
|
+ const languageLevelOptions = computed(() => getDictOptions('LanguageLevel'));
|
|
|
+ const dataSourceOptions = computed(() => getDictOptions('DataSource'));
|
|
|
+
|
|
|
//表单验证
|
|
|
const validatorRules = reactive({
|
|
|
enterpriseId: [{ required: true, message: '请选择关联企业' }],
|
|
|
occupation: [{ required: true, message: '请输入职业' }],
|
|
|
postName: [{ required: true, message: '请输入岗位名称' }],
|
|
|
- workNature: [{ required: true, message: '请输入工作性质' }],
|
|
|
- salaryType: [{ required: true, message: '请输入薪酬待遇' }],
|
|
|
+ workNature: [{ required: true, message: '请选择工作性质' }],
|
|
|
+ salaryType: [{ required: true, message: '请选择薪酬待遇' }],
|
|
|
recruitCount: [{ required: true, message: '请输入招聘人数' }],
|
|
|
postValidDate: [{ required: true, message: '请选择岗位有效期' }],
|
|
|
- postTag: [{ required: true, message: '请输入职位标签' }],
|
|
|
+ postTag: [{ required: true, message: '请选择职位标签' }],
|
|
|
postDesc: [{ required: true, message: '请输入岗位描述' }],
|
|
|
- educationRequire: [{ required: true, message: '请输入学历要求' }],
|
|
|
- workExperienceRequire: [{ required: true, message: '请输入工作经验' }],
|
|
|
- skillLevelRequire: [{ required: true, message: '请输入职业技能等级' }],
|
|
|
+ educationRequire: [{ required: true, message: '请选择学历要求' }],
|
|
|
+ workExperienceRequire: [{ required: true, message: '请选择工作经验' }],
|
|
|
+ skillLevelRequire: [{ required: true, message: '请选择职业技能等级' }],
|
|
|
contactPerson: [{ required: true, message: '请输入联系人' }],
|
|
|
contactPhone: [
|
|
|
{ required: true, message: '请输入联系电话' },
|
|
|
@@ -221,7 +236,7 @@
|
|
|
],
|
|
|
workLocation: [{ required: true, message: '请输入工作地点' }],
|
|
|
detailedAddress: [{ required: true, message: '请输入详细地址' }],
|
|
|
- dataSource: [{ required: true, message: '请输入数据来源' }],
|
|
|
+ dataSource: [{ required: true, message: '请选择数据来源' }],
|
|
|
salaryMax: [
|
|
|
{
|
|
|
validator: (_, value) => {
|