wkw 7 месяцев назад
Родитель
Сommit
d93cbb1b9c

+ 6 - 6
my/order/pay.vue

@@ -289,17 +289,17 @@
 					</view>
 				</view> -->
 			</view>
-			<view class="btn flex justify-center" v-if="info.status == 5">
-				<view class="btn-box bgBox flex justify-center align-center" @click="closeOpenJob('open')">
-					开启岗位
-				</view>
-				<!-- <view class="btn-box flex justify-between">
+			<view v-if="info.status == 5" style="margin: 0 20rpx;">
+				<view class="btn flex justify-center" style="gap: 20rpx;">
+					<view class="bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('open')">
+						开启岗位
+					</view>
 					<view class="btn-box bgBox btn-boxs flex justify-center align-center"
 						@click="updataServeType(info.postPushId, 'update')"
 						style="background-color: #ffffff;border: 1px solid #016bf6;color: #016bf6;">
 						编辑
 					</view>
-				</view> -->
+				</view>
 			</view>
 		</view>
 	</view>

+ 29 - 22
package/jobIntention/jobSkills.vue

@@ -6,21 +6,19 @@
 				<view class="nav-left" @click="goBack">
 					<u-icon name="close" color="#333" size="32"></u-icon>
 				</view>
-				<view class="nav-title">{{this.jobId==0||this.jobId==''?'我的':'岗位'}}职业技能</view>
+				<view class="nav-title">{{this.jobId==0||this.jobId==''?'我的':'岗位'}}跨境标签</view>
 				<view class="nav-right"></view>
 			</view>
 		</view>
 
 		<!-- 主要内容 -->
 		<view class="main-content">
-			<view class="job-title">{{ jobTitle }}-职业技能</view>
+			<view class="job-title">{{ jobTitle }}-跨境标签</view>
 			<view class="description">根据你的偏好设置,为你推荐更匹配的职位,最多选择8个</view>
 
 			<!-- 运营方向 -->
 			<view class="skills-section" v-for="(it, ind) in operationOptions" :key="ind">
 				<view class="section-title">{{it.postSkillName}}</view>
-
-				<!-- 技能标签网格 -->
 				<view class="skills-grid">
 					<view v-for="(item, index) in it.childrenList" :key="index" class="skill-tag"
 						:class="{ active: selectedOperation.includes(item.postSkillName) }"
@@ -29,7 +27,7 @@
 					</view>
 				</view>
 			</view>
-
+			
 			<!-- 自定义标签 -->
 			<view class="skills-section">
 				<view class="section-title">自定义标签</view>
@@ -85,10 +83,14 @@
 				selectedOperation: [],
 				customTags: [],
 				operationOptions: [],
-				tagParam: '' // 新增:保存传入的tag参数
+				tagParam: '' ,// 新增:保存传入的tag参数
+				ruleClassifyId:''
 			}
 		},
 		onLoad(options) {
+			if(options.ruleClassifyId){
+				this.ruleClassifyId = options.ruleClassifyId;
+			}
 			// 保存tag参数
 			if(options.tag){
 				this.tagParam = options.tag
@@ -116,21 +118,24 @@
 			},
 			getData() {
 				let data = {
-					ruleClassifyId: this.jobId
+					ruleClassifyId: this.jobId || this.ruleClassifyId
 				}
 				var action = this.jobId == '' || this.jobId == 0 ? '/app/userFirst/selectSkill' :
 					'/app/userFirst/getPostSkill'
+				if(this.ruleClassifyId){
+					action = '/app/userFirst/getPostSkill'
+				}
 				this.$Request.getT(action, data).then(res => {
 					if (res.code == 0) {
-						if (this.jobId == '' || this.jobId == 0) {
-							res.data.forEach(function(item) {
-								item.postSkillName = item.skillName
-							})
-							this.operationOptions = [{
-								childrenList: res.data,
-								postSkillName: ''
-							}]
-						} else
+						// if (this.jobId == '' || this.jobId == 0) {
+						// 	res.data.forEach(function(item) {
+						// 		item.postSkillName = item.skillName
+						// 	})
+						// 	this.operationOptions = [{
+						// 		childrenList: res.data,
+						// 		postSkillName: ''
+						// 	}]
+						// } else
 							this.operationOptions = res.data
 						
 						// 数据加载完成后处理标签回显
@@ -253,11 +258,11 @@
 
 <style lang="scss" scoped>
 	.job-skills {
-		min-height: 100vh;
+		height: 100vh;
 		background: #fff;
 		display: flex;
 		flex-direction: column;
-		padding: 0 40rpx 40rpx 40rpx;
+		padding: 0 40rpx;
 	}
 
 	.navbar-content {
@@ -288,6 +293,8 @@
 
 	.main-content {
 		margin-top: 20rpx;
+		flex: 1;
+		overflow: auto;
 	}
 
 	.job-title {
@@ -434,10 +441,10 @@
 	}
 
 	.bottom-btn-container {
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		right: 0;
+		// position: fixed;
+		// bottom: 0;
+		// left: 0;
+		// right: 0;
 		padding: 32rpx;
 		background: #fff;
 		border-top: 1rpx solid #f0f0f0;

+ 1 - 1
package/jobIntention/preferenceSetting.vue

@@ -6,7 +6,7 @@
 				<view class="nav-left" @click="goBack">
 					<u-icon name="close" color="#333" size="32"></u-icon>
 				</view>
-				<view class="nav-title">从事偏好设置</view>
+				<view class="nav-title">跨境职业标签</view>
 				<view class="nav-right"></view>
 			</view>
 		</view>

+ 1 - 1
package/jobIntention/tagManage.vue

@@ -29,7 +29,7 @@
 							<text class="job-title">{{item.ruleClassifyName}}</text>
 							<view @click.stop="goToPreferenceSetting(item)">
 								<view class="preference-btn">
-								<text>设置求职偏好</text>
+								<text>设置跨境标签</text>
 								</view>
 								<u-icon name="arrow-right" color="rgba(29, 33, 41, 1)" size="28"></u-icon>
 							</view>

+ 5 - 5
package/records/records.vue

@@ -32,7 +32,7 @@
                   <image :src="item.companyLogo ? item.companyLogo : '../../static/logo.png'" class="user-info-img"
                     mode=""></image>
                   <text v-if="item.companyLegalPerson" class="user-info-name">{{ item.companyLegalPerson }}·创始人</text>
-                  <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view>
+                  <!-- <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view> -->
                 </view>
                 <view class="gwList-box-item-box-info-r">
                   <!-- {{ item.county }} -->
@@ -58,7 +58,7 @@
                   <image :src="item.companyLogo ? item.companyLogo : '../../static/logo.png'" class="user-info-img"
                     mode=""></image>
                   <text v-if="item.companyLegalPerson" class="user-info-name">{{ item.companyLegalPerson }}·创始人</text>
-                  <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view>
+                  <!-- <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view> -->
                 </view>
                 <view class="gwList-box-item-box-info-r">
                   <!-- {{ item.county }} -->
@@ -85,9 +85,9 @@
                     class="user-info-img" mode=""></image>
                   <text class="user-info-name">{{ item.userEntity && item.userEntity.userName || '匿名'
                   }}·{{ item.hr && item.hr.hrPosition || '创始人' }}</text>
-                  <view class="info-tag" v-if="item.postPush && item.postPush.salaryTimes">{{ item.postPush.salaryTimes
+                  <!-- <view class="info-tag" v-if="item.postPush && item.postPush.salaryTimes">{{ item.postPush.salaryTimes
                   }}
-                  </view>
+                  </view> -->
                 </view>
                 <view class="gwList-box-item-box-info-r">
                   <!-- {{ item.county }}  -->
@@ -154,7 +154,7 @@
                     mode=""></image>
                   <text v-if="item.companyLegalPerson" class="user-info-name">{{ item.companyLegalPerson }}·创始人</text>
 
-                  <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view>
+                  <!-- <view class="info-tag" v-if="item.salaryTimes">{{ item.salaryTimes }}</view> -->
                 </view>
                 <view class="gwList-box-item-box-info-r">
                   <!-- {{ item.county }} -->

+ 2 - 2
pages.json

@@ -755,7 +755,7 @@
 				{
 					"path": "jobIntention/preferenceSetting",
 					"style": {
-						"navigationBarTitleText": "从事偏好设置",
+						"navigationBarTitleText": "跨境职业标签",
 						"enablePullDownRefresh": false,
 						"navigationStyle": "custom"
 					}
@@ -763,7 +763,7 @@
 				{
 					"path": "jobIntention/jobSkills",
 					"style": {
-						"navigationBarTitleText": "岗位职业技能",
+						"navigationBarTitleText": "跨境职业标签",
 						"enablePullDownRefresh": false,
 						"navigationStyle": "custom"
 					}

+ 133 - 26
pages/index/index.vue

@@ -118,8 +118,8 @@
 
 							<!-- 从事方向 -->
 							<view class="direction-tip">
-								<view class="direction-tip-title">请选择您可从事方向</view>
-								<view class="direction-tip-subtitle">您的偏好选择将用于为您推荐更匹配的职位</view>
+								<view class="direction-tip-title">请选择您的跨境标签</view>
+								<view class="direction-tip-subtitle">您的跨境标签将用于为您推荐更匹配的职位</view>
 
 								<!-- 标签选择 -->
 								<view class="direction-tags flex align-center flex-wrap">
@@ -352,6 +352,28 @@
 									</view>
 								</view>
 							</view>
+							
+							<!-- 请筛选牛人的跨境标签 -->
+							<view class="direction-tip">
+								<view class="direction-tip-title">请筛选牛人的跨境标签</view>
+								<view class="direction-tip-subtitle">跨境标签将用于为您推荐更匹配的牛人</view>
+							
+								<!-- 标签选择 -->
+								<view class="direction-tags flex align-center flex-wrap">
+									<view class="direction-tag"
+										:class="positionTagArr.indexOf(item.id) >= 0 || (positionTagArr.length <= 0 && item.id == '不限') ? 'active' : ''"
+										@click="selectPositionTag(item)" v-for="(item, index) in positionTag"
+										:key="index">
+										{{ item.name }}
+									</view>
+									<!-- <view class="direction-tag-add" @click="addDirection">
+										<text>对应职位相关标签</text>
+									</view> -->
+									<view class="direction-tag-plus" @click="goToPage">
+										<u-icon name="plus" color="#999999" size="16"></u-icon>
+									</view>
+								</view>
+							</view>
 						</view>
 					</view>
 				</u-sticky>
@@ -418,6 +440,12 @@
 												style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode=""></image>
 										</view>
 									</view>
+									<!-- 标签 -->
+									<view v-if="item.skillName" class="flex align-center" style="gap:8rpx;margin: 32rpx 0;">
+										<view v-for="(text, i) in (item.skillName ? item.skillName.split(',') : [])" :key="i" class="skillTag">
+											{{text}}
+										</view>
+									</view>
 
 									<view class="qyList-box-item-job flex align-center">
 										<image src="../../static/images/qi.png"
@@ -542,7 +570,7 @@ export default {
 			currentJobSxs: 0,
 			jobSxsTypeList: [{
 				id: 1,
-				name: '推荐',
+				name: '跨境标签',
 			},
 			{
 				id: 2,
@@ -583,6 +611,14 @@ export default {
 					name: '不限'
 				}
 			],
+			// 招聘端标签
+			positionTag:[
+				{
+					id: '不限',
+					name: '不限'
+				}
+			],
+			positionTagArr:[]
 		};
 	},
 	onShareAppMessage(res) {
@@ -714,6 +750,17 @@ export default {
 			})
 			that.directionList = prefer
 		})
+		uni.$on("skillsUpdated", (data) => {
+		  console.log("接收到的职位技能数据:", data);
+		  let prefer = data.selectedTags.map(item => ({
+		    id: item,
+		    name: item
+		  }))
+		  prefer = prefer.filter(tag => tag.id !== '不限')
+		  prefer.unshift({ id: '不限', name: '不限' })
+		  this.positionTag = prefer
+		})
+
 
 		//#ifdef H5
 		this.getLocalJobs('');
@@ -770,7 +817,7 @@ export default {
 		uni.$off('preferenceUpdated')
 		uni.$off('updateScreenFilterRecord')
 		uni.$off('updateIndexType')
-		// uni.$off('city')
+		uni.$off('skillsUpdated')
 	},
 	//加载更多
 	// onReachBottom() {
@@ -1339,12 +1386,13 @@ export default {
 				page: this.page,
 				limit: this.limit,
 				postType: '', //工作性质
-				expectedPosition: this.jobSxTypeList.length > 0 ? this.jobSxTypeList[this.currentJobSx].projectName : '', //岗位名称
+				expectedPosition: '',//this.jobSxTypeList.length > 0 ? this.jobSxTypeList[this.currentJobSx].projectName : '', //岗位名称
 				screen: +this.currentJobSxs + 1, //1推荐 2最新
 				city: this.city == '全国' ? '' : this.city, //城市
 				salaryRange: this.salaryRange, //薪资范围
 				eduRange: this.education, //学历
 				expRange: this.experience, //经验
+				intentPostSkill:this.positionTagArr.join(','),
 				//industryName: this.industry, //行业
 				// companyPeople: this.companyPeople, //公司规模
 				lng: this.longitude,
@@ -1408,26 +1456,51 @@ export default {
 				data.companyId = uni.getStorageSync('companyId')
 
 			this.$Request.getT('/app/postPush/getCompanyClassify', data).then(res => {
-				if (res.code == 0) {
-					let arr = []
-					console.log("布的岗位列表", res.data.length)
-					if (res.data.length == 0) {
-						// let backUrl = '/pages/my/index'
-						// uni.navigateTo({
-						// 	url: `/pages/jobManagement/jobManagement?backUrl=${backUrl}`
-						// })
-					}
-					res.data.map(item => {
-						let obj = {
-							id: item.postPushId,
-							projectName: item.ruleClassifyName,
-							name: item.ruleClassifyName,
-						}
-						arr.push(obj)
-					})
-					this.jobSxTypeList = arr
-					this.getPeopList()
-				}
+			  if (res.code === 0) {
+			    let arr = []
+			    let tempTags = []
+			
+			    res.data.forEach(item => {
+			      let obj = {
+			        id: item.postPushId,
+			        projectName: item.ruleClassifyName,
+			        name: item.ruleClassifyName,
+			        ruleClassifyId: item.ruleClassifyId
+			      }
+			      arr.push(obj)
+			
+			      if (item.positionTag) {
+			        tempTags.push(
+			          ...item.positionTag
+			            .split(',')
+			            .filter(Boolean)
+			            .map(tag => ({ id: tag, name: tag }))
+			        )
+			      }
+			    })
+			    this.jobSxTypeList = arr
+			    const isDefault = this.positionTag.length === 1 && this.positionTag[0].id === '不限'
+			
+			    if (isDefault) {
+			      if (tempTags.length > 0) {
+			        this.positionTag = [{ id: '不限', name: '不限' }, ...tempTags]
+			      } else {
+			        this.positionTag = [{ id: '不限', name: '不限' }]
+			      }
+			    } else {
+			      const existingIds = this.positionTag.map(i => i.id)
+			      tempTags.forEach(tag => {
+			        if (!existingIds.includes(tag.id)) {
+			          this.positionTag.push(tag)
+			        }
+			      })
+			      this.positionTag = [
+			        { id: '不限', name: '不限' },
+			        ...this.positionTag.filter(i => i.id !== '不限')
+			      ]
+			    }
+			    this.getPeopList()
+			  }
 			})
 		},
 		/**
@@ -1488,6 +1561,7 @@ export default {
 						}
 						arr.push(obj)
 					})
+					console.log(arr)
 					this.jobTypeList = arr
 				}
 			})
@@ -1831,6 +1905,14 @@ export default {
 						.directionList, 'name')))
 			})
 		},
+		//跳转招聘端选择标签页面
+		goToPage(){
+			if (this.jobSxTypeList.length <= 0 || this.jobSxTypeList[this.currentJobSx].id == '') return this.$queue.showToast('请先点击右上角发布岗位');
+			let selectTag = this.positionTag.map(item => item.id)
+			uni.navigateTo({
+				url: "/package/jobIntention/jobSkills?tag=" + selectTag + '&jobTitle=' + this.jobSxTypeList[this.currentJobSx].name + '&ruleClassifyId=' + this.jobSxTypeList[this.currentJobSx].ruleClassifyId,
+			});
+		},
 		selectPreference(item) {
 			var preference = this.preference
 			var res = preference.indexOf(item.id)
@@ -1850,6 +1932,21 @@ export default {
 				this.getUserList()
 			}
 		},
+		selectPositionTag(item){
+			var preference = this.positionTagArr
+			var res = preference.indexOf(item.id)
+			if (res >= 0) {
+				preference.splice(res, 1)
+			} else {
+				if (item.id == '不限')
+					preference = []
+				else
+					preference.push(item.id)
+			}
+			this.positionTagArr = preference
+			this.page = 1;
+			this.getPeopList();
+		}
 	}
 }
 </script>
@@ -2597,7 +2694,7 @@ page {
 		padding: 28rpx;
 		position: relative;
 		z-index: 1;
-		margin: 52rpx 20rpx 0;
+		margin: 24rpx 20rpx 0;
 
 		.qySx-box-row {
 			margin-bottom: 20rpx;
@@ -2904,4 +3001,14 @@ page {
 	border: 1rpx solid #016bf6;
 	background: #D6E7FD !important;
 }
+.skillTag{
+	padding: 8rpx;
+	border-radius: 8rpx;
+	background: rgba(198, 198, 198, 0.1);
+	color: rgba(153, 153, 153, 1);
+	font-family: DM Sans;
+	font-size: 20rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+}
 </style>

+ 2 - 1
pages/my/jobPosting.vue

@@ -334,6 +334,7 @@ export default {
 				ruleClassifyName: this.jobInfo.ruleClassifyName,
 				orderId: 1
 			}
+			
 
 			// 发送请求
 			this.$Request.postJson("/app/postPush/savePostPush", data)
@@ -360,7 +361,7 @@ export default {
 							uni.redirectTo({
 								url: "/pages/my/jobPostingSecond?pid=" + pid + '&companyId=' +
 									this.companyId + "&status=" + this
-										.status + "&companyName=" + this.companyName + '&type=' + this.update + '&workData=' + JSON.stringify(this.jobInfo) + '&isBack=' + true
+										.status + "&companyName=" + this.companyName + '&type=' + this.update + '&workData=' + JSON.stringify(this.jobInfo) + '&isBack=' + true + '&ruleClassifyId=' + this.jobInfo.ruleClassifyId
 							});
 						}, 1500);
 					} else {

+ 8 - 4
pages/my/jobPostingSecond.vue

@@ -38,7 +38,7 @@
 				</view>
 
 				<!-- 职位关键词 -->
-				<view class="check-title-big">职位关键词</view>
+				<view class="check-title-big">跨境标签</view>
 				<view class="check-select" @click="goJobSkill">
 					<view class="select-txt">{{ positionTag && positionTag.length > 0 ? positionTag.join(',') :
 						"被选中的关键词将突出展示给牛人" }}</view>
@@ -310,13 +310,17 @@ export default {
 				name: "选择职位要求"
 			},
 			],
-			type: ''
+			type: '',
+			ruleClassifyId:'',//岗位id
 		};
 	},
 	components: {
 		navBar,
 	},
 	onLoad(options) {
+		if(options.ruleClassifyId){
+			this.ruleClassifyId = options.ruleClassifyId;
+		}
 		if (options.isBack == 'true') {
 			this.isBack = true;
 		}
@@ -341,7 +345,7 @@ export default {
 			this.selectedSalary = workData.salaryRange || '';
 			this.salaryTimes = workData.salaryTimes || '';
 			this.welfareTag = workData.welfareTag || '';
-			this.positionTag = workData.positionTag ? workData.positionTag.split(',') : [];
+			this.positionTag = workData.positionTag ? workData.positionTag.split (',') : [];
 			this.address = workData.address;
 			this.stationName.fullText = workData.address, //地址
 				this.stationName.latitude = workData.lat
@@ -519,7 +523,7 @@ export default {
 		// 跳转页面并接收参数(职位关键词)
 		goJobSkill() {
 			uni.navigateTo({
-				url: "/package/jobIntention/jobSkills?tag=" + this.positionTag + '&jobTitle=' + this.jobTitle,
+				url: "/package/jobIntention/jobSkills?tag=" + this.positionTag + '&jobTitle=' + this.jobTitle + '&ruleClassifyId=' + this.ruleClassifyId,
 				events: {
 					skillsUpdated: (data) => {
 						this.positionTag = data.selectedTags;

+ 1 - 1
pages/my/onlineResume.vue

@@ -87,7 +87,7 @@
 									<text class="job-title">{{ item.ruleClassifyName }}</text>
 									<view @click.stop="goToPreferenceSetting(item)">
 										<view class="preference-btn">
-											<text>设置求职偏好</text>
+											<text>设置跨境标签</text>
 										</view>
 										<u-icon name="arrow-right" color="rgba(29, 33, 41, 1)" size="28"></u-icon>
 									</view>

+ 1 - 1
pages/my/workExperience.vue

@@ -109,7 +109,7 @@
 				<view class="form-item">
 					<view class="form-label">
 						<text class="required-mark">*</text>
-						<text class="label-text">岗位职业技能</text>
+						<text class="label-text">跨境职业技能</text>
 					</view>
 					<view class="skills-input-container">
 						<view class="skills-tags">

BIN
static/images/index/index-bg1.png