| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | 
							- <!-- 招聘会/企业详情 -->
 
- <template>
 
-   <view class="box">
 
-     <scroll-view class="scrollBox" :scroll-y="true" :scroll-top="scrollTop" @scrolltolower="loadingMore" @scroll="onScroll" style="position:relative;">
 
-       <view>
 
-         <!-- 轮播图 -->
 
-         <SwiperAd v-if="swiperAdList.length" :list="swiperAdList" imgUrlKey="img" margin="0" borderRadius="0" :strType="false" @click="handleToDetails"></SwiperAd>
 
-         <view class="stick">
 
-           <view class="titleBox">
 
-             <view class="entName">{{ entName }}</view>
 
-           </view>
 
-         </view>
 
-         <view v-if="listData?.length" class="listDataBox">
 
-           <PositionList
 
-             :list="listData"
 
-             :noMore="false"
 
-             :showEntInfo="false"
 
-             :jobFairId="query.jobFairId"
 
-             updateTimeAlign="left"
 
-             noDataTextColor="#fff"
 
-           ></PositionList>
 
-           <uni-load-more :status="more" />
 
-         </view>
 
-         <view v-else class="nodata-img-parent">
 
-           <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" style="width: 100vw;height: 100vh;"></image>
 
-         </view>
 
-       </view>
 
-     </scroll-view>
 
-   </view>
 
- </template>
 
- <script setup>
 
- import { onLoad } from '@dcloudio/uni-app'
 
- import { ref, reactive } from 'vue'
 
- import { dealDictObjData } from '@/utils/position'
 
- import { getJobFairEntJobPage } from '@/api/jobFair'
 
- import PositionList from '@/components/PositionList'
 
- import { getWebContent } from '@/api/common'
 
- import SwiperAd from '@/components/SwiperAd'
 
- const more = ref('more')
 
- const listData = ref([])
 
- const query = reactive({
 
-   pageSize: 20, 
 
-   pageNo: 1,
 
-   jobFairId: undefined,
 
-   enterpriseId: undefined,
 
- })
 
- const entName = ref('')
 
- onLoad(async (options) => {
 
-   entName.value = options.entName
 
-   if (options?.jobFairId) {
 
-     query.jobFairId = options.jobFairId
 
-     query.enterpriseId = options.enterpriseId
 
-     getData()
 
- 	}
 
- })
 
- // 获取轮播图
 
- const swiperAdList = ref([])
 
- const getSystemWebContent = async () => {
 
-   const { data } = await getWebContent()
 
-   swiperAdList.value = data?.appHomeCarousel || []
 
- }
 
- getSystemWebContent()
 
- const getData = async () => {
 
-   if (!query.jobFairId) {
 
-     uni.showToast({ title: '获取企业岗位失败,请重试!', icon: 'none', duration: 2000 })
 
-     return
 
-   }
 
-   try {
 
-     const res = await getJobFairEntJobPage(query)
 
-     const list = res?.data?.list || []
 
-     list.forEach(e => {
 
-       e.job = dealDictObjData({}, e)
 
-     })
 
-     listData.value = listData.value.concat(list)
 
-     if (listData.value?.length === +res?.data?.total) {
 
-       more.value = 'noMore'
 
-       return
 
-     }
 
-   } catch (error) {
 
-     query.pageNo--
 
-     more.value = 'more'
 
-   }
 
- }
 
- const scrollTop = ref(0)
 
- const old = ref({
 
-   scrollTop: 0
 
- })
 
- const onScroll = (e) =>{
 
-   old.value.scrollTop = e.detail.scrollTop
 
- }
 
- // 加载更多
 
- const loadingMore = () => {
 
-   more.value = 'loading'
 
-   query.pageNo++
 
-   getData()
 
- }
 
- // const goBack = () => {
 
- // 	uni.navigateTo({
 
- // 		url: '/pagesB/jobFair/index'
 
- // 	})
 
- // }
 
- </script>
 
- <style scoped lang="scss">
 
- .stick {
 
-   z-index: 1;
 
-   position: sticky;
 
-   top: 0;
 
-   background-color: #7ec04c;
 
- }
 
- .box {
 
-   height: 100vh;
 
-   overflow: hidden;
 
-   // padding-bottom: 120rpx;
 
-   box-sizing: border-box;
 
-   display: flex;
 
-   flex-direction: column;
 
-   background-color: #7ec04c;
 
- }
 
- .listDataBox {
 
-   // padding: 1px 0 120rpx;
 
-   padding-bottom: 120rpx;
 
-   margin: 0 5rpx;
 
- }
 
- .scrollBox{
 
-   flex: 1;
 
-   height: 0 !important;
 
-   padding-bottom: 24rpx;
 
-   box-sizing: border-box;
 
- }
 
- :deep(.uni-load-more__text) {
 
-   color: #fff !important;
 
- }
 
- :deep(.uni-card) {
 
-   padding: 0 !important;
 
-   .uni-card__content {
 
-     padding: 0 !important;
 
-   }
 
- }
 
- .titleBox {
 
-   text-align: center;
 
-   padding: 15px 20rpx;
 
-   .title {
 
-     font-size: 20px;
 
-     font-weight: 600;
 
-     margin-bottom: 12px;
 
-   }
 
-   .entName {
 
-     color: #fff;
 
-   }
 
- }
 
- </style>
 
 
  |