浏览代码

Merge branch 'master' of https://git.nanodreamtech.com/Boss/yizhizan-h5

jianghaili 2 周之前
父节点
当前提交
43bb1df187
共有 6 个文件被更改,包括 773 次插入409 次删除
  1. 557 143
      my/order/pay.vue
  2. 126 254
      pages/jobManagement/jobManagement.vue
  3. 64 2
      pages/my/index.vue
  4. 15 9
      pages/talentSearch/filter.vue
  5. 1 1
      pages/talentSearch/index.vue
  6. 10 0
      static/images/shengji.svg

+ 557 - 143
my/order/pay.vue

@@ -1,104 +1,209 @@
 <template>
 	<view>
-		<view class="remarks flex justify-center" v-if="info.status==3">
-			<view class="remarks-box flex justify-between align-center">
-				<text>拒绝原因:</text>
-				<text>{{info.auditContent}}</text>
+		<!-- 固定顶部导航栏 -->
+		<view class="fixed-header">
+			<!-- 自定义导航栏 -->
+			<view class="custom-navbar">
+				<view class="navbar-content">
+					<view class="nav-left" @click="goBack">
+						<u-icon name="arrow-leftward" color="#333" size="32"></u-icon>
+					</view>
+					<view class="nav-title">职位详情</view>
+					<view class="nav-right"></view>
+				</view>
 			</view>
 		</view>
-		<view class="remarks flex justify-center">
-			<view class="remarks-box flex justify-between align-center">
-				<text style="color: #00B88F;font-weight: bold;">{{info.status==1?'待审核':(info.status==2?'进行中':(info.status==3?'已拒绝':(info.status==4?'已取消':'已关闭')))}}</text>
-				<text style="color: #cccccc;font-size: 24rpx;">{{info.createTime}}</text>
+		
+		<!-- 审核失败 -->
+		<view v-if="info.status === 3">
+			<!-- 审核状态提示 -->
+			<view class="status-section">
+				<view class="status-icon">
+					<image src="../../static/images/index/redGantan.svg" class="status-icon-img"></image>
+				</view>
+				<view class="status-title">职位审核失败</view>
 			</view>
-		</view>
-		<view class="remarks flex justify-center" v-if="info.isOverdue==1">
-			<view class="remarks-box flex justify-between align-center">
-				<text style="color: #000000;font-weight: bold;">已到期</text>
-				<text style="color: #000000;font-size: 24rpx;">{{info.overdueTime}}</text>
+			
+			<!-- 职位信息卡片 -->
+			<view class="job-info-card">
+				<view class="job-header">
+					<view class="job-title-section">
+						<text class="job-title">{{info.stationName}}</text>
+					</view>
+					<view class="job-status">
+						<text class="status-text">审核未通过</text>
+					</view>
+				</view>
+				<view class="job-info">
+					<text class="job-details">{{info.county}} {{info.education}} {{info.experience}} {{info.salaryRange}} {{info.postType}}</text>
+				</view>
 			</view>
-		</view>
-		<!-- 岗位要求 -->
-		<view class="job flex justify-center">
-			<view class="job-info flex justify-center">
-				<view class="job-info-c">
-					<view class="job-info-c-title">
-						{{info.stationName}}
+			
+			<!-- 失败原因 -->
+			<view class="failure-reason-section">
+				<view class="section-title">失败原因</view>
+				<view class="reason-list">
+					<view class="reason-item">
+						<text class="reason-text">{{info.auditContent}}</text>
 					</view>
-					<view class="job-info-c-label flex align-center flex-wrap">
-						<view class="job-info-c-label-item">
-							{{info.county}}
+				</view>
+			</view>
+		</view>
+
+		<!-- 其他状态 -->
+		<view v-if="info.status !== 3">
+			<view class="remarks flex justify-center">
+				<view class="remarks-box flex justify-between align-center">
+					<text style="color: rgba(1, 107, 246, 1);font-weight: bold;">{{info.status==1?'待审核':(info.status==2?'进行中':(info.status==3?'已拒绝':(info.status==4?'已取消':'已关闭')))}}</text>
+					<text style="color: rgba(156, 164, 171, 1);font-size: 24rpx;">{{info.createTime}}</text>
+				</view>
+			</view>
+			<view class="remarks flex justify-center" v-if="info.isOverdue==1">
+				<view class="remarks-box flex justify-between align-center">
+					<text style="color: #000000;font-weight: bold;">已到期</text>
+					<text style="color: #000000;font-size: 24rpx;">{{info.overdueTime}}</text>
+				</view>
+			</view>
+			<!-- 岗位要求 -->
+			<view class="job flex justify-center">
+				<view class="job-info flex justify-center">
+					<view class="job-info-c">
+						<view class="job-info-c-header">
+							<view class="job-info-c-title">
+								{{info.stationName}}
+							</view>
+							<view class="job-info-c-price">
+								{{info.salaryRange}}
+							</view>
 						</view>
-						<view class="job-info-c-label-item">
-							{{info.experience}}
+
+						<!-- 地址 -->
+						<view class="job-info-c-address">
+							<u-icon name="map" color="rgba(58, 57, 67, 1)" style="margin-right: 10rpx;" size="24"></u-icon>
+							{{info.city}} {{info.county}} {{info.address}}
 						</view>
-						<view class="job-info-c-label-item">
-							{{info.education}}
+
+						<view class="job-info-c-label flex align-center flex-wrap">
+							<view class="job-info-c-label-item">
+								{{info.experience}}
+							</view>
+							<view class="job-info-c-label-item">
+								{{info.education}}
+							</view>
+							<view class="job-info-c-label-item">
+								{{info.industry}}
+							</view>
 						</view>
 					</view>
-					<view class="job-info-c-price">
-						{{info.salaryRange}}
-					</view>
 				</view>
 			</view>
-		</view>
-		<!-- 岗位介绍 -->
-		<view class="jobRemarks flex justify-center">
-			<view class="jobRemarks-box flex justify-center">
-				<view class="jobRemarks-box-c">
-					<view class="jobRemarks-box-c-title">
-						岗位介绍
+
+			<!-- 急聘 -->
+			<view class="urgent-banner">
+				<view class="urgent-left-section flex align-center">
+					<view class="urgent-star-icon-wrapper flex align-center justify-center">
+						<u-icon name="star-fill" color="rgba(251, 231, 185, 1)" size="40rpx"></u-icon>
 					</view>
-					<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.tag">
-						<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.tag.split(',')" :key="index">
-							{{item}}
-						</view>
+					<view class="urgent-text-content">
+						<view class="urgent-main-title">急聘职位 | 2天后到期</view>
+						<view class="urgent-sub-description">急聘免费体验中,升级正式版享受更多权益</view>
+						<view class="urgent-benefits flex align-center">今日剩余权益:5次沟通,0次查看 <u-icon name="arrow-right" color="#FFFFFF" size="20rpx" style="margin-left: 10rpx;"></u-icon></view>
 					</view>
-					<view class="jobRemarks-box-c-con" v-if="info.positionDetails">
-						<view class="jobRemarks-box-c-con-item" v-html="info.positionDetails">
+				</view>
+				<view class="urgent-upgrade-button">
+					升级正式版
+				</view>
+			</view>
+
+			<!-- 岗位介绍 -->
+			<view class="jobRemarks flex justify-center">
+				<view class="jobRemarks-box flex justify-center">
+					<view class="jobRemarks-box-c">
+						<view class="jobRemarks-box-c-title flex align-center">
+							<image src="/static/images/index/ins.png" class="title-icon"></image>
+							<text>职位说明</text>
 						</view>
-					</view>
-					<view class="jobRemarks-box-c-line"></view>
-					<view class="jobRemarks-box-c-title" style="margin-top: 25rpx;">
-						岗位福利
-					</view>
-					<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.positionWelfare">
-						<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.positionWelfare?info.positionWelfare.split(','):[]" :key="index">
-							{{item}}
+						<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.tag">
+							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.tag.split(',')" :key="index">
+								{{item}}
+							</view>
 						</view>
-					</view>
-					<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-else>
-						<view class="jobRemarks-box-c-label-item">
-							暂无
+						
+						<view class="job-description">
+							<view class="description-item">1.负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;</view>
+							<view class="description-item">2.做好数据的统计分析工作,收集、分析市场信息,竞争对手状况,并根据产品销售与排名变化,及时制定和调整产品的销售策略;</view>
+							<view class="description-item">3.熟悉Amazon店铺操作,负责店铺产品编辑上传,精准把握关键词选择,负责标题,详情页面的优化;</view>
+							<view class="description-item">4.熟悉Amazon平台规则,熟悉Amazon站内广告投放和促销式,站外促销,找红人营销等提高曝光率和转化率的引流方;</view>
+							<view class="description-item">5.控制产品风险,合理规划FBA库存,及时合理处理滞销FBA库存;</view>
+							<view class="description-item">6.对产品销售进行跟踪,分析,及时汇报销售中存在的问题,并给出可行性意见;</view>
+							<view class="description-item">7.及时处理客户留言及回评,解答客户相关咨询与投诉,并进行问题整理统计分析,提高店铺的好评率,确保账号安全;</view>
+							<view class="description-item">8.每月定期整理分析运营各项数据,并提出相应的合理化建议。</view>
+						</view>
+						
+						<!-- <view class="jobRemarks-box-c-con" v-if="info.positionDetails">
+							<view class="jobRemarks-box-c-con-item" v-html="info.positionDetails">
+							</view>
+						</view> -->
+						
+						<!-- <view class="jobRemarks-box-c-line"></view> -->
+						
+						<view class="jobRemarks-box-c-title flex align-center" style="margin-top: 25rpx;">
+							<image src="/static/images/index/welfare.png" class="title-icon"></image>
+							<text>岗位福利</text>
+						</view>
+						<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.positionWelfare">
+							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.positionWelfare?info.positionWelfare.split(','):[]" :key="index">
+								{{item}}
+							</view>
+						</view>
+						<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-else>
+							<view class="jobRemarks-box-c-label-item">
+								暂无
+							</view>
+						</view>
+						
+						<view class="job-description">
+							<view class="description-item">1.完整的晋升机制,每年2次调薪机会;</view>
+							<view class="description-item">2.满一年五天带薪年假;</view>
+							<view class="description-item">3.每月员工下午茶;</view>
+							<view class="description-item">4.各类大促活动有对应的激励方案;</view>
+							<view class="description-item">5.丰厚的提成和年终奖励;</view>
+							<view class="description-item">6.开设员工俱乐部:羽毛球、篮球、舞蹈、瑜伽等等。</view>
 						</view>
 					</view>
 				</view>
 			</view>
-		</view>
-		<!-- 企业简介 -->
-		<view class="enterprise flex justify-center">
-			<view class="enterprise-box flex justify-center">
-				<view class="enterprise-box-c">
-					<view class="enterprise-box-c-info flex align-center">
-						<image :src="info.company?info.company.companyLogo:'../../../static/logo.png'" style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode=""></image>
-						<view class="enterprise-box-c-info-n">
-							<view class="">
-								{{info.company.companyName}}
+			
+			<!-- 企业简介 -->
+			<view class="enterprise">
+				<!-- 公司介绍卡片 -->
+				<view class="company-intro-card" @click="goInfo(info.company.companyId)">
+					<view class="company-avatar">
+						<image :src="info.company?info.company.companyLogo:'../../../static/logo.png'"
+							style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode="aspectFill"></image>
+					</view>
+					<view class="company-info">
+						<view class="company-name">{{info.company?info.company.companyName:''}}</view>
+						<view class="company-details">{{info.company?info.company.companyPeople:''}} · {{info.company?info.company.companyScope:''}}</view>
+					</view>
+					<view class="company-arrow">
+						<u-icon name="arrow-right" color="rgba(51, 51, 51, 1)" size="32"></u-icon>
+					</view>
+				</view>
+				
+				<!-- 地图区域 -->
+				<view class="enterprise-box flex justify-center">
+					<view class="enterprise-box-c">
+						<view class="enterprise-box-c-bto flex align-center justify-between" @click.stop="gotoMap()">
+							<view class="enterprise-box-c-bto-l flex align-center">
+								<u-icon name="map" color="#00B88F" style="margin-left: 20rpx;margin-right: 10rpx;" size="28"></u-icon>
+								{{info.province}}{{info.city}}{{info.county}}{{info.address}}
 							</view>
-							<view class="">
-								{{info.company.companyScope}}
+							<view class="enterprise-box-c-bto-r">
+								<u-icon name="arrow-right" color="#00B88F" style="margin-right: 20rpx;" size="28"></u-icon>
 							</view>
 						</view>
 					</view>
-					<view class="enterprise-box-c-bto flex align-center justify-between" @click.stop="gotoMap()">
-						<view class="enterprise-box-c-bto-l flex align-center">
-							<u-icon name="map" color="#00B88F" style="margin-left: 20rpx;margin-right: 10rpx;" size="28"></u-icon>
-							{{info.province}}{{info.city}}{{info.county}}{{info.address}}
-						</view>
-						<view class="enterprise-box-c-bto-r">
-							<u-icon name="arrow-right" color="#00B88F" style="margin-right: 20rpx;" size="28"></u-icon>
-						</view>
-					</view>
 				</view>
 			</view>
 		</view>
@@ -115,27 +220,27 @@
 		</view>
 		<view class="btn flex justify-center" v-if="info.status==3 && info.isOverdue==0">
 			<view class="btn-box bgBox flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
-				修改内容
+				编辑
 			</view>
 		</view>
 		<view class="btn flex justify-center" v-if="info.status==2 && info.isOverdue == 0">
 			<view class="btn-box flex justify-between">
+				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
+					编辑
+				</view>
 				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('close')">
 					关闭岗位
 				</view>
-				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
-					修改内容
-				</view>
 			</view>
 		</view>
 		<view class="btn flex justify-center" v-if="info.status==5 && info.isOverdue == 0">
 			<view class="btn-box flex justify-between">
+				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="updataServeType(info.postPushId,'updata')">
+					编辑
+				</view>
 				<view class="btn-box 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,'updata')">
-					修改内容
-				</view>
 			</view>
 		</view>
 	</view>
@@ -268,9 +373,165 @@
 
 <style lang="scss">
 	page{
-		background-color: #F2F2F7;
-		padding-bottom: 200rpx;
+		// background-color: #F2F2F7;
+		padding-top: 160rpx;
 	}
+	
+	.fixed-header {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		z-index: 9999;
+		background-color: #ffffff;
+	}
+
+	.custom-navbar {
+		padding-top: 80rpx;
+		background-color: #ffffff;
+		box-sizing: border-box;
+		
+		.navbar-content {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			height: 88rpx;
+			padding: 0 40rpx;
+			
+			.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: 52px;
+				letter-spacing: 0.5%;
+				text-align: center;
+			}
+		}
+	}
+	
+	.status-section {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin: 40rpx 0rpx 40rpx 0rpx;
+		
+		.status-icon {
+			margin-right: 20rpx;
+			display: flex;
+			align-items: center;
+			
+			.status-icon-img {
+				width: 48rpx;
+				height: 48rpx;
+			}
+		}
+		
+		.status-title {
+			color: rgba(29, 33, 41, 1);
+			font-family: DM Sans;
+			font-size: 36rpx;
+			font-weight: 500;
+			line-height: 48rpx;
+			letter-spacing: 0%;
+			text-align: left;
+			display: flex;
+			align-items: center;
+		}
+	}
+	
+	.job-info-card {
+		background: #ffffff;
+		border-radius: 12rpx;
+		margin: 0 40rpx 40rpx 40rpx;
+		padding: 32rpx;
+		border: 0.5px solid rgba(227, 231, 236, 1);
+		
+		.job-header {
+			display: flex;
+			justify-content: space-between;
+			align-items: flex-start;
+			margin-bottom: 16rpx;
+			
+			.job-title-section {
+				flex: 1;
+				
+				.job-title {
+					color: rgba(153, 153, 153, 1);
+					font-family: DM Sans;
+					font-size: 28rpx;
+					font-weight: 400;
+					line-height: 44rpx;
+					letter-spacing: 0.5%;
+					text-align: left;
+				}
+			}
+			
+			.job-status {
+				.status-text {
+					color: rgba(153, 153, 153, 1);
+					font-family: DM Sans;
+					font-size: 18rpx;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: -0.5px;
+					text-align: right;
+				}
+			}
+		}
+		
+		.job-info {
+			.job-details {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 28rpx;
+				font-weight: 400;
+				line-height: 36rpx;
+				letter-spacing: 0.5%;
+				text-align: left;
+			}
+		}
+	}
+	
+	.failure-reason-section {
+		margin: 0 40rpx;
+		
+		.section-title {
+			color: rgba(31, 44, 55, 1);
+			font-family: DM Sans;
+			font-size: 28rpx;
+			font-weight: 500;
+			line-height: 44rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+			margin-bottom: 20rpx;
+		}
+		
+		.reason-list {
+			.reason-item {
+				margin-bottom: 16rpx;
+				
+				.reason-text {
+					color: rgba(153, 153, 153, 1);
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					line-height: 48rpx;
+					letter-spacing: 0.5%;
+					text-align: left;
+				}
+			}
+		}
+	}
+	
 	.remarks{
 		width: 100%;
 		margin-top: 30rpx;
@@ -278,7 +539,7 @@
 			width: 686rpx;
 			border-radius: 24rpx;
 			background-color: #ffffff;
-			padding: 30rpx 20rpx;
+			padding: 0rpx 20rpx;
 			color: red;
 		}
 	}
@@ -292,63 +553,115 @@
 			border-radius: 24rpx;
 			background-color: #ffffff;
 			.job-info-c{
-				width: 626rpx;
+				// width: 626rpx;
+				width: 100%;
 				height: 100%;
-				padding-top: 30rpx;
-				padding-bottom: 30rpx;
+				padding: 30rpx 20rpx;
+			}
+			.job-info-c-header{
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+			}
+			.job-info-c-address {
+				color: rgba(156, 164, 171, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 26rpx;
+				letter-spacing: 0.5%;
+				text-align: left;
+				padding: 20rpx 0;
 			}
 			.job-info-c-title{
-				color: #333333;
-				font-size: 38rpx;
-				font-weight: 800;
+				color: rgba(58, 57, 67, 1);
+				font-family: DM Sans;
+				font-size: 48rpx;
+				font-weight: 700;
+				line-height: 60rpx;
+				letter-spacing: 0px;
+				text-align: left;
 			}
 			.job-info-c-label{
-				margin-top: 30rpx;
+				// margin-top: 30rpx;
 				.job-info-c-label-item{
+					color: rgba(153, 153, 153, 1);
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: 0.5%;
+					padding: 12rpx;
+					text-align: left;
 					margin-right: 30rpx;
-					color: #999999;
-					font-size: 28rpx;
-					margin-bottom: 10rpx;
+					border-radius: 12rpx;
+					background: rgba(198, 198, 198, 0.1);
 				}
 			}
 			.job-info-c-price{
-				color: #00B88F;
-				font-size: 38rpx;
-				font-weight: bold;
-				margin-top: 30rpx;
+				color: rgba(1, 107, 246, 1);
+				font-family: DM Sans;
+				font-size: 32rpx;
+				font-weight: 700;
+				line-height: 40rpx;
+				letter-spacing: 0.5%;
+				text-align: right;
 			}
 		}
 	}
 	.jobRemarks{
 		width: 100%;
-		margin-top: 20rpx;
+		padding: 0 20rpx;
 		.jobRemarks-box{
-			width: 686rpx;
+			width: 100%;
 			height: 100%;
 			background-color: #ffffff;
 			border-radius: 24rpx;
 			.jobRemarks-box-c{
-				width: 628rpx;
+				width: 100%;
 				height: 100%;
-				padding-top: 30rpx;
-				padding-bottom: 30rpx;
+				padding: 30rpx 20rpx;
 			}
 			.jobRemarks-box-c-title{
-				color: #333333;
+				color: rgba(1, 107, 246, 1);
 				font-size: 32rpx;
-				font-weight: 800;
+				padding: 8px 12px;
+				border-radius: 36px;
+				font-weight: 500;
+				background: rgba(246, 246, 246, 1);
+				
+				.title-icon {
+					width: 32rpx;
+					height: 32rpx;
+				}
+			}
+			.job-description {
+				margin-top: 20rpx;
+				margin-bottom: 20rpx;
+				
+				.description-item {
+					color: rgba(97, 110, 124, 1);
+					font-family: DM Sans;
+					font-size: 26rpx;
+					font-weight: 400;
+					line-height: 16px;
+					letter-spacing: 0px;
+					text-align: left;
+					margin-bottom: 8rpx;
+				}
 			}
 			.jobRemarks-box-c-label{
 				width: 100%;
 				margin-top: 25rpx;
 				.jobRemarks-box-c-label-item{
-					color: #666666;
-					font-size: 24rpx;
+					color: rgba(1, 107, 246, 1);
+					font-size: 20rpx;
 					padding: 10rpx 15rpx;
 					background-color: #F6F6F6;
-					border-radius: 8rpx;
+					border-radius: 10rpx;
 					margin-right: 20rpx;
 					margin-bottom: 10rpx;
+					background: rgba(252, 233, 220, 1);
 				}
 			}
 			.jobRemarks-box-c-con{
@@ -368,43 +681,66 @@
 			}
 		}
 	}
-	.enterprise{
+	.enterprise {
 		width: 100%;
-		// height: 256rpx;
 		margin-top: 25rpx;
-		.enterprise-box{
-			width: 686rpx;
+		padding: 0 20rpx;
+
+		.company-intro-card {
+			width: 100%;
 			background-color: #ffffff;
-			height: 100%;
 			border-radius: 24rpx;
-			padding-bottom: 25rpx;
-			.enterprise-box-c{
-				width: 626rpx;
-				height: 100%;
+			padding: 12rpx 24rpx;
+			margin-bottom: 20rpx;
+			display: flex;
+			align-items: center;
+			border: 0.5px solid rgba(227, 231, 236, 1);
+
+			.company-avatar {
+				flex-shrink: 0;
+				margin-right: 24rpx;
 			}
-			.enterprise-box-c-info{
-				width: 100%;
-				height: 95rpx;
-				margin-top: 40rpx;
-				.enterprise-box-c-info-n{
-					margin-left: 18rpx;
-					view:nth-of-type(1){
-						color: #333333;
-						font-size: 32rpx;
-						font-weight: 800;
-					}
-					view:nth-of-type(2){
-						color: #999999;
-						font-size: 24rpx;
-						font-weight: 500;
-						margin-top: 10rpx;
-					}
+
+			.company-info {
+				flex: 1;
+
+				.company-name {
+					color: rgba(51, 51, 51, 1);
+					font-size: 26rpx;
+					font-weight: 600;
+					line-height: 1.4;
+					margin-bottom: 8rpx;
+				}
+
+				.company-details {
+					color: rgba(153, 153, 153, 1);
+					font-size: 24rpx;
+					font-weight: 400;
+					line-height: 1.4;
 				}
 			}
+
+			.company-arrow {
+				flex-shrink: 0;
+				margin-left: 48rpx;
+			}
+		}
+
+		.enterprise-box {
+			width: 100%;
+			background-color: #ffffff;
+			height: 100%;
+			padding-bottom: 25rpx;
+			border-radius: 24rpx;
+
+			.enterprise-box-c {
+				width: 100%;
+				height: 100%;
+			}
+
 			.enterprise-box-c-bto{
 				width: 100%;
-				// height: 60rpx;
-				padding-top: 15rpx;
+				// padding-top: 15rpx;
 				padding-bottom: 15rpx;
 				background-color: #EDFFFB;
 				border-radius: 30rpx;
@@ -415,18 +751,97 @@
 			}
 		}
 	}
+	
+	.urgent-banner {
+		width: 686rpx;
+		height: 150rpx;
+		background: linear-gradient(180deg, rgba(255, 181, 60, 1) 100%, rgba(251, 231, 185, 1) 50%);
+		border-radius: 16rpx;
+		display: flex;
+		align-items: flex-start;
+		justify-content: space-between;
+		padding: 20rpx 30rpx;
+		margin: 0 auto 20rpx auto;
+
+		.urgent-left-section {
+			flex: 1;
+			display: flex;
+			align-items: center;
+
+			.urgent-star-icon-wrapper {
+				width: 72rpx;
+				height: 72rpx;
+				border-radius: 50%;
+				background: linear-gradient(90deg, rgba(255, 65, 86, 1) 0%, rgba(255, 102, 0, 0.35) 100%);
+				margin-right: 24rpx;
+				flex-shrink: 0;
+			}
+
+			.urgent-text-content {
+				flex: 1;
+
+				.urgent-main-title {
+					color: rgba(255, 255, 255, 1);
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 500;
+					line-height: 32rpx;
+					letter-spacing: 0%;
+					text-align: left;
+					margin-bottom: 8rpx;
+				}
+
+				.urgent-sub-description {
+					color: rgba(255, 255, 255, 1);
+					font-family: DM Sans;
+					font-size: 20rpx;
+					font-weight: 400;
+					line-height: 26rpx;
+					letter-spacing: 0%;
+					text-align: left;
+					margin-bottom: 6rpx;
+				}
+
+				.urgent-benefits {
+					color: rgba(255, 255, 255, 1);
+					font-family: DM Sans;
+					font-size: 20rpx;
+					font-weight: 400;
+					line-height: 26rpx;
+					letter-spacing: 0%;
+					text-align: left;
+				}
+			}
+		}
+
+		.urgent-upgrade-button {
+			background: linear-gradient(90deg, rgba(255, 65, 86, 1) 0%, rgba(255, 102, 0, 0.35) 100%);
+			padding: 8rpx;
+			border-radius: 8rpx;
+			color: rgba(255, 255, 255, 1);
+			font-family: DM Sans;
+			font-size: 16rpx;
+			font-weight: 400;
+			line-height: 20rpx;
+			letter-spacing: -0.5px;
+			text-align: right;
+			margin-left: 20rpx;
+		}
+	}
+	
 	.bgBox{
 		color: #ffffff;
-		background-color: #00B88F;
+		background-color: rgba(1, 107, 246, 1);
 		font-weight: bold;
-		border-radius: 40rpx;
+		border-radius: 50rpx;
 	}
 	.btn{
 		width: 100%;
 		height: 88rpx;
-		margin-top: 30rpx;
+		margin: 30rpx 0rpx;
+		border-radius: 40rpx;
 		.btn-boxs{
-			width: 45% !important;
+			width: 49% !important;
 			
 		}
 		.btn-box{
@@ -435,5 +850,4 @@
 			
 		}
 	}
-
 </style>

+ 126 - 254
pages/jobManagement/jobManagement.vue

@@ -13,21 +13,23 @@
 				</view>
 			</view>
 			
-			<!-- 标签页导航 -->
-			<u-tabs 
-				:list="tabList" 
-				:current="activeTab" 
-				@change="switchTab"
-				:is-scroll="false"
-				:height="88"
-				:font-size="24"
-				active-color="#016BF6"
-				inactive-color="rgba(102, 102, 102, 1)"
-				:bar-width="60"
-				:bar-height="4"
-				:gutter="0"
-				bg-color="#ffffff"
-			></u-tabs>
+			<!-- 标签页导航 - 使用uview的u-tabs组件 -->
+			<view class="sticky-tabs">
+				<u-tabs 
+					:list="tabs" 
+					:current="tabIndex" 
+					@change="tabChange"
+					:is-scroll="false"
+					:height="88"
+					:font-size="24"
+					active-color="rgba(1, 107, 246, 1)"
+					inactive-color="rgba(102, 102, 102, 1)"
+					:bar-width="60"
+					:bar-height="4"
+					:gutter="0"
+					bg-color="#ffffff"
+				></u-tabs>
+			</view>
 		</view>
 		
 		<!-- 职位列表 -->
@@ -36,25 +38,25 @@
 			<scroll-view scroll-y="true" style="width: 100%;height: 70vh;" v-if="jobList.length > 0">
 				<view 
 					class="job-card" 
-					:class="job.statusClass"
+					:class="getJobStatusClass(job)"
 					v-for="(job, index) in jobList" 
 					:key="index"
-					@click="goToJobDetail(job)"
+					@click="goNav('/my/order/pay?postPushId='+job.postPushId)"
 				>
 					<view class="job-card-content">
 						<view class="job-header">
 							<view class="job-title-section">
-								<text class="job-title">{{job.title}}</text>
+								<text class="job-title">{{job.stationName || job.title}}</text>
 								<view class="urgent-tag" v-if="job.isUrgent">
 									<text class="urgent-text">急聘</text>
 								</view>
 							</view>
-							<view class="job-status" :class="job.statusClass">
-								<text class="status-text">{{job.status}}</text>
+							<view class="job-status" :class="getJobStatusClass(job)">
+								<text class="status-text">{{job.statusName || job.status}}</text>
 							</view>
 						</view>
 						<view class="job-info">
-							<text class="job-details">{{job.location}} {{job.education}} {{job.experience}} {{job.salary}} {{job.type}}</text>
+							<text class="job-details">{{job.city}}-{{job.county}} {{job.education}} {{job.experience}} {{job.salaryRange}} {{job.postType}}</text>
 						</view>
 					</view>
 				</view>
@@ -78,24 +80,48 @@
 </template>
 
 <script>
+import empty from '@/components/empty.vue'
+
 export default {
+	components: {
+		empty
+	},
 	data() {
 		return {
-			activeTab: 0,
-			tabList: [
-				{ name: '全部' },
-				{ name: '开放中' },
-				{ name: '审核失败' },
-				{ name: '已关闭' }
+			tabIndex: 0,
+			tabs: [
+				{ name: '全部', status: 0 },
+				{ name: '待审核', status: 1 },
+				{ name: '招聘中', status: 2 },
+				{ name: '已拒绝', status: 3 },
+				{ name: '已取消', status: 4 },
+				{ name: '已关闭', status: 5 }
 			],
-			jobList: []
+			jobList: [],
+			page: 1,
+			limit: 10,
+			count: 0,
+			companyId: ''
 		}
 	},
-	created() {
-		// 页面创建时初始化数据
-		this.filterJobsByTab(0)
+	onLoad() {
+		this.companyId = uni.getStorageSync('companyId');
+		this.getJobList();
 		// 动态设置body和html高度
-		this.setBodyHeight()
+		this.setBodyHeight();
+	},
+	onShow() {
+		this.getJobList();
+	},
+	onReachBottom() {
+		if (this.jobList.length < this.count) {
+			this.page = this.page + 1;
+			this.getJobList();
+		}
+	},
+	onPullDownRefresh() {
+		this.page = 1;
+		this.getJobList();
 	},
 	methods: {
 		goBack() {
@@ -110,234 +136,53 @@ export default {
 				})
 			}
 		},
-		switchTab(e) {
+		// 切换菜单
+		tabChange(e) {
 			// u-tabs组件的change事件传递的是事件对象,需要获取index
 			const index = typeof e === 'number' ? e : e.index
-			this.activeTab = index
-			// 这里可以根据选中的标签过滤职位列表
-			this.filterJobsByTab(index)
+			this.tabIndex = index
+			this.jobList = []; // 置空列表,显示加载进度条
+			this.page = 1;
+			this.getJobList();
 		},
-		filterJobsByTab(tabIndex) {
-			// 根据标签过滤职位列表的逻辑
-			console.log('切换到标签:', this.tabList[tabIndex].name)
-			
-			// 模拟不同标签的数据
-			if (tabIndex === 0) { // 全部
-				this.jobList = [
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: true
-					},
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '审核中',
-						statusClass: 'status-review',
-						isUrgent: false
-					},
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					},
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: false
-					},
-					{
-						title: '产品经理',
-						location: '深圳-南山',
-						education: '本科',
-						experience: '3-5年',
-						salary: '15-25K·14薪',
-						type: '全职',
-						status: '审核中',
-						statusClass: 'status-review',
-						isUrgent: true
-					},
-					{
-						title: 'UI设计师',
-						location: '深圳-福田',
-						education: '本科',
-						experience: '2-4年',
-						salary: '12-18K·13薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: false
-					},
-					{
-						title: '前端开发工程师',
-						location: '深圳-宝安',
-						education: '本科',
-						experience: '2-5年',
-						salary: '15-22K·13薪',
-						type: '全职',
-						status: '审核中',
-						statusClass: 'status-review',
-						isUrgent: true
-					},
-					{
-						title: '数据分析师',
-						location: '深圳-龙岗',
-						education: '硕士',
-						experience: '1-3年',
-						salary: '18-28K·14薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: false
-					},
-					{
-						title: '销售经理',
-						location: '深圳-罗湖',
-						education: '本科',
-						experience: '3-6年',
-						salary: '20-35K·15薪',
-						type: '全职',
-						status: '审核中',
-						statusClass: 'status-review',
-						isUrgent: false
-					},
-					{
-						title: '运营专员',
-						location: '深圳-盐田',
-						education: '本科',
-						experience: '1-2年',
-						salary: '8-12K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					},
-					{
-						title: '运营专员',
-						location: '深圳-盐田',
-						education: '本科',
-						experience: '1-2年',
-						salary: '8-12K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					},
-					{
-						title: '运营专员',
-						location: '深圳-盐田',
-						education: '本科',
-						experience: '1-2年',
-						salary: '8-12K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					},
-					{
-						title: '运营专员',
-						location: '深圳-盐田',
-						education: '本科',
-						experience: '1-2年',
-						salary: '8-12K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					}
-				]
-			} else if (tabIndex === 1) { // 开放中
-				this.jobList = [
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: true
-					},
-					{
-						title: '产品经理',
-						location: '深圳-南山',
-						education: '本科',
-						experience: '3-5年',
-						salary: '15-25K·14薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: true
-					},
-					{
-						title: 'UI设计师',
-						location: '深圳-福田',
-						education: '本科',
-						experience: '2-4年',
-						salary: '12-18K·13薪',
-						type: '全职',
-						status: '免费试用中',
-						statusClass: 'status-trial',
-						isUrgent: false
-					}
-				]
-			} else if (tabIndex === 2) { // 审核失败
-				this.jobList = [
-					{
-						title: '亚马逊运营',
-						location: '深圳-西乡',
-						education: '本科',
-						experience: '1-3年',
-						salary: '10-15K·13薪',
-						type: '全职',
-						status: '审核未通过',
-						statusClass: 'status-failed',
-						isUrgent: false
-					}
-				]
-			} else if (tabIndex === 3) { // 已关闭
-				this.jobList = [
-					{
-						title: '运营专员',
-						location: '深圳-盐田',
-						education: '本科',
-						experience: '1-2年',
-						salary: '8-12K·13薪',
-						type: '全职',
-						status: '已关闭',
-						statusClass: 'status-closed',
-						isUrgent: false
-					}
-				]
+		// 获取职位列表
+		getJobList() {
+			let data = {
+				status: this.tabIndex == 0 ? '' : this.tabIndex,
+				page: this.page,
+				limit: this.limit,
+				companyId: this.companyId
 			}
+			this.$Request.getT('/app/postPush/getPostPushList', data).then(res => {
+				if (res.code == 0) {
+					if (this.page == 1) this.jobList = []; //如果是第一页需手动制空列表
+					res.data.records.forEach(ret => {
+						ret.showpeop = false
+						if (ret.status == 1) {
+							ret.statusName = '待审核'
+						} else if (ret.status == 2) {
+							ret.statusName = '招聘中'
+						} else if (ret.status == 3) {
+							ret.statusName = '已拒绝'
+						} else if (ret.status == 4) {
+							ret.statusName = '已取消'
+						} else if (ret.status == 5) {
+							ret.statusName = '已关闭'
+						}
+						this.jobList.push(ret)
+					})
+					this.count = res.data.total
+				}
+				uni.hideLoading()
+				uni.stopPullDownRefresh()
+			}).catch(err => {
+				uni.hideLoading()
+				uni.stopPullDownRefresh()
+			})
 		},
-		goToJobDetail(job) {
-			// 跳转到职位详情页面
+		goNav(url) {
 			uni.navigateTo({
-				url: '/pages/jobManagement/jobDetail'
+				url
 			})
 		},
 		publishNewJob() {
@@ -346,6 +191,19 @@ export default {
 				url: '/package/addJob/addJob'
 			})
 		},
+		// 获取职位状态样式类
+		getJobStatusClass(job) {
+			if (job.status === 2) {
+				return 'status-trial';
+			} else if (job.status === 1) {
+				return 'status-review';
+			} else if (job.status === 3 || job.status === 4) {
+				return 'status-failed';
+			} else if (job.status === 5) {
+				return 'status-closed';
+			}
+			return '';
+		},
 		setBodyHeight() {
 			// 动态设置body和html高度为auto
 			if (typeof document !== 'undefined') {
@@ -360,6 +218,20 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+/*
+sticky生效条件:
+1、父元素不能overflow:hidden或者overflow:auto属性。(mescroll-body设置:sticky="true"即可, mescroll-uni本身没有设置overflow)
+2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
+3、父元素的高度不能低于sticky元素的高度
+4、sticky元素仅在其父元素内生效,所以父元素必须是 mescroll
+*/
+.sticky-tabs {
+	z-index: 990;
+	position: sticky;
+	top: var(--window-top);
+	background-color: #fff;
+}
+
 page {
 	background-color: #ffffff;
 }

+ 64 - 2
pages/my/index.vue

@@ -158,7 +158,7 @@
             <text class="button-text" @click="goBusinessLicense">立即参与</text>
           </view>
         </view>
-      </view>
+      </view>       
       <!-- vip -->
       <!-- <view
         class="vip flex justify-center"
@@ -488,6 +488,19 @@
           </view>
         </view>
       </view>
+        <!-- 职位管理 -->
+        <view class="job-management-card" @click="goJobManagement">
+          <view class="job-management-content">
+            <view class="job-count-text">
+              <text class="count-number">1</text>
+              <text class="count-label">个在线职位</text>
+            </view>
+            <view class="arrow-icon">
+              <u-icon name="arrow-right" color="#999" size="24"></u-icon>
+            </view>
+          </view>
+        </view>
+        
       <!-- vip -->
       <!-- <view
         class="vip flex justify-center"
@@ -1289,6 +1302,16 @@ export default {
         this.noLogin();
       }
     },
+    // 跳转到职位管理页面
+    goJobManagement() {
+      if (uni.getStorageSync("token")) {
+        uni.navigateTo({
+          url: '/pages/jobManagement/jobManagement'
+        });
+      } else {
+        this.noLogin();
+      }
+    },
     /**
      * 退出登录
      */
@@ -1666,7 +1689,7 @@ page {
 }
 // 推广横幅
 .promo-banner {
-  margin: 40rpx;
+  margin: 40rpx 40rpx 10rpx 40rpx;
   margin-top: 60rpx;
   background: var(
     --线性渐变,
@@ -1736,6 +1759,45 @@ page {
     }
   }
 }
+
+.job-management-card {
+  margin: 0rpx 40rpx;
+  background: #ffffff;
+  border-radius: 12rpx;
+  padding: 24rpx 32rpx;
+  box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
+  
+  .job-management-content {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    
+    .job-count-text {
+      display: flex;
+      align-items: center;
+      
+      .count-number {
+        color: #016bf6;
+        font-size: 32rpx;
+        font-weight: 600;
+        margin-right: 8rpx;
+      }
+      
+      .count-label {
+        color: #666666;
+        font-size: 28rpx;
+        font-weight: 400;
+      }
+    }
+    
+    .arrow-icon {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+  }
+}
+
 .my-center {
   position: absolute;
   left: 0;

+ 15 - 9
pages/talentSearch/filter.vue

@@ -202,13 +202,13 @@ export default {
 
 // 筛选内容
 .filter-content {
-	padding: 40rpx 30rpx;
+	padding: 20rpx 30rpx 0 30rpx;
 	background-color: #ffffff;
 	margin-bottom: 20rpx;
 }
 
 .filter-section {
-	margin-bottom: 60rpx;
+	// margin-bottom: 60rpx;
 	
 	&:last-child {
 		margin-bottom: 0;
@@ -307,7 +307,7 @@ export default {
 
 // 免责声明
 .disclaimer {
-	padding: 30rpx;
+	padding: 0 30rpx;
 	
 	.disclaimer-text {
 		color: #999999;
@@ -325,17 +325,20 @@ export default {
 	right: 0;
 	display: flex;
 	background-color: #ffffff;
-	border-top: 1rpx solid #e5e5e5;
+	// border-top: 1rpx solid #e5e5e5;
 	padding: 20rpx 30rpx;
 	gap: 20rpx;
 	
 	.clear-button {
 		flex: 1;
 		padding: 24rpx;
-		background-color: #f5f5f5;
-		color: #666666;
+		background: rgba(216, 216, 216, 1);
+		color: rgba(255, 255, 255, 1);
+		font-family: DM Sans;
 		font-size: 32rpx;
-		font-weight: 500;
+		font-weight: 400;
+		line-height: 48rpx;
+		letter-spacing: 0%;
 		text-align: center;
 		border-radius: 50rpx;
 	}
@@ -344,9 +347,12 @@ export default {
 		flex: 1;
 		padding: 24rpx;
 		background: linear-gradient(90deg, #007AFF, #00BFFF);
-		color: #ffffff;
+		color: rgba(255, 255, 255, 1);
+		font-family: DM Sans;
 		font-size: 32rpx;
-		font-weight: 500;
+		font-weight: 400;
+		line-height: 48rpx;
+		letter-spacing: 0%;
 		text-align: center;
 		border-radius: 50rpx;
 	}

+ 1 - 1
pages/talentSearch/index.vue

@@ -494,7 +494,7 @@ export default {
 	background-color: #ffffff;
 	z-index: 98;
 	padding: 20rpx;
-	box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
+	// box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
 
 	.topbg-sx-box-l-i {
 		color: rgba(153, 153, 153, 1);

+ 10 - 0
static/images/shengji.svg

@@ -0,0 +1,10 @@
+<svg viewBox="0 0 35 35" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="35.000000" height="35.000000" fill="none">
+	<defs>
+		<radialGradient id="paint_radial_0" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-29.2324,-28.3395,44.9652,-46.3818,32.2887,39.8321)">
+			<stop stop-color="rgb(255,102,0)" offset="0" stop-opacity="0.349999994" />
+			<stop stop-color="rgb(255,65,86)" offset="0.995780587" stop-opacity="1" />
+		</radialGradient>
+	</defs>
+	<rect id="svg 55" width="35.000000" height="35.000000" x="0.000000" y="0.000000" />
+	<path id="矢量 55" d="M17.5 0C7.875 0 0 7.875 0 17.5C0 27.125 7.875 35 17.5 35C27.125 35 35 27.125 35 17.5C35 7.875 27.125 0 17.5 0ZM25.5938 16.8438L22.5312 19.9062L23.1875 24.2812C23.4062 25.8125 22.5312 26.4687 21.2188 25.8125L17.2813 23.625L13.3438 25.8125C12.0313 26.4687 11.1563 26.0312 11.375 24.2812L12.0313 19.9062L9.40625 16.8437C8.3125 15.75 8.75 14.6562 10.0625 14.4375L14.4375 13.7812L16.4063 9.625C17.0625 8.3125 18.1562 8.3125 18.8125 9.625L20.7812 13.7812L25.1562 14.4375C26.25 14.875 26.6875 15.75 25.5938 16.8437L25.5938 16.8438Z" fill="url(#paint_radial_0)" fill-rule="nonzero" />
+</svg>