lyuis пре 7 месеци
родитељ
комит
90b413ff82
3 измењених фајлова са 298 додато и 52 уклоњено
  1. 1 1
      my/jilu/mianshiDetail.vue
  2. 295 51
      pages/msg/im.vue
  3. 2 0
      pages/my/jobApplicant/guidePage.vue

+ 1 - 1
my/jilu/mianshiDetail.vue

@@ -37,7 +37,7 @@
             <view class="user-name-com">{{info.company&&info.company.companyName||'匿名公司'}}</view>
             <view class="user-info-img">
               <image :src="info.hr&&info.hr.hrImg||'../../static/images/geren.png'" mode="aspectFill" />
-              <view class="user-name">{{info.userEntity&&info.userEntity.userName||'匿名'}}·{{info.hr&&info.hr.hrPosition||'匿名职务'}}</view>
+              <view class="user-name">{{info.hrUserEntity&&info.hrUserEntity.userName||'匿名'}}·{{info.hr&&info.hr.hrPosition||'匿名职务'}}</view>
             </view>
           </view>
         </view>

+ 295 - 51
pages/msg/im.vue

@@ -47,18 +47,21 @@
 					<view class="" style="color: #999999;">
 						换电话
 					</view>
+					<view v-if="isSendPhone" class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="currentWchat()">
 					<image src="../../static/im/weiChat2.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
 					<view class="" style="color: #999999;">
 						换微信
 					</view>
+					<view v-if="isSendWx" class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="sendResumes()">
 					<image src="../../static/im/orderInfo2.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
 					<view class="" style="color: #999999;">
 						发简历
 					</view>
+					<view v-if="isSendResumes"  class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="noIdtent()">
 					<image src="../../static/im/nowei.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
@@ -75,18 +78,21 @@
 					<view class="" style="color: #999999;">
 						换电话
 					</view>
+					<view v-if="isSendPhone" class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="currentWchat()">
 					<image src="../../static/im/weiChat.png" style="width: 48rpx;height: 48rpx;" mode=""></image>
 					<view class="" style="color: #999999;">
 						换微信
 					</view>
+					<view v-if="isSendWx"  class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="giveSendResumes()">
 					<image src="../../static/im/orderInfo.png" style="width: 48rpx;height: 48rpx;" mode=""></image>
 					<view class="" style="color: #999999;">
 						求简历
 					</view>
+					<view v-if="isSendResumes" class="status-indicator"><u-icon name="checkmark-circle-fill"></u-icon></view>
 				</view>
 				<view class="topSe-box-item flex flex-wrap justify-center" @click="mianshiF()">
 					<image src="../../static/im/mianshi.png" style="width: 48rpx;height: 48rpx;" mode=""></image>
@@ -112,7 +118,7 @@
 				</view>
 			</view> -->
 			<!-- 岗位简介 -->
-			<view class="jobs flex justify-center" v-if="JSON.stringify(postPushInfo)!='{}'">
+			<view class="jobs flex justify-center" v-if="JSON.stringify(postPushInfo)!='{}'&&userType==1">
 				<view class="jobs-box">
 					<view class="gwList-box-item flex justify-center" @click="gotoInfo(postPushInfo.postPushId)">
 						<view class="gwList-box-item-box">
@@ -142,14 +148,7 @@
 							<!-- <view class="gwList-box-item-box-line"></view> -->
 							<!-- 工作描述 -->
 							<view class="gwList-box-item-box-info-text">
-								<view class="job-description-item">1.负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;</view>
-								<view class="job-description-item">2.做好数据的统计分析工作,收集、分析市场信息,竞争对手状况,并根据产品销售与排名变化,及时制定和调整产品的销售策略;</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">3.熟悉Amazon店铺操作,负责店铺产品编辑上传,精准把握关键词选择,负责标题,详情页面的优化;</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">4.熟悉Amazon平台规则,熟悉Amazon站内广告投放和促销式,站外促销,找红人营销等提高曝光率和转化率的引流方</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">5.控制产品风险,合理规划FBA库存,及时合理处理滞销FBA库存;</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">6.对产品销售进行跟踪,分析,及时汇报销售中存在的问题,并给出可行性意见;</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">7.及时处理客户留言及回评,解答客户相关咨询与投诉,并进行问题整理统计分析,提高店铺的好评率,确保账号安全;</view>
-								<view class="job-description-item" v-if="isJobDescExpanded">8.每月定期整理分析运营各项数据,并提出相应的合理化建议。</view>
+								<view :class="['job-description-item',!isJobDescExpanded?'job-description-itemAll':'']">{{postPushInfo.positionDetails}}</view>
 								<!-- 展开/收起按钮 -->
 								<view class="expand-btn" @click.stop="toggleJobDesc">
 									<text class="expand-text">{{ isJobDescExpanded ? '收起' : '展开更多' }}</text>
@@ -178,8 +177,8 @@
 								<view class="time-text">
 									7月24日 14:34 向你发起的沟通
 								</view>
-								<view :class="['favorite-btn  flex align-center',postPushInfo.isCollect?'collectActived':'']" @click.stop="setCollection(postPushInfo.postPushId)">
-									<text class="favorite-icon"><u-icon :name="postPushInfo.isCollect?'star-fill':'star'"></u-icon></text>
+								<view :class="['favorite-btn  flex align-center',postPushInfo.isCollection?'collectActived':'']" @click.stop="setCollection(postPushInfo.postPushId)">
+									<text class="favorite-icon"><u-icon :name="postPushInfo.isCollection?'star-fill':'star'"></u-icon></text>
 									<text class="favorite-text">收藏职位</text>
 								</view>
 							</view>
@@ -189,51 +188,59 @@
 			</view>
 			<!-- 简历简介 -->
 			<view class="jobs flex justify-center" v-if="JSON.stringify(resumesInfo)!='{}'">
-				<view class="jobs-box">
-					<view class="qyList-box-item flex justify-center"
-						@click="goNav('/pages/index/game/orderDet?resumesId='+resumesInfo.resumesId)">
-						<view class="qyList-box-item-box">
-							<view class="qyList-box-item-info flex justify-between align-center">
-								<view class="qyList-box-item-info-l">
-									<view class="" style="color: #212121;font-size: 38rpx;font-weight: 800;">
-										{{resumesInfo.resumesName}}
+				<view class="talent-list">
+					<view class="talent-card">
+						<view class="talent-content">
+							<!-- 头像和基本信息 -->
+							<view class="talent-header">
+								<image :src="resumesInfo.avatar" class="talent-avatar" mode="aspectFill"></image>
+								<view class="talent-info">
+									<view class="talent-name-section">
+										<view class="talent-name">期望:{{ resumesInfo.intentionRuleClassifyName }} <text class="talentRange">{{resumesInfo.intentionSalaryRange}}</text></view>
+										<!-- <view class="talent-tags">
+											<view class="status-tag online" v-if="resumesInfo.isOnline">在线</view>
+												<view class="status-tag hot" v-if="talent.isHot">热门搜索</view>
+											<view class="status-tag active" v-if="resumesInfo.lastActive">{{ resumesInfo.lastActive }}
+											</view>
+										</view> -->
 									</view>
-									<view class="flex align-center flex-wrap"
-										style="color: #999999;font-size: 26rpx;margin-top: 10rpx;">
-										<text>{{resumesInfo.resumesAge}}岁</text>
-										<text style="margin-left: 20rpx;margin-right: 20rpx;">|</text>
-										<text>{{resumesInfo.resumesWorkExperience}}</text>
-										<text style="margin-left: 20rpx;margin-right: 20rpx;">|</text>
-										<text>{{resumesInfo.school}}</text>
-										<text style="margin-left: 20rpx;margin-right: 20rpx;">|</text>
-										<text>期望{{resumesInfo.resumesCompensation}}</text>
+									<!-- 经验和薪资 -->
+									<view class="talent-experience">
+										<text class="experience-text">{{ resumesInfo.resumesWorkExperience || 0 }}年</text>
+										<text class="education-salary">{{ postPushInfo.education}}</text>
+										<text class="education-salary">{{ postPushInfo.salaryRange}}</text>
+										<text class="status-text">{{ jobStatusList[resumesInfo.resumesStatus].text}}</text>
 									</view>
 								</view>
-								<view class="qyList-box-item-info-r">
-									<image :src="resumesInfo.avatar?resumesInfo.avatar:'../../static/logo.png'"
-										style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode=""></image>
-								</view>
 							</view>
-							<view class="qyList-box-item-job flex align-center">
-								<u-icon name="heart-fill" color="#016BF6" size="30" style="margin-right: 16rpx;">
-								</u-icon>
-								期望岗位:{{resumesInfo.resumesPost}}
+				
+							<!-- 当前职位 -->
+							<view class="current-job">
+								<image src="../../static/images/aixin.svg" class="job-icon" mode="aspectFit"></image>
+								<text class="job-text">{{ resumesInfo.companyName }}·{{ resumesInfo.lastWorkPosition }}</text>
 							</view>
-							<view class="qyList-box-item-job flex align-center"
-								v-if="resumesInfo.resumesCompanyList[0]">
-								<image src="../../static/images/qi.png"
-									style="width: 30rpx;height: 32rpx;margin-right: 16rpx;" mode=""></image>
-								{{resumesInfo.resumesCompanyList[0]?resumesInfo.resumesCompanyList[0].resumesTitle:''}}
-								/
-								{{resumesInfo.resumesCompanyList[0]?resumesInfo.resumesCompanyList[0].resumesPost:''}}
+				
+							<!-- 求职期望 -->
+							<view class="job-expectation">
+								<image src="../../static/images/xiangzi.svg" class="job-icon" mode="aspectFit"></image>
+								<text class="expectation-text">求职期望: {{ resumesInfo.expectedPosition }}</text>
 							</view>
-							<view class="qyList-box-item-job flex align-center" v-else>
-								<image src="../../static/images/qi.png"
-									style="width: 30rpx;height: 32rpx;margin-right: 16rpx;" mode=""></image>
-								暂无
+				
+							<!-- 技能标签 -->
+							<view class="skill-tags">
+								<view class="skill-tag" v-for="(skill, skillIndex) in resumesInfo.skills" :key="skillIndex">
+									{{ skill }}
+								</view>
+							</view>
+				
+							<!-- 工作描述 -->
+							<view class="job-description">
+								<text class="description-text">{{ resumesInfo.adv }}</text>
 							</view>
-							<view class="qyList-box-item-rem" v-if="resumesInfo.resumesDetails">
-								优势:{{resumesInfo.resumesDetails}}
+						</view>
+						<view class="time-favorite flex justify-between align-center">
+							<view class="time-text">
+								7月24日 14:34 沟通的职位-亚马逊
 							</view>
 						</view>
 					</view>
@@ -999,6 +1006,7 @@
 				resumesInfo: {}, //简历信息
 				isSendPhone: false, //是否交换手机号
 				isSendWx: false, //是否交换微信
+				isSendResumes:false,
 				mianshiShow: false, //约面试弹窗
 				phoneExchangeShow: false, //交换手机号弹窗
 				wechatExchangeShow: false, //交换微信弹窗
@@ -1014,7 +1022,8 @@
 				socketTimer: null, //心跳定时器
 				isVip: false, //是否是会员
 				isVideo: false, //是否打视频
-				ossUrl:configdata.ossUrl
+				ossUrl:configdata.ossUrl,
+				jobStatusList:[]
 			};
 		},
 		onUnload() {
@@ -1084,6 +1093,7 @@
 				this.recordEnd(e);
 			})
 			// #endif
+			this.jobStatusList = this.$queue.resumesStatus()
 		},
 		onShow() {
 			if (this.chatConversationId) {
@@ -1720,6 +1730,10 @@
 						} else {
 							this.isSendPhone = false
 						}
+						if(res.data.isSendResumes)
+							this.isSendResumes=true
+						else
+							this.isSendResumes=false
 					}
 				})
 			},
@@ -1828,6 +1842,7 @@
 			},
 			//获取简历数据
 			getResumesInfo(id) {
+				var that=this
 				this.$Request.getT("/app/resumes/selectResumesByResumesId", {
 					userId: uni.getStorageSync('userId'),
 					resumesId: id,
@@ -1838,6 +1853,16 @@
 						uni.setNavigationBarTitle({
 							title: title
 						})
+						res.data.intentionRuleClassifyName=this.postPushInfo.ruleClassifyName
+						res.data.intentionSalaryRange=this.postPushInfo.salaryRange
+						res.data.intentionExprence=[]
+						res.data.intentionList.forEach(function(item){
+							if(item.ruleClassifyName==that.postPushInfo.ruleClassifyName){
+								res.data.intentionRuleClassifyName=item.ruleClassifyName
+								res.data.intentionSalaryRange=item.salaryRange
+								res.data.intentionExprence=item.industry&&item.industry.split('/')||[]
+							}
+						})
 						this.resumesInfo = res.data
 						// this.postPushInfo.positionWelfare = this.postPushInfo.positionWelfare.split(',')
 					}
@@ -2672,7 +2697,7 @@
 						uni.showToast({
 							title: res.msg
 						})
-						this.getInfo()
+						this.postPushInfo.isCollection=1-(this.postPushInfo.isCollection?this.postPushInfo.isCollection:0)
 					}
 				})
 			},
@@ -2863,6 +2888,15 @@
 			.topSe-box-item {
 				font-size: 24rpx;
 				width: 80rpx;
+				position: relative;
+				.status-indicator{
+					position: absolute;
+					top: -12rpx;
+					right: 12rpx;
+					width: 20rpx;
+					height: 20rpx;
+					color: #4CAF50;
+				}
 			}
 		}
 	}
@@ -2955,6 +2989,13 @@
 					margin-bottom: 0;
 				}
 			}
+			.job-description-itemAll{
+				display: -webkit-box;
+				  -webkit-line-clamp: 4;
+				  -webkit-box-orient: vertical;
+				  overflow: hidden;
+				  text-overflow: ellipsis;
+			}
 		}
 
 		.gwList-box-item-box-info {
@@ -3065,4 +3106,207 @@
 		margin: 5rpx 10rpx 0;
 		line-height: 70rpx;
 	}
+	
+	.talent-list {
+		// margin-top: 280rpx; // 已改为动态计算,在模板中通过 :style 设置
+		padding: 20rpx;
+		z-index: 100;
+		position: relative;
+		width:96%
+	}
+	
+	.talent-card {
+		background-color: #ffffff;
+		border-radius: 16rpx;
+		margin-bottom: 20rpx;
+		padding: 30rpx;
+		box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
+		.time-favorite{
+			border-top: 1px solid #efefef;
+			margin-top: 20rpx;
+		}
+	}
+	
+	.talent-content {
+		.talent-header {
+			display: flex;
+			align-items: flex-start;
+	
+			.talent-avatar {
+				width: 80rpx;
+				height: 80rpx;
+				border-radius: 50%;
+				margin-right: 20rpx;
+			}
+	
+			.talent-info {
+				flex: 1;
+				.talentRange{
+					color: #016BF6;
+					font-size: 24rpx;
+					margin-left: 10rpx;
+				}
+				.talent-name-section {
+					display: flex;
+					align-items: center;
+					justify-content: flex-start;
+					width: 100%;
+					margin-bottom: 6rpx;
+				}
+	
+				.talent-name {
+					color: rgba(51, 51, 51, 1);
+					font-family: DM Sans;
+					font-size: 28rpx;
+					font-weight: 500;
+					line-height: 36rx;
+					letter-spacing: 0.5%;
+					text-align: left;
+					margin-right: 16rpx;
+				}
+	
+				.talent-tags {
+					display: flex;
+					flex-wrap: wrap;
+					gap: 10rpx;
+	
+					.status-tag {
+						padding: 8rpx;
+						border-radius: 12rpx;
+						font-size: 18rpx;
+						font-family: DM Sans;
+						font-weight: 400;
+						line-height: 20rpx;
+						letter-spacing: -0.5px;
+						text-align: left;
+	
+						&.online {
+							background: rgba(213, 255, 231, 1);
+							color: rgba(29, 209, 104, 1);
+						}
+	
+						&.hot {
+							background: rgba(252, 233, 220, 1);
+							color: rgba(1, 107, 246, 1);
+						}
+	
+						&.active {
+							color: rgba(153, 153, 153, 1);
+						}
+					}
+				}
+			}
+		}
+	
+		.talent-experience {
+			display: flex;
+			align-items: center;
+			margin-bottom: 12rpx;
+			gap: 16rpx;
+			color: rgba(156, 164, 171, 1);
+			font-family: DM Sans;
+			font-size: 24rpx;
+			font-weight: 400;
+			line-height: 32rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	
+		.current-job {
+			display: flex;
+			align-items: center;
+			margin-bottom: 12rpx;
+	
+			.job-icon {
+				width: 40rpx;
+				height: 40rpx;
+				margin-right: 8rpx;
+			}
+	
+			.job-text {
+				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-expectation {
+			display: flex;
+			align-items: center;
+			margin-bottom: 16rpx;
+	
+			.job-icon {
+				width: 40rpx;
+				height: 40rpx;
+				margin-right: 8rpx;
+			}
+	
+			.expectation-text {
+				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;
+			}
+		}
+	
+		.skill-tags {
+			display: flex;
+			flex-wrap: wrap;
+			gap: 10rpx;
+			margin-bottom: 16rpx;
+	
+			.skill-tag {
+				padding: 8rpx;
+				background: rgba(198, 198, 198, 0.1);
+				border-radius: 12rpx;
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 20rpx;
+				font-weight: 400;
+				line-height: 20rpx;
+				letter-spacing: -0.5px;
+				text-align: left;
+			}
+		}
+	
+		.job-description {
+			margin-bottom: 12rpx;
+			width: 100%;
+	
+			.description-text {
+				color: rgba(97, 110, 124, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 32rpx;
+				letter-spacing: 0px;
+				text-align: left;
+				display: -webkit-box;
+				-webkit-line-clamp: 2;
+				/* 只显示2行 */
+				-webkit-box-orient: vertical;
+				overflow: hidden;
+				/* 隐藏超出内容 */
+				text-overflow: ellipsis;
+				/* 显示省略号 */
+	
+			}
+		}
+	
+		.work-period {
+			text-align: right;
+	
+			.period-text {
+				font-size: 22rpx;
+				color: #999;
+			}
+		}
+	}
 </style>

+ 2 - 0
pages/my/jobApplicant/guidePage.vue

@@ -110,6 +110,7 @@
 			},
 //修改用户身份状态
 			updateUserResumes(userType) {
+				var that=this
 				// 调用接口提交
 				uni.showLoading({
 					title: "提交中..."
@@ -121,6 +122,7 @@
 						uni.hideLoading();
 						if (res.code === 0) {
 							uni.setStorageSync('userType', userType)
+							that.$queue.changeTabbar(userType)
 							return true
 						} else {
 							return false