|
@@ -1,30 +1,30 @@
|
|
<!-- -->
|
|
<!-- -->
|
|
<template>
|
|
<template>
|
|
<view class="f-straight wrapper">
|
|
<view class="f-straight wrapper">
|
|
- <uni-forms ref="form" :modelValue="formData" :rules="rules" validateTrigger="bind" label-width="90px" label-align="right">
|
|
|
|
|
|
+ <uni-forms ref="form" :modelValue="formData" :rules="salaryDisabled ? rules : {...rules, ...salaryRules}" validateTrigger="bind" label-width="90px" label-align="right">
|
|
<uni-forms-item label="招聘类型" name="type" required>
|
|
<uni-forms-item label="招聘类型" name="type" required>
|
|
<uni-data-picker popup-title="请选择招聘类型" v-model="formData.type" :localdata="jobType" :clear-icon="false" :map="{ text: 'key', value: 'value'}" @change="typeChange"></uni-data-picker>
|
|
<uni-data-picker popup-title="请选择招聘类型" v-model="formData.type" :localdata="jobType" :clear-icon="false" :map="{ text: 'key', value: 'value'}" @change="typeChange"></uni-data-picker>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="学历要求" name="eduType" required>
|
|
<uni-forms-item label="学历要求" name="eduType" required>
|
|
- <uni-data-picker popup-title="请选择学历要求" v-model="formData.eduType" :localdata="dictObj?.edu || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
|
|
|
|
+ <uni-data-picker popup-title="请选择学历要求" v-model="formData.eduType" :localdata="dictObj?.edu_extend || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="工作经验" name="expType" required>
|
|
<uni-forms-item label="工作经验" name="expType" required>
|
|
- <uni-data-picker popup-title="请选择工作经验" v-model="formData.expType" :localdata="dictObj?.exp || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
|
|
|
|
+ <uni-data-picker popup-title="请选择工作经验" v-model="formData.expType" :localdata="dictObj?.exp_extend || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
- <uni-forms-item label="最低薪资" name="payFrom" :required="Boolean(!salary?.length)" label-width="90px">
|
|
|
|
|
|
+ <uni-forms-item label="最低薪资" name="payFrom" :required="!salaryDisabled" label-width="90px">
|
|
<view class="d-flex">
|
|
<view class="d-flex">
|
|
- <uni-number-box v-model="formData.payFrom" :disabled="Boolean(salary?.length)" :min="1" :max="999999999" :step="salaryStep" :width="100" @change="payChange"></uni-number-box>
|
|
|
|
- <uni-data-checkbox v-model="salary" multiple :localdata="[{ text: '薪资面议', value: 1 }]" selectedColor="#00B760" class="ss-m-l-20" ></uni-data-checkbox>
|
|
|
|
|
|
+ <uni-number-box v-model="formData.payFrom" :disabled="salaryDisabled" :min="1" :max="999999999" :step="salaryStep" :width="100" @change="payChange"></uni-number-box>
|
|
|
|
+ <uni-data-checkbox v-model="salary" multiple :localdata="[{ text: '薪资面议', value: 1 }]" selectedColor="#00B760" class="ss-m-l-20" @change="salaryCheckboxChange"></uni-data-checkbox>
|
|
</view>
|
|
</view>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
- <uni-forms-item label="最高薪资" name="payTo" :required="Boolean(!salary?.length)" label-width="90px">
|
|
|
|
- <uni-number-box v-model="formData.payTo" :disabled="Boolean(salary?.length)" :min="payToMin" :max="999999999" :step="salaryStep" :width="100"></uni-number-box>
|
|
|
|
|
|
+ <uni-forms-item label="最高薪资" name="payTo" :required="!salaryDisabled" label-width="90px">
|
|
|
|
+ <uni-number-box v-model="formData.payTo" :disabled="salaryDisabled" :min="payToMin" :max="999999999" :step="salaryStep" :width="100"></uni-number-box>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
- <uni-forms-item label="计薪时段" name="payUnit" :required="Boolean(!salary?.length)">
|
|
|
|
- <uni-data-picker popup-title="请选择计薪时段" :placeholder="Boolean(salary?.length) ? '薪资面议' : '请选择'" v-model="formData.payUnit" :readonly="Boolean(salary?.length)" :localdata="dictObj?.payUnit || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
|
|
|
|
+ <uni-forms-item label="计薪时段" name="payUnit" :required="!salaryDisabled">
|
|
|
|
+ <uni-data-picker popup-title="请选择计薪时段" :placeholder="salaryDisabled ? '薪资面议' : '请选择'" v-model="formData.payUnit" :readonly="Boolean(salary?.length)" :localdata="dictObj?.payUnit || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
<uni-forms-item label="工作城市" name="areaId" required label-width="90px">
|
|
<uni-forms-item label="工作城市" name="areaId" required label-width="90px">
|
|
- <uni-data-picker popup-title="请选择工作城市" v-model="formData.areaId" :localdata="dictObj?.areaTreeData || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
|
|
|
|
|
|
+ <uni-data-picker popup-title="请选择工作城市" v-model="formData.areaId" :localdata="dictObj?.areaTreeData_extend || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
<uni-forms-item required label="详情地址" name="address">
|
|
<uni-forms-item required label="详情地址" name="address">
|
|
<uni-easyinput v-model="formData.address" placeholder="请填写详细地址"></uni-easyinput>
|
|
<uni-easyinput v-model="formData.address" placeholder="请填写详细地址"></uni-easyinput>
|
|
@@ -54,7 +54,7 @@
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<script setup>
|
|
-import { ref, unref } from 'vue'
|
|
|
|
|
|
+import { ref, unref, computed } from 'vue'
|
|
import { dictObj } from '@/utils/position.js'
|
|
import { dictObj } from '@/utils/position.js'
|
|
import { getEnterprisePubJobTypePermission } from '@/api/new/position'
|
|
import { getEnterprisePubJobTypePermission } from '@/api/new/position'
|
|
import portrait from './portrait.vue'
|
|
import portrait from './portrait.vue'
|
|
@@ -68,16 +68,24 @@ const props = defineProps({
|
|
|
|
|
|
const formData = ref({
|
|
const formData = ref({
|
|
type: props.data?.type || '',
|
|
type: props.data?.type || '',
|
|
- eduType: props.data?.eduType || '',
|
|
|
|
- expType: props.data?.expType || '',
|
|
|
|
|
|
+ eduType: props.data?.eduType ? props.data?.eduType : props.data ? -1 : '',
|
|
|
|
+ expType: props.data?.expType ? props.data?.expType : props.data ? -1 : '',
|
|
payFrom: props.data?.payFrom || '',
|
|
payFrom: props.data?.payFrom || '',
|
|
payTo: props.data?.payTo || '',
|
|
payTo: props.data?.payTo || '',
|
|
payUnit: props.data?.payUnit || '',
|
|
payUnit: props.data?.payUnit || '',
|
|
- areaId: props.data?.areaId || '',
|
|
|
|
|
|
+ areaId: props.data?.areaId ? props.data?.areaId : props.data ? -1 : '',
|
|
address: props.data?.address || '',
|
|
address: props.data?.address || '',
|
|
})
|
|
})
|
|
const tagList = ref(props.data?.tagList?.length ? props.data.tagList : [])
|
|
const tagList = ref(props.data?.tagList?.length ? props.data.tagList : [])
|
|
|
|
|
|
|
|
+const salaryDisabled = computed(() => {
|
|
|
|
+ return Boolean(salary?.value.length)
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+const salaryCheckboxChange = (e) => {
|
|
|
|
+ // const bool = e.detail.value.length ? e.detail.value[0] : ''
|
|
|
|
+}
|
|
|
|
+
|
|
const rules = {
|
|
const rules = {
|
|
type:{
|
|
type:{
|
|
rules: [{required: true, errorMessage: '请选择招聘类型' }]
|
|
rules: [{required: true, errorMessage: '请选择招聘类型' }]
|
|
@@ -88,7 +96,16 @@ const rules = {
|
|
expType:{
|
|
expType:{
|
|
rules: [{required: true, errorMessage: '请选择工作经验' }]
|
|
rules: [{required: true, errorMessage: '请选择工作经验' }]
|
|
},
|
|
},
|
|
- payFrom:{
|
|
|
|
|
|
+ areaId:{
|
|
|
|
+ rules: [{required: true, errorMessage: '请选择工作城市' }]
|
|
|
|
+ },
|
|
|
|
+ address:{
|
|
|
|
+ rules: [{required: true, errorMessage: '请填写详细地址' }]
|
|
|
|
+ },
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const salaryRules = {
|
|
|
|
+ payFrom: {
|
|
rules: [
|
|
rules: [
|
|
{
|
|
{
|
|
required: true,
|
|
required: true,
|
|
@@ -113,7 +130,7 @@ const rules = {
|
|
}
|
|
}
|
|
]
|
|
]
|
|
},
|
|
},
|
|
- payTo:{
|
|
|
|
|
|
+ payTo: {
|
|
rules: [
|
|
rules: [
|
|
{
|
|
{
|
|
required: true,
|
|
required: true,
|
|
@@ -140,13 +157,7 @@ const rules = {
|
|
},
|
|
},
|
|
payUnit: {
|
|
payUnit: {
|
|
rules: [{required: true, errorMessage: '请选择计薪时段' }]
|
|
rules: [{required: true, errorMessage: '请选择计薪时段' }]
|
|
- },
|
|
|
|
- areaId:{
|
|
|
|
- rules: [{required: true, errorMessage: '请选择工作城市' }]
|
|
|
|
- },
|
|
|
|
- address:{
|
|
|
|
- rules: [{required: true, errorMessage: '请填写详细地址' }]
|
|
|
|
- },
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
const jobType = ref([])
|
|
const jobType = ref([])
|
|
@@ -195,7 +206,6 @@ const getQuery = async () => {
|
|
if (obj.salary && ['payFrom', 'payTo', 'payUnit'].includes(key)) obj[key] = null
|
|
if (obj.salary && ['payFrom', 'payTo', 'payUnit'].includes(key)) obj[key] = null
|
|
})
|
|
})
|
|
|
|
|
|
- console.log('岗位要求:', obj)
|
|
|
|
return obj
|
|
return obj
|
|
}
|
|
}
|
|
|
|
|