Selaa lähdekoodia

fix:职位搜索显示头像

jianghaili 7 kuukautta sitten
vanhempi
sitoutus
eb5a3ccf2d
1 muutettua tiedostoa jossa 1007 lisäystä ja 978 poistoa
  1. 1007 978
      package/search/search.vue

+ 1007 - 978
package/search/search.vue

@@ -13,7 +13,9 @@
 		<!-- 搜索 -->
 		<view class="search flex align-center justify-center">
 			<view class="search-box">
-				<u-search placeholder="搜索职位或公司" shape="round" searchIconSize = 40 searchIconColor="rgba(153, 153, 153, 1)" bgColor="rgba(241, 241, 241, 1)" borderColor="rgba(227, 231, 236, 1)" @clear="clear" v-model="keyword" @custom="custom" @search="custom"></u-search>
+				<u-search placeholder="搜索职位或公司" shape="round" searchIconSize=40 searchIconColor="rgba(153, 153, 153, 1)"
+					bgColor="rgba(241, 241, 241, 1)" borderColor="rgba(227, 231, 236, 1)" @clear="clear"
+					v-model="keyword" @custom="custom" @search="custom"></u-search>
 			</view>
 		</view>
 		<view v-if="show" style="flex: 1;">
@@ -22,18 +24,19 @@
 				<view class="searchJl-box">
 					<view class="searchJl-box-header">
 						<text class="searchJl-box-title">历史搜索</text>
-						<image v-if="searchList.length > 0" src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHistory"></image>
+						<image v-if="searchList.length > 0" src="../../static/images/shanchu22.svg"
+							style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHistory"></image>
 					</view>
 					<view class="searchJl-box-label flex align-center flex-wrap">
 						<view class="searchJl-box-item" @click="goSearch(item.keyWord)"
-							v-for="(item,index) in searchList" :key="index">
-							{{item.keyWord}}
+							v-for="(item, index) in searchList" :key="index">
+							{{ item.keyWord }}
 						</view>
 						<view class="no-more" v-if="searchList.length == 0">暂无记录</view>
 					</view>
 				</view>
 			</view>
-			
+
 			<!-- 近期热招 -->
 			<view class="hot-jobs-container flex justify-center">
 				<view class="hot-jobs-section">
@@ -42,12 +45,8 @@
 						<!-- <image src="../../static/images/shanchu22.svg" style="width: 32rpx; height: 32rpx;" mode="aspectFit" @click="clearHotJobs"></image> -->
 					</view>
 					<view class="hot-jobs-grid">
-						<view 
-							class="hot-job-item" 
-							v-for="(job, index) in hotJobsList" 
-							:key="index"
-							@click="selectHotJob(job)"
-						>
+						<view class="hot-job-item" v-for="(job, index) in hotJobsList" :key="index"
+							@click="selectHotJob(job)">
 							<text class="job-name">{{ job.ruleClassifyName }}</text>
 							<view class="hot-tag" v-if="job.isHot">
 								<text class="hot-tag-text">Hot</text>
@@ -63,147 +62,168 @@
 				<view class="screen-box">
 					<view class="topbg-sx-box">
 						<view class="topbg-sx-box-l flex align-center">
-							<view class="topbg-sx-box-l-i" :class="currentSx==index?'active3':''"
-								@click="currentSx = index" v-for="(item,index) in sxTypeList" :key="index">
-								{{item.name}}
+							<view class="topbg-sx-box-l-i" :class="currentSx == index ? 'active3' : ''"
+								@click="currentSx = index" v-for="(item, index) in sxTypeList" :key="index">
+								{{ item.name }}
 							</view>
 						</view>
 						<view class="topbg-sx-box-r flex align-center">
 							<view class="city-container" @click="selectCity">
-								<text class="city-text" style="margin-right: 10rpx;">{{county?county:(city?city:'选择城市')}}</text>
+								<text class="city-text"
+									style="margin-right: 10rpx;">{{ county ? county : (city ? city : '选择城市') }}</text>
 								<u-icon name="arrow-down" color="#999999" size="20"></u-icon>
 							</view>
 
-							<view v-if="currentSx==0" class="sort-container" @click="showSortModal">
-								<text class="sort-text" style="margin-right: 10rpx;">{{sortOptions[selectedSort]}}</text>
+							<view v-if="currentSx == 0" class="sort-container" @click="showSortModal">
+								<text class="sort-text"
+									style="margin-right: 10rpx;">{{ sortOptions[selectedSort] }}</text>
 								<u-icon name="arrow-down" color="rgba(1, 107, 246, 1)" size="20"></u-icon>
 							</view>
-								
-							<view class="filter-container" :class="{ activeColor: filledFieldsCount }" @click="goNav('/package/screen/screen')">
-								<text class="filter-text" style="margin-right: 10rpx;">筛选{{filledFieldsCount}}</text>
-								<u-icon name="arrow-down" :color="filledFieldsCount?'#016bf6':'#999999'" size="20"></u-icon>
+
+							<view class="filter-container" :class="{ activeColor: filledFieldsCount }"
+								@click="goNav('/package/screen/screen')">
+								<text class="filter-text" style="margin-right: 10rpx;">筛选{{ filledFieldsCount }}</text>
+								<u-icon name="arrow-down" :color="filledFieldsCount ? '#016bf6' : '#999999'"
+									size="20"></u-icon>
 							</view>
 						</view>
 					</view>
 				</view>
 			</view>
 			<!-- 岗位推荐 -->
-			<block v-if="currentSx==0">
-			<view class="gwList flex justify-center" v-if="dataList.length>0">
-				<view class="gwList-box">
-					<scroll-view scroll-y="true" style="width: 100%;height: 100%;">
-						<view class="gwList-box-item flex justify-center" @click="gotoInfo(item.postPushId)"
-							v-for="(item,index) in dataList" :key="index">
-							<view class="gwList-box-item-box">
-								<!-- 标题-薪资 -->
-								<view class="gwList-box-item-box-title flex justify-between align-center">
-									<view class="title-left flex align-center">
-										<view class="job-title-text"
-											style="max-width: 450rpx;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;">
-											<!-- <block v-if="isSameName(item.ruleClassifyName,item.stationName)">
+			<block v-if="currentSx == 0">
+				<view class="gwList flex justify-center" v-if="dataList.length > 0">
+					<view class="gwList-box">
+						<scroll-view scroll-y="true" style="width: 100%;height: 100%;">
+							<view class="gwList-box-item flex justify-center" @click="gotoInfo(item.postPushId)"
+								v-for="(item, index) in dataList" :key="index">
+								<view class="gwList-box-item-box">
+									<!-- 标题-薪资 -->
+									<view class="gwList-box-item-box-title flex justify-between align-center">
+										<view class="title-left flex align-center">
+											<view class="job-title-text"
+												style="max-width: 450rpx;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;">
+												<!-- <block v-if="isSameName(item.ruleClassifyName,item.stationName)">
 												{{item.ruleClassifyName}}-
 											</block> -->
-											<block>
-												{{item.ruleClassifyName}}
-											</block>
-										</view>
-										<view v-if="item.isDue" class="salary-text-box">
-											<image src="../../static/images/index/jipinIcom.svg" class="jipin-icon" />
-											<text class="jipin-text">急聘</text>
+												<block>
+													{{ item.ruleClassifyName }}
+												</block>
+											</view>
+											<view v-if="item.isDue" class="salary-text-box">
+												<image src="../../static/images/index/jipinIcom.svg"
+													class="jipin-icon" />
+												<text class="jipin-text">急聘</text>
+											</view>
 										</view>
+										<text class="salary-text">{{ item.salaryRange }}</text>
 									</view>
-									<text class="salary-text">{{item.salaryRange}}</text>
-								</view>
-								<!-- 公司名称-公司人数 -->
-								<view class="gwList-box-item-box-name flex align-center">
-									<text class="company-name" style="margin-right: 8rpx;">{{item.company?item.company.companyName:''}}</text>
-									<text class="company-people"
-										v-if="item.company">{{item.company?item.company.companyPeople:'0人'}}</text>
-								</view>
-								<!-- 职位标签 -->
-								<view class="gwList-box-item-box-label flex align-center flex-wrap">
-									<text class="job-tag">{{item.education}}</text>
-									<text class="job-tag">{{item.experience}}</text>
-									<text class="job-tag" v-for="(ite,ind) in item.positionWelfare" :key="ind">{{ite}}</text>
-								</view>
-								<!-- <view class="gwList-box-item-box-line"></view> -->
-								<!-- 公司简介-位置 -->
-								<view class="gwList-box-item-box-info flex justify-between align-center">
-									<view class="gwList-box-item-box-info-l flex align-center">
-										<image
-											:src="item.hr&&item.hr.hrImg?item.hr.hrImg:'../../static/logo.png'"
-											style="width: 58rpx;height: 58rpx;border-radius: 50%;margin-right: 20rpx;"
-											mode=""></image>
-										<view class="company-info-text">
-											{{item.user&&item.user.userName?item.user.userName:'未知'}}·{{item.hr&&item.hr.hrPosition||'匿名职位'}}
-										</view>
-										<view v-if="item.respondTime" class="reply-time">{{item.respondTime}}</view>
+									<!-- 公司名称-公司人数 -->
+									<view class="gwList-box-item-box-name flex align-center">
+										<text class="company-name"
+											style="margin-right: 8rpx;">{{ item.company ? item.company.companyName : '' }}</text>
+										<text class="company-people"
+											v-if="item.company">{{ item.company ? item.company.companyPeople : '0人' }}</text>
 									</view>
-									<view class="location-text">
-										{{item.county}} 
+									<!-- 职位标签 -->
+									<view class="gwList-box-item-box-label flex align-center flex-wrap">
+										<text class="job-tag">{{ item.education }}</text>
+										<text class="job-tag">{{ item.experience }}</text>
+										<text class="job-tag" v-for="(ite, ind) in item.positionWelfare"
+											:key="ind">{{ ite }}</text>
+									</view>
+									<!-- <view class="gwList-box-item-box-line"></view> -->
+									<!-- 公司简介-位置 -->
+									<view class="gwList-box-item-box-info flex justify-between align-center">
+										<view class="gwList-box-item-box-info-l flex align-center">
+											<image
+												:src="item.hr && item.hr.hrImg ? item.hr.hrImg : item.user && item.user.avatar ? item.user.avatar : '../../static/logo.png'"
+												style="width: 58rpx;height: 58rpx;border-radius: 50%;margin-right: 20rpx;"
+												mode=""></image>
+											<view class="company-info-text">
+												{{ item.user && item.user.userName ? item.user.userName : '未知' }}·{{ item.hr && item.hr.hrPosition || '匿名职位' }}
+											</view>
+											<view v-if="item.respondTime" class="reply-time">{{ item.respondTime }}</view>
+										</view>
+										<view class="location-text">
+											{{ item.county }}
+										</view>
 									</view>
 								</view>
 							</view>
-						</view>
-					</scroll-view>
+						</scroll-view>
+					</view>
+				</view>
+				<!-- 暂无数据 -->
+				<view class="gwList" v-else>
+					<empty />
 				</view>
-			</view>
-			<!-- 暂无数据 -->
-			<view class="gwList" v-else>
-				<empty />
-			</view>
 			</block>
 			<block v-else>
-				<view class="gwList flex justify-center" v-if="dataList.length>0">
+				<view class="gwList flex justify-center" v-if="dataList.length > 0">
 					<view class="gwList-box">
 						<scroll-view scroll-y="true" style="width: 100%;height: 100%;">
-							<view class="box" v-for="(item,index) in dataList" :key="'company'+index">
-							<view class="gwList-box-item company" @click="goTo('/my/enterpriseInfo/enterpriseInfo?companyId=' + item.companyId)">
-								<view class="gwList-box-item-box">
-									<view class="gwList-box-item-box-title flex justify-between align-center">
-										<u-avatar :src="item.companyLogo?item.companyLogo:'../../static/images/index/jipinIcom.svg'" class="jipin-icon" ></u-avatar>
-										<view class="gwList-box-item-box-info-l">
-											<view class="companyTitle">{{item.companyAllName}}</view>
-											<view class="company-info-text">
-												{{item.companyPeople}} · {{item.companyScope}}
+							<view class="box" v-for="(item, index) in dataList" :key="'company' + index">
+								<view class="gwList-box-item company"
+									@click="goTo('/my/enterpriseInfo/enterpriseInfo?companyId=' + item.companyId)">
+									<view class="gwList-box-item-box">
+										<view class="gwList-box-item-box-title flex justify-between align-center">
+											<u-avatar
+												:src="item.companyLogo ? item.companyLogo : '../../static/images/index/jipinIcom.svg'"
+												class="jipin-icon"></u-avatar>
+											<view class="gwList-box-item-box-info-l">
+												<view class="companyTitle">{{ item.companyAllName }}</view>
+												<view class="company-info-text">
+													{{ item.companyPeople }} · {{ item.companyScope }}
+												</view>
+												<view class="company-info-text">
+													{{ item.workTime }} <text v-if="item.welfare.length > 0">·</text> <text
+														v-for="(we, i) in item.welfare" :key="'welfare' + i">{{ we }} <text
+															v-if="i < item.welfare.length - 1">·</text> </text>
+												</view>
 											</view>
-											<view class="company-info-text">
-												{{item.workTime}} <text v-if="item.welfare.length>0">·</text> <text v-for="(we,i) in item.welfare" :key="'welfare'+i">{{we}} <text v-if="i<item.welfare.length-1">·</text> </text> 
+											<view class="goRight">
+												<u-icon name="arrow-right"></u-icon>
 											</view>
 										</view>
-										<view class="goRight">
-											<u-icon name="arrow-right"></u-icon>
-										</view>
 									</view>
 								</view>
-							</view>
-							<view class="gwList-box-item companyPost" v-for="(it,ind) in item.postPushList" :key="'post'+ind">
-								<view class="gwList-box-item-box" @click="goTo('/pages/index/game/order?postPushId=' + it.postPushId)">
-									<!-- 标题-薪资 -->
-									<view class="gwList-box-item-box-info flex justify-between align-center">
-										<view class="gwList-box-item-box-info-l">
-											<view class="companyTitle">{{it.ruleClassifyName}}</view>
-											<view class="company-info-text tags">
-												<u-tag borderColor="#fdfdfd" :text="it.experience" type="info" mode="light" size="mini"></u-tag>
-												<u-tag borderColor="#fdfdfd" :text="it.education" type="info" mode="light" size="mini"></u-tag>
-												<u-tag v-for="we in it.welfareTag&&it.welfareTag.split(';')||[]" borderColor="#fdfdfd" :text="we" type="info" mode="light" size="mini"></u-tag>
-												<u-tag v-for="indus in it.industry&&it.industry.split(',')||[]" borderColor="#fdfdfd" :text="indus" type="info" mode="light" size="mini"></u-tag>
+								<view class="gwList-box-item companyPost" v-for="(it, ind) in item.postPushList"
+									:key="'post' + ind">
+									<view class="gwList-box-item-box"
+										@click="goTo('/pages/index/game/order?postPushId=' + it.postPushId)">
+										<!-- 标题-薪资 -->
+										<view class="gwList-box-item-box-info flex justify-between align-center">
+											<view class="gwList-box-item-box-info-l">
+												<view class="companyTitle">{{ it.ruleClassifyName }}</view>
+												<view class="company-info-text tags">
+													<u-tag borderColor="#fdfdfd" :text="it.experience" type="info"
+														mode="light" size="mini"></u-tag>
+													<u-tag borderColor="#fdfdfd" :text="it.education" type="info"
+														mode="light" size="mini"></u-tag>
+													<u-tag v-for="we in it.welfareTag && it.welfareTag.split(';') || []"
+														borderColor="#fdfdfd" :text="we" type="info" mode="light"
+														size="mini"></u-tag>
+													<u-tag v-for="indus in it.industry && it.industry.split(',') || []"
+														borderColor="#fdfdfd" :text="indus" type="info" mode="light"
+														size="mini"></u-tag>
+												</view>
+											</view>
+											<view class="location-text">
+												{{ it.salaryRange }} · {{ item.salaryTimes || 12 }}薪
 											</view>
 										</view>
-										<view class="location-text">
-											{{it.salaryRange}} · {{item.salaryTimes||12}}薪 
-										</view>
+
 									</view>
-								
 								</view>
-							</view>
-							<view v-if="item.postPushList.length>3" class="gwList-box-item companyPost" @click="goTo('/my/enterpriseInfo/enterpriseInfo?companyId=' + item.companyId)">
-								<view class="gwList-box-item-box">
-									<!-- 标题-薪资 -->
-									<view class="morePost">查看更多职位</view>
+								<view v-if="item.postPushList.length > 3" class="gwList-box-item companyPost"
+									@click="goTo('/my/enterpriseInfo/enterpriseInfo?companyId=' + item.companyId)">
+									<view class="gwList-box-item-box">
+										<!-- 标题-薪资 -->
+										<view class="morePost">查看更多职位</view>
+									</view>
 								</view>
 							</view>
-							</view>
 						</scroll-view>
 					</view>
 				</view>
@@ -213,25 +233,20 @@
 				</view>
 			</block>
 		</block>
-		
+
 		<!-- 排序弹窗 -->
 		<view class="sort-modal" v-if="showSortModalFlag" @click="hideSortModal">
 			<view class="sort-modal-content" @click.stop>
 				<!-- 拖拽条 -->
 				<view class="sort-modal-handle"></view>
-				
+
 				<!-- 标题 -->
 				<view class="sort-modal-title">排序</view>
-				
+
 				<!-- 排序选项 -->
 				<view class="sort-options">
-					<view 
-						class="sort-option" 
-						:class="selectedSort === index ? 'active' : ''"
-						@click="selectSort(index)"
-						v-for="(option, index) in sortOptions" 
-						:key="index"
-					>
+					<view class="sort-option" :class="selectedSort === index ? 'active' : ''" @click="selectSort(index)"
+						v-for="(option, index) in sortOptions" :key="index">
 						<view class="sort-option-icon">
 							<view class="check-icon" v-if="selectedSort === index">✓</view>
 						</view>
@@ -249,292 +264,292 @@
 </template>
 
 <script>
-	import empty from '../../components/empty.vue'
-	export default {
-		components: {
-			empty
-		},
-		data() {
-			return {
-				statusBarHeight: 0, // 状态栏高度
-				show: true,
-				keyword: '',
-				currentSx: 0,
-				sxTypeList: [{
-						id: 1,
-						name: '职位',
-					},
-					{
-						id: 2,
-						name: '公司',
-					}
-				],
-				token: '',
-				page: 1,
-				limit: 10,
-				totlo: 1,
-				city: '',
-				county: '', //区
-				education: '', //学历
-				salaryRange: '', //薪资
-				experience: '', //经验
-				companyPeople: '', //公司规模
-				industry: '', //行业
-				longitude: '',
-				latitude: '',
-				dataList: [],
-				searchList: [],
-				hotJobsList: [
-					
-				],
-				showSortModalFlag: false,
-				selectedSort: 0,
-				sortOptions: ['综合排序', '最新优先', '距离优先'],
-				filter:'筛选'
-			};
-		},
-		watch: {
-			currentSx(newData, oldData) {
-				this.page = 1
-				this.dataList=[]
-				this.getUserList();
+import empty from '../../components/empty.vue'
+export default {
+	components: {
+		empty
+	},
+	data() {
+		return {
+			statusBarHeight: 0, // 状态栏高度
+			show: true,
+			keyword: '',
+			currentSx: 0,
+			sxTypeList: [{
+				id: 1,
+				name: '职位',
 			},
+			{
+				id: 2,
+				name: '公司',
+			}
+			],
+			token: '',
+			page: 1,
+			limit: 10,
+			totlo: 1,
+			city: '',
+			county: '', //区
+			education: '', //学历
+			salaryRange: '', //薪资
+			experience: '', //经验
+			companyPeople: '', //公司规模
+			industry: '', //行业
+			longitude: '',
+			latitude: '',
+			dataList: [],
+			searchList: [],
+			hotJobsList: [
+
+			],
+			showSortModalFlag: false,
+			selectedSort: 0,
+			sortOptions: ['综合排序', '最新优先', '距离优先'],
+			filter: '筛选'
+		};
+	},
+	watch: {
+		currentSx(newData, oldData) {
+			this.page = 1
+			this.dataList = []
+			this.getUserList();
 		},
-		onLoad() {
-			// 获取状态栏高度
-			let systemInfo = uni.getSystemInfoSync();
-			this.statusBarHeight = systemInfo.statusBarHeight || 0;
-			let that = this
-			const condition=this.$queue.getFilterData()
+	},
+	onLoad() {
+		// 获取状态栏高度
+		let systemInfo = uni.getSystemInfoSync();
+		this.statusBarHeight = systemInfo.statusBarHeight || 0;
+		let that = this
+		const condition = this.$queue.getFilterData()
+		this.education = condition.education //学历
+		this.experience = condition.experience //经验
+		this.industry = condition.industry //行业
+		this.salaryRange = condition.salaryRange //薪资
+		this.companyPeople = condition.companyPeople //公司规模
+		if (!this.city) {
+			if (uni.getStorageSync('city')) {
+				this.city = uni.getStorageSync('city')
+			} else {
+				this.city = ''
+			}
+		}
+		uni.$on('filterCity', data => {
+			console.log(data, '选择的市')
+			that.city = data.city
+			that.county = data.county
+			this.page = 1
+			that.getUserList();
+		})
+		this.token = uni.getStorageSync('token');
+
+		this.getMyRecordList()
+		this.getHotList()
+
+		uni.$on('updateScreenFilterRecord', () => {
+			const condition = this.$queue.getFilterData()
 			this.education = condition.education //学历
 			this.experience = condition.experience //经验
 			this.industry = condition.industry //行业
 			this.salaryRange = condition.salaryRange //薪资
 			this.companyPeople = condition.companyPeople //公司规模
-			if (!this.city) {
-				if (uni.getStorageSync('city')) {
-					this.city = uni.getStorageSync('city')
-				} else {
-					this.city = ''
+			this.page = 1
+			that.getUserList();
+		})
+	},
+	onUnload() {
+		uni.$off('filterCity');
+		uni.$off('updateScreenFilterRecord');
+	},
+	computed: {
+		filledFieldsCount() {
+			const fields = [this.education, this.experience, this.industry, this.salaryRange, this.companyPeople];
+			const count = fields.filter(item => item).length;
+			return count > 0 ? '·' + count : '';
+		}
+	},
+	onPullDownRefresh() {
+		this.page = 1
+		this.getUserList();
+	},
+	onReachBottom() {
+		if (this.page < this.totlo) {
+			this.page += 1
+			this.getUserList();
+		}
+	},
+	methods: {
+		// 删除历史记录
+		clearHistory() {
+			let that = this;
+			uni.showModal({
+				title: "提示",
+				content: "确定删除吗?",
+				confirmColor: "#016BF6",
+				success: function (res) {
+					if (res.cancel) return;
+					that.$Request.post('/app/record/deleteRecord', { recordId: '' }).then(res => {
+						if (res.code == 0) {
+							that.searchList = []
+							uni.showToast({
+								title: '删除成功',
+								icon: "none"
+							})
+						}
+					})
+				},
+			});
+		},
+		async selectCity() {
+			//获取经纬度后请求岗位接口,经纬度用于筛选距离
+			var that = this
+			// #ifdef APP
+			const hasLocation = await this.$queue.checkPermission(
+				'location',
+				'获取位置需要定位权限,用于推荐同城的求职岗位或牛人',
+				this
+			);
+			if (!hasLocation) return that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county);
+			// #endif
+			uni.getLocation({
+				type: 'wgs84', //wgs84  gcj02
+				success: function (res) {
+					console.log(res, '地理位置');
+					that.latitude = res.latitude;
+					that.longitude = res.longitude;
+					// that.getUserList();
+					that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county)
+				},
+				fail: function () {
+					console.log('获取地址失败');
+					that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county)
 				}
-			}
-			uni.$on('filterCity', data => {
-				console.log(data, '选择的市')
-				that.city = data.city
-				that.county = data.county
-				this.page = 1
-				that.getUserList();
-			})
-			this.token = uni.getStorageSync('token');
-			
-			this.getMyRecordList()
-			this.getHotList()
-			
-			uni.$on('updateScreenFilterRecord', () => {
-				const condition=this.$queue.getFilterData()
-				this.education = condition.education //学历
-				this.experience = condition.experience //经验
-				this.industry = condition.industry //行业
-				this.salaryRange = condition.salaryRange //薪资
-				this.companyPeople = condition.companyPeople //公司规模
-				this.page = 1
-				that.getUserList();
 			})
 		},
-		onUnload(){
-			uni.$off('filterCity');
-			uni.$off('updateScreenFilterRecord');
+		/**
+		 * 返回上一页
+		 */
+		goBack() {
+			uni.navigateBack()
 		},
-		computed: {
-			filledFieldsCount() {
-		       const fields = [this.education, this.experience, this.industry, this.salaryRange, this.companyPeople];
-		       const count = fields.filter(item => item).length;
-		       return count > 0 ? '·' + count : '';
+
+		//判断岗位名称与职位名称是否相同(不区分大小写)
+		isSameName(className, name) {
+			if (!className || !name)
+				return;
+			let str1 = className.trim();
+			let str2 = name.trim();
+			if (str1.length !== str2.length) {
+				return true;
 			}
-		  },
-		onPullDownRefresh() {
-			this.page = 1
-			this.getUserList();
+			return str1.toLowerCase() !== str2.toLowerCase();
 		},
-		onReachBottom() {
-			if (this.page < this.totlo) {
-				this.page += 1
-				this.getUserList();
+		/**
+		 * @param {Object} postPushId
+		 * 岗位详情
+		 */
+		gotoInfo(postPushId) {
+			if (uni.getStorageSync('token')) {
+				uni.navigateTo({
+					url: '/pages/index/game/order?postPushId=' + postPushId
+				})
+			} else {
+				this.noLogin()
 			}
+
 		},
-		methods: {
-			// 删除历史记录
-			clearHistory(){
-				let that = this;
-				uni.showModal({
-					title: "提示",
-					content: "确定删除吗?",
-					confirmColor: "#016BF6",
-					success: function(res) {
-						if(res.cancel)return;
-						that.$Request.post('/app/record/deleteRecord', {recordId:''}).then(res => {
-							if (res.code == 0) {
-								that.searchList = []
-								uni.showToast({
-									title: '删除成功',
-									icon: "none"
-								})
-							}
-						})
-					},
-				});
-			},
-			async selectCity(){
-				//获取经纬度后请求岗位接口,经纬度用于筛选距离
-				var that=this
-				// #ifdef APP
-				const hasLocation = await this.$queue.checkPermission(
-					'location',
-					'获取位置需要定位权限,用于推荐同城的求职岗位或牛人',
-					this
-				);
-				if (!hasLocation) return that.goNav('/package/screen/city?city='+that.city+'&county='+that.county);
-				// #endif
-				uni.getLocation({
-					type: 'wgs84', //wgs84  gcj02
-					success: function(res) {
-						console.log(res, '地理位置');
-						that.latitude = res.latitude;
-						that.longitude = res.longitude;
-						// that.getUserList();
-						that.goNav('/package/screen/city?city='+that.city+'&county='+that.county)
-					},
-					fail: function() {
-						console.log('获取地址失败');
-						that.goNav('/package/screen/city?city='+that.city+'&county='+that.county)
+		goTo(action) {
+			if (uni.getStorageSync('token')) {
+				uni.navigateTo({
+					url: action,
+					success(e) {
+						console.log(e)
+					}, fail(e) {
+						console.log(e)
 					}
 				})
-			},
-			/**
-			 * 返回上一页
-			 */
-			goBack() {
-				uni.navigateBack()
-			},
-			
-			//判断岗位名称与职位名称是否相同(不区分大小写)
-			isSameName(className, name) {
-				if(!className||!name)
-					return;
-				let str1 = className.trim();
-				let str2 = name.trim();
-				if (str1.length !== str2.length) {
-					return true;
+			} else {
+				this.noLogin()
+			}
+		},
+		//我的搜索关键词
+		getMyRecordList() {
+			this.$Request.get('/app/record/getMyRecordList', {
+				userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
+			}).then(res => {
+				if (res.code == 0) {
+					this.searchList = res.data.records
+					if (this.searchList.length > 0) {
+						this.show = true
+					} else {
+						this.show = false
+						this.custom()
+					}
 				}
-				return str1.toLowerCase() !== str2.toLowerCase();
-			},
-			/**
-			 * @param {Object} postPushId
-			 * 岗位详情
-			 */
-			gotoInfo(postPushId) {
-				if (uni.getStorageSync('token')) {
-					uni.navigateTo({
-						url: '/pages/index/game/order?postPushId=' + postPushId
-					})
-				} else {
-					this.noLogin()
+			})
+		},
+		getHotList() {
+			this.$Request.get('/app/postPush/getHotList', {
+				userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
+			}).then(res => {
+				if (res.code == 0) {
+					this.hotJobsList = res.data
 				}
+			})
+		},
+		/**
+		 * 清空搜索内容
+		 */
+		clear() {
+			this.page = 1
+			this.getUserList();
+		},
+		/**
+		 * @param {Object} keyword
+		 * 热词搜索
+		 */
+		goSearch(keyword) {
+			this.show = false
+			this.keyword = keyword
+			this.getUserList();
+		},
+		/**
+		 * @param {Object} e
+		 * 用户点击搜索时触发
+		 */
+		custom(e) {
+			this.show = false
+			this.page = 1
+			this.getUserList()
+		},
+		/**
+		 * 获取岗位列表
+		 */
+		getUserList() {
+			let data = {
+				page: this.page,
+				limit: this.limit,
+				postType: '',
+				ruleClassifyName: this.keyword, //岗位名称
+				screen: this.selectedSort + 1, //1推荐 2最新
+				county: this.county, //区
+				city: this.city, //城市
+				salaryRange: this.salaryRange, //薪资范围
+				education: this.education, //学历
+				experience: this.experience, //经验
+				industry: this.industry, //行业
+				companyPeople: this.companyPeople, //公司规模
+				lng: this.longitude,
+				lat: this.latitude,
+				/* userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : '' */
+			}
+			if (this.currentSx == 1)
+				data.key = this.keyword
+			let action = this.currentSx == 1 ? '/app/company/getCompanyPostPush' : '/app/postPush/userGetPostPushList'
 
-			},
-			goTo(action){
-				if (uni.getStorageSync('token')) {
-					uni.navigateTo({
-						url: action,
-						success(e) {
-							console.log(e)
-						},fail(e) {
-							console.log(e)
-						}
-					})
-				} else {
-					this.noLogin()
-				}
-			},
-			//我的搜索关键词
-			getMyRecordList() {
-				this.$Request.get('/app/record/getMyRecordList', {
-					userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
-				}).then(res => {
-					if (res.code == 0) {
-						this.searchList = res.data.records
-						if (this.searchList.length > 0) {
-							this.show = true
-						} else {
-							this.show = false
-							this.custom()
-						}
-					}
-				})
-			},
-			getHotList() {
-				this.$Request.get('/app/postPush/getHotList', {
-					userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
-				}).then(res => {
-					if (res.code == 0) {
-						this.hotJobsList = res.data
-					}
-				})
-			},
-			/**
-			 * 清空搜索内容
-			 */
-			clear() {
-				this.page = 1
-				this.getUserList();
-			},
-			/**
-			 * @param {Object} keyword
-			 * 热词搜索
-			 */
-			goSearch(keyword) {
-				this.show = false
-				this.keyword = keyword
-				this.getUserList();
-			},
-			/**
-			 * @param {Object} e
-			 * 用户点击搜索时触发
-			 */
-			custom(e) {
-				this.show = false
-				this.page = 1
-				this.getUserList()
-			},
-			/**
-			 * 获取岗位列表
-			 */
-			getUserList() {
-				let data = {
-					page: this.page,
-					limit: this.limit,
-					postType: '',
-					ruleClassifyName: this.keyword, //岗位名称
-					screen: this.selectedSort + 1, //1推荐 2最新
-					county: this.county, //区
-					city: this.city, //城市
-					salaryRange: this.salaryRange, //薪资范围
-					education: this.education, //学历
-					experience: this.experience, //经验
-					industry: this.industry, //行业
-					companyPeople: this.companyPeople, //公司规模
-					lng: this.longitude,
-					lat: this.latitude,
-					/* userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : '' */
-				}
-				if(this.currentSx==1)
-					data.key=this.keyword
-				let action=this.currentSx==1?'/app/company/getCompanyPostPush':'/app/postPush/userGetPostPushList'
-				
-				this.$Request.get(action, data).then(res => {
-					uni.stopPullDownRefresh()
-					if (res.code == 0) {
-						if(this.currentSx==0)
+			this.$Request.get(action, data).then(res => {
+				uni.stopPullDownRefresh()
+				if (res.code == 0) {
+					if (this.currentSx == 0)
 						res.data.records.map(item => {
 							if (item.positionWelfare) {
 								item.positionWelfare = item.positionWelfare.split(',')
@@ -542,7 +557,7 @@
 								item.positionWelfare = []
 							}
 						})
-						else
+					else
 						res.data.records.map(item => {
 							if (item.welfare) {
 								item.welfare = item.welfare.split(',')
@@ -550,686 +565,700 @@
 								item.welfare = []
 							}
 						})
-						if (this.page == 1) {
-							this.dataList = res.data.records
-						} else {
-							this.dataList = [...this.dataList, ...res.data.records]
-						}
-						this.totlo = res.data.pages
+					if (this.page == 1) {
+						this.dataList = res.data.records
+					} else {
+						this.dataList = [...this.dataList, ...res.data.records]
 					}
-				})
-			},
-			//跳转
-			goNav(url) {
-				if (uni.getStorageSync('token')) {
-					uni.navigateTo({
-						url: url
-					})
-				} else {
-					this.noLogin()
+					this.totlo = res.data.pages
 				}
+			})
+		},
+		//跳转
+		goNav(url) {
+			if (uni.getStorageSync('token')) {
+				uni.navigateTo({
+					url: url
+				})
+			} else {
+				this.noLogin()
+			}
 
-			},
-			//未登录
-			noLogin() {
-				uni.showModal({
-					title: '提示',
-					content: '您还未登录,请先登录',
-					confirmColor: '#016BF6',
-					success: function(res) {
-						if (res.confirm) {
-							console.log('用户点击确定');
-							// uni.reLaunch({
-							// 	url:'/pages/public/login'
-							// })
-							uni.navigateTo({
-								url: '/pages/public/login'
-							})
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
+		},
+		//未登录
+		noLogin() {
+			uni.showModal({
+				title: '提示',
+				content: '您还未登录,请先登录',
+				confirmColor: '#016BF6',
+				success: function (res) {
+					if (res.confirm) {
+						console.log('用户点击确定');
+						// uni.reLaunch({
+						// 	url:'/pages/public/login'
+						// })
+						uni.navigateTo({
+							url: '/pages/public/login'
+						})
+					} else if (res.cancel) {
+						console.log('用户点击取消');
 					}
-				})
-			},
-			
-			// 选择热门职位
-			selectHotJob(job) {
-				this.keyword = job.ruleClassifyName
-				this.custom()
-			},
-			
-			// 显示排序弹窗
-			showSortModal() {
-				this.showSortModalFlag = true
-			},
-			
-			// 隐藏排序弹窗
-			hideSortModal() {
-				this.showSortModalFlag = false
-			},
-			
-			// 选择排序选项
-			selectSort(index) {
-				this.selectedSort = index;
-				
-				this.hideSortModal()
-				// 这里可以添加排序逻辑
-				this.getUserList();
-			},
+				}
+			})
 		},
-	}
+
+		// 选择热门职位
+		selectHotJob(job) {
+			this.keyword = job.ruleClassifyName
+			this.custom()
+		},
+
+		// 显示排序弹窗
+		showSortModal() {
+			this.showSortModalFlag = true
+		},
+
+		// 隐藏排序弹窗
+		hideSortModal() {
+			this.showSortModalFlag = false
+		},
+
+		// 选择排序选项
+		selectSort(index) {
+			this.selectedSort = index;
+
+			this.hideSortModal()
+			// 这里可以添加排序逻辑
+			this.getUserList();
+		},
+	},
+}
 </script>
 
 <style lang="scss">
-	// page {
-	// 	background: #F2F2F7;
-	// }
+// page {
+// 	background: #F2F2F7;
+// }
 
-	.active3 {
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		padding: 12rpx;
-		border-radius: 12rpx;
-		background: #FFFFFF !important;
-		margin-right: 12rpx;
-		border: 0.5px solid rgba(1, 107, 246, 1);
+.active3 {
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	padding: 12rpx;
+	border-radius: 12rpx;
+	background: #FFFFFF !important;
+	margin-right: 12rpx;
+	border: 0.5px solid rgba(1, 107, 246, 1);
 
-		color: rgba(1, 107, 246, 1) !important;
-		font-family: DM Sans;
-		font-size: 22rpx;
-		font-weight: 400;
-		line-height: 20rpx;
-		letter-spacing: 0px;
-		text-align: left;
-	}
+	color: rgba(1, 107, 246, 1) !important;
+	font-family: DM Sans;
+	font-size: 22rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+	letter-spacing: 0px;
+	text-align: left;
+}
 
-	.custom-navbar {
-		// position: fixed;
-		// top: 0;
-		// left: 0;
-		// right: 0;
-		width: 100%;
-		// padding-top: 80rpx;
-		// height: 88rpx;
-		background-color: #ffffff;
-		z-index: 10000;
-		
-		.navbar-content {
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-			height: 100%;
-			padding: 0 32rpx;
-			
-			.nav-left, .nav-right {
-				width: 60rpx;
-				height: 60rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-			}
-			
-			.nav-title {
-				color: rgba(51, 51, 51, 1);
-				font-family: DM Sans;
-				font-size: 30rpx;
-				font-weight: 700;
-				line-height: 26px;
-				letter-spacing: 0px;
-				text-align: center;
-			}
-		}
-	}
+.custom-navbar {
+	// position: fixed;
+	// top: 0;
+	// left: 0;
+	// right: 0;
+	width: 100%;
+	// padding-top: 80rpx;
+	// height: 88rpx;
+	background-color: #ffffff;
+	z-index: 10000;
 
-	.search {
-		width: 100%;
-		padding-top: 20rpx;
-		height: 88rpx;
-		background-color: #ffffff;
-		// position: fixed;
-		// top: 88rpx;
-		// z-index: 9999;
+	.navbar-content {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 100%;
+		padding: 0 32rpx;
 
-		.search-box {
-			width: 686rpx;
+		.nav-left,
+		.nav-right {
+			width: 60rpx;
 			height: 60rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
 		}
 
-		/deep/ .u-action {
-				color: rgba(1, 107, 246, 1);
-				font-family: DM Sans;
-				font-size: 24rpx;
-				font-weight: 500;
-				line-height: 48rpx;
-				letter-spacing: 0px;
-				text-align: center;
-			}
+		.nav-title {
+			color: rgba(51, 51, 51, 1);
+			font-family: DM Sans;
+			font-size: 30rpx;
+			font-weight: 700;
+			line-height: 26px;
+			letter-spacing: 0px;
+			text-align: center;
+		}
 	}
+}
 
-	.screen {
-		width: 100%;
-		height: 160rpx;
-		background-color: #ffffff;
-		// position: fixed;
-		// top: 200rpx;
-		// z-index: 9999;
-
-		.screen-box {
-			padding-top: 20rpx;
-			width: 686rpx;
-			height: 160rpx;
+.search {
+	width: 100%;
+	padding-top: 20rpx;
+	height: 88rpx;
+	background-color: #ffffff;
+	// position: fixed;
+	// top: 88rpx;
+	// z-index: 9999;
 
-			.topbg-sx-box {
-				width: 686rpx;
-				height: 25rpx;
-				margin-top: 30rpx;
-
-				.topbg-sx-box-l-i {
-					flex-direction: row;
-					justify-content: center;
-					align-items: center;
-					padding: 12rpx;
-					border-radius: 12rpx;
-					background: rgba(153, 153, 153, 0.1);
-					margin-right: 12rpx;
-
-					color: rgba(102, 102, 102, 1);
-					font-family: DM Sans;
-					font-size: 22rpx;
-					font-weight: 400;
-					line-height: 20rpx;
-					letter-spacing: 0px;
-					text-align: left;
-					margin-bottom: 20rpx;
-				}
-			}
-		}
+	.search-box {
+		width: 686rpx;
+		height: 60rpx;
 	}
-	
-	// 筛选栏右侧容器样式
-	.city-container {
-		color: rgba(153, 153, 153, 1);
-		font-family: DM Sans;
-		font-size: 22rpx;
-		font-weight: 400;
-		line-height: 20rpx;
-		letter-spacing: 0px;
-		text-align: left;
-		margin-right: 10rpx;
-		padding: 8rpx 12rpx;
-		border-radius: 12rpx;
-		background: rgba(198, 198, 198, 0.1);
-	}
-	
-	.sort-container {
+
+	/deep/ .u-action {
 		color: rgba(1, 107, 246, 1);
 		font-family: DM Sans;
-		font-size: 22rpx;
-		font-weight: 400;
-		line-height: 20rpx;
-		letter-spacing: 0px;
-		text-align: left;
-		margin-right: 10rpx;
-		padding: 8rpx 12rpx;
-		border-radius: 12rpx;
-		border: 0.5px solid rgba(1, 107, 246, 1);
-	}
-	
-	.filter-container {
-		color: rgba(153, 153, 153, 1);
-		font-family: DM Sans;
-		font-size: 22rpx;
-		font-weight: 400;
-		line-height: 20rpx;
+		font-size: 24rpx;
+		font-weight: 500;
+		line-height: 48rpx;
 		letter-spacing: 0px;
-		text-align: left;
-		margin-right: 10rpx;
-		padding: 8rpx 12rpx;
-		border-radius: 12rpx;
-		background: rgba(198, 198, 198, 0.1);
-		border:1rpx solid rgba(198, 198, 198, 0.1);
-	}
-	.activeColor{
-		color: #016bf6;
-		border:1rpx solid #016bf6;
-		background: #fff;
+		text-align: center;
 	}
+}
 
-	.searchJl {
-		width: 100%;
-		background-color: #ffffff;
-		// position: fixed;
-		// top: 200rpx;
-		// height: calc(100vh - 80rpx);
-		margin-bottom: 40rpx;
+.screen {
+	width: 100%;
+	height: 160rpx;
+	background-color: #ffffff;
+	// position: fixed;
+	// top: 200rpx;
+	// z-index: 9999;
 
-		.searchJl-box {
+	.screen-box {
+		padding-top: 20rpx;
+		width: 686rpx;
+		height: 160rpx;
+
+		.topbg-sx-box {
 			width: 686rpx;
-			height: 100%;
-			padding-top: 28rpx;
+			height: 25rpx;
+			margin-top: 30rpx;
 
-			.searchJl-box-header {
-				display: flex;
+			.topbg-sx-box-l-i {
+				flex-direction: row;
+				justify-content: center;
 				align-items: center;
-				justify-content: space-between;
-				// margin-bottom: 15rpx;
-			}
+				padding: 12rpx;
+				border-radius: 12rpx;
+				background: rgba(153, 153, 153, 0.1);
+				margin-right: 12rpx;
 
-			.searchJl-box-title {
-				color: rgba(34, 37, 42, 1);
+				color: rgba(102, 102, 102, 1);
 				font-family: DM Sans;
-				font-size: 26rpx;
+				font-size: 22rpx;
 				font-weight: 400;
-				line-height: 48rpx;
+				line-height: 20rpx;
 				letter-spacing: 0px;
 				text-align: left;
-			}
-
-			.searchJl-box-label {
-				width: 100%;
-				gap: 8rpx;
-
-				.searchJl-box-item {
-					padding: 12rpx;
-					border-radius: 8rpx;
-					background: rgba(153, 153, 153, 0.1);
-					color: rgba(102, 102, 102, 1);
-					font-family: DM Sans;
-					font-size: 20rpx;
-					font-weight: 400;
-					line-height: 20rpx;
-					letter-spacing: 0px;
-					text-align: left;
-					margin-top: 20rpx;
-				}
-				.no-more{
-					line-height: 20rpx;
-					padding: 12rpx;
-					font-family: DM Sans;
-					font-size: 20rpx;
-					font-weight: 400;
-				}
+				margin-bottom: 20rpx;
 			}
 		}
 	}
+}
 
-	// 近期热招容器样式
-	.hot-jobs-container {
-		width: 100%;
-		background-color: #ffffff;
-		// position: fixed;
-		// top: 420rpx; 
-		// height: calc(100vh - 400rpx);
-		// z-index: 9999;
-		
-		.hot-jobs-section {
-			width: 686rpx;
-			// padding-top: 28rpx;
-		}
-	}
+// 筛选栏右侧容器样式
+.city-container {
+	color: rgba(153, 153, 153, 1);
+	font-family: DM Sans;
+	font-size: 22rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+	letter-spacing: 0px;
+	text-align: left;
+	margin-right: 10rpx;
+	padding: 8rpx 12rpx;
+	border-radius: 12rpx;
+	background: rgba(198, 198, 198, 0.1);
+}
 
-	// 近期热招样式
-	.hot-jobs-section {
-		// margin-bottom: 32rpx;
-		
-		.section-header {
+.sort-container {
+	color: rgba(1, 107, 246, 1);
+	font-family: DM Sans;
+	font-size: 22rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+	letter-spacing: 0px;
+	text-align: left;
+	margin-right: 10rpx;
+	padding: 8rpx 12rpx;
+	border-radius: 12rpx;
+	border: 0.5px solid rgba(1, 107, 246, 1);
+}
+
+.filter-container {
+	color: rgba(153, 153, 153, 1);
+	font-family: DM Sans;
+	font-size: 22rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+	letter-spacing: 0px;
+	text-align: left;
+	margin-right: 10rpx;
+	padding: 8rpx 12rpx;
+	border-radius: 12rpx;
+	background: rgba(198, 198, 198, 0.1);
+	border: 1rpx solid rgba(198, 198, 198, 0.1);
+}
+
+.activeColor {
+	color: #016bf6;
+	border: 1rpx solid #016bf6;
+	background: #fff;
+}
+
+.searchJl {
+	width: 100%;
+	background-color: #ffffff;
+	// position: fixed;
+	// top: 200rpx;
+	// height: calc(100vh - 80rpx);
+	margin-bottom: 40rpx;
+
+	.searchJl-box {
+		width: 686rpx;
+		height: 100%;
+		padding-top: 28rpx;
+
+		.searchJl-box-header {
 			display: flex;
 			align-items: center;
 			justify-content: space-between;
-			margin-bottom: 20rpx;
-			
-			.section-title {
-				color: rgba(34, 37, 42, 1);
-				font-family: DM Sans;
-				font-size: 26rpx;
-				font-weight: 400;
-				line-height: 48rpx;
-				letter-spacing: 0px;
-				text-align: left;
-			}
+			// margin-bottom: 15rpx;
 		}
-	}
 
-	.hot-jobs-grid {
-		display: flex;
-		flex-wrap: wrap;
-		gap: 8rpx;
-		
-		.hot-job-item {
-			width: calc(50% - 4rpx);
-			padding: 8rpx;
-			background: #ffffff;
-			border-radius: 12rpx;
-			position: relative;
-			
-			.job-name {
+		.searchJl-box-title {
+			color: rgba(34, 37, 42, 1);
+			font-family: DM Sans;
+			font-size: 26rpx;
+			font-weight: 400;
+			line-height: 48rpx;
+			letter-spacing: 0px;
+			text-align: left;
+		}
+
+		.searchJl-box-label {
+			width: 100%;
+			gap: 8rpx;
+
+			.searchJl-box-item {
+				padding: 12rpx;
+				border-radius: 8rpx;
+				background: rgba(153, 153, 153, 0.1);
 				color: rgba(102, 102, 102, 1);
 				font-family: DM Sans;
 				font-size: 20rpx;
 				font-weight: 400;
-				line-height: 44rpx;
+				line-height: 20rpx;
 				letter-spacing: 0px;
 				text-align: left;
+				margin-top: 20rpx;
 			}
-			
-			.hot-tag {
-				position: absolute;
-				top: 8rpx;
-				right: 10rpx;
-				border-radius: 12rpx;
-				background: rgba(237, 66, 69, 1);
-				padding: 4rpx 12rpx;
-				
-				.hot-tag-text {
-					color: rgba(255, 255, 255, 1);
-					font-family: DM Sans;
-					font-size: 16rpx;
-					font-weight: 400;
-					text-align: center;
-				}
+
+			.no-more {
+				line-height: 20rpx;
+				padding: 12rpx;
+				font-family: DM Sans;
+				font-size: 20rpx;
+				font-weight: 400;
 			}
 		}
 	}
+}
+
+// 近期热招容器样式
+.hot-jobs-container {
+	width: 100%;
+	background-color: #ffffff;
+	// position: fixed;
+	// top: 420rpx; 
+	// height: calc(100vh - 400rpx);
+	// z-index: 9999;
+
+	.hot-jobs-section {
+		width: 686rpx;
+		// padding-top: 28rpx;
+	}
+}
+
+// 近期热招样式
+.hot-jobs-section {
+	// margin-bottom: 32rpx;
 
-	// 排序弹窗样式
-	.sort-modal {
-		position: fixed;
-		top: 0;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		background: rgba(0, 0, 0, 0.5);
-		z-index: 10001;
+	.section-header {
 		display: flex;
-		align-items: flex-end;
-		
-		.sort-modal-content {
-			width: 100%;
-			background: #ffffff;
-			border-radius: 24rpx 24rpx 0 0;
-			padding: 20rpx 40rpx 40rpx 40rpx;
-			max-height: 60vh;
-			
-			.sort-modal-handle {
-				width: 80rpx;
-				height: 8rpx;
-				background: #E5E5E5;
-				border-radius: 4rpx;
-				margin: 0 auto 30rpx auto;
-			}
-			
-			.sort-modal-title {
-				font-size: 32rpx;
-				font-weight: 600;
-				color: #333333;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 20rpx;
+
+		.section-title {
+			color: rgba(34, 37, 42, 1);
+			font-family: DM Sans;
+			font-size: 26rpx;
+			font-weight: 400;
+			line-height: 48rpx;
+			letter-spacing: 0px;
+			text-align: left;
+		}
+	}
+}
+
+.hot-jobs-grid {
+	display: flex;
+	flex-wrap: wrap;
+	gap: 8rpx;
+
+	.hot-job-item {
+		width: calc(50% - 4rpx);
+		padding: 8rpx;
+		background: #ffffff;
+		border-radius: 12rpx;
+		position: relative;
+
+		.job-name {
+			color: rgba(102, 102, 102, 1);
+			font-family: DM Sans;
+			font-size: 20rpx;
+			font-weight: 400;
+			line-height: 44rpx;
+			letter-spacing: 0px;
+			text-align: left;
+		}
+
+		.hot-tag {
+			position: absolute;
+			top: 8rpx;
+			right: 10rpx;
+			border-radius: 12rpx;
+			background: rgba(237, 66, 69, 1);
+			padding: 4rpx 12rpx;
+
+			.hot-tag-text {
+				color: rgba(255, 255, 255, 1);
+				font-family: DM Sans;
+				font-size: 16rpx;
+				font-weight: 400;
 				text-align: center;
-				padding-bottom: 30rpx;
-				margin-bottom: 30rpx;
-				border-bottom: 1px solid rgba(153, 153, 153, 0.25);
 			}
-			
-			.sort-options {
-				.sort-option {
-					display: flex;
-					align-items: center;
-					padding: 24rpx 32rpx;
-					margin-bottom: 16rpx;
-					// background: #F8F8F8;
-					border-radius: 42rpx;
-					border: 2rpx solid rgba(227, 231, 236, 1);
-					
-					&.active {
-						background: #F0F8FF;
-						border-color: #007AFF;
-						
-						.sort-option-icon {
-							background: #007AFF;
-							border-color: #007AFF;
-							
-							.check-icon {
-								color: #ffffff;
-							}
-						}
-						
-						.sort-option-text {
-							color: #007AFF;
-							font-weight: 500;
-						}
-					}
-					
+		}
+	}
+}
+
+// 排序弹窗样式
+.sort-modal {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	background: rgba(0, 0, 0, 0.5);
+	z-index: 10001;
+	display: flex;
+	align-items: flex-end;
+
+	.sort-modal-content {
+		width: 100%;
+		background: #ffffff;
+		border-radius: 24rpx 24rpx 0 0;
+		padding: 20rpx 40rpx 40rpx 40rpx;
+		max-height: 60vh;
+
+		.sort-modal-handle {
+			width: 80rpx;
+			height: 8rpx;
+			background: #E5E5E5;
+			border-radius: 4rpx;
+			margin: 0 auto 30rpx auto;
+		}
+
+		.sort-modal-title {
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			text-align: center;
+			padding-bottom: 30rpx;
+			margin-bottom: 30rpx;
+			border-bottom: 1px solid rgba(153, 153, 153, 0.25);
+		}
+
+		.sort-options {
+			.sort-option {
+				display: flex;
+				align-items: center;
+				padding: 24rpx 32rpx;
+				margin-bottom: 16rpx;
+				// background: #F8F8F8;
+				border-radius: 42rpx;
+				border: 2rpx solid rgba(227, 231, 236, 1);
+
+				&.active {
+					background: #F0F8FF;
+					border-color: #007AFF;
+
 					.sort-option-icon {
-						width: 40rpx;
-						height: 40rpx;
-						border-radius: 50%;
-						border: 2rpx solid #E5E5E5;
-						background: #ffffff;
-						display: flex;
-						align-items: center;
-						justify-content: center;
-						margin-right: 24rpx;
-						
+						background: #007AFF;
+						border-color: #007AFF;
+
 						.check-icon {
-							font-size: 24rpx;
 							color: #ffffff;
-							font-weight: bold;
 						}
 					}
-					
+
 					.sort-option-text {
-						font-size: 28rpx;
-						color: #333333;
-						flex: 1;
+						color: #007AFF;
+						font-weight: 500;
+					}
+				}
+
+				.sort-option-icon {
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+					border: 2rpx solid #E5E5E5;
+					background: #ffffff;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					margin-right: 24rpx;
+
+					.check-icon {
+						font-size: 24rpx;
+						color: #ffffff;
+						font-weight: bold;
 					}
 				}
+
+				.sort-option-text {
+					font-size: 28rpx;
+					color: #333333;
+					flex: 1;
+				}
 			}
 		}
 	}
+}
 
-	.title-left {
-		display: flex;
-		align-items: center;
-		gap: 8rpx;
+.title-left {
+	display: flex;
+	align-items: center;
+	gap: 8rpx;
+}
+
+.job-title-text {
+	color: rgba(23, 23, 37, 1);
+	font-family: DM Sans;
+	font-size: 38rpx;
+	font-weight: 700;
+	line-height: 48rpx;
+	letter-spacing: 0.5%;
+	text-align: left;
+}
+
+.salary-text-box {
+	border-radius: 24rpx;
+	background: #FEE2E3;
+	display: flex;
+	justify-content: flex-start;
+	align-items: center;
+	padding: 6rpx 24rpx;
+
+	.jipin-icon {
+		width: 20rpx;
+		height: 20rpx;
+		margin-right: 4rpx;
 	}
-	
-	.job-title-text {
-		color: rgba(23, 23, 37, 1);
+
+	.jipin-text {
+		color: rgba(237, 66, 69, 1);
 		font-family: DM Sans;
-		font-size: 38rpx;
-		font-weight: 700;
-		line-height: 48rpx;
+		font-size: 18rpx;
+		font-weight: 400;
+		line-height: 20px;
 		letter-spacing: 0.5%;
 		text-align: left;
 	}
-	
-	.salary-text-box {
-		border-radius: 24rpx;
-		background: #FEE2E3;
-		display: flex;
-		justify-content: flex-start;
-		align-items: center;
-		padding: 6rpx 24rpx;
-		.jipin-icon {
-			width: 20rpx;
-			height: 20rpx;
-			margin-right: 4rpx;
+}
+
+.salary-text {
+	color: rgba(1, 107, 246, 1);
+	font-family: DM Sans;
+	font-size: 28rpx;
+	font-weight: 700;
+	line-height: 40rpx;
+	letter-spacing: 0.5%;
+	text-align: right;
+}
+
+.company-name,
+.company-people {
+	color: rgba(156, 164, 171, 1);
+	font-family: DM Sans;
+	font-size: 24rpx;
+	font-weight: 400;
+	line-height: 40rpx;
+	letter-spacing: 0.5%;
+	text-align: left;
+}
+
+.job-tag {
+	height: 42rpx;
+	display: flex;
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	padding: 8rpx;
+	border-radius: 8rpx;
+	background: rgba(198, 198, 198, 0.1);
+	margin-right: 16rpx;
+	margin-bottom: 16rpx;
+	color: rgba(153, 153, 153, 1);
+	font-size: 24rpx;
+}
+
+.company-info-text,
+.location-text {
+	color: rgba(156, 164, 171, 1);
+	font-family: DM Sans;
+	font-size: 20rpx;
+	font-weight: 400;
+	line-height: 40rpx;
+	letter-spacing: 0.5%;
+	text-align: left;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.reply-time {
+	display: flex;
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	padding: 8rpx;
+	font-family: DM Sans;
+	font-size: 20rpx;
+	font-weight: 400;
+	line-height: 40rpx;
+	letter-spacing: 0.5%;
+	text-align: left;
+	border-radius: 12rpx;
+	background: #ECE1FD;
+	color: #8858C5;
+	margin-left: 10rpx
+}
+
+.gwList {
+	width: 100%;
+	margin-top: 40rpx;
+	flex: 1;
+	overflow: auto;
+
+	.gwList-box {
+		width: 710rpx;
+		height: 100%;
+
+		.box {
+			margin-bottom: 25rpx;
 		}
-		
-		.jipin-text {
-			color: rgba(237, 66, 69, 1);
-			font-family: DM Sans;
-			font-size: 18rpx;
-			font-weight: 400;
-			line-height: 20px;
-			letter-spacing: 0.5%;
-			text-align: left;
+
+		.gwList-box-item {
+			width: 100%;
+			// height: 329rpx;
+			background-color: #ffffff;
+			border-radius: 12rpx;
+			margin-bottom: 20rpx;
+			padding: 36rpx;
+			background: rgba(253, 253, 253, 1);
+			border: 0.5px solid rgba(227, 231, 236, 1);
 		}
-	}
 
-	.salary-text {
-		color: rgba(1, 107, 246, 1);
-		font-family: DM Sans;
-		font-size: 28rpx;
-		font-weight: 700;
-		line-height: 40rpx;
-		letter-spacing: 0.5%;
-		text-align: right;
-	}
-	
-	.company-name,
-	.company-people {
-		color: rgba(156, 164, 171, 1);
-		font-family: DM Sans;
-		font-size: 24rpx;
-		font-weight: 400;
-		line-height: 40rpx;
-		letter-spacing: 0.5%;
-		text-align: left;
-	}
-	
-	.job-tag {
-		height: 42rpx;
-		display: flex;
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		padding: 8rpx;
-		border-radius: 8rpx;
-		background: rgba(198, 198, 198, 0.1);
-		margin-right: 16rpx;
-		margin-bottom: 16rpx;
-		color: rgba(153, 153, 153, 1);
-		font-size: 24rpx;
-	}
-	
-	.company-info-text,
-	.location-text {
-		color: rgba(156, 164, 171, 1);
-		font-family: DM Sans;
-		font-size: 20rpx;
-		font-weight: 400;
-		line-height: 40rpx;
-		letter-spacing: 0.5%;
-		text-align: left;
-		white-space: nowrap;
-		overflow: hidden;
-		text-overflow: ellipsis;
-	}
-	
-	.reply-time {
-		display: flex;
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		padding: 8rpx;
-		font-family: DM Sans;
-		font-size: 20rpx;
-		font-weight: 400;
-		line-height: 40rpx;
-		letter-spacing: 0.5%;
-		text-align: left;
-		border-radius: 12rpx;
-		background: #ECE1FD;
-		color: #8858C5;
-		margin-left:10rpx
-	}
+		.company {
+			padding: 20rpx;
+			background: #fff;
+			margin-bottom: 0rpx;
 
-	.gwList {
-		width: 100%;
-		margin-top: 40rpx;
-		flex: 1;
-		overflow: auto;
-		.gwList-box {
-			width: 710rpx;
-			height: 100%;
-			.box{
-				margin-bottom: 25rpx;
+			.gwList-box-item-box-info-l {
+				width: 80%;
+				margin-left: 20rpx;
+				margin-right: 20rpx;
 			}
-			.gwList-box-item {
-				width: 100%;
-				// height: 329rpx;
-				background-color: #ffffff;
-				border-radius: 12rpx;
-				margin-bottom: 20rpx;
-				padding: 36rpx;
-				background: rgba(253, 253, 253, 1);
-				border: 0.5px solid rgba(227, 231, 236, 1);
+		}
+
+		.companyPost {
+			padding: 20rpx;
+			margin-top: 8rpx;
+			margin-bottom: 0rpx;
+
+			.location-text {
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #007AFF;
+				align-self: flex-start;
 			}
-			.company{
-				padding: 20rpx;
-				background:#fff;
-				margin-bottom:0rpx;
-				.gwList-box-item-box-info-l{
-					width: 80%;
-					margin-left:20rpx;
-					margin-right: 20rpx;
-				}
+
+			.companyTitle {
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #111
 			}
-			.companyPost{
-				padding: 20rpx;
-				margin-top:8rpx;
-				margin-bottom:0rpx;
-				.location-text{
-					font-size: 26rpx;
-					font-weight: 500;
-					color: #007AFF;
-					align-self: flex-start;
-				}
-				.companyTitle{
-					font-size:32rpx;
-					font-weight: 500;
-					color:#111
-				}
-				.morePost{
-					color: #007AFF;
-					font-size: 20rpx;
-					text-align: center;
-				}
+
+			.morePost {
+				color: #007AFF;
+				font-size: 20rpx;
+				text-align: center;
 			}
-			.gwList-box-item-box {
-				width: 100%;
-				height: 100%;
-				.gwList-box-item-box-title {
-				}
+		}
 
-				.gwList-box-item-box-label {
-					margin-top: 14rpx;
-				}
+		.gwList-box-item-box {
+			width: 100%;
+			height: 100%;
 
-				.gwList-box-item-box-name {
-					margin-top: 14rpx;
-					color: #999999;
-					font-size: 28rpx;
-					font-weight: 500;
-				}
+			.gwList-box-item-box-title {}
 
-				.gwList-box-item-box-line {
-					width: 100%;
-					border: 1rpx solid #E6E6E6;
-					margin-top: 30rpx;
-					margin-bottom: 20rpx;
-				}
+			.gwList-box-item-box-label {
+				margin-top: 14rpx;
+			}
+
+			.gwList-box-item-box-name {
+				margin-top: 14rpx;
+				color: #999999;
+				font-size: 28rpx;
+				font-weight: 500;
+			}
 
-				.gwList-box-item-box-info {
-					font-size: 26rpx;
+			.gwList-box-item-box-line {
+				width: 100%;
+				border: 1rpx solid #E6E6E6;
+				margin-top: 30rpx;
+				margin-bottom: 20rpx;
+			}
 
-					.gwList-box-item-box-info-l {
-						color: #1A1A1A;
-						.tags{
-							gap:10rpx;
-							display: flex;
-							margin-top: 10rpx;
-							flex-flow: row wrap;
-						}
-					}
+			.gwList-box-item-box-info {
+				font-size: 26rpx;
+
+				.gwList-box-item-box-info-l {
+					color: #1A1A1A;
 
-					.gwList-box-item-box-info-r {
-						color: #999999;
-						max-width: 300rpx;
+					.tags {
+						gap: 10rpx;
+						display: flex;
+						margin-top: 10rpx;
+						flex-flow: row wrap;
 					}
 				}
+
+				.gwList-box-item-box-info-r {
+					color: #999999;
+					max-width: 300rpx;
+				}
 			}
 		}
 	}
-	
+}
 </style>