|
@@ -1,102 +1,43 @@
|
|
|
<template>
|
|
|
<view class="box defaultBgc">
|
|
|
- <scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore" style="position:relative;">
|
|
|
- <view class="white-bgc">
|
|
|
- <uni-search-bar
|
|
|
- v-model="query.content"
|
|
|
- radius="8"
|
|
|
- placeholder="请输入关键字"
|
|
|
- cancelButton="none"
|
|
|
- :focus="false"
|
|
|
- @confirm="onSearch($event.value)"
|
|
|
- @clear="query.content = ''; onSearch()"
|
|
|
- />
|
|
|
+ <uni-segmented-control :current="current" :values="controlList" @clickItem="handleChange" styleType="text" activeColor="#00897B" style="background-color: #fff"></uni-segmented-control>
|
|
|
+ <scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore">
|
|
|
+ <view v-if="position.length"></view>
|
|
|
+ <view v-else class="text-center">
|
|
|
+ <view class="nodata-img-parent">
|
|
|
+ <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" style="width: 100vw;height: 100vh;"></image>
|
|
|
+ </view>
|
|
|
+ <view class="color-999">暂无职位</view>
|
|
|
</view>
|
|
|
- <view class="white-bgc px-10 pb-10 mb-10">
|
|
|
- <SwiperAd :list="swiperAdList"></SwiperAd>
|
|
|
- <!-- <FilterList :list="filterList" idValue="label" @change="handleSearch"></FilterList> -->
|
|
|
- </view>
|
|
|
- <PositionList class="pb-10" :list="positionListData" :noMore="noMore"></PositionList>
|
|
|
+ <uni-fab ref="fab" :pattern="{ iconColor: '#fff', buttonColor : '#00897B' }" :popMenu="false" vertical="bottom" horizontal="right" @fabClick="fabClick" />
|
|
|
</scroll-view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import SwiperAd from '@/components/SwiperAd'
|
|
|
-// import FilterList from '@/components/FilterList'
|
|
|
-import PositionList from '@/components/PositionList'
|
|
|
-import { swiperAdListTest } from '@/utils/testData'
|
|
|
-import { dealDictObjData } from '@/utils/position'
|
|
|
-import { getJobAdvertisedSearch } from '@/api/position';
|
|
|
-import { ref, reactive } from 'vue'
|
|
|
+import { ref } from 'vue'
|
|
|
|
|
|
-const swiperAdList = ref(swiperAdListTest)
|
|
|
-const filterList = ref([
|
|
|
- { label: '城市', dictType: 'areaTreeData', key: 'areaIds', map: { text: 'name', value: 'id' } },
|
|
|
- { label: '行业', dictType: 'industryTreeData',key: 'industryIds', map: { text: 'nameCn', value: 'id' } },
|
|
|
- { label: '求职类型', dictType: 'menduner_job_type', key: 'jobType' },
|
|
|
- { label: '薪资待遇', dictType: 'menduner_pay_scope', key: 'payType' },
|
|
|
- { label: '工作经验', dictType: 'menduner_exp_type', key: 'expType' },
|
|
|
-])
|
|
|
+const current = ref(0)
|
|
|
+const controlList = ['招聘中', '已关闭']
|
|
|
+const position = ref([])
|
|
|
+const fab = ref()
|
|
|
|
|
|
-//
|
|
|
-const positionListData = ref([])
|
|
|
-const noMore = ref(false)
|
|
|
-const query = reactive({
|
|
|
- pageSize: 10,
|
|
|
- pageNo: 1,
|
|
|
- content: '',
|
|
|
- areaIds: [],
|
|
|
- industryIds: [],
|
|
|
- jobType: [],
|
|
|
- payType: [],
|
|
|
- expType: []
|
|
|
-})
|
|
|
-//
|
|
|
-const getData = async () => {
|
|
|
- const res = await getJobAdvertisedSearch(query)
|
|
|
- const list = res?.data?.list || []
|
|
|
- if (list?.length) {
|
|
|
- list.forEach(e => {
|
|
|
- e.job = { ...e.job, ...dealDictObjData({}, e.job) }
|
|
|
- e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise)}
|
|
|
- })
|
|
|
- positionListData.value = positionListData.value.concat(list)
|
|
|
- }
|
|
|
- if (list?.length < query.pageSize) noMore.value = true
|
|
|
+const handleChange = (e) => {
|
|
|
+ current.value = e.currentIndex
|
|
|
}
|
|
|
-getData()
|
|
|
|
|
|
-const handleSearch = (key, value) => {
|
|
|
- query[key][0] = value
|
|
|
- onSearch()
|
|
|
-}
|
|
|
+const loadingMore = () => {}
|
|
|
|
|
|
-const onSearch = () => {
|
|
|
- query.pageNo = 1
|
|
|
- noMore.value = false
|
|
|
- positionListData.value = []
|
|
|
- getData()
|
|
|
-}
|
|
|
-
|
|
|
-const loadingMore = () => { // 加载更多
|
|
|
- query.pageNo++
|
|
|
- getData()
|
|
|
+// 发布职位
|
|
|
+const fabClick = () => {
|
|
|
+
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
|
|
|
-.pb-10 { padding-bottom: 10px; }
|
|
|
-.pb-20 { padding-bottom: 20px; }
|
|
|
-.px-10 { padding-left: 10px; padding-right: 10px; }
|
|
|
-.mb-10 { margin-bottom: 10px; }
|
|
|
.box {
|
|
|
height: 100vh;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
-.scrollBox{
|
|
|
- height: 100%;
|
|
|
-}
|
|
|
</style>
|