Forráskód Böngészése

过期职位展示

Xiao_123 7 hónapja
szülő
commit
369301d575

+ 4 - 3
src/views/recruit/enterprise/hirePosition/components/item.vue

@@ -26,7 +26,7 @@
         </div>
         <div class="d-flex align-center">
           <v-chip v-if="(val.status-0) === 99" color="warning" label>职位待发布,支付后成功后自动发布</v-chip>
-          <v-chip v-if="val.status === '1'" color="error" class="cursor-pointer" label  style="text-decoration: underline;" @click="handleAction(1, val)">职位已关闭,点击激活职位</v-chip>
+          <v-chip v-if="val.status === '1' && tab === 2" color="error" class="cursor-pointer" label  style="text-decoration: underline;" @click="handleAction(1, val)">职位已关闭,点击激活职位</v-chip>
         </div>
       </div>
       <div class="bottom pa-5 d-flex justify-space-between align-center">
@@ -39,7 +39,7 @@
           <span v-if="(val.status-0) === 99" class="lines"></span>
           <span v-if="(val.status - 0) !== 99 && val.status !== '1'" class="cursor-pointer actions" @click="handleAction(0, val)">{{ $t('common.close') }}</span>
           <span v-if="(val.status - 0) !== 99 && val.status !== '1'" class="lines"></span>
-          <span class="cursor-pointer" @click="handleEdit(val)">编辑</span>
+          <span v-if="tab === 1" class="cursor-pointer" @click="handleEdit(val)">编辑</span>
         </div>
       </div>
     </div>
@@ -71,7 +71,8 @@ import confirmPaymentDialog from '@/components/pay/confirmPaymentDialog.vue'
 const { t } = useI18n()
 const emit = defineEmits(['refresh'])
 defineProps({
-  items: Array
+  items: Array,
+  tab: Number
 })
 
 const loading = ref(false)

+ 30 - 1
src/views/recruit/enterprise/hirePosition/index.vue

@@ -10,7 +10,14 @@
       </div>
       
       <div class="mt-3">
-        <PositionItem v-if="items.length" :items="items" @refresh="getPositionList"></PositionItem>
+        <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#f7f8fa" @update:model-value="handleChangeTab">
+          <v-tab v-for="val in tabList" :key="val.value" :value="val.value"> {{ val.label }}</v-tab>
+        </v-tabs>
+        <v-window v-model="tab" class="mt-3">
+          <v-window-item v-for="val in tabList" :key="val.value" :value="val.value">
+            <PositionItem v-if="items.length" :tab="tab" :items="items" @refresh="getPositionList"></PositionItem>
+          </v-window-item>
+        </v-window>
         <Empty v-if="!items.length" :message="tipsText" :elevation="false"></Empty>
         <CtPagination
           v-else
@@ -44,10 +51,20 @@ const tipsText = ref(t('common.noData'))
 const query = ref({
   pageSize: 10,
   pageNo: 1,
+  status: 0, // 0招聘中 1已关闭
+  hasExpiredData: false, // true 到期职位
   hire: true
 })
 const exportLoading = ref(false)
 
+const tab = ref(1)
+
+const tabList = [
+  { label: t('position.recruitmentInProgress'), value: 1 },
+  { label: t('position.closed'), value: 2 },
+  { label: t('position.expiredPosition'), value: 3 }
+]
+
 const items = ref([])
 const textItem = ref({
   type: 'text',
@@ -76,6 +93,13 @@ const handleExport = async () => {
 
 // 获取职位列表
 const getPositionList = async () => {
+  if (tab.value !== 3) {
+    query.value.status = tab.value === 1 ? 0 : (tab.value === 2 ? 1 : null)
+    query.value.hasExpiredData = false
+  } else {
+    query.value.hasExpiredData = true
+    delete query.value.status
+  }
   const { list, total: number } = await getJobAdvertisedList(query.value)
   if (!list.length) {
     if (query.value.name) tipsText.value = '暂无数据,请更换关键词后再试'
@@ -85,6 +109,11 @@ const getPositionList = async () => {
 }
 getPositionList()
 
+const handleChangeTab = () => {
+  query.value.pageNo = 1
+  getPositionList()
+}
+
 const handleChangePage = (index) => {
   query.value.pageNo = index
   getPositionList()

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

@@ -56,7 +56,7 @@
               <span class="cursor-pointer actions" @click="handleAction(0, '', val)">{{ $t('common.close') }}</span>
               <span class="lines"></span>
             </div>
-            <div class="cursor-pointer actions" @click="handleEdit(val)">{{ $t('common.edit') }}</div>
+            <div v-if="tab === 1" class="cursor-pointer actions" @click="handleEdit(val)">{{ $t('common.edit') }}</div>
           </div>
         </div>
       </div>

+ 5 - 1
src/views/recruit/enterprise/positionManagement/index.vue

@@ -97,7 +97,11 @@ const handleExport = async () => {
 const getPositionList = async () => {
   if (tab.value !== 3) {
     query.value.status = tab.value === 1 ? 0 : (tab.value === 2 ? 1 : null)
-  } else query.value.hasExpiredData = true
+    query.value.hasExpiredData = false
+  } else {
+    query.value.hasExpiredData = true
+    delete query.value.status
+  }
   const { list, total: number } = await getJobAdvertisedList(query.value)
   if (!list.length) {
     if (query.value.name) tipsText.value = '暂无数据,请更换关键词后再试'