|
@@ -10,7 +10,8 @@
|
|
<div v-else class="content py-3" @scroll="handleScroll">
|
|
<div v-else class="content py-3" @scroll="handleScroll">
|
|
<v-card class="py-3 px-5" :style="{'width': isMobile ? '100%' : '750px'}" style="min-height: calc(100vh - 24px); box-sizing: border-box; margin: 0 auto;">
|
|
<v-card class="py-3 px-5" :style="{'width': isMobile ? '100%' : '750px'}" style="min-height: calc(100vh - 24px); box-sizing: border-box; margin: 0 auto;">
|
|
<div class="d-flex align-center" style="width: 340px; margin: auto;">
|
|
<div class="d-flex align-center" style="width: 340px; margin: auto;">
|
|
- <Autocomplete v-model="query.jobId" :item="selectItems" @change="handleChange"></Autocomplete>
|
|
|
|
|
|
+ <!-- <Autocomplete v-model="query.jobId" :item="selectItems" @change="handleChange"></Autocomplete> -->
|
|
|
|
+ <TextInput v-model="textItem.value" :item="textItem" @click="openDrawer" @appendInnerClick="openDrawer"></TextInput>
|
|
</div>
|
|
</div>
|
|
<v-divider></v-divider>
|
|
<v-divider></v-divider>
|
|
<div v-if="items.length">
|
|
<div v-if="items.length">
|
|
@@ -23,10 +24,10 @@
|
|
<p class="font-size-20">{{ val.name }}</p>
|
|
<p class="font-size-20">{{ val.name }}</p>
|
|
<p class="color-999 font-size-16">
|
|
<p class="color-999 font-size-16">
|
|
{{ val.jobStatusName }}
|
|
{{ val.jobStatusName }}
|
|
- <span v-if="val.jobStatusName && val.expType" class="septal-line"></span>
|
|
|
|
- {{ val.expType }}
|
|
|
|
- <span v-if="val.eduType" class="septal-line"></span>
|
|
|
|
- {{ val.eduType }}
|
|
|
|
|
|
+ <span v-if="val.jobStatusName && val.expName" class="septal-line"></span>
|
|
|
|
+ {{ val.expName }}
|
|
|
|
+ <span v-if="val.eduName" class="septal-line"></span>
|
|
|
|
+ {{ val.eduName }}
|
|
</p>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -38,6 +39,10 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<Loading :visible="loading"></Loading>
|
|
<Loading :visible="loading"></Loading>
|
|
|
|
+
|
|
|
|
+ <v-navigation-drawer v-model="screen" location="top" temporary class="px-5" style="border-radius: 0 0 10px 10px;">
|
|
|
|
+ <FilterPage ref="filterRef" @close="screen = false" @search="handleSearch"></FilterPage>
|
|
|
|
+ </v-navigation-drawer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -49,10 +54,11 @@ import passwordFrom from '@/views/login/components/passwordPage.vue'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import { useUserStore } from '@/store/user'
|
|
import { useUserStore } from '@/store/user'
|
|
import { passwordLogin } from '@/api/common'
|
|
import { passwordLogin } from '@/api/common'
|
|
-import { getPersonRecommendPage, getJobAdvertised } from '@/api/enterprise'
|
|
|
|
|
|
+import { getPersonRecommendPage, getJobAdvertised, getPersonSearchPage } from '@/api/enterprise'
|
|
import { dealDictArrayData } from '@/utils/position'
|
|
import { dealDictArrayData } from '@/utils/position'
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
|
|
+import FilterPage from './components/filter.vue'
|
|
|
|
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
const loading = ref(false)
|
|
const loading = ref(false)
|
|
@@ -62,7 +68,7 @@ const total = ref(0)
|
|
const query = ref({
|
|
const query = ref({
|
|
pageNo: 1,
|
|
pageNo: 1,
|
|
pageSize: 20,
|
|
pageSize: 20,
|
|
- jobId: null
|
|
|
|
|
|
+ // jobId: null
|
|
})
|
|
})
|
|
const selectItems = ref({
|
|
const selectItems = ref({
|
|
label: '已发布职位',
|
|
label: '已发布职位',
|
|
@@ -71,6 +77,15 @@ const selectItems = ref({
|
|
width: 600,
|
|
width: 600,
|
|
items: []
|
|
items: []
|
|
})
|
|
})
|
|
|
|
+const textItem = ref({
|
|
|
|
+ type: 'text',
|
|
|
|
+ width: 600,
|
|
|
|
+ value: '',
|
|
|
|
+ label: '请输入关键词搜索',
|
|
|
|
+ clearable: false,
|
|
|
|
+ readonly: true,
|
|
|
|
+ appendInnerIcon: 'mdi-magnify'
|
|
|
|
+})
|
|
|
|
|
|
// 已发布职位列表
|
|
// 已发布职位列表
|
|
const getJobList = async () => {
|
|
const getJobList = async () => {
|
|
@@ -97,7 +112,7 @@ const getData = async (isEmpty) => {
|
|
// isEmpty:是否清空列表
|
|
// isEmpty:是否清空列表
|
|
loading.value = true
|
|
loading.value = true
|
|
try {
|
|
try {
|
|
- const res = await getPersonRecommendPage(query.value)
|
|
|
|
|
|
+ const res = await getPersonSearchPage(query.value)
|
|
const list = res.list || []
|
|
const list = res.list || []
|
|
items.value = list.length ? !isEmpty ? [...items.value, ...dealDictArrayData([], list)] : dealDictArrayData([], list) : []
|
|
items.value = list.length ? !isEmpty ? [...items.value, ...dealDictArrayData([], list)] : dealDictArrayData([], list) : []
|
|
total.value = res.total
|
|
total.value = res.total
|
|
@@ -107,7 +122,7 @@ const getData = async (isEmpty) => {
|
|
loading.value = false
|
|
loading.value = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-getData()
|
|
|
|
|
|
+if (getToken(1)) getData()
|
|
|
|
|
|
// 底部加载
|
|
// 底部加载
|
|
const handleScroll = (e) => {
|
|
const handleScroll = (e) => {
|
|
@@ -120,10 +135,10 @@ const handleScroll = (e) => {
|
|
}
|
|
}
|
|
|
|
|
|
// 选择发布职位
|
|
// 选择发布职位
|
|
-const handleChange = () => {
|
|
|
|
- query.value.pageNo = 1
|
|
|
|
- getData(true)
|
|
|
|
-}
|
|
|
|
|
|
+// const handleChange = () => {
|
|
|
|
+// query.value.pageNo = 1
|
|
|
|
+// getData(true)
|
|
|
|
+// }
|
|
|
|
|
|
// 登录
|
|
// 登录
|
|
const handleLogin = async () => {
|
|
const handleLogin = async () => {
|
|
@@ -147,6 +162,22 @@ const handleDetail = ({ userId, id }) => {
|
|
if (!userId || !id) return
|
|
if (!userId || !id) return
|
|
router.push(`/recruit/enterprise/talentRecommendation/details/${userId}?id=${id}`)
|
|
router.push(`/recruit/enterprise/talentRecommendation/details/${userId}?id=${id}`)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// 筛选
|
|
|
|
+const filterRef = ref()
|
|
|
|
+const screen = ref(false)
|
|
|
|
+const openDrawer = () => {
|
|
|
|
+ screen.value = true
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const handleSearch = (val) => {
|
|
|
|
+ console.log(val, 'search')
|
|
|
|
+ screen.value = false
|
|
|
|
+ textItem.value.value = val.content
|
|
|
|
+ query.value.pageNo = 1
|
|
|
|
+ query.value = Object.assign(query.value, val)
|
|
|
|
+ getData(true)
|
|
|
|
+}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|