|
@@ -1,6 +1,7 @@
|
|
|
<template>
|
|
|
- <div class="resume-header mb-2">
|
|
|
+ <div class="resume-header mb-4 mt-1">
|
|
|
<div class="resume-title">{{ enterpriseName }}</div>
|
|
|
+ <TextInput :item="textItem" @enter="handleSearch" @appendInnerClick="handleSearch" />
|
|
|
</div>
|
|
|
<div v-if="items.length > 0" v-loading="loading">
|
|
|
<v-hover v-slot="{ isHovering, props }" v-for="val in items" :key="val.id">
|
|
@@ -36,7 +37,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-defineOptions({ name: 'jobFairDetails' })
|
|
|
+defineOptions({ name: 'jobCard' })
|
|
|
import { ref, watch, reactive } from 'vue'
|
|
|
import { formatName } from '@/utils/getText'
|
|
|
import { getJobFairEntJobPage } from '@/api/recruit/personal/jobFair'
|
|
@@ -54,6 +55,7 @@ const items = ref([])
|
|
|
const query = reactive({
|
|
|
pageNo: 1,
|
|
|
pageSize: 10,
|
|
|
+ keyword: '',
|
|
|
jobFairId: props.jobFairId
|
|
|
})
|
|
|
const total = ref(0)
|
|
@@ -63,7 +65,18 @@ const desc = [
|
|
|
{ mdi: 'mdi-school-outline', value: 'eduName' },
|
|
|
{ mdi: 'mdi-clock-time-ten-outline', value: 'expName' }
|
|
|
]
|
|
|
+const textItem = ref({
|
|
|
+ type: 'text',
|
|
|
+ width: 300,
|
|
|
+ value: '',
|
|
|
+ label: '职位关键字',
|
|
|
+ placeholder: '请输入职位关键字',
|
|
|
+ clearable: true,
|
|
|
+ hideDetails: true,
|
|
|
+ appendInnerIcon: 'mdi-magnify'
|
|
|
+})
|
|
|
|
|
|
+// 职位列表
|
|
|
const getPositionList = async () => {
|
|
|
loading.value = true
|
|
|
try {
|
|
@@ -79,6 +92,14 @@ const getPositionList = async () => {
|
|
|
} catch {}
|
|
|
}
|
|
|
|
|
|
+// 职位关键字检索
|
|
|
+const handleSearch = (val) => {
|
|
|
+ query.keyword = val
|
|
|
+ query.pageNo = 1
|
|
|
+ getPositionList()
|
|
|
+}
|
|
|
+
|
|
|
+// 分页
|
|
|
const handleChangePage = (index) => {
|
|
|
query.pageNo = index
|
|
|
getPositionList()
|
|
@@ -93,6 +114,7 @@ watch(
|
|
|
{ immediate: true }
|
|
|
)
|
|
|
|
|
|
+// 跳转职位详情
|
|
|
const handleClick = (id) => {
|
|
|
window.open(`/recruit/personal/position/details/${id}`)
|
|
|
}
|