Xiao_123 před 4 měsíci
rodič
revize
720622a860
2 změnil soubory, kde provedl 88 přidání a 23 odebrání
  1. 1 1
      pages/index/position.vue
  2. 87 22
      pagesB/preferredGroup/index.vue

+ 1 - 1
pages/index/position.vue

@@ -245,7 +245,7 @@ onShow(() => {
 
   // 优选集团数据
   uni.request({
-    url: 'https://minio.menduner.com/dev/4bf5186e6a19347acfc858eaf835a7dec5200465a911d940b06688543eb95fd3.json',
+    url: 'https://minio.menduner.com/dev/8f6f14c642e55254c28098bdbe22c42de33d4673dffd28069c03bf090cf479b9.json',
     method: 'GET',
     success: (res) => {
       // console.log(res.data, 'success-优选集团')

+ 87 - 22
pagesB/preferredGroup/index.vue

@@ -3,7 +3,7 @@
 		<!-- 轮播图 -->
 		<swiper
       circular
-      :indicator-dots="preferred.carousel.length > 1 ? true : false"
+      :indicator-dots="preferred?.carousel?.length > 1 ? true : false"
       :autoplay="true"
       :interval="3000"
       :duration="500"
@@ -11,47 +11,84 @@
 	  	style="height: 180px;"
     >
 			<swiper-item v-for="(item, index) in preferred.carousel" :key="index">
-        <image :src="item" style="width: 100%; height: 100%"></image>
+        <image :src="item" style="width: 100%; height: 100%" :lazy-load="true" :fade-show="true"></image>
 			</swiper-item>
 		</swiper>
 		<!-- 集团简介 -->
 		<view class="ss-m-t-50">
 			<!-- 标题 -->
-			<uni-title class="ss-m-b-30" type="h1" :title="preferred.introduce.title" align="center"></uni-title>
+			<uni-title class="ss-m-b-30" type="h1" :title="preferred?.introduce?.title" align="center"></uni-title>
 			<!-- 简介 -->
 			<rich-text v-for="(desc, index) in preferred.introduce.describe" :key="index" class="ss-m-b-30 color-666" :nodes="desc" style="display: block;"></rich-text>
 			<!-- 小图 -->
+			<swiper
+				v-if="preferred?.introduce?.thumbnail?.length"
+				circular
+				:indicator-dots="true"
+				:autoplay="true"
+				:interval="3000"
+				:duration="500"
+				indicator-active-color="#fff"
+				style="height: 240px;"
+				class="ss-m-t-30"
+			>
+				<swiper-item v-for="(item, index) in preferred.introduce?.thumbnail" :key="index">
+					<image :src="item" style="width: 100%; height: 100%" :lazy-load="true" :fade-show="true"></image>
+				</swiper-item>
+			</swiper>
 
 			<!-- 大图 -->
-			<image class="ss-m-y-30" :src="preferred.introduce?.bigPicture" style="width: 100%; height: 115px;"></image>
+			<image class="ss-m-y-30" :src="preferred.introduce?.bigPicture?.url" style="width: 100%;" :lazy-load="true" :fade-show="true" :style="{'height': preferred.introduce?.bigPicture?.height + 'px'}"></image>
 		</view>
 
 		<!-- 品牌介绍 -->
-		<uni-swiper-dot class="uni-swiper-dot-box" @clickItem="clickItem" :info="preferred.brandIntroduce" :current="current" mode="nav" :dots-styles="dotsStyles" field="content">
-			<swiper class="swiper-box" @change="change" :current="swiperDotIndex">
-				<swiper-item v-for="(item, index) in 17" :key="index">
-					<view class="swiper-item" :class="'swiper-item' + index">
-						<text style="color: #fff; font-size: 32px;">{{index+1}}</text>
-					</view>
-				</swiper-item>
-			</swiper>
-		</uni-swiper-dot>
+		<view v-if="preferred?.brandIntroduce?.length" class="ss-m-t-30">
+			<uni-title class="ss-m-b-30 color-666" type="h1" title="品牌介绍" align="center"></uni-title>
+			<uni-swiper-dot class="uni-swiper-dot-box" :info="preferred.brandIntroduce" :current="current" mode="nav" field="content">
+				<swiper :autoplay="true" :interval="5000" class="swiper-box" @change="change" :current="swiperDotIndex" style="height: 172px;">
+					<swiper-item v-for="(item, index) in preferred.brandIntroduce" :key="index">
+						<image :src="item.url" style="width: 100%; height: 100%" :lazy-load="true" :fade-show="true"></image>
+						<view class="swiper-item" :class="'swiper-item' + index">
+							<text style="color: #fff; font-size: 20px;">{{ item.content }}</text>
+						</view>
+					</swiper-item>
+				</swiper>
+			</uni-swiper-dot>
+			<view class="color-666 ss-m-t-20 font-size-14">{{ preferred.brandIntroduce[current].desc }}</view>
+		</view>
+		
+		<!-- 招聘职位 -->
+		<view class="ss-m-t-50">
+			<uni-title class="ss-m-b-30 color-666" type="h1" title="招聘职位" align="center"></uni-title>
+			<scroll-view class="scrollBox defaultBgc" scroll-y="true" @scrolltolower="loadingMore">
+			  <view v-if="positionList.length > 0">
+			    <PositionList class="pb-10" :list="positionList" :noMore="false"></PositionList>
+			    <uni-load-more :status="status" />
+			  </view>
+			  <view v-else class="nodata-img-parents">
+			    <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" class="nodata-img-child"></image>
+			  </view>
+			</scroll-view>
+		</view>
 	</view>
 </template>
 
 <script setup>
 import { ref } from 'vue'
-import { onShow, onLoad, onShareAppMessage } from '@dcloudio/uni-app'
+import { onLoad, onShareAppMessage } from '@dcloudio/uni-app'
+import { getJobAdvertisedSearch } from '@/api/position'
+import { dealDictObjData } from '@/utils/position'
+import PositionList from '@/components/PositionList'
 
 const title = ref('')
 const enterpriseId = ref(null)
 const preferred = ref({}) // 当前企业信息
 const preferredGroup = ref({}) // 优选集团信息
 
-onLoad((options) => {
+onLoad(async (options) => {
 	enterpriseId.value = options.id
 	uni.request({
-	  url: 'https://minio.menduner.com/dev/4bf5186e6a19347acfc858eaf835a7dec5200465a911d940b06688543eb95fd3.json',
+	  url: 'https://minio.menduner.com/dev/8f6f14c642e55254c28098bdbe22c42de33d4673dffd28069c03bf090cf479b9.json',
 	  method: 'GET',
 	  success: (res) => {
 			preferredGroup.value = res.data
@@ -65,6 +102,7 @@ onLoad((options) => {
 	    log(res, 'fail')
 	  }
 	})
+	await getPositionList()
 })
 
 onShareAppMessage(() => {
@@ -79,16 +117,43 @@ onShareAppMessage(() => {
 
 const current = ref(0)
 const swiperDotIndex = ref(0)
-const dotsStyles = ref({})
-const clickItem = (item) => {
-	console.log(item, 'click')
-}
 const change = (e) => {
-	console.log(e, 'change')
   current.value = e.detail.current
 }
+
+// 招聘职位
+const status = ref('more')
+const queryParams = ref({
+  pageNo: 1,
+  pageSize: 10,
+  enterpriseId: ''
+})
+const positionList = ref([])
+
+// 招聘职位列表
+const getPositionList = async () => {
+  queryParams.value.enterpriseId = enterpriseId.value
+  const { data } = await getJobAdvertisedSearch(queryParams.value)
+  const list = data?.list || []
+  if (list?.length) {
+    list.forEach(e => {
+      e.job = { ...e.job, ...dealDictObjData({}, e.job) }
+      e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise)}
+    })
+    positionList.value = positionList.value.concat(list)
+  }
+  status.value = list?.length < queryParams.value.pageSize ? 'noMore' : 'more'
+}
+
+const loadingMore = () => {
+  status.value = 'loading'
+  queryParams.value.pageNo++
+  getPositionList()
+}
 </script>
 
 <style scoped lang="scss">
-
+.scrollBox {
+  height: 100vh;
+}
 </style>