|
@@ -1,19 +1,19 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#fff">
|
|
|
+ <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#fff" @click="getPositionList">
|
|
|
<v-tab :value="1">推荐职位</v-tab>
|
|
|
<v-tab :value="2">最新职位</v-tab>
|
|
|
<v-tab :value="3">急聘职位</v-tab>
|
|
|
</v-tabs>
|
|
|
<v-window v-model="tab" class="mt-3">
|
|
|
<v-window-item :value="1">
|
|
|
- <PositionCard></PositionCard>
|
|
|
+ <PositionCard :items="items"></PositionCard>
|
|
|
</v-window-item>
|
|
|
<v-window-item :value="2">
|
|
|
- <PositionCard></PositionCard>
|
|
|
+ <PositionCard :items="items"></PositionCard>
|
|
|
</v-window-item>
|
|
|
<v-window-item :value="3">
|
|
|
- <PositionCard></PositionCard>
|
|
|
+ <PositionCard :items="items"></PositionCard>
|
|
|
</v-window-item>
|
|
|
</v-window>
|
|
|
<div class="text-center">
|
|
@@ -24,19 +24,44 @@
|
|
|
|
|
|
<script setup name="hotPromotedPositions">
|
|
|
import PositionCard from '@/components/Position/item.vue'
|
|
|
-import { ref } from 'vue'
|
|
|
-// import { getPromotedPosition } from '@/api/personal/position'
|
|
|
+import { ref, reactive } from 'vue'
|
|
|
+import { getPromotedPosition, getLatestPosition, getUrgentPosition } from '@/api/position'
|
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
|
|
|
-const tab = ref(0)
|
|
|
+const tab = ref(1)
|
|
|
+const items = ref([])
|
|
|
+const dictObj = reactive({
|
|
|
+ payUnit: [], // 薪资单位
|
|
|
+ scale: [], // 规模
|
|
|
+ industry: [] // 行业
|
|
|
+})
|
|
|
+const dictList = [
|
|
|
+ { type: 'menduner_pay_unit', value: 'payUnit', key: 'payUnit', label: 'payName' },
|
|
|
+ { type: 'menduner_scale', value: 'scale', key: 'scale', label: 'scaleName' }
|
|
|
+ // { type: 'menduner_industry_type', value: 'industry', key: 'industryId', label: 'industryName', params: {} }
|
|
|
+]
|
|
|
|
|
|
// 推荐职位
|
|
|
-// const getPositionList = async () => {
|
|
|
-// const { list } = await getPromotedPosition({ pageNo: 1, pageSize: 10 })
|
|
|
-// console.log(list, 'list')
|
|
|
-// }
|
|
|
-// getPositionList()
|
|
|
+const getPositionList = async () => {
|
|
|
+ const api = tab.value === 1 ? getPromotedPosition : (tab.value === 2 ? getLatestPosition : getUrgentPosition)
|
|
|
+ const { list } = await api({ pageNo: 1, pageSize: 9 })
|
|
|
+ dictList.forEach(item => {
|
|
|
+ items.value = list.map(e => {
|
|
|
+ // const valueKey = item.type === 'menduner_industry_type' ? 'nameCn' : 'label'
|
|
|
+ // const idKey = item.type === 'menduner_industry_type' ? 'id' : 'value'
|
|
|
+ e[item.label] = dictObj[item.value].find(k => Number(k.value) === e[item.key]).label
|
|
|
+ return e
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
-const uuu = getDict('menduner_business_status')
|
|
|
-console.log(uuu, 'gggg')
|
|
|
+// 字典
|
|
|
+const getDictList = async () => {
|
|
|
+ dictList.forEach(async (val) => {
|
|
|
+ const { data } = await getDict(val.type, val.params)
|
|
|
+ dictObj[val.value] = data
|
|
|
+ })
|
|
|
+}
|
|
|
+getDictList()
|
|
|
+getPositionList()
|
|
|
</script>
|