Browse Source

职位发布地区选到任意一级

Xiao_123 6 months ago
parent
commit
b7c083a9f9

+ 1 - 0
src/views/recruit/enterprise/hirePosition/components/jobRequirements.vue

@@ -169,6 +169,7 @@ const items = ref({
       value: null,
       default: null,
       label: '工作城市 *',
+      checkStrictly: true,
       itemText: 'name',
       itemValue: 'id',
       clearable: false,

+ 1 - 1
src/views/recruit/enterprise/interviewManagement/components/item.vue

@@ -43,7 +43,7 @@
         </template>
         <span v-if="item.status === '1'" class="font-size-15 color-primary" @click="handleActionClick('completed', item)">完成面试</span>
         <span v-if="item.status === '3'" class="font-size-15 color-primary" @click="handleActionClick('feedback', item)">填写反馈</span>
-        <v-menu v-if="actionItems(item).length">
+        <v-menu v-if="actionItems(item).length && item?.job?.status === '0' && (item.time > Date.now())">
           <template v-slot:activator="{ props }">
             <v-icon v-bind="props" class="mx-3" size="20" color="primary">mdi-dots-horizontal</v-icon>
           </template>

+ 1 - 0
src/views/recruit/enterprise/positionManagement/components/jobRequirements.vue

@@ -172,6 +172,7 @@ const items = ref({
       itemText: 'name',
       itemValue: 'id',
       clearable: false,
+      checkStrictly: true,
       items: [],
     },
     {

+ 24 - 2
src/views/recruit/enterprise/search/retrieval/index.vue

@@ -5,7 +5,10 @@
     </div>
     <div>
       <Position :isClear="clear" @clear="clear = false" :selectData="position" @select="val => position = val"></Position>
-      <Area :isClear="clear" @clear="clear = false" @select="val => handleSearch('areaIds', val)"></Area>
+      <div class="font-size-15 d-flex align-center color-666">
+        <span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区:</span>
+        <cascade v-model="queryParams.areaIds" :item="selectItems" @change="val => handleSearch('areaIds', val)" style="width: 300px;"></cascade>
+      </div>
       <CommonPage :isClear="clear" @clear="clear = false" class="my-3" dictType="menduner_education_type" title="最高学历" @select="val => handleSearch('eduType', val)"></CommonPage>
       <CommonPage :isClear="clear" @clear="clear = false" dictType="menduner_exp_type" title="工作经验" @select="val => handleSearch('expType', val)"></CommonPage>
       <v-divider class="mt-1 mb-3"></v-divider>
@@ -69,7 +72,6 @@ defineOptions({ name: 'searchRetrieval' })
 import { ref, computed } from 'vue'
 import CommonPage from '../components/common.vue'
 import Position from './components/position.vue'
-import Area from './components/area.vue'
 import { getPersonSearchPage } from '@/api/enterprise.js'
 import { dealDictArrayData } from '@/utils/position'
 import { timesTampChange } from '@/utils/date'
@@ -80,6 +82,7 @@ import Snackbar from '@/plugins/snackbar'
 import { saveInterviewInvite } from '@/api/recruit/enterprise/interview'
 import { useRouter } from 'vue-router'; const router = useRouter()
 import InvitePage from '@/views/recruit/enterprise/interviewManagement/components/invite'
+import { getDict } from '@/hooks/web/useDictionaries'
 
 const textItem = ref({
   type: 'text',
@@ -101,6 +104,25 @@ const queryParams = ref({
   eduType: ''
 })
 
+const selectItems = ref({
+  value: null,
+  itemText: 'name',
+  itemValue: 'id',
+  hideDetails: true,
+  clearable: true,
+  multiple: true,
+  checkStrictly: true,
+  collapseTags: true,
+  placeholder: '地区',
+  items: [],
+})
+
+getDict('areaTreeData', null, 'areaTreeData').then(res => {
+  const data = res?.data?.length ? res.data : []
+  if (data[0] && data[0].id === 10000) data[0].children = []
+  selectItems.value.items = data
+})
+
 const total = ref(0)
 const items = ref([])
 const loading = ref(false)