|
@@ -3,25 +3,25 @@
|
|
|
<div class="resume-title">{{ enterpriseName }}</div>
|
|
|
</div>
|
|
|
<div v-if="items.length > 0" v-loading="loading">
|
|
|
- <v-hover v-slot="{ isHovering, props }" v-for="val in items" :key="val.job.id">
|
|
|
- <v-card class="cursor-pointer mb-3 pa-3" v-bind="props" :elevation="isHovering ? 7 : 3" @click="handleClick(val.job.id)">
|
|
|
+ <v-hover v-slot="{ isHovering, props }" v-for="val in items" :key="val.id">
|
|
|
+ <v-card class="cursor-pointer mb-3 pa-3" v-bind="props" :elevation="isHovering ? 7 : 3" @click="handleClick(val.id)">
|
|
|
<div class="d-flex justify-space-between">
|
|
|
- <p class="job-name" v-ellipse-tooltip>{{ formatName(val.job.name) }}</p>
|
|
|
- <p v-if="!val.job.payFrom && !val.job.payTo" class="salary">面议</p>
|
|
|
- <p v-else class="salary ml-3">{{ val.job.payFrom ? val.job.payFrom + '-' : '' }}{{ val.job.payTo }}{{ val.job.payName ? '/' + val.job.payName : '' }}</p>
|
|
|
+ <p class="job-name" v-ellipse-tooltip>{{ formatName(val.name) }}</p>
|
|
|
+ <p v-if="!val.payFrom && !val.payTo" class="salary">面议</p>
|
|
|
+ <p v-else class="salary ml-3">{{ val.payFrom ? val.payFrom + '-' : '' }}{{ val.payTo }}{{ val.payName ? '/' + val.payName : '' }}</p>
|
|
|
</div>
|
|
|
<div class="d-flex justify-space-between mt-3">
|
|
|
<div class="color-666 font-size-14">
|
|
|
<span v-for="k in desc" :key="k.mdi">
|
|
|
- <span v-if="val.job[k.value] || k.value === 'areaName'" class="mr-5">
|
|
|
+ <span v-if="val[k.value] || k.value === 'areaName'" class="mr-5">
|
|
|
<v-icon color="var(--color-666)" size="15">{{ k.mdi }}</v-icon>
|
|
|
<span class="ml-1 tag-text">
|
|
|
- {{ k.value === 'areaName' ? !val.job.areaId ? '全国' : val.job.area?.str : val.job[k.value] }}
|
|
|
+ {{ k.value === 'areaName' ? !val.areaId ? '全国' : val.area?.str : val[k.value] }}
|
|
|
</span>
|
|
|
</span>
|
|
|
</span>
|
|
|
</div>
|
|
|
- <div class="font-size-14 color-999">{{ timesTampChange(val.job.updateTime) }} 刷新</div>
|
|
|
+ <div class="font-size-14 color-999">{{ timesTampChange(val.updateTime) }} 刷新</div>
|
|
|
</div>
|
|
|
</v-card>
|
|
|
</v-hover>
|
|
@@ -39,21 +39,22 @@
|
|
|
defineOptions({ name: 'jobFairDetails' })
|
|
|
import { ref, watch, reactive } from 'vue'
|
|
|
import { formatName } from '@/utils/getText'
|
|
|
-import { useRouter, useRoute } from 'vue-router'; const router = useRouter(); const route = useRoute()
|
|
|
-import { getJobAdvertisedSearch } from '@/api/position'
|
|
|
-import { dealDictObjData } from '@/utils/position'
|
|
|
+import { getJobFairEntJobPage } from '@/api/recruit/personal/jobFair'
|
|
|
+import { dealDictArrayData } from '@/utils/position'
|
|
|
import { timesTampChange } from '@/utils/date'
|
|
|
|
|
|
const props = defineProps({
|
|
|
enterpriseId: [String, Number],
|
|
|
- enterpriseName: String
|
|
|
+ enterpriseName: String,
|
|
|
+ jobFairId: [String, Number]
|
|
|
})
|
|
|
|
|
|
const loading = ref(false)
|
|
|
const items = ref([])
|
|
|
const query = reactive({
|
|
|
pageNo: 1,
|
|
|
- pageSize: 10
|
|
|
+ pageSize: 10,
|
|
|
+ jobFairId: props.jobFairId
|
|
|
})
|
|
|
const total = ref(0)
|
|
|
// 城市、学历、工作经验
|
|
@@ -66,17 +67,14 @@ const desc = [
|
|
|
const getPositionList = async () => {
|
|
|
loading.value = true
|
|
|
try {
|
|
|
- const { list, total: number } = await getJobAdvertisedSearch(query)
|
|
|
+ const { list, total: number } = await getJobFairEntJobPage(query)
|
|
|
if (!list || !list.length) {
|
|
|
items.value = []
|
|
|
total.value = 0
|
|
|
return
|
|
|
}
|
|
|
total.value = number
|
|
|
- items.value = list.map(e => {
|
|
|
- e.job = dealDictObjData({}, e.job)
|
|
|
- return e
|
|
|
- })
|
|
|
+ items.value = dealDictArrayData([], list)
|
|
|
loading.value = false
|
|
|
} catch {}
|
|
|
}
|
|
@@ -89,7 +87,7 @@ const handleChangePage = (index) => {
|
|
|
watch(
|
|
|
() => props.enterpriseId,
|
|
|
(val) => {
|
|
|
- query.enterpriseId = '158258417071427584'
|
|
|
+ query.enterpriseId = val
|
|
|
getPositionList()
|
|
|
},
|
|
|
{ immediate: true }
|