lyuis 8 months ago
parent
commit
b989a916a1

+ 1 - 1
package/jobIntention/preferenceSetting.vue

@@ -48,7 +48,7 @@
 export default {
 	data() {
 		return {
-			jobTitle: '亚马逊运营总监',
+			jobTitle: '岗位',
 			jobId:'',
 			selectedPreferences: ['独立站'],
 			preferenceOptions: [

+ 1 - 1
package/screen/city.vue

@@ -64,7 +64,7 @@
 				this.city = this.rightList[this.currents].city
 				this.county = this.rightList[this.currents].county
 				let data = {
-					city: this.city,
+					city: this.city=='全国'?'':this.city,
 					county: this.county == '全部' ? '' : this.county
 				}
 				uni.$emit('filterCity', data)

+ 1 - 1
package/screen/screen.vue

@@ -416,7 +416,7 @@ export default {
           arr[1] = obj2;
           arr[2] = obj3;
           arr[3] = obj4;
-          arr[4] = obj;
+          //arr[4] = obj;
           arr.map((item) => {
             item.list.map((ite) => {
               ite.select = false;

+ 138 - 30
package/search/search.vue

@@ -47,7 +47,7 @@
 							:key="index"
 							@click="selectHotJob(job)"
 						>
-							<text class="job-name">{{ job.name }}</text>
+							<text class="job-name">{{ job.ruleClassifyName }}</text>
 							<view class="hot-tag" v-if="job.isHot">
 								<text class="hot-tag-text">Hot</text>
 							</view>
@@ -73,7 +73,7 @@
 								<u-icon name="arrow-down" color="#999999" size="20"></u-icon>
 							</view>
 
-							<view class="sort-container" @click="showSortModal">
+							<view v-if="currentSx==0" class="sort-container" @click="showSortModal">
 								<text class="sort-text" style="margin-right: 10rpx;">综合排序</text>
 								<u-icon name="arrow-down" color="rgba(1, 107, 246, 1)" size="20"></u-icon>
 							</view>
@@ -87,6 +87,7 @@
 				</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%;">
@@ -105,7 +106,7 @@
 												{{item.stationName}}
 											</block>
 										</view>
-										<view class="salary-text-box">
+										<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>
@@ -129,11 +130,11 @@
 								<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.company?item.company.companyLogo:'../../static/logo.png'"
+											: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" v-if="item.company">
-											{{item.company.companyLegalPerson?item.company.companyLegalPerson:'未知'}}·人事总监
+										<view class="company-info-text">
+											{{item.user&&item.user.userName?item.user.userName:'未知'}}·{{item.hr&&item.hr.hrPosition||'匿名职位'}}
 										</view>
 										<view class="reply-time">10分钟前回复</view>
 									</view>
@@ -150,6 +151,66 @@
 			<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-box">
+						<scroll-view scroll-y="true" style="width: 100%;height: 100%;">
+							<view class="box" v-for="(item,index) in dataList" :key="index">
+							<view class="gwList-box-item company" @click="gotoInfo(item.postPushId)">
+								<view class="gwList-box-item-box">
+									<view class="gwList-box-item-box-title flex justify-between align-center">
+										<u-avatar src="../../static/images/index/jipinIcom.svg" class="jipin-icon" ></u-avatar>
+										<view class="gwList-box-item-box-info-l">
+											<view class="companyTitle">{{item.companyName}}</view>
+											<view class="company-info-text">
+												{{item.companyPeople}} · {{item.companyScope}}
+											</view>
+											<view class="company-info-text">
+												{{item.workTime}} · <text v-for="we in item.welfare">{{we}} · </text> 
+											</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="index">
+								<view class="gwList-box-item-box">
+									<!-- 标题-薪资 -->
+									<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 borderColor="#fdfdfd" text="单双休" type="info" mode="light" size="mini"></u-tag>
+												<u-tag borderColor="#fdfdfd" text="全品类" type="info" mode="light" size="mini"></u-tag>
+											</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">
+								<view class="gwList-box-item-box">
+									<!-- 标题-薪资 -->
+									<view class="morePost">查看更多职位</view>
+								</view>
+							</view>
+							</view>
+						</scroll-view>
+					</view>
+				</view>
+				<!-- 暂无数据 -->
+				<view class="gwList" v-else>
+					<empty />
+				</view>
+			</block>
 		</block>
 		
 		<!-- 排序弹窗 -->
@@ -194,11 +255,11 @@
 				currentSx: 0,
 				sxTypeList: [{
 						id: 1,
-						name: '推荐',
+						name: '职位',
 					},
 					{
 						id: 2,
-						name: '最新',
+						name: '公司',
 					}
 				],
 				token: '',
@@ -217,14 +278,7 @@
 				dataList: [],
 				searchList: [],
 				hotJobsList: [
-					{ name: '美国亚马逊运营', isHot: false },
-					{ name: '采购经理', isHot: false },
-					{ name: 'Tik Tok运营助理', isHot: true },
-					{ name: 'Temu运营专员', isHot: false },
-					{ name: '跨境电商运营助理', isHot: false },
-					{ name: '产品开发经理', isHot: false },
-					{ name: '海外仓管理经理', isHot: false },
-					{ name: '人事经理', isHot: false }
+					
 				],
 				showSortModalFlag: false,
 				selectedSort: 0,
@@ -233,6 +287,7 @@
 		},
 		watch: {
 			currentSx(newData, oldData) {
+				this.page = 1
 				this.getUserList();
 			},
 		},
@@ -252,6 +307,7 @@
 				}
 			})
 			this.getMyRecordList()
+			this.getHotList()
 		},
 		onShow() {
 			let that = this;
@@ -273,6 +329,7 @@
 			console.log(uni.getStorageSync('filter'), '1111111111');
 			if (uni.getStorageSync('filter') && (uni.getStorageSync('filter')).length > 0) {
 				let filter = uni.getStorageSync('filter')
+				console.log(filter)
 				filter.map(item => {
 					let arr = []
 					item.list.map(ite => {
@@ -281,13 +338,13 @@
 						}
 					})
 					switch (item.name) {
-						case '学历':
+						case '学历要求':
 							this.education = arr.join(',')
 							break;
-						case '薪资':
+						case '薪资范围(单选)':
 							this.salaryRange = arr.join(',')
 							break;
-						case '经验':
+						case '经验要求':
 							this.experience = arr.join(',')
 							break;
 						case '公司规模':
@@ -365,6 +422,15 @@
 					}
 				})
 			},
+			getHotList() {
+				this.$Request.get('/app/postPush/getHotList', {
+					userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
+				}).then(res => {
+					if (res.code == 0) {
+						this.hotJobsList = res.data
+					}
+				})
+			},
 			/**
 			 * 清空搜索内容
 			 */
@@ -399,9 +465,9 @@
 					limit: this.limit,
 					postType: '',
 					ruleClassifyName: this.keyword, //岗位名称
-					screen: +this.currentSx + 1, //1推荐 2最新
+					screen: this.selectedSort + 1, //1推荐 2最新
 					county: this.county, //区
-					city: this.city, //城市
+					city: '',//this.city, //城市
 					salaryRange: this.salaryRange, //薪资范围
 					education: this.education, //学历
 					experience: this.experience, //经验
@@ -411,9 +477,12 @@
 					lat: this.latitude,
 					userId: uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
 				}
-				this.$Request.get('/app/postPush/userGetPostPushList', data).then(res => {
+				let action=this.currentSx==1?'/app/company/listCompany':'/app/postPush/userGetPostPushList'
+				
+				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(',')
@@ -421,6 +490,14 @@
 								item.positionWelfare = []
 							}
 						})
+						else
+						res.data.records.map(item => {
+							if (item.welfare) {
+								item.welfare = item.welfare.split(',')
+							} else {
+								item.welfare = []
+							}
+						})
 						if (this.page == 1) {
 							this.dataList = res.data.records
 						} else {
@@ -465,7 +542,7 @@
 			
 			// 选择热门职位
 			selectHotJob(job) {
-				this.keyword = job.name
+				this.keyword = job.ruleClassifyName
 				this.custom()
 			},
 			
@@ -482,12 +559,9 @@
 			// 选择排序选项
 			selectSort(index) {
 				this.selectedSort = index
-				uni.showToast({
-					title: `已选择: ${this.sortOptions[index]}`,
-					icon: 'none'
-				})
 				this.hideSortModal()
 				// 这里可以添加排序逻辑
+				this.getUserList();
 			},
 			
 			// 判断分类名称和职位名称是否相同
@@ -998,6 +1072,7 @@
 		border-radius: 12rpx;
 		background: #ECE1FD;
 		color: #8858C5;
+		margin-left:10rpx
 	}
 
 	.gwList {
@@ -1007,7 +1082,9 @@
 		.gwList-box {
 			width: 710rpx;
 			height: 100%;
-
+			.box{
+				margin-bottom: 25rpx;
+			}
 			.gwList-box-item {
 				width: 100%;
 				// height: 329rpx;
@@ -1018,9 +1095,34 @@
 				background: rgba(253, 253, 253, 1);
 				border: 0.5px solid rgba(227, 231, 236, 1);
 			}
-
+			.company{
+				padding: 20rpx;
+				background:#fff;
+				margin-bottom:0rpx;
+			}
+			.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;
+				}
+			}
 			.gwList-box-item-box {
-				width: 686rpx;
+				width: 100%;
 				height: 100%;
 
 				.gwList-box-item-box-title {
@@ -1049,6 +1151,11 @@
 
 					.gwList-box-item-box-info-l {
 						color: #1A1A1A;
+						.tags{
+							gap:10rpx;
+							display: flex;
+							margin-top: 10rpx;
+						}
 					}
 
 					.gwList-box-item-box-info-r {
@@ -1059,4 +1166,5 @@
 			}
 		}
 	}
+	
 </style>

+ 2 - 2
pages/index/game/gameList.vue

@@ -14,7 +14,7 @@
           placeholder="搜索职位"
           class="search-input"
           v-model="searchKeyword"
-          @confirm="handleSearch"
+          @click="handleSearch"
         />
       </view>
       <text class="search-btn" @click="handleSearch">搜索</text>
@@ -494,7 +494,7 @@ export default {
     },
     // 处理搜索
     handleSearch() {
-      if (this.searchKeyword.trim()) {
+      if (this.searchKeyword.trim()||true) {
         uni.navigateTo({
           url: "/package/search/search?keyword=" + encodeURIComponent(this.searchKeyword),
         });

+ 47 - 4
pages/index/index.vue

@@ -176,15 +176,15 @@
 
 								<!-- 标签选择 -->
 								<view class="direction-tags flex align-center flex-wrap">
-									<view class="direction-tag" :class="industry.indexOf(item.id)>=0||(industry==''&&item.id=='不限')?'active':''"
-										@click="selectIndustry(item)" v-for="(item,index) in directionList"
+									<view class="direction-tag" :class="preference.indexOf(item.id)>=0||(preference.length<=0&&item.id=='不限')?'active':''"
+										@click="selectPreference(item)" v-for="(item,index) in directionList"
 										:key="index">
 										{{item.name}}
 									</view>
 									<!-- <view class="direction-tag-add" @click="addDirection">
 										<text>对应职位相关标签</text>
 									</view> -->
-									<view class="direction-tag-plus" @click="goIndustry">
+									<view class="direction-tag-plus" @click="goPreference">
 										<u-icon name="plus" color="#999999" size="16"></u-icon>
 									</view>
 								</view>
@@ -547,6 +547,7 @@
 				industry: '', //行业
 				salaryRange: '', //薪资
 				companyPeople: '', //公司规模
+				preference:[],
 				domeWidth: 0,
 				showModal: true,
 				arr: [],
@@ -678,6 +679,17 @@
 				this.userType = uni.getStorageSync('userType');
 			}
 			let that = this
+			uni.$on('preferenceUpdated', (data) => {
+				let prefer=[]
+				data.preferences.forEach(function(item){
+					var tem={
+						id:item,
+						name:item
+					}
+					prefer.push(tem)
+				})
+				that.directionList=prefer
+			})
 			//获取经纬度后请求岗位接口,经纬度用于筛选距离
 			uni.getLocation({
 				type: 'wgs84', //wgs84  gcj02
@@ -740,6 +752,9 @@
 				});
 			}
 		},
+		onUnload(){
+			uni.$off('preferenceUpdated')
+		},
 		//下拉刷新
 		onPullDownRefresh() {
 			this.page = 1
@@ -1344,6 +1359,7 @@
 					education: this.education, //学历
 					experience: this.experience, //经验
 					industry: this.industry, //行业
+					preference:this.preference.join(','),
 					companyPeople: this.companyPeople, //公司规模
 					lng: this.longitude,
 					lat: this.latitude,
@@ -1393,7 +1409,8 @@
 					if (res.code == 0) {
 						let arr = res.data
 					let classRule=[{id:'',name:'',label:'全部'}]
-					let industry=[{id:'不限',name:'不限'}]
+					
+					let industry=this.directionList
 					var industryArr=this.industry==''?[]:this.industry.split(',')
 					industryArr.forEach(function(item){
 						if(that.$queue.array_column(that.directionList,'name').indexOf(item)<0)
@@ -1633,6 +1650,32 @@
 					url: '/package/screen/screen?industry='+this.directionList.join('/')
 				})
 			},
+			goPreference(){
+				var jobId=this.typeList[this.current].id
+				var jobTitle=this.typeList[this.current].name
+				uni.navigateTo({
+					url: '/package/jobIntention/preferenceSetting?jobId='+jobId+'&jobTitle='+jobTitle+'&selectedPreferences='+encodeURIComponent(JSON.stringify(this.$queue.array_column(this.directionList,'name')))
+				})
+			},
+			selectPreference(item){
+				var preference=this.preference
+				var res=preference.indexOf(item.id)
+				if(res>=0){
+					preference.splice(res,1)
+				}else{
+					if(item.id=='不限')
+					preference=[]
+					else
+					preference.push(item.id)
+				}
+				this.preference=preference
+				this.page = 1
+				if (this.current == this.typeList.length - 1) { //公司
+					this.getComanyList()
+				} else {
+					this.getUserList()
+				}
+			},
 		}
 	}
 </script>