Forráskód Böngészése

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

lyuis 7 hónapja
szülő
commit
b727f50389

+ 1 - 1
.hbuilderx/launch.json

@@ -3,7 +3,7 @@
     "configurations" : [
         {
             "customPlaygroundType" : "local",
-            "playground" : "custom",
+            "playground" : "standard",
             "type" : "uni-app:app-android"
         }
     ]

+ 4 - 4
manifest.json

@@ -63,7 +63,7 @@
                 "payment" : {
                     "weixin" : {
                         "__platform__" : [ "android" ],
-                        "appid" : "wxeaffcaea958472d3",
+                        "appid" : "wx6b884c8431f096c4",
                         "UniversalLinks" : "https://maxiong.xianmxkj.com/"
                     },
                     "alipay" : {
@@ -72,14 +72,14 @@
                 },
                 "share" : {
                     "weixin" : {
-                        "appid" : "wxeaffcaea958472d3",
+                        "appid" : "wx6b884c8431f096c4",
                         "UniversalLinks" : "https://maxiong.xianmxkj.com/"
                     }
                 },
                 "oauth" : {
                     "weixin" : {
-                        "appid" : "wxeaffcaea958472d3",
-                        "appsecret" : "32f6f3ce599abff2fa0191a36780c66c",
+                        "appid" : "wx6b884c8431f096c4",
+                        "appsecret" : "30d3fd06ab473f07b0a4b45e1048b5cb",
                         "UniversalLinks" : "https://maxiong.xianmxkj.com/"
                     }
                 },

+ 179 - 109
my/order/pay.vue

@@ -13,7 +13,7 @@
 				</view>
 			</view>
 		</view>
-		
+
 		<!-- 审核失败 -->
 		<view v-if="info.status === 3">
 			<!-- 审核状态提示 -->
@@ -23,7 +23,7 @@
 				</view>
 				<view class="status-title">职位审核失败</view>
 			</view>
-			
+
 			<!-- 职位信息卡片 -->
 			<view class="job-info-card">
 				<view class="job-header">
@@ -35,10 +35,11 @@
 					</view>
 				</view>
 				<view class="job-info">
-					<text class="job-details">{{info.county}} {{info.education}} {{info.experience}} {{info.salaryRange}} {{info.postType}}</text>
+					<text class="job-details">{{info.county}} {{info.education}} {{info.experience}}
+						{{info.salaryRange}} {{info.postType}}</text>
 				</view>
 			</view>
-			
+
 			<!-- 失败原因 -->
 			<view class="failure-reason-section">
 				<view class="section-title">失败原因</view>
@@ -54,7 +55,8 @@
 		<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(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>
@@ -79,7 +81,8 @@
 
 						<!-- 地址 -->
 						<view class="job-info-c-address">
-							<u-icon name="map" color="rgba(58, 57, 67, 1)" style="margin-right: 10rpx;" size="24"></u-icon>
+							<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>
 
@@ -99,7 +102,7 @@
 			</view>
 
 			<!-- 急聘 -->
-			<view class="urgent-banner">
+			<view class="urgent-banner" v-if="info.isDue==1">
 				<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>
@@ -107,7 +110,8 @@
 					<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 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>
 				<view class="urgent-upgrade-button">
@@ -124,11 +128,12 @@
 							<text>职位说明</text>
 						</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">
+							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.tag.split(',')"
+								:key="index">
 								{{item}}
 							</view>
 						</view>
-		<!-- 				
+						<!-- 				
 						<view class="job-description">
 							<view class="description-item">1.负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;</view>
 							<view class="description-item">2.做好数据的统计分析工作,收集、分析市场信息,竞争对手状况,并根据产品销售与排名变化,及时制定和调整产品的销售策略;</view>
@@ -139,20 +144,21 @@
 							<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.welfareTag">
-							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.welfareTag?info.welfareTag.split(';'):[]" :key="index">
+							<view class="jobRemarks-box-c-label-item"
+								v-for="(item,index) in info.welfareTag?info.welfareTag.split(';'):[]" :key="index">
 								{{item}}
 							</view>
 						</view>
@@ -161,7 +167,7 @@
 								暂无
 							</view>
 						</view>
-						
+
 						<!-- <view class="job-description">
 							<view class="description-item">1.完整的晋升机制,每年2次调薪机会;</view>
 							<view class="description-item">2.满一年五天带薪年假;</view>
@@ -173,7 +179,7 @@
 					</view>
 				</view>
 			</view>
-			
+
 			<!-- 企业简介 -->
 			<view class="enterprise">
 				<!-- 公司介绍卡片 -->
@@ -184,27 +190,56 @@
 					</view>
 					<view class="company-info">
 						<view class="company-name">{{info.company?info.company.companyAllName:''}}</view>
-						<view class="company-details">{{info.company?info.company.companyPeople:''}} · {{info.company?info.company.companyScope:''}}</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="#016BF6" style="margin-left: 20rpx;margin-right: 10rpx;" size="28"></u-icon>
-							<!-- 	{{info.province}}{{info.city}}{{info.county}} -->{{info.address}}
+								<u-icon name="map" color="#016BF6" 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="#016BF6" style="margin-right: 20rpx;" size="28"></u-icon>
+								<u-icon name="arrow-right" color="#016BF6" style="margin-right: 20rpx;"
+									size="28"></u-icon>
 							</view>
 						</view>
 					</view>
 				</view>
+				<!-- 职位招聘数据 -->
+				<view class="postNum">
+					<view style="font-size: 16px;font-weight: 600;">职位招聘数据</view>
+					<view class="postNum-ul flex justify-around align-center">
+						<view class="postNum-li">
+							<view class="postNum-li-num align-center">34</view>
+							<view class="postNum-li-txt">沟通过</view>
+						</view>
+						<view class="postNum-li ">
+							<view class="postNum-li-num">34</view>
+							<view class="postNum-li-txt">查看过</view>
+						</view>
+						<view class="postNum-li">
+							<view class="postNum-li-num">34</view>
+							<view class="postNum-li-txt">分享</view>
+						</view>
+						<view class="postNum-li">
+							<view class="postNum-li-num">34</view>
+							<view class="postNum-li-txt">收藏</view>
+						</view>
+					</view>
+					<view style="font-size: 22rpx;color: rgba(102, 102, 102, 1);">职位发布时间:{{info.createTime}}</view>
+				</view>
+
+
 			</view>
 		</view>
 		<!-- 底部操作 -->
@@ -213,19 +248,22 @@
 				取消招聘
 			</view>
 		</view>
-		<view class="btn flex justify-center" v-if="info.status==4 || info.isOverdue==1" @click="updataServeType(info.postPushId,'save')">
+		<view class="btn flex justify-center" v-if="info.status==4 || info.isOverdue==1"
+			@click="updataServeType(info.postPushId,'save')">
 			<view class="btn-box bgBox flex justify-center align-center">
 				重新发布
 			</view>
 		</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 class="btn-box bgBox flex justify-center align-center"
+				@click="updataServeType(info.postPushId,'updata')" style="background-color: #ffffff;border: 1px solid #016bf6;color: #016bf6;">
 				编辑
 			</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 class="btn-box bgBox btn-boxs flex justify-center align-center"
+					@click="updataServeType(info.postPushId,'updata')" style="background-color: #ffffff;border: 1px solid #016bf6;color: #016bf6;">
 					编辑
 				</view>
 				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('close')">
@@ -235,7 +273,8 @@
 		</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 class="btn-box bgBox btn-boxs flex justify-center align-center"
+					@click="updataServeType(info.postPushId,'updata')" style="background-color: #ffffff;border: 1px solid #016bf6;color: #016bf6;">
 					编辑
 				</view>
 				<view class="btn-box bgBox btn-boxs flex justify-center align-center" @click="closeOpenJob('open')">
@@ -250,15 +289,15 @@
 	export default {
 		data() {
 			return {
-				postPushId:'',
-				info:{},//岗位详情
+				postPushId: '',
+				info: {}, //岗位详情
 			};
 		},
 		onLoad(option) {
 			this.postPushId = option.postPushId
 			this.getInfo()
 		},
-		methods:{
+		methods: {
 			//返回上一页
 			goBack() {
 				// 检查页面栈,如果没有可返回的页面,则跳转到职位管理
@@ -273,24 +312,24 @@
 				}
 			},
 			//修改岗位
-			updataServeType(postPushId,type) {
+			updataServeType(postPushId, type) {
 				let companyStatus = uni.getStorageSync('companyStatus')
-				if(companyStatus==1){
+				if (companyStatus == 1) {
 					uni.showToast({
-						title:'企业认证审核中,请审核通过后操作!',
-						icon:'none'
+						title: '企业认证审核中,请审核通过后操作!',
+						icon: 'none'
 					})
 					return
 				}
-				if(companyStatus==3){
+				if (companyStatus == 3) {
 					uni.showToast({
-						title:'企业认证审核未通过,请重新认证!',
-						icon:'none'
+						title: '企业认证审核未通过,请重新认证!',
+						icon: 'none'
 					})
 					return
 				}
 				uni.navigateTo({
-					url: '/package/addJob/addJob?postPushId=' + postPushId+'&type='+type
+					url: '/pages/my/jobPosting?postPushId=' + postPushId + '&type=' + type
 				})
 			},
 			//取消招聘
@@ -299,7 +338,7 @@
 				uni.showModal({
 					content: '确认取消该招聘?',
 					title: '提示',
-					confirmColor:'#016BF6',
+					confirmColor: '#016BF6',
 					success(iet) {
 						if (iet.confirm) {
 							let data = {
@@ -327,26 +366,28 @@
 				})
 			},
 			//关闭/开启岗位
-			closeOpenJob(type){
+			closeOpenJob(type) {
 				let that = this
 				uni.showModal({
-					title:'提示',
-					content:type=='close'?'关闭岗位后,该岗位不会再推荐给用户,是否关闭?':'开启岗位后,该岗位会重新推荐给用户,是否开启?',
+					title: '提示',
+					content: type == 'close' ? '关闭岗位后,该岗位不会再推荐给用户,是否关闭?' : '开启岗位后,该岗位会重新推荐给用户,是否开启?',
 					complete(ret) {
-						if(ret.confirm){
-							that.$Request.getT('/app/postPush/closeOrOpen',{postPushId:that.postPushId}).then(res => {
+						if (ret.confirm) {
+							that.$Request.getT('/app/postPush/closeOrOpen', {
+								postPushId: that.postPushId
+							}).then(res => {
 								if (res.code == 0) {
 									uni.showToast({
-										title:type=='close'?'已关闭':'已开启',
+										title: type == 'close' ? '已关闭' : '已开启',
 										duration: 1500,
 										complete() {
 											that.getInfo()
 										}
 									})
-								}else{
+								} else {
 									uni.showToast({
-										title:res.msg,
-										icon:'none'
+										title: res.msg,
+										icon: 'none'
 									})
 								}
 							})
@@ -355,27 +396,28 @@
 				})
 			},
 			//拉起地图导航
-			gotoMap(){
+			gotoMap() {
 				let that = this
 				uni.openLocation({
-					latitude:that.info.lat,
-					longitude:that.info.lng,
-					address:that.info.province+''+that.info.city+''+that.info.county+''+that.info.address,
-					name:that.info.address,
+					latitude: that.info.lat,
+					longitude: that.info.lng,
+					address: that.info.province + '' + that.info.city + '' + that.info.county + '' + that.info
+						.address,
+					name: that.info.address,
 					// complete(ret) {
-						
+
 					// }
 				})
 			},
 			/**
 			 * 获取岗位详情
 			 */
-			getInfo(){
-				this.$Request.getT("/app/postPush/selectPostPushDetails",{
+			getInfo() {
+				this.$Request.getT("/app/postPush/selectPostPushDetails", {
 					// userId:uni.getStorageSync('userId'),
-					postPushId:this.postPushId
+					postPushId: this.postPushId
 				}).then(res => {
-					if(res.code==0){
+					if (res.code == 0) {
 						this.info = res.data
 					}
 				})
@@ -385,11 +427,11 @@
 </script>
 
 <style lang="scss">
-	page{
+	page {
 		// background-color: #F2F2F7;
 		padding-top: 160rpx;
 	}
-	
+
 	.fixed-header {
 		position: fixed;
 		top: 0;
@@ -403,22 +445,23 @@
 		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 {
+
+			.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;
@@ -430,24 +473,24 @@
 			}
 		}
 	}
-	
+
 	.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;
@@ -460,23 +503,23 @@
 			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;
@@ -487,7 +530,7 @@
 					text-align: left;
 				}
 			}
-			
+
 			.job-status {
 				.status-text {
 					color: rgba(153, 153, 153, 1);
@@ -500,7 +543,7 @@
 				}
 			}
 		}
-		
+
 		.job-info {
 			.job-details {
 				color: rgba(153, 153, 153, 1);
@@ -513,10 +556,10 @@
 			}
 		}
 	}
-	
+
 	.failure-reason-section {
 		margin: 0 40rpx;
-		
+
 		.section-title {
 			color: rgba(31, 44, 55, 1);
 			font-family: DM Sans;
@@ -527,11 +570,11 @@
 			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;
@@ -544,11 +587,12 @@
 			}
 		}
 	}
-	
-	.remarks{
+
+	.remarks {
 		width: 100%;
 		margin-top: 30rpx;
-		.remarks-box{
+
+		.remarks-box {
 			width: 686rpx;
 			border-radius: 24rpx;
 			background-color: #ffffff;
@@ -556,26 +600,30 @@
 			color: red;
 		}
 	}
-	.job{
+
+	.job {
 		width: 100%;
 		margin-top: 30rpx;
-		
-		.job-info{
+
+		.job-info {
 			width: 686rpx;
 			height: 100%;
 			border-radius: 24rpx;
 			background-color: #ffffff;
-			.job-info-c{
+
+			.job-info-c {
 				// width: 626rpx;
 				width: 100%;
 				height: 100%;
 				padding: 30rpx 20rpx;
 			}
-			.job-info-c-header{
+
+			.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;
@@ -586,7 +634,8 @@
 				text-align: left;
 				padding: 20rpx 0;
 			}
-			.job-info-c-title{
+
+			.job-info-c-title {
 				color: rgba(58, 57, 67, 1);
 				font-family: DM Sans;
 				font-size: 48rpx;
@@ -595,9 +644,11 @@
 				letter-spacing: 0px;
 				text-align: left;
 			}
-			.job-info-c-label{
+
+			.job-info-c-label {
+
 				// margin-top: 30rpx;
-				.job-info-c-label-item{
+				.job-info-c-label-item {
 					color: rgba(153, 153, 153, 1);
 					font-family: DM Sans;
 					font-size: 24rpx;
@@ -611,7 +662,8 @@
 					background: rgba(198, 198, 198, 0.1);
 				}
 			}
-			.job-info-c-price{
+
+			.job-info-c-price {
 				color: rgba(1, 107, 246, 1);
 				font-family: DM Sans;
 				font-size: 32rpx;
@@ -622,36 +674,41 @@
 			}
 		}
 	}
-	.jobRemarks{
+
+	.jobRemarks {
 		width: 100%;
 		padding: 0 20rpx;
-		.jobRemarks-box{
+
+		.jobRemarks-box {
 			width: 100%;
 			height: 100%;
 			background-color: #ffffff;
 			border-radius: 24rpx;
-			.jobRemarks-box-c{
+
+			.jobRemarks-box-c {
 				width: 100%;
 				height: 100%;
 				padding: 30rpx 20rpx;
 			}
-			.jobRemarks-box-c-title{
+
+			.jobRemarks-box-c-title {
 				color: rgba(1, 107, 246, 1);
 				font-size: 32rpx;
 				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;
@@ -663,10 +720,12 @@
 					margin-bottom: 8rpx;
 				}
 			}
-			.jobRemarks-box-c-label{
+
+			.jobRemarks-box-c-label {
 				width: 100%;
 				margin-top: 25rpx;
-				.jobRemarks-box-c-label-item{
+
+				.jobRemarks-box-c-label-item {
 					color: rgba(1, 107, 246, 1);
 					font-size: 20rpx;
 					padding: 10rpx 15rpx;
@@ -677,23 +736,27 @@
 					background: rgba(252, 233, 220, 1);
 				}
 			}
-			.jobRemarks-box-c-con{
+
+			.jobRemarks-box-c-con {
 				width: 100%;
 				margin-top: 25rpx;
-				.jobRemarks-box-c-con-item{
+
+				.jobRemarks-box-c-con-item {
 					margin-bottom: 10rpx;
 					color: #141414;
 					font-size: 28rpx;
 					font-weight: 500;
 				}
 			}
-			.jobRemarks-box-c-line{
+
+			.jobRemarks-box-c-line {
 				width: 100%;
 				border: 1rpx solid #E6E6E6;
 				margin-top: 25rpx;
 			}
 		}
 	}
+
 	.enterprise {
 		width: 100%;
 		margin-top: 25rpx;
@@ -751,7 +814,7 @@
 				height: 100%;
 			}
 
-			.enterprise-box-c-bto{
+			.enterprise-box-c-bto {
 				width: 100%;
 				// padding-top: 15rpx;
 				padding-bottom: 15rpx;
@@ -764,7 +827,11 @@
 			}
 		}
 	}
-	
+	.postNum{padding: 12rpx;}
+.postNum-ul{margin: 22px auto;font-family: DM Sans;}
+.postNum-li-num{font-size: 32rpx;font-weight: 600;line-height: 48rpx;text-align: center;}
+.postNum-li-txt{font-size: 26rpx;font-weight: 600;line-height: 48rpx;text-align: center;}
+
 	.urgent-banner {
 		width: 686rpx;
 		height: 150rpx;
@@ -841,26 +908,29 @@
 			margin-left: 20rpx;
 		}
 	}
-	
-	.bgBox{
+
+	.bgBox {
 		color: #ffffff;
 		background-color: rgba(1, 107, 246, 1);
 		font-weight: bold;
 		border-radius: 50rpx;
 	}
-	.btn{
+
+	.btn {
 		width: 100%;
 		height: 88rpx;
 		margin: 30rpx 0rpx;
 		border-radius: 40rpx;
-		.btn-boxs{
+
+		.btn-boxs {
 			width: 49% !important;
-			
+
 		}
-		.btn-box{
+
+		.btn-box {
 			width: 686rpx;
 			height: 100%;
-			
+
 		}
 	}
-</style>
+</style>

+ 6 - 0
package/jobIntention/editJob.vue

@@ -58,6 +58,12 @@ export default {
       wordCount: 0 // 字数统计
     };
   },
+  onLoad(options) {
+  	// 接收上个页面传递的公司名称参数
+  	if(options.text){
+  		this.jobDesc=options.text
+  	}
+	},
   methods: {
     // 实时更新字数
     updateWordCount(e) {

+ 1 - 0
package/jobIntention/tagManage.vue

@@ -121,6 +121,7 @@ export default {
 	},
 	methods: {
 		goBack() {
+			uni.$emit('updatePosition')
 			uni.navigateBack()
 		},
 		getData(){

+ 1 - 1
package/jobIntention/underReview.vue

@@ -41,7 +41,7 @@ export default {
   
   methods: {
     goCompleteMsg() {
-		if(ompanyinfo.status==3){
+		if(this.companyinfo.status==3){
 			 uni.navigateTo({ url: "/my/jobPosting?companyName=" });
 		}else{
 			 uni.navigateTo({ url: "/package/jobIntention/completeMsg" });

+ 145 - 128
pages/index/game/gameList.vue

@@ -317,21 +317,34 @@ export default {
     let systemInfo = uni.getSystemInfoSync();
     this.statusBarHeight = systemInfo.statusBarHeight || 0;
 	let that = this;
-			uni.$on('city', data => {
-				that.city = data.city
-				uni.setStorageSync('city', that.city)
-			})
+	// 更换城市调用getJobSearchList
+	uni.$on('city', data => {
+		that.city = data.city
+		uni.setStorageSync('city', that.city);
+		this.searchPage = 1
+		this.getJobSearchList();
+	})
+	// 监听筛选条件触发getJobSearchList
+	uni.$on('updateRecord', () => {
+	    this.getFilterData();
+	})
+	// 监听工作性质变化
+	uni.$on('updatePosition', () => {
+		this.searchPage = 1;
+		this.page = 1;
+	    this.getTypeList();
+	})
 	if (uni.getStorageSync('city')) {
 		this.city = uni.getStorageSync('city')
 	} else {
 		this.city = ''
 	}
-    this.getTypeList();
     this.getLocation();
-    //this.getJobSearchList();
   },
   onUnload(){
-	uni.$off('city') 
+	uni.$off('city');
+	uni.$off('updateRecord');
+	uni.$off('updatePosition')
   },
   watch: {
   	current(newData, oldData) {
@@ -339,37 +352,37 @@ export default {
   		uni.showLoading({
   			title: '加载中'
   		})
-  		this.page = 1
+  		this.searchPage = 1
   		this.getJobSearchList();
   	},
   	currentSx(newData, oldData) {
   		uni.showLoading({
   			title: '加载中'
   		})
-  		this.page = 1
-  		this.getJobSearchList();
-  	},
-  	currentjob(newData, oldData) {
-  		uni.showLoading({
-  			title: '加载中'
-  		})
-  		this.page = 1
-  		this.getJobSearchList();
-  	},
-  	currentJobSx(newData, oldData) {
-  		uni.showLoading({
-  			title: '加载中'
-  		})
-  		this.page = 1
-  		this.getJobSearchList();
-  	},
-  	currentJobSxs(newData, oldData) {
-  		uni.showLoading({
-  			title: '加载中'
-  		})
-  		this.page = 1
+  		this.searchPage = 1
   		this.getJobSearchList();
   	},
+  	// currentjob(newData, oldData) {
+  	// 	uni.showLoading({
+  	// 		title: '加载中'
+  	// 	})
+  	// 	this.page = 1
+  	// 	this.getJobSearchList();
+  	// },
+  	// currentJobSx(newData, oldData) {
+  	// 	uni.showLoading({
+  	// 		title: '加载中'
+  	// 	})
+  	// 	this.page = 1
+  	// 	this.getJobSearchList();
+  	// },
+  	// currentJobSxs(newData, oldData) {
+  	// 	uni.showLoading({
+  	// 		title: '加载中'
+  	// 	})
+  	// 	this.page = 1
+  	// 	this.getJobSearchList();
+  	// },
   },
   onPageScroll(e) {
     // 监听页面滚动
@@ -380,105 +393,57 @@ export default {
       this.isFixed = false;
     }
   },
-  onShow(){
-	//获取选中的筛选条件
-	if (uni.getStorageSync('filter') && (uni.getStorageSync('filter')).length > 0) {
-		let filter = uni.getStorageSync('filter')
-		this.education = '' //学历
-		this.experience = '' //经验
-		this.industry = '' //行业
-		this.salaryRange = '' //薪资
-		this.companyPeople = '' //公司规模
-		filter.map(item => {
-			let arr = []
-			item.list.map(ite => {
-				if (ite.value != '不限') {
-					arr.push(ite.value)
-				}
-			})
-			switch (item.name) {
-				case '学历要求':
-					this.education = arr.join(',')
-					break;
-				case '薪资范围(单选)':
-					this.salaryRange = arr.join(',')
-					break;
-				case '经验要求':
-					this.experience = arr.join(',')
-					break;
-				case '公司规模':
-					this.companyPeople = arr.join(',')
-					break;
-				case '行业':
-					this.industry = arr.join(',')
-					break;
-			}
-	
-		})
-		// console.log(filter)
-	} else {
-		this.education = '' //学历
-		this.experience = '' //经验
-		this.industry = '' //行业
-		this.salaryRange = '' //薪资
-		this.companyPeople = '' //公司规模
-	} 
-	this.getJobSearchList();
-  },
   methods: {
     // 获取工作性质列表
     getTypeList() {
-	var that=this
-	//行业期望
-	this.$Request.get('/app/intention/getIntentionList', {
-		
-	}).then(res => {
-		if (res.code == 0) {
-			let arr = res.data
-		let classRule=[]
-		let industry=[{id:'不限',name:'不限'}]
-		var industryArr=this.industry==''?[]:this.industry.split(',')
-		industryArr.forEach(function(item){
-			if(that.$queue.array_column(that.directionList,'name').indexOf(item)<0)
-				industry.push({id:item,name:item})
-		})
-		
-		arr.forEach(function(item){
-			var tmp={}
-			tmp.id=item.ruleClassifyId
-			tmp.name=item.ruleClassifyName
-			tmp.label=item.ruleClassifyName
-			classRule.push(tmp)
-			var indus=item.industry.split('/')
-			indus.forEach(function(ind){
-				var tm={}
-				tm.name=ind
-				tm.id=ind
-				if(that.$queue.array_column(industry,'name').indexOf(tm.name)<0)
-					industry.push(tm)
+		var that=this
+		//行业期望
+		this.$Request.get('/app/intention/getIntentionList', {}).then(res => {
+			if (res.code == 0) {
+				let arr = res.data
+			let classRule=[]
+			let industry=[{id:'不限',name:'不限'}]
+			var industryArr=this.industry==''?[]:this.industry.split(',')
+			industryArr.forEach(function(item){
+				if(that.$queue.array_column(that.directionList,'name').indexOf(item)<0)
+					industry.push({id:item,name:item})
+			})
+			
+			arr.forEach(function(item){
+				var tmp={}
+				tmp.id=item.ruleClassifyId
+				tmp.name=item.ruleClassifyName
+				tmp.label=item.ruleClassifyName
+				classRule.push(tmp)
+				var indus=!item.industry?[]:item.industry.split('/')
+				indus.forEach(function(ind){
+					var tm={}
+					tm.name=ind
+					tm.id=ind
+					if(that.$queue.array_column(industry,'name').indexOf(tm.name)<0)
+						industry.push(tm)
+				})
 			})
+				this.typeList = classRule
+				this.directionList=industry
+				that.getJobSearchList();
+				that.getJobList();
+			}
 		})
-			this.typeList = classRule
-			this.directionList=industry
-			that.getJobList();
-			// console.log(this.typeList, '1111')
-		}
-	})
-	return;
-      this.$Request
-        .getT("/app/dict/list", {
-          type: "工作性质",
-        })
-        .then((res) => {
-          if (res.code == 0) {
-            this.typeList = res.data.map((item) => ({
-              label: item.value,
-              value: item.code,
-            }));
-            // 获取到tabs数据后调用职位列表
-            this.getJobList();
-          }
-        });
+		// this.$Request
+		// 	.getT("/app/dict/list", {
+		// 	  type: "工作性质",
+		// 	})
+		// 	.then((res) => {
+		// 	  if (res.code == 0) {
+		// 		this.typeList = res.data.map((item) => ({
+		// 		  label: item.value,
+		// 		  value: item.code,
+		// 		}));
+		// 		// 获取到tabs数据后调用职位列表
+		// 		this.getJobList();
+		// 	  }
+		// });
     },
     // 跳转到搜索页面
     goNavs(url) {
@@ -516,7 +481,7 @@ export default {
           that.getSelectCity(res.longitude,res.latitude)
         },
         fail: function () {
-          that.getJobList();
+			this.getTypeList();
         },
       });
     },
@@ -527,7 +492,7 @@ export default {
 				// console.log(res, '获取地址信息')
 				this.city = res.data.city ? res.data.city : '区域'
 				uni.setStorageSync('city', res.data.city)
-				that.getJobList();
+				that.getTypeList();
 			}
 		});
 	},
@@ -536,8 +501,8 @@ export default {
       let data = {
         page: this.page,
         limit: this.limit,
-        /* postType: this.typeList.length > 0 ? this.typeList[this.current].name : "", */
-		ruleClassifyName: this.typeList[this.current].name, //岗位名称
+        postType: this.typeList.length > 0 ? this.typeList[this.current].name : "",
+		ruleClassifyName: this.typeList.length > 0 ? this.typeList[this.current].name : "", //岗位名称
         screen: +this.currentSx + 1, //1推荐 2最新
         city: this.city == "全国" ? "" : this.city,
         lng: this.longitude,
@@ -591,6 +556,53 @@ export default {
       this.page = 1;
       this.getJobList();
     },
+	// 筛选求职列表
+	getFilterData(){
+		//获取选中的筛选条件
+		if (uni.getStorageSync('filter') && (uni.getStorageSync('filter')).length > 0) {
+			let filter = uni.getStorageSync('filter')
+			this.education = '' //学历
+			this.experience = '' //经验
+			this.industry = '' //行业
+			this.salaryRange = '' //薪资
+			this.companyPeople = '' //公司规模
+			filter.map(item => {
+				let arr = []
+				item.list.map(ite => {
+					if (ite.value != '不限') {
+						arr.push(ite.value)
+					}
+				})
+				switch (item.name) {
+					case '学历要求':
+						this.education = arr.join(',')
+						break;
+					case '薪资范围(单选)':
+						this.salaryRange = arr.join(',')
+						break;
+					case '经验要求':
+						this.experience = arr.join(',')
+						break;
+					case '公司规模':
+						this.companyPeople = arr.join(',')
+						break;
+					case '行业':
+						this.industry = arr.join(',')
+						break;
+				}
+		
+			})
+			// console.log(filter)
+		} else {
+			this.education = '' //学历
+			this.experience = '' //经验
+			this.industry = '' //行业
+			this.salaryRange = '' //薪资
+			this.companyPeople = '' //公司规模
+		}
+		this.searchPage = 1
+		this.getJobSearchList();
+	},
     // 获取求职列表
     getJobSearchList() {
       let data = {
@@ -603,6 +615,11 @@ export default {
         lat: this.latitude,
 		isDue:1,
         userId: uni.getStorageSync("userId") ? uni.getStorageSync("userId") : "",
+		education:this.education || '',//学历
+		experience:this.experience || '',//经验
+		industry:this.industry || '',//行业
+		salaryRange:this.salaryRange || '',//薪资
+		companyPeople:this.companyPeople || ''//公司规模
       };
       this.$Request.get("/app/postPush/userGetPostPushList", data).then((res) => {
 		  uni.hideLoading()

+ 2 - 1
pages/jobManagement/jobManagement.vue

@@ -187,7 +187,8 @@ export default {
 		
 	 },
     goNav(url) { uni.navigateTo({ url }); },
-    publishNewJob() { uni.navigateTo({ url: '/package/addJob/addJob' }); },
+   // publishNewJob() { uni.navigateTo({ url: '/package/addJob/addJob' }); },
+	 publishNewJob() { uni.navigateTo({ url: '/pages/my/jobPosting' }); },
     getJobStatusClass(job) { /* 原有逻辑不变 */ },
     setBodyHeight() { /* 原有逻辑不变 */ },
   }

+ 12 - 12
pages/msg/im.vue

@@ -569,11 +569,11 @@
 			<view class="more-layer" :class="{hidden:hideMore}">
 				<view class="list" style="color: #000000;">
 					<!-- 上传图片 -->
-					<view style="margin-bottom: 20rpx;">
+					<view style="margin-bottom: 30rpx;">
 						<view class="box" @click="chooseImage(['album'])">
 							<image src="../../static/im/tupian.svg" style="width: 48rpx;height: 48rpx;" mode=""></image>
 						</view>
-						<view style="width: 100%;text-align: center;">上传图片</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">上传图片</view>
 					</view>
 					<!-- #ifdef H5 || APP -->
 					<!-- 语音 -->
@@ -583,7 +583,7 @@
 								style="width: 48rpx;height: 48rpx;">
 							</image>
 						</view>
-						<view style="width: 100%;text-align: center;">语音</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">语音</view>
 					</view>
 					<!-- 视频 -->
 					<view style="margin-bottom: 20rpx;">
@@ -592,36 +592,36 @@
 								style="width: 48rpx;height: 48rpx;">
 							</image>
 						</view>
-						<view style="width: 100%;text-align: center;">视频</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">语音通话</view>
 					</view>
 					<!-- #endif -->
 					<!-- 常用语 -->
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="showChangYongSelect">
-							<view class="icon jianpan"></view>
+							<view class="icon jianpan" style="font-size: 44rpx;"></view>
 						</view>
-						<view style="width: 100%;text-align: center;">常用语句</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">常用语句</view>
 					</view>
 					<!-- 添加常用语或自动回复内容 -->
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="goAdd">
-							<view class="icon add"></view>
+							<view class="icon add" style="font-size: 44rpx;"></view>
 						</view>
-						<view style="width: 100%;text-align: center;">添加语句</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">添加语句</view>
 					</view>
 					<view style="margin-bottom: 20rpx;">
 						<view class="box" @tap="goMapss">
-							<image src="../../static/images/weizhi.png" mode="" style="width: 76rpx;height: 76rpx;">
+							<image src="../../static/images/weizhi.png" mode="" style="width: 48rpx;height: 48rpx;">
 							</image>
 						</view>
-						<view style="width: 100%;text-align: center;">发送位置</view>
+						<view style="width: 100%;text-align: center;color: #999;font-size: 20rpx;">发送位置</view>
 					</view>
-					<view>
+					<!-- <view>
 						<view class="box" @tap="goHistory">
 							<view class="icon chehui"></view>
 						</view>
 						<view style="width: 100%;text-align: center;">聊天记录</view>
-					</view>
+					</view> -->
 				</view>
 			</view>
 		</view>

+ 9 - 4
pages/msg/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="msg-box">
+	<view class="msg-box" :style="{ paddingTop: BarHeight + 'px' }">
 		<!-- 顶部导航栏 -->
 		<view class="nav-header">
 			<view class="nav-left" @click="goSearch">
@@ -37,7 +37,7 @@
 				</view>
 			</view>
 		</view>
-		<view class="margin-topW">
+		<!-- <view class="margin-topW">
 			<view class="flex padding-tb radius padding-lr-sm bg" @click="goChat">
 				<view>
 					<image style="width: 80rpx;height: 80rpx;border-radius: 80rpx;"
@@ -56,7 +56,7 @@
 					</view>
 				</view>
 			</view>
-		</view>
+		</view> -->
 
 		<view v-if="chatList.length" class="margin-top-sm  content ">
 			<view class="radius padding-lr-sm bg" style="margin-top: 4rpx;" @click="goIM(item)"
@@ -183,6 +183,7 @@
 		},
 		data() {
 			return {
+				BarHeight:'',
 				page: 1,
 				limit: 100,
 				chatList: [],
@@ -217,6 +218,10 @@
 			}
 		},
 		onShow() {
+			// #ifdef APP-PLUS
+			let systemInfo = uni.getSystemInfoSync();
+			this.BarHeight = systemInfo.statusBarHeight;
+			// #endif
 			let that = this
 			that.userId = uni.getStorageSync('userId')
 			if (that.userId) {
@@ -521,7 +526,7 @@
 
 <style lang="scss">
 	.msg-box {
-		padding-top: 80rpx;
+		// padding-top: 80rpx;
 
 		.chat-title {
 			background: linear-gradient(180deg, rgba(13, 39, 247, 1) 0%, rgb(191, 194, 201) 100%);

+ 1 - 1
pages/my/educationExperience.vue

@@ -20,7 +20,7 @@
 					<view class="form-label">学校名称</view>
 					<input 
 						v-model="formData.companyName" 
-						placeholder="请填写公司名称" 
+						placeholder="请填写学校名称" 
 						class="form-input"
 					/>
 				</view>

+ 3 - 1
pages/my/jobApplicant/guidePage.vue

@@ -82,6 +82,7 @@
 						url: '/pages/my/businessLicense'
 					})
 				} else if (status == 2) { //审核通过,如果有职位,跳首页、如果没职位跳职位发布页。
+					 uni.setStorageSync("firstLogin",true)
 					if (status == 2) {
 						uni.preloadPage({
 							url: "/pages/index/index"
@@ -96,6 +97,7 @@
 						})
 					}
 				} else if (status == 1) { //审核未通过,跳审核信息页。
+				 uni.setStorageSync("firstLogin",true)
 					uni.navigateTo({
 						url: '/package/jobIntention/underReview'
 					})
@@ -115,7 +117,7 @@
 				uni.showLoading({
 					title: "提交中..."
 				});
-				this.$Request.postJson("/app/user/updateUserEntity", {
+				this.$Request.postT("/app/user/updateUserEntity", {
 						userType: userType
 					})
 					.then((res) => {

+ 6 - 2
pages/my/jobApplicant/workRecord.vue

@@ -171,6 +171,7 @@
             <view class="job-title">
               <view class="job-title-txt">教育经历</view>
               <image
+			   @click="goEducationalBackground"
                 class="job-image"
                 src="@/static/images/jobApplicant/edit.svg"
                 mode="scaleToFill"
@@ -215,11 +216,11 @@
           <view class="form-item required">
             <view class="job-title">
               <view class="job-title-txt">个人优势</view>
-              <image
+              <!-- <image
                 class="job-image"
                 src="@/static/images/jobApplicant/edit.svg"
                 mode="scaleToFill"
-              />
+              /> -->
             </view>
           </view>
         </view>
@@ -398,6 +399,9 @@ export default {
     goWorkProgress(){
       uni.navigateTo({ url: '/pages/my/workExperience' })
     },
+	goEducationalBackground(){
+		uni.navigateTo({ url: '/pages/my/educationExperience' })
+	},
     // 选择头像
     chooseAvatar() {
 		var that=this

+ 76 - 8
pages/my/jobPosting.vue

@@ -3,7 +3,7 @@
 		<nav-bar title="选择公司规模" color="#000"></nav-bar>
 		<view class="roles-content">
 			<view class="content">
-				<view class="title">发布社招</view>
+				<view class="title">{{isDisabled?'编辑【'+jobInfo.ruleClassifyName+'】':'发布社招'}}岗位</view>
 				<view class="desc">{{companyName}}</view>
 				<view class="step">
 					<u-steps :list="numList" mode="number" :current="0"></u-steps>
@@ -14,10 +14,10 @@
 					<radio-group @change="onRadioChange">
 						<view class="select-txt radioseletview">
 							<label class="radio radioselet">
-								<radio value="0" :checked="true" class="radio-size" />普通岗位招聘
+								<radio value="0" :checked="true" class="radio-size" :disabled="isDisabled" />普通岗位招聘
 							</label>
 							<label class="radio radioselet">
-								<radio value="1" class="radio-size" />急聘
+								<radio value="1" class="radio-size" :disabled="isDisabled"/>急聘
 							</label>
 							<text
 								style="position: absolute;right: 0;bottom: 18px;font-size: 12px;color: rgba(120, 130, 138, 1);">急聘职位剩余{{vipDueTimes}}个</text>
@@ -28,12 +28,12 @@
 
 
 				<view class="check-title">招聘类型</view>
-				<view class="check-box">
+				<view class="check-box" :class="{ disabled: isDisabled }">
 					<view class="check-item" :class="{ 'is-check': check == index }" v-for="(item, index) in peopleList"
-						:key="index" @click="checkPeople(index)">{{ item }}</view>
+						:key="index" @click="!isDisabled && checkPeople(index)">{{ item }}</view>
 				</view>
 				<view class="check-title-big">招聘职位</view>
-				<view class="check-select" @click="goJob">
+				<view class="check-select" @click="!isDisabledid && goJob()" :class="{ disabled: isDisabledid }">
 					<view class="select-txt">{{jobInfo.ruleClassifyName}}</view>
 					<u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
 				</view>
@@ -56,8 +56,12 @@
 				selectedValue: 0, // 默认选中值
 				peopleList: ["社招全职", "应届生校园招聘", "实习生招聘", "兼职招聘"],
 				check: 0,
+				isDisabled: false,
+				isDisabledid:false,
 				isCompanyVip: 0,
 				vipDueTimes: 0,
+				postPushId:"",
+				update:"",
 				vipPostTimes: 0,
 				text: "",
 				status: "",
@@ -83,6 +87,14 @@
 
 		onLoad(options) {
 			// 接收上个页面传递的公司名称参数
+			if(options.postPushId){
+				this.postPushId=options.postPushId
+				this.getInfo()
+			}
+			if(options.type){
+				this.update=decodeURIComponent(options.type);
+				 this.isDisabled = true;
+			}
 			if (options.companyName) {
 				this.companyName = decodeURIComponent(options.companyName);
 			}else{
@@ -115,6 +127,8 @@
 			console.log("收到岗位描述数据:", this.text);
 			console.log('接收的公司ID:', this.companyId);
 			console.log('接收的公司状态:', this.status);
+		
+			
 
 		},
 		onUnload() {
@@ -137,9 +151,31 @@
 			},
 			goJobContent() {
 				uni.navigateTo({
-					url: `/package/jobIntention/editJob`,
+					url: `/package/jobIntention/editJob?text=${this.text}`,
 				});
 			},
+			
+			/**
+			 * 获取岗位详情
+			 */
+			getInfo(){
+				this.$Request.getT("/app/postPush/selectPostPushDetails",{
+					// userId:uni.getStorageSync('userId'),
+					postPushId:this.postPushId
+				}).then(res => {
+					if(res.code==0){
+						this.jobInfo = res.data
+						this.text=res.data.positionDetails
+						if(!this.jobInfo?.ruleClassifyId){
+							this.isDisabledid=false
+						}else{
+							this.isDisabledid=true
+						}
+					}
+				})
+			},
+			
+			
 			//radio 选中变化时触发
 			onRadioChange(e) {
 				// 获取选中的值
@@ -281,6 +317,7 @@
 
 
 				const data = {
+					postPushId:this.postPushId,
 					type: this.check,
 					isDue: this.selectedValue,
 					positionDetails: this.text,
@@ -313,7 +350,7 @@
 								uni.navigateTo({
 									url: "/pages/my/jobPostingSecond?pid=" + pid + "&status=" + this
 										.status + "&companyName=" + this.companyName + '&companyId=' +
-										this.companyId
+										this.companyId+'&type='+this.update
 								});
 							}, 1500);
 						} else {
@@ -419,6 +456,37 @@
 					.select-txt {}
 				}
 
+/* 禁用状态样式 */
+.check-select.disabled {
+    background-color: #f5f5f5;
+    opacity: 0.6;
+    pointer-events: none; /* 防止点击穿透 */
+}
+
+.check-select.disabled .select-txt {
+    color: #999; /* 文字变灰 */
+}
+
+.check-select.disabled u-icon {
+    color: #ccc; /* 图标变灰 */
+}
+
+/* 禁用状态样式 */
+.check-box.disabled {
+    opacity: 0.6;
+}
+
+.check-box.disabled .check-item {
+    pointer-events: none;
+    background-color: #e9e9e9;
+    color: #999;
+}
+
+.check-box.disabled .check-item.is-check {
+    background-color: #b3d1ff;
+    color: #666;
+}
+
 				.radioseletvi {
 					position: relative;
 				}

+ 47 - 4
pages/my/jobPostingSecond.vue

@@ -47,7 +47,7 @@
 				<!-- 工作地址 -->
 				<view class="check-title-big">工作地址</view>
 				<view class="check-select" @click="goAddAddress">
-					<view class="select-txt">{{ stationName.fullText || "请填写精确的工作地点" }}</view>
+					<view class="select-txt">{{ address || stationName.fullText || "请填写精确的工作地点" }}</view>
 					<u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
 				</view>
 
@@ -85,11 +85,12 @@
 				selectedSalary: "", // 薪资范围
 				welfareTag: "", // 福利待遇
 				positionTag: "", // 职位关键词
-				stationName: "",
+				stationName: [],
 				companyName: "",
 				companyId: "",
 				status: 1,
 				pid: "",
+				address:"",
 				salaryTimes:"",
 
 				// 选择器显示控制
@@ -348,6 +349,10 @@
 
 			if (options.pid) {
 				this.pid = options.pid;
+				if(options.type && options.type=='updata'){
+					this.getInfo()
+				}
+				
 				console.log('接收PID:', this.pid);
 			} else {
 				uni.navigateTo({
@@ -385,6 +390,44 @@
 				this.showLevel = false;
 			},
 
+
+	/**
+			 * 获取岗位详情
+			 */
+			getInfo(){
+				this.$Request.getT("/app/postPush/selectPostPushDetails",{
+					// userId:uni.getStorageSync('userId'),
+					postPushId:this.pid
+				}).then(res => {
+					if(res.code==0){
+						this.selectedExper=res.data.experience
+						this.selectedLevel=res.data.education
+						this.selectedSalary=res.data.salaryRange
+						this.welfareTag=res.data.welfareTag
+						this.positionTag=res.data.positionTag
+						this.address=res.data.address
+						this.stationName.fullText=res.data.address
+						this.stationName.latitude=res.data.lat
+						this.stationName.longitude=res.data.lng
+						this.stationName.province=res.data.province
+						this.stationName.city=res.data.city
+						this.stationName.district=res.data.county
+						this.salaryTimes=res.data.salaryTimes
+						console.log(this.stationName)
+					}else{
+					uni.showToast({
+					    title: '数据有误',
+					    icon: 'none',  // 注意这里需要加引号
+					    duration: 2000, // 可选:设置提示框显示时长
+					    complete() {    // 正确的回调函数写法
+					        uni.navigateBack();
+					    }
+					});
+						
+					}
+				})
+			},
+
 			// 处理薪资范围选择(核心修复)
 			onMoneyConfirm(selectedItems) {
 				// 多列选择器返回数组,取每列选中的label拼接
@@ -457,7 +500,7 @@
 						icon: "none"
 					});
 				}
-				if (!this.stationName.fullText) {
+				if (!this.stationName.fullText && !this.address) {
 					return uni.showToast({
 						title: "请填写工作地址",
 						icon: "none"
@@ -487,7 +530,7 @@
 					salaryRange: this.selectedSalary, //薪资范围
 					welfareTag: this.welfareTag, //福利相关标签
 					positionTag: str, //职位技能
-					address: this.stationName.fullText, //地址
+					address: this.stationName.fullText|| this.address, //地址
 					lat: this.stationName.latitude,
 					lng: this.stationName.longitude,
 					province: this.stationName.province,

+ 62 - 29
pages/my/onlineResume.vue

@@ -115,7 +115,7 @@
 				</view>
 				
 				<view class="experience-list">
-					<view class="experience-item" @longpress="commonDelete(item.workExpId,'workExps')" @click.stop="goToWorkExperience(item.workExpId)" v-for="item in detail.workExps">
+					<view class="experience-item" @click.stop="goToWorkExperience(item.workExpId)" v-for="item in detail.workExps">
 						<view class="company-logo">
 							<image src="../../static/images/index/changsha.svg" class="logo-img" mode="aspectFit"></image>
 						</view>
@@ -137,6 +137,9 @@
 								</view>
 							</view>
 						</view>
+						<view @click.stop="commonDelete(item.workExpId,'workExps')">
+							<image src="../../static/images/index/delete.svg" class="delete-icon" />
+						</view>
 					</view>
 				</view>
 			</view>
@@ -153,7 +156,7 @@
 				</view>
 				
 				<view class="education-list">
-					<view  class="education-item" @longpress="commonDelete(item.eduId,'eduList')" @click.stop="goToEducationExperience(item.eduId)" v-for="(item,index) in detail.eduList">
+					<view  class="education-item" @click.stop="goToEducationExperience(item.eduId)" v-for="(item,index) in detail.eduList">
 						<view class="school-logo">
 							<image src="../../static/images/index/wuhan.svg" class="logo-img" mode="aspectFit"></image>
 						</view>
@@ -164,6 +167,9 @@
 								{{item.detail}}
 							</view>
 						</view>
+						<view @click.stop="commonDelete(item.eduId,'eduList')">
+							<image src="../../static/images/index/delete.svg" class="delete-icon" />
+						</view>
 					</view>
 				</view>
 			</view>
@@ -258,20 +264,39 @@
 					  that.hasEcommerceExperience=res.data.resumeList&&res.data.resumeList.ifExp?true:false
 					  that.detail.degree=that.$queue.getHighestEducation(res.data.eduList)
 					  
-					  res.data.workExps.forEach(function(item){
-					  	item.type=JSON.parse(item.type)
-						item.workExpDetails=[]
-						res.data.workExpList.forEach(function(it){
-							it.skills=JSON.parse(it.skills)
-							it.startTime=it.startTime.slice(0, 7);
-							if(that.$queue.isCurrentMonth(new Date(it.endTime)))
-								it.endTime='至今'
-							else
-								it.endTime=	it.endTime.slice(0, 7);
-							if(it.workExpId==item.workExpId)
-								item.workExpDetails.push(it)
-						})
-					  })
+					  res.data.workExps.forEach(function(item) {
+					    console.log(item.type);
+					    try {
+					      if (typeof item.type === 'string' && (item.type.startsWith('[') || item.type.startsWith('{'))) {
+					        item.type = JSON.parse(item.type);
+					      }
+					    } catch (e) {
+					      console.warn('item.type JSON解析失败:', item.type);
+					    }
+					    item.workExpDetails = [];
+					    res.data.workExpList.forEach(function(it) {
+					      console.log(it.skills);
+					      try {
+					        if (typeof it.skills === 'string' && (it.skills.startsWith('[') || it.skills.startsWith('{'))) {
+					          it.skills = JSON.parse(it.skills);
+					        }
+					      } catch (e) {
+					        console.warn('it.skills JSON解析失败:', it.skills);
+					      }
+					  
+					      it.startTime = it.startTime.slice(0, 7);
+					      if (that.$queue.isCurrentMonth(new Date(it.endTime)))
+					        it.endTime = '至今';
+					      else
+					        it.endTime = it.endTime.slice(0, 7);
+					  
+					      if (it.workExpId == item.workExpId)
+					        item.workExpDetails.push(it);
+					    });
+					  });
+
+					  console.log('最终数据')
+					  console.log(res.data.workExps);
 					  that.detail.workExps=res.data.workExps
 				  } else {
 				    uni.showToast({
@@ -314,8 +339,6 @@
 				})
 			},
 			goToBasicInfo() {
-				console.log('1111111');
-				
 				uni.navigateTo({
 					url: '/package/jobIntention/basicInfo?resumesStatus='+this.detail.resumeList.resumesStatus+'&birthday='+this.detail.resumeList.birthday+'&ifExp='+this.detail.resumeList.ifExp+'&resumesPhone='+this.detail.resumeList.resumesPhone
 				})
@@ -411,11 +434,11 @@
 						return;
 					that.$Request.postJson("/app/"+action, params).then((res) => {
 					  if (res.code == 0) {
-					      // 实际开发中可以在这里添加跳转逻辑
-											var info = that.detail[modules].filter(function (item) {
-											  return item[modules=='workExps'?'workExpId':(modules=='intentions'?'intentionId':'eduId')] != id;
-											});
-											that.detail[modules]=info
+					    // 实际开发中可以在这里添加跳转逻辑
+						var info = that.detail[modules].filter(function (item) {
+						  return item[modules=='workExps'?'workExpId':(modules=='intentions'?'intentionId':'eduId')] != id;
+						});
+						that.detail[modules]=info
 					  } else {
 					    uni.showToast({
 					      title: res.msg,
@@ -437,6 +460,10 @@
 </script>
 
 <style lang="scss" scoped>
+	.delete-icon{
+		width: 40rpx;
+		height: 40rpx;
+	}
 	.online-resume {
 		// background-color: #F2F6FC;
 		min-height: 100vh;
@@ -912,10 +939,13 @@
 						flex-shrink: 0;
                         border-radius: 8px;
                         background: rgba(246, 246, 246, 1);
-						
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
 						.logo-img {
-							width: 100%;
-							height: 100%;
+							width: 50rpx;
+							height: 50rpx;
 							border-radius: 8rpx;
 							
 						}
@@ -1058,10 +1088,13 @@
 						flex-shrink: 0;
 						border-radius: 8px;
 						background: rgba(246, 246, 246, 1);
-						
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
 						.logo-img {
-							width: 100%;
-							height: 100%;
+							width: 54rpx;
+							height: 50rpx;
 							border-radius: 8rpx;
 						}
 					}

+ 17 - 7
pages/my/workExperience.vue

@@ -430,20 +430,30 @@ export default {
 		    uni.showToast({ title: "请至少填写一份履历", icon: "none" });
 		    return;
 		  }
-		  this.formData.resumes.forEach(function(item){
-		  	item.skills=JSON.stringify(item.skills)
-			item.startTime=item.employmentTime[0]?item.employmentTime[0]:'';
-			item.endTime=item.employmentTime[1]?item.employmentTime[1]:'';
-			delete item.employmentTime; 
-			delete item.departmentIndex; 
+		  let postData = this.formData.resumes.map(({ employmentTime, departmentIndex, ...rest }) => {
+		    return {
+		      ...rest,
+		      skills: JSON.stringify(rest.skills),
+		      startTime: employmentTime?.[0] || '',
+		      endTime: employmentTime?.[1] || ''
+		    }
 		  })
+		 //  this.formData.resumes.forEach(function(item){
+			//   console.log(item.skills)
+		 //  	item.skills=JSON.stringify(item.skills);
+			// console.log(item.skills)
+			// item.startTime=item.employmentTime[0]?item.employmentTime[0]:'';
+			// item.endTime=item.employmentTime[1]?item.employmentTime[1]:'';
+			// delete item.employmentTime; 
+			// delete item.departmentIndex; 
+		 //  })
 			let data={
 				workExp:{
 					workExpId:id,
 					companyName:this.formData.companyName,
 					type:JSON.stringify(this.formData.businessTypes),
 				},
-				workExpDetails:this.formData.resumes
+				workExpDetails:postData
 			}
 			if(this.isWork)
 				return

+ 295 - 207
pages/public/forgetPwd.vue

@@ -1,215 +1,303 @@
 <template>
-  <view class="container">
-    <navBar title="忘记密码" color="#000" />
-    <view class="wrapper">
-      <view class="input-content">
-        <view
-          class="cu-form-group"
-          style="border: 2rpx solid whitesmoke; margin-bottom: 20px; border-radius: 30px"
-        >
-          <view class="title text-black">手机号</view>
-          <input
-            type="number"
-            :value="phone"
-            placeholder="请输入手机号"
-            maxlength="11"
-            data-key="phone"
-            @input="inputChange"
-          />
-        </view>
-        <view
-          class="cu-form-group"
-          style="border: 2rpx solid whitesmoke; margin-bottom: 20px; border-radius: 30px"
-        >
-          <text class="title text-black">验证码</text>
-          <input
-            type="number"
-            :value="code"
-            placeholder="请输入验证码"
-            maxlength="6"
-            data-key="code"
-            @input="inputChange"
-            @confirm="toLogin"
-          />
-          <button class="send-msg" @click="sendMsg" :disabled="sending">
-            {{ sendTime }}
-          </button>
-        </view>
-        <view
-          class="cu-form-group"
-          style="border: 2rpx solid whitesmoke; margin-bottom: 20px; border-radius: 30px"
-        >
-          <text class="title text-black">设置密码</text>
-          <input
-            type="password"
-            :value="password"
-            placeholder="请设置新密码"
-            placeholder-class="input-empty"
-            maxlength="20"
-            minlength="6"
-            data-key="password"
-            @input="inputChange"
-            @confirm="toLogin"
-          />
-        </view>
-      </view>
-      <button class="confirm-btn" @click="toLogin">立即找回</button>
-    </view>
-  </view>
+	<view class="container">
+		<navBar title="忘记密码" color="#000" />
+		<view class="wrapper">
+			<view class="input-content">
+				<view class="item-label" v-show="steps == 0">手机号码</view>
+				<view class="cu-form-group" v-show="steps == 0">
+					<input type="number" :value="phone" placeholder="请输入手机号" maxlength="11" data-key="phone"
+						@input="inputChange" />
+				</view>
+
+				<view class="item-label" v-show="steps == 0">验证码</view>
+				<view class="cu-form-group" v-show="steps == 0">
+					<input type="number" :value="code" placeholder="请输入验证码" maxlength="6" data-key="code"
+						@input="inputChange" @confirm="toLogin" />
+					<text class="send-msg" @click="sendMsg" :disabled="sending">
+						{{ sendTime }}
+					</text>
+				</view>
+
+				<view class="item-label">密码</view>
+				<view class="cu-form-group">
+					<input :value="password" :password="showPassword" placeholder="请输入新密码" placeholder-class="input-empty"
+						maxlength="20" minlength="8" data-key="password" @input="inputChange" @confirm="toLogin" />
+					<u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }"
+						name="eye-fill"></u-icon>
+				</view>
+				<view>
+					<u-line-progress class="line-progress" :show-percent="false" :active-color="progressColor"
+						:percent="passwordStrength * 33.3"></u-line-progress>
+					<u-checkbox-group :wrap="true" @change="preventChange">
+						<u-checkbox shape="circle" v-for="(item, index) in list" :key="index" :name="item.name"
+							v-model="item.checked" :readonly="true">
+							{{item.label}}
+						</u-checkbox>
+					</u-checkbox-group>
+				</view>
+			</view>
+			<button class="confirm-btn" @click="toLogin">立即找回</button>
+		</view>
+	</view>
 </template>
 
 <script>
-import navBar from "@/components/nav-bar/index.vue";
-export default {
-  data() {
-    return {
-      code: "",
-      phone: "",
-      password: "",
-      sending: false,
-      sendTime: "获取验证码",
-      count: 60,
-      logining: false,
-    };
-  },
-  components: {
-    navBar,
-  },
-  methods: {
-    sendMsg() {
-      const { phone } = this;
-      if (!phone) {
-        this.$queue.showToast("请输入手机号");
-      } else if (phone.length !== 11) {
-        this.$queue.showToast("请输入正确的手机号");
-      } else {
-        this.$queue.showLoading("正在发送验证码...");
-        this.$Request.getT("/app/Login/sendMsg/" + phone + "/forget").then((res) => {
-          if (res.code === 0) {
-            this.sending = true;
-            this.$queue.showToast("验证码发送成功请注意查收");
-            this.countDown();
-            uni.hideLoading();
-          } else {
-            uni.hideLoading();
-            uni.showModal({
-              showCancel: false,
-              title: "短信发送失败",
-              content: res.msg ? res.msg : "请一分钟后再获取验证码",
-            });
-          }
-        });
-      }
-    },
-    countDown() {
-      const { count } = this;
-      if (count === 1) {
-        this.count = 60;
-        this.sending = false;
-        this.sendTime = "获取验证码";
-      } else {
-        this.count = count - 1;
-        this.sending = true;
-        this.sendTime = count - 1 + "秒后重新获取";
-        setTimeout(this.countDown.bind(this), 1000);
-      }
-    },
-    inputChange(e) {
-      const key = e.currentTarget.dataset.key;
-      this[key] = e.detail.value;
-    },
-    navBack() {
-      uni.navigateBack();
-    },
+	import navBar from "@/components/nav-bar/index.vue";
+	export default {
+		data() {
+			return {
+				code: "",
+				phone: "",
+				password: "",
+				sending: false,
+				sendTime: "获取验证码",
+				count: 60,
+				logining: false,
+				showPassword:true,
+				steps: 0,
+				passwordStrength: 0, // 当前满足的条件数
+				list: [{
+						name: 'length',
+						label: '最少8位数',
+						checked: false,
+					},
+					{
+						name: 'number',
+						label: '至少包含1个数字',
+						checked: false,
+					},
+					{
+						name: 'upper',
+						label: '只要包含一个大写字母',
+						checked: false,
+					}
+				],
+				valueBackup: [],
+			};
+		},
+		components: {
+			navBar,
+		},
+		computed: {
+		    progressColor() {
+				switch (this.passwordStrength) {
+					case 1:
+						return 'rgba(214, 44, 1, 1)';
+					case 2:
+						return 'rgba(250, 174, 22, 1)';
+					case 3:
+						return 'rgba(1, 107, 246, 1)';
+					default:
+						return 'rgba(237, 236, 239, 1)';
+				}
+		    },
+		},
+		methods: {
+			changePassword(){
+				this.showPassword = !this.showPassword;
+			},
+			sendMsg() {
+				const {phone} = this;
+				if (!phone) {
+					this.$queue.showToast("请输入手机号");
+				} else if (phone.length !== 11) {
+					this.$queue.showToast("请输入正确的手机号");
+				} else {
+					this.$queue.showLoading("正在发送验证码...");
+					this.$Request.getT("/app/Login/sendMsg/" + phone + "/forget").then((res) => {
+						if (res.code === 0) {
+							this.sending = true;
+							this.$queue.showToast("验证码发送成功请注意查收");
+							this.countDown();
+							uni.hideLoading();
+						} else {
+							uni.hideLoading();
+							uni.showModal({
+								showCancel: false,
+								title: "短信发送失败",
+								content: res.msg ? res.msg : "请一分钟后再获取验证码",
+							});
+						}
+					});
+				}
+			},
+			countDown() {
+				const {count} = this;
+				if (count === 1) {
+					this.count = 60;
+					this.sending = false;
+					this.sendTime = "获取验证码";
+				} else {
+					this.count = count - 1;
+					this.sending = true;
+					this.sendTime = count - 1 + "秒后重新获取";
+					setTimeout(this.countDown.bind(this), 1000);
+				}
+			},
+			inputChange(e) {
+				const key = e.currentTarget.dataset.key;
+				this[key] = e.detail.value;
+				if(key == 'password'){
+					this.checkPasswordStrength(this.password);
+				}
+			},
+			checkPasswordStrength(pwd) {
+			  let strength = 0;
+			  this.list.forEach(item => {
+			    if (item.name === 'length') {
+			      item.checked = pwd.length >= 8;
+			      if (item.checked) strength++;
+			    } else if (item.name === 'number') {
+			      item.checked = /[0-9]/.test(pwd) && pwd.length >= 8;
+			      if (item.checked) strength++;
+			    } else if (item.name === 'upper') {
+			      item.checked = /[A-Z]/.test(pwd) && pwd.length >= 8;
+			      if (item.checked) strength++;
+			    }
+			  });
+			  this.passwordStrength = strength;
+			  this.valueBackup = this.list.map(i => i.checked);
+			},
+			preventChange() {
+				this.list.forEach((item, index) => {
+					item.checked = this.valueBackup[index];
+				});
+			},
+			navBack() {
+				uni.navigateBack();
+			},
 
-    navTo(url) {
-      uni.navigateTo({
-        url,
-      });
-    },
-    toLogin() {
-      const { phone, password, code } = this;
-      if (!phone) {
-        this.$queue.showToast("请输入手机号");
-      } else if (!password) {
-        this.$queue.showToast("请设置密码");
-      } else if (password.length < 6) {
-        this.$queue.showToast("密码位数必须大于六位");
-      } else {
-        this.logining = true;
-        this.$queue.showLoading("正在修改密码中...");
-        this.$Request
-          .post("/app/Login/forgetPwd", {
-            pwd: password,
-            phone: phone,
-            msg: code,
-          })
-          .then((res) => {
-            uni.hideLoading();
-            if (res.code === 0) {
-              uni.navigateTo({
-                url: "/pages/public/loginphone",
-              });
-            } else {
-              uni.showModal({
-                showCancel: false,
-                title: "密码找回失败",
-                content: res.msg,
-              });
-            }
-          });
-      }
-    },
-  },
-};
+			navTo(url) {
+				uni.navigateTo({
+					url,
+				});
+			},
+			toLogin() {
+				const {phone,password,code} = this;
+				if (!phone) {
+					this.$queue.showToast("请输入手机号");
+				} else if (!code) {
+					this.$queue.showToast("请输入验证码");
+				}else if (!password) {
+					this.$queue.showToast("请设置密码");
+				} else if (password.length < 8) {
+					this.$queue.showToast("密码位数必须大于八位");
+				} else if (!/(?=.*[A-Z])(?=.*\d)/.test(password)) {
+					this.$queue.showToast("密码必须包含至少一个大写字母和一个数字");
+				} else {
+					this.logining = true;
+					this.$queue.showLoading("正在修改密码中...");
+					this.$Request
+						.post("/app/Login/forgetPwd", {
+							pwd: password,
+							phone: phone,
+							msg: code,
+						})
+						.then((res) => {
+							uni.hideLoading();
+							if (res.code === 0) {
+								uni.navigateTo({
+									url: "/pages/public/loginphone?type=1",
+								});
+							} else {
+								uni.showModal({
+									showCancel: false,
+									title: "密码找回失败",
+									content: res.msg,
+								});
+							}
+						});
+				}
+			},
+		},
+	};
 </script>
 
 <style lang="scss">
-page {
-  background: #ffffff !important;
-}
-
-.send-msg {
-  border-radius: 30px;
-  color: white;
-  height: 30px;
-  font-size: 14px;
-  line-height: 30px;
-  background: #016bf6;
-}
-
-.container {
-  padding-top: 32rpx;
-  position: relative;
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
-  background: #ffffff;
-}
-
-.wrapper {
-  position: relative;
-  z-index: 90;
-  background: #ffffff;
-  padding-bottom: 20px;
-}
-
-.input-content {
-  padding: 40rpx;
-}
-
-.confirm-btn {
-  width: 600rpx;
-  height: 80rpx;
-  line-height: 80rpx;
-  border-radius: 60rpx;
-  margin-top: 32rpx;
-  background: #016bf6;
-  color: #fff;
-  font-size: 32rpx;
-
-  &:after {
-    border-radius: 60px;
-  }
-}
-</style>
+	page {
+		background: #ffffff !important;
+	}
+	::v-deep .input-placeholder,.uni-input-placeholder {
+		color: #9ea1a8;
+		font-family: DM Sans;
+		font-size: 28rpx;
+		font-weight: 400;
+		text-align: left;
+	}
+	::v-deep .u-checkbox__label{
+		margin-left: 20rpx;
+		color: rgba(76, 74, 83, 1);
+		font-family: Roboto;
+		font-size: 32rpx;
+		font-weight: 400;
+	}
+	.container {
+		padding-top: 32rpx;
+		position: relative;
+		width: 100%;
+		height: 100%;
+		overflow: hidden;
+		background: #ffffff;
+	}
+	.wrapper {
+		position: relative;
+		z-index: 90;
+		background: #ffffff;
+		padding-bottom: 20px;
+	}
+	.input-content {
+		padding: 32rpx;
+		box-sizing: border-box;
+	}
+	.item-label {
+		color: rgba(18, 26, 44, 1);
+		font-family: Roboto;
+		font-size: 32rpx;
+		font-weight: 400;
+		line-height: 51.2rpx;
+		letter-spacing: 0px;
+		text-align: left;
+		padding-bottom: 8rpx;
+		margin-top: 32rpx;
+	}
+	.cu-form-group {
+		position: relative;
+		box-sizing: border-box;
+		border: 2rpx solid rgba(158, 161, 168, 1);
+		border-radius: 24rpx;
+		background: rgba(255, 255, 255, 1);
+		padding: 8rpx 24rpx !important;
+		height: 96rpx;
+	}
+	.send-msg {
+		color: rgba(1, 107, 246, 1);
+		font-size: 28rpx;
+		font-weight: 400;
+	}
+	.eye{
+		position: absolute;
+		top: 50%;
+		right: 24rpx;
+		font-size: 48rpx;
+		transform: translateY(-50%);
+	}
+	.eye-active{
+		color: #016bf6;
+	}
+	.line-progress{
+		margin: 32rpx 0;
+	}
+	.confirm-btn {
+		height: 80rpx;
+		line-height: 80rpx;
+		border-radius: 60rpx;
+		margin: 0 32rpx;
+		background: #016bf6;
+		color: #fff;
+		font-size: 32rpx;
+		font-weight: 400;
+		&:after {
+			border-radius: 60px;
+		}
+	}
+</style>

+ 87 - 18
pages/public/login.vue

@@ -59,14 +59,31 @@
       <view class="logo-box">
         <image src="@/static/images/jobApplicant/logo.svg" mode="scaleToFill" />
       </view>
-      <!-- <button class="confirm-btn" style="margin-top: 100rpx" @click="register">
+     <!-- <button class="confirm-btn" style="margin-top: 100rpx" @click="register">
         手机号登录
       </button> -->
-      <view class="login-btn wechat" @click="register"
+	   <!-- #ifdef APP -->
+	  <view class="login-btn wechat" :class="{ disabled: !checked }"
+		:disabled="checked" @click="login"
+	    ><image
+	      src="@/static/images/jobApplicant/wx.svg"
+	      mode="scaleToFill"
+	    />微信登录</view
+	  >
+	  <!-- #endif -->
+	  <view class="login-btn password" :class="{ disabled: !checked }"
+		:disabled="checked" @click="register(1)"
+	    ><image
+	      src="@/static/images/jobApplicant/account.svg"
+	      mode="scaleToFill"
+	    />账号密码登录</view
+	  >
+      <view class="login-btn wechat" :class="{ disabled: !checked }"
+		:disabled="checked" @click="register(2)"
         ><image
           src="@/static/images/jobApplicant/phone.svg"
           mode="scaleToFill"
-        />手机账号密码登录</view
+        />手机验证码登录</view
       >
       <view
         class=""
@@ -526,18 +543,63 @@ export default {
                   url: "/pages/public/selectIdentity/selectIdentity",
                 });
               } else {
-                uni.navigateBack();
+                if (res.user.userType == 2) {
+                  // 这里判断一下看是否是第一次登录如果是就跳到引导页,如果不是就正常跳
+                  let firstLogin = uni.getStorageSync("firstLogin") || false;
+                  if (!firstLogin) {
+                    uni.navigateTo({
+                      url: "/pages/my/jobApplicant/guidePage",
+                    });
+                  } else {
+                    uni.reLaunch({
+                      url: "/pages/my/index",
+                    });
+                  }
+                } else {
+                  // 这里判断一下看是否是第一次登录如果是就跳到引导页,如果不是就正常跳
+                  let firstLogin = uni.getStorageSync("firstLogin") || false;
+                  if (!firstLogin) {
+                    uni.navigateTo({
+                      url: "/pages/my/jobApplicant/guidePage",
+                    });
+                  } else {
+                    uni.reLaunch({
+                      url: "/pages/my/index",
+                    });
+                  }
+                }
               }
             } else {
-              uni.navigateBack();
+              if (res.user.userType == 2) {
+                // 这里判断一下看是否是第一次登录如果是就跳到引导页,如果不是就正常跳
+                let firstLogin = uni.getStorageSync("firstLogin") || false;
+                if (!firstLogin) {
+                  uni.navigateTo({
+                    url: "/pages/my/jobApplicant/guidePage",
+                  });
+                } else {
+                  uni.reLaunch({
+                    url: "/pages/my/index",
+                  });
+                }
+              } else {
+                // 这里判断一下看是否是第一次登录如果是就跳到引导页,如果不是就正常跳
+                let firstLogin = uni.getStorageSync("firstLogin") || false;
+                if (!firstLogin) {
+                  uni.navigateTo({
+                    url: "/pages/my/jobApplicant/guidePage",
+                  });
+                } else {
+                  uni.reLaunch({
+                    url: "/pages/my/index",
+                  });
+                }
+              }
             }
           });
         } else {
-          uni.showModal({
-            showCancel: false,
-            title: "登录失败",
-            content: res.msg,
-          });
+          uni.hideLoading();
+          this.$queue.showToast(res.msg);
         }
       });
     },
@@ -547,7 +609,7 @@ export default {
         url: "/pages/public/pwd",
       });
     },
-    register() {
+    register(type) {
       if (!this.checked) {
         uni.showToast({
           title: "请阅读并同意《隐私协议》和《用户服务协议》",
@@ -555,7 +617,7 @@ export default {
         });
       } else {
         uni.navigateTo({
-          url: "/pages/public/loginphone",
+          url: `/pages/public/loginphone?type=${type}`,
         });
       }
     },
@@ -711,18 +773,19 @@ page {
 // 	display: flex;
 // }
 .login-btn {
-  padding: 20rpx;
+  padding: 0 32rpx;
   box-sizing: border-box;
-  border-radius: 100rpx;
-  color: rgba(255, 255, 255, 1);
+  border-radius: 252rpx;
+  color: rgba(255, 255, 255, 1) !important;
   font-family: DM Sans;
   font-size: 32rpx;
   font-weight: 400;
-  line-height: 44rpx;
+  line-height: 90rpx;
   display: flex;
   justify-content: center;
   align-items: center;
   margin-bottom: 16rpx;
+  width: 100%;
   image {
     width: 28rpx;
     height: 28rpx;
@@ -730,14 +793,20 @@ page {
   }
 }
 .wechat {
-  background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+  background: linear-gradient(90.00deg, rgba(13, 39, 247, 1),rgba(19, 193, 234, 1) 100%);
 }
 .password {
   background: rgba(1, 107, 246, 1);
 }
-.phone {
+.disabled{
   background: #99c4fa;
 }
+uni-button[disabled]:not([type]){
+	background-color: rgba(1, 107, 246, 1);
+}
+uni-button:after{
+	border:none;
+}
 page {
   background: #fff;
 }

+ 121 - 34
pages/public/loginphone.vue

@@ -14,29 +14,44 @@
             <input
               type="number"
               :value="phone"
-              placeholder="请输入手机号"
+              placeholder="请输入登录的手机号"
               maxlength="11"
               data-key="phone"
               @input="inputChange"
             />
           </view>
         </view>
-        <view class="item-label">登录密码</view>
-        <view class="cu-form-group">
+        <view class="item-label">{{type == 1?'登录密码':'验证码'}}</view>
+        <view class="cu-form-group" v-if="type == 1">
           <view class="input-box">
             <input
-              type="password"
               placeholder="请输入密码"
               maxlength="20"
-              :value="password"
+			  :value="password"
+              :password="showPassword"
               data-key="password"
               @input="inputChange"
               @confirm="toLogin"
             />
+			<u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }" name="eye-fill"></u-icon>
           </view>
         </view>
+		<view class="cu-form-group" v-if="type == 2">
+		  <input
+		    type="number"
+		    :value="code"
+		    placeholder="请输入验证码"
+		    maxlength="6"
+		    data-key="code"
+		    @input="inputChange"
+		    @confirm="toLogin"
+		  />
+		  <text class="send-msg" @click="sendMsg" :disabled="sending">
+		    {{ sendTime }}
+		  </text>
+		</view>
 
-        <view class="forgot-password">
+        <view class="forgot-password" v-if="type ==1">
           <view @click="forget">忘记密码</view>
         </view>
         <button class="confirm-btn" @click="toLogin">登录</button>
@@ -56,20 +71,26 @@ import navBar from "@/components/nav-bar/index.vue";
 export default {
   data() {
     return {
+		code: "",
       phone: "",
       password: "",
+	  showPassword:true,
       banners: [],
       invitation: "",
       loginName: "",
       sending: false,
       sendTime: "获取验证码",
       count: 60,
+	  type:0
     };
   },
   components: {
     navBar,
   },
-  onLoad() {},
+  onLoad(options) {
+	  console.log(options);
+	  this.type = options.type;
+  },
   methods: {
     forget() {
       uni.navigateTo({
@@ -88,25 +109,85 @@ export default {
     navBack() {
       uni.navigateBack();
     },
-
+	changePassword(){
+		this.showPassword = !this.showPassword;
+	},
+	sendMsg() {
+	  const { phone } = this;
+	  if (!phone) {
+	    this.$queue.showToast("请输入手机号");
+	  } else if (phone.length !== 11) {
+	    this.$queue.showToast("请输入正确的手机号");
+	  } else {
+	    this.$queue.showLoading("正在发送验证码...");
+	    this.$Request.getT("/app/Login/sendMsg/" + phone + "/forget").then((res) => {
+	      if (res.code === 0) {
+	        this.sending = true;
+	        this.$queue.showToast("验证码发送成功请注意查收");
+	        this.countDown();
+	        uni.hideLoading();
+	      } else {
+	        uni.hideLoading();
+	        uni.showModal({
+	          showCancel: false,
+	          title: "短信发送失败",
+	          content: res.msg ? res.msg : "请一分钟后再获取验证码",
+	        });
+	      }
+	    });
+	  }
+	},
+	countDown() {
+	  const { count } = this;
+	  if (count === 1) {
+	    this.count = 60;
+	    this.sending = false;
+	    this.sendTime = "获取验证码";
+	  } else {
+	    this.count = count - 1;
+	    this.sending = true;
+	    this.sendTime = count - 1 + "秒后重新获取";
+	    setTimeout(this.countDown.bind(this), 1000);
+	  }
+	},
     toLogin() {
       this.$queue.loginClear();
       let openid = this.$queue.getData("openid");
-      const { phone, password } = this;
-      if (!phone) {
-        this.$queue.showToast("请输入手机号");
-      } else if (phone.length != 11) {
-        this.$queue.showToast("请输入正确的手机号");
-      } else if (!password) {
-        this.$queue.showToast("请输入密码");
-      } else {
+      const { phone, password,code } = this;
+	  if(!phone && phone.length != 11){
+		  this.$queue.showToast("请输入正确的手机号");
+		  return;
+	  }
+	  if(!password && this.type == 1){
+		  this.$queue.showToast("请输入密码");
+		  return;
+	  }
+	  if(!code && this.type == 2){
+	  		this.$queue.showToast("请输入验证码");
+	  		return;
+	  }
         this.$queue.showLoading("正在登录中...");
+		let params = {
+			phone: phone,
+			openId: this.$queue.getData("openid"),
+		}
+		let url = ''
+		if(this.type == 1){
+			params = {
+				...params,
+				password: password,
+			}
+			url = '/app/Login/loginApp'
+		}
+		if(this.type == 2){
+			params = {
+				...params,
+				msg: code
+			}
+			url = '/app/Login/registerCode'
+		}
         this.$Request
-          .post("/app/Login/loginApp", {
-            password: password,
-            phone: phone,
-            openId: this.$queue.getData("openid"),
-          })
+          .post(url,params)
           .then((res) => {
             if (res.code == 0) {
               this.$queue.setData("userId", res.user.userId);
@@ -128,7 +209,7 @@ export default {
                       url: "/pages/public/selectIdentity/selectIdentity",
                     });
                   } else {
-                    if (res.user.userType == 2) {
+                    if (res.user.userType == 2) {//企业
                       // 原有的
                       // uni.reLaunch({
                       //   url: "/pages/my/index",
@@ -195,7 +276,6 @@ export default {
                   }
                 }
               });
-
               // uni.switchTab({
               // 	url: '/pages/my/index'
               // })
@@ -203,8 +283,7 @@ export default {
               uni.hideLoading();
               this.$queue.showToast(res.msg);
             }
-          });
-      }
+        });
     },
     getIsVip() {
       this.$Request.get("/app/UserVip/isUserVip").then((res) => {
@@ -248,27 +327,36 @@ page {
   line-height: 51.2rpx;
   letter-spacing: 0px;
   text-align: left;
-  padding-bottom: 6rpx;
+  padding-bottom: 8rpx;
   margin-top: 32rpx;
 }
 .cu-form-group {
+	position: relative;
   box-sizing: border-box;
   border: 2rpx solid rgba(158, 161, 168, 1);
   border-radius: 24rpx;
   background: rgba(255, 255, 255, 1);
   padding: 8rpx 24rpx !important;
+  height: 96rpx;
+}
+.eye{
+	position: absolute;
+	top: 50%;
+	right: 24rpx;
+	font-size: 48rpx;
+	transform: translateY(-50%);
+}
+.eye-active{
+	color: #016bf6;
 }
 .bg {
   background-color: #ffffff;
 }
 
 .send-msg {
-  border-radius: 30px;
-  color: black;
-  background: white;
-  height: 30px;
-  font-size: 14px;
-  line-height: 30px;
+  color: rgba(1, 107, 246, 1);
+  font-size: 28rpx;
+  font-weight: 400;
 }
 
 .container {
@@ -294,8 +382,7 @@ page {
 }
 
 .confirm-btn {
-  width: 100%;
-  border-radius: 100rpx;
+   border-radius: 60rpx;
   margin-top: 32rpx;
   background: #016bf6;
   color: rgba(255, 255, 255, 1);

+ 214 - 97
pages/public/register.vue

@@ -1,9 +1,13 @@
 <template>
   <view class="container">
-    <nav-bar title="注册" color="#000"></nav-bar>
+    <nav-bar :title="steps == 0?'注册1/2':'创建账号密码2/2'" color="#000"></nav-bar>
+	<view class="line-box">
+		<view class="line line-bg" @click="steps = 0"></view>
+		<view class="line" :class="[ steps == 1?'line-bg':'' ]" @click="steps = 1"></view>
+	</view>
     <view class="wrapper">
       <view class="input-content">
-        <view class="item-label">用户名</view>
+        <!-- <view class="item-label">用户名</view>
         <view class="cu-form-group">
           <input
             :value="userName"
@@ -11,20 +15,20 @@
             data-key="userName"
             @input="inputChange"
           />
-        </view>
-        <view class="item-label">手机号</view>
-        <view class="cu-form-group">
+        </view> -->
+        <view class="item-label" v-show="steps == 0">手机号</view>
+        <view class="cu-form-group" v-show="steps == 0">
           <input
             type="number"
             :value="phone"
-            placeholder="请输入手机号"
+            placeholder="请输入登录的手机号"
             maxlength="11"
             data-key="phone"
             @input="inputChange"
           />
         </view>
-        <view class="item-label">验证码</view>
-        <view class="cu-form-group padding-right-xs">
+        <view class="item-label" v-show="steps == 0">验证码</view>
+        <view class="cu-form-group padding-right-xs" v-show="steps == 0">
           <input
             type="number"
             :value="code"
@@ -34,26 +38,40 @@
             @input="inputChange"
             @confirm="toLogin"
           />
-          <button class="send-msg" @click="sendMsg" :disabled="sending">
+          <text class="send-msg" @click="sendMsg" :disabled="sending">
             {{ sendTime }}
-          </button>
+          </text>
         </view>
 
-        <view class="item-label">设置密码</view>
-        <view class="cu-form-group">
+        <view class="item-label" v-show="steps == 1">密码</view>
+        <view class="cu-form-group" v-show="steps == 1">
           <input
-            type="password"
             :value="password"
-            placeholder="请设置密码"
+            :password="showPassword"
+            placeholder="输入密码"
             placeholder-class="input-empty"
             maxlength="20"
-            minlength="6"
+            minlength="8"
             data-key="password"
             @input="inputChange"
             @confirm="toLogin"
           />
+		  <u-icon @click="changePassword" class="eye" :class="{ 'eye-active': !showPassword }" name="eye-fill"></u-icon>
         </view>
-        <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '是'">
+		<view v-show="steps == 1">
+			<u-line-progress class="line-progress" :show-percent="false" :active-color="progressColor" :percent="passwordStrength * 33.3"></u-line-progress>
+			<u-checkbox-group :wrap="true" @change="preventChange">
+				<u-checkbox shape="circle"
+					v-for="(item, index) in list" :key="index" 
+					:name="item.name"
+					v-model="item.checked"
+					:readonly="true"
+				>
+					{{item.label}}
+				</u-checkbox>
+			</u-checkbox-group>
+		</view>
+        <!-- <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '是'">
           <view class="item-label-code">邀请码</view>
           <input
             type=""
@@ -64,8 +82,8 @@
             @input="inputChange"
             @confirm="toLogin"
           />
-        </view>
-        <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '否'">
+        </view> -->
+        <!-- <view class="cu-form-group" style="margin-top: 32rpx" v-if="required == '否'">
           <view class="item-label-code">邀请码</view>
           <input
             type=""
@@ -76,23 +94,23 @@
             @input="inputChange"
             @confirm="toLogin"
           />
-        </view>
+        </view> -->
       </view>
-      <button class="confirm-btn" @click="toLogin">立即注册</button>
-      <view class="footer">
+      <button class="confirm-btn" @click="nextStep" v-if="steps == 0">下一步</button>
+	  <button class="confirm-btn" @click="toLogin" v-if="steps == 1">继续</button>
+      <!-- <view class="footer">
         <text
           @tap="isShowAgree"
           class="cuIcon"
           :class="showAgree ? 'cuIcon-radiobox' : 'cuIcon-round'"
           >同意</text
         >
-        <!-- 协议地址 -->
         <navigator url="/my/setting/mimi" open-type="navigate">《隐私政策》</navigator>
         <navigator url="/my/setting/xieyi" open-type="navigate"
           >《用户服务协议》</navigator
         >
-      </view>
+      </view> -->
     </view>
   </view>
 </template>
@@ -107,6 +125,7 @@ export default {
       code: "",
       phone: "",
       password: "",
+	  showPassword:true,
       required: "否",
       sending: false,
       sendTime: "获取验证码",
@@ -115,7 +134,15 @@ export default {
       state: "",
       invitation: "",
       platform: "",
-    };
+	  steps:0,
+	  passwordStrength: 0, // 当前满足的条件数
+	  list: [
+		{ name: 'length', label: '最少8位数',checked: false, },
+		{ name: 'number', label: '至少包含1个数字',checked: false, },
+		{ name: 'upper', label: '只要包含一个大写字母',checked: false, }
+	  ],
+	  valueBackup: [],
+	};
   },
   components: {
     navBar,
@@ -132,6 +159,20 @@ export default {
     this.platform = "H5";
     // #endif
   },
+  computed: {
+      progressColor() {
+        switch (this.passwordStrength) {
+          case 1:
+            return 'rgba(214, 44, 1, 1)';
+          case 2:
+            return 'rgba(250, 174, 22, 1)';
+          case 3:
+            return 'rgba(1, 107, 246, 1)';
+          default:
+            return 'rgba(237, 236, 239, 1)';
+        }
+      },
+    },
   methods: {
     showMa() {
       //查询官方邀请码
@@ -202,7 +243,32 @@ export default {
     inputChange(e) {
       const key = e.currentTarget.dataset.key;
       this[key] = e.detail.value;
+	  if(key == 'password'){
+		this.checkPasswordStrength(this.password);
+	  }
     },
+	checkPasswordStrength(pwd) {
+	  let strength = 0;
+	  this.list.forEach(item => {
+	    if (item.name === 'length') {
+	      item.checked = pwd.length >= 8;
+	      if (item.checked) strength++;
+	    } else if (item.name === 'number') {
+	      item.checked = /[0-9]/.test(pwd) && pwd.length >= 8;
+	      if (item.checked) strength++;
+	    } else if (item.name === 'upper') {
+	      item.checked = /[A-Z]/.test(pwd) && pwd.length >= 8;
+	      if (item.checked) strength++;
+	    }
+	  });
+	  this.passwordStrength = strength;
+	  this.valueBackup = this.list.map(i => i.checked);
+	},
+	preventChange() {
+		this.list.forEach((item, index) => {
+			item.checked = this.valueBackup[index];
+		});
+	},
     navBack() {
       uni.navigateBack();
     },
@@ -212,33 +278,44 @@ export default {
         url,
       });
     },
+	// 下一步
+	nextStep(){
+		const { phone,code } = this;
+		if (!phone) {
+		  this.$queue.showToast("请输入手机号");
+		} else if (!code) {
+		  this.$queue.showToast("请输入验证码");
+		}else{
+			this.steps = 1;
+		}
+	},
+	changePassword(){
+		this.showPassword = !this.showPassword;
+	},
+	// 注册
     toLogin() {
       const { userName, phone, password, code, showAgree, invitation } = this;
-      if (!userName) {
-        this.$queue.showToast("请输入用户名");
-      } else if (!phone) {
+      if (!phone) {
         this.$queue.showToast("请输入手机号");
       } else if (!code) {
         this.$queue.showToast("请输入验证码");
       } else if (!password) {
         this.$queue.showToast("请设置密码");
-      } else if (password.length < 6) {
-        this.$queue.showToast("密码位数必须大于六位");
-      } else if (!showAgree) {
-        this.$queue.showToast("请先同意《协议》");
-      } else if (!invitation && this.required == "是") {
-        this.$queue.showToast("请填写邀请码");
-      } else if (!invitation && this.required == "否") {
-        this.invitation = "";
+      } else if (password.length < 8) {
+        this.$queue.showToast("密码位数必须大于八位");
+      } else if (!/(?=.*[A-Z])(?=.*\d)/.test(password)) {
+		this.$queue.showToast("密码必须包含至少一个大写字母和一个数字");
+	  }else {
+        // this.invitation = "";
         this.logining = true;
         this.$queue.showLoading("注册中...");
         this.$Request
           .post(`/app/Login/registApp`, {
-            userName: userName,
+            userName: phone,
             password: password,
             phone: phone,
             openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
-            invitation: this.invitation,
+            // invitation: this.invitation,
             platform: this.platform,
             msg: code,
           })
@@ -277,46 +354,47 @@ export default {
               });
             }
           });
-      } else {
-        this.logining = true;
-        this.$queue.showLoading("注册中...");
-        this.$Request
-          .post(`/app/Login/registApp?msg=${code}`, {
-            userName: userName,
-            password: password,
-            phone: phone,
-            openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
-            invitation: this.invitation,
-            platform: this.platform,
-          })
-          .then((res) => {
-            if (res.code === 0) {
-              this.$queue.setData("token", res.token);
-              this.$queue.setData("userId", res.user.userId);
-              this.$queue.setData("userName", res.user.userName);
-              this.$queue.setData("phone", res.user.phone);
-              this.$queue.setData(
-                "avatar",
-                res.user.avatar ? res.user.avatar : "../../static/logo.png"
-              );
-              this.$queue.setData("invitationCode", res.user.invitationCode);
-              this.$queue.setData("inviterCode", res.user.inviterCode);
-              this.getUserInfo();
-              setTimeout(function () {
-                uni.switchTab({
-                  url: "/pages/index/index",
-                });
-              }, 1000);
-            } else {
-              uni.showModal({
-                showCancel: false,
-                title: "注册失败",
-                content: res.msg,
-              });
-            }
-            uni.hideLoading();
-          });
-      }
+      } 
+	  // else {
+   //      this.logining = true;
+   //      this.$queue.showLoading("注册中...");
+   //      this.$Request
+   //        .post(`/app/Login/registApp?msg=${code}`, {
+   //          userName: userName,
+   //          password: password,
+   //          phone: phone,
+   //          openId: this.$queue.getData("openid") ? this.$queue.getData("openid") : "",
+   //          invitation: this.invitation,
+   //          platform: this.platform,
+   //        })
+   //        .then((res) => {
+   //          if (res.code === 0) {
+   //            this.$queue.setData("token", res.token);
+   //            this.$queue.setData("userId", res.user.userId);
+   //            this.$queue.setData("userName", res.user.userName);
+   //            this.$queue.setData("phone", res.user.phone);
+   //            this.$queue.setData(
+   //              "avatar",
+   //              res.user.avatar ? res.user.avatar : "../../static/logo.png"
+   //            );
+   //            this.$queue.setData("invitationCode", res.user.invitationCode);
+   //            this.$queue.setData("inviterCode", res.user.inviterCode);
+   //            this.getUserInfo();
+   //            setTimeout(function () {
+   //              uni.switchTab({
+   //                url: "/pages/index/index",
+   //              });
+   //            }, 1000);
+   //          } else {
+   //            uni.showModal({
+   //              showCancel: false,
+   //              title: "注册失败",
+   //              content: res.msg,
+   //            });
+   //          }
+   //          uni.hideLoading();
+   //        });
+   //    }
     },
     //获取用户信息
     getUserInfo() {
@@ -330,8 +408,8 @@ export default {
           this.$queue.setData("userId", res.data.userId);
           this.$queue.setData("userName", res.data.userName);
           this.$queue.setData("phone", res.data.phone);
-          this.$queue.setData("invitationCode", res.user.invitationCode);
-          this.$queue.setData("inviterCode", res.user.inviterCode);
+          this.$queue.setData("invitationCode", res.data.invitationCode);
+          this.$queue.setData("inviterCode", res.data.inviterCode);
 
           this.userName = res.data.userName;
           this.invitationCode = res.data.invitationCode;
@@ -356,6 +434,13 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .input-placeholder,.uni-input-placeholder {
+  color: #9ea1a8;
+  font-family: DM Sans;
+  font-size: 28rpx;
+  font-weight: 400;
+  text-align: left;
+}
 page {
   height: 100%;
   background: #ffffff !important;
@@ -368,41 +453,75 @@ page {
   line-height: 51.2rpx;
   letter-spacing: 0px;
   text-align: left;
-  padding-bottom: 6rpx;
+  padding-bottom: 8rpx;
   margin-top: 32rpx;
 }
 .cu-form-group {
+	position: relative;
   box-sizing: border-box;
   border: 2rpx solid rgba(158, 161, 168, 1);
   border-radius: 24rpx;
   background: rgba(255, 255, 255, 1);
   padding: 8rpx 24rpx !important;
+  height: 96rpx;
+}
+.eye{
+	position: absolute;
+	top: 50%;
+	right: 24rpx;
+	font-size: 48rpx;
+	transform: translateY(-50%);
+}
+.eye-active{
+	color: #016bf6;
+}
+.line-progress{
+	margin: 32rpx 0;
 }
 .footer {
-  padding-left: 140upx;
-  margin-top: 32upx;
+  padding-left: 140rpx;
+  margin-top: 32rpx;
   text-align: center;
   display: flex;
   // color: #FFFFFF;
 }
 
 .send-msg {
-  border-radius: 30px;
-  color: white;
-  height: 30px;
-  font-size: 10px;
-  line-height: 30px;
-  background: #016bf6;
+  color: rgba(1, 107, 246, 1);
+  font-size: 28rpx;
+  font-weight: 400;
 }
 
 .container {
-  padding-top: 32upx;
+  padding-top: 32rpx;
   position: relative;
   width: 100%;
   height: 100%;
   overflow: hidden;
   background: #ffffff !important;
 }
+.line-box{
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	gap: 10rpx;
+}
+.line{
+	width: 20px;
+	height: 4px;
+	border-radius: 20px;
+	background-color: rgba(153, 196, 250, 1);
+}
+.line-bg{
+	background-color: #016BF6;
+}
+::v-deep .u-checkbox__label{
+	margin-left: 20rpx;
+	color: rgba(76, 74, 83, 1);
+	font-family: Roboto;
+	font-size: 32rpx;
+	font-weight: 400;
+}
 
 .wrapper {
   position: relative;
@@ -412,21 +531,19 @@ page {
 }
 
 .input-content {
-  //   padding: 32upx 80upx;
   padding: 32rpx;
   box-sizing: border-box;
 }
 
 .confirm-btn {
-  width: 600upx;
-  height: 80upx;
-  line-height: 80upx;
-  border-radius: 60upx;
-  margin-top: 32upx;
+	margin: 0 32rpx;
+  height: 80rpx;
+  line-height: 80rpx;
+  border-radius: 60rpx;
   background: #016bf6;
-
   color: #fff;
-  font-size: 32upx;
+  font-size: 32rpx;
+  font-weight: 400;
 
   &:after {
     border-radius: 60px;

+ 20 - 9
pages/talentSearch/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="talent-search-page">
+			<!-- <image class="top-bg" src="/static/images/index/index-bg1.png" mode="widthFix" /> -->
 		<view class="topbg-sticky">
-			<image class="top-bg" src="/static/images/index/index-bg1.png" mode="widthFix" />
 			<!-- <view class="top-bg"></view> -->
 			<!-- 搜索框 -->
 			<view class="search flex align-center justify-center"
@@ -52,7 +52,8 @@
 		</view>
 
 		<!-- 人才列表 -->
-		<view class="talent-list" :style="{ marginTop: talentListMarginTop }">
+		<!-- <view class="talent-list" :style="{ marginTop: talentListMarginTop }"> -->
+			<view class="talent-list">
 			<view class="talent-card" v-for="(talent, index) in talentList" :key="index"
 				@click="goToResumeDetail(talent)">
 				<view class="talent-content">
@@ -202,7 +203,7 @@
 			talentListMarginTop() {
 				// 搜索框高度 + 筛选栏高度(紧凑布局)
 				// 筛选栏实际高度约 46px(按钮18px + 内边距16px + 外边距12px)
-				return (4 + this.statusBarHeight) + 'px';
+				return (1+ this.statusBarHeight) + 'px';
 				//return '-69px';
 			}
 		},
@@ -593,7 +594,16 @@
 		background-color: #f5f5f5;
 	}
 
-	.topbg-sticky {}
+	.topbg-sticky {
+		display: flex;
+		    flex-direction: column;
+		    justify-content: space-around;
+			background-image: url('/static/images/index/index-bg1.png');
+			    background-repeat: no-repeat;
+			    background-size: cover;
+				    background-position-y: -38rpx;
+					// border: #007AFF 1px solid;
+	}
 
 	.top-bg {
 
@@ -650,9 +660,9 @@
 		//margin-top: -60rpx;
 		background-color: #fff;
 		height: 82rpx;
-		position: relative;
-		z-index: 22;
-		margin: -80rpx auto 0rpx auto;
+		margin: 2px auto;
+
+		
 		border-radius: 8px;
 		padding: 24rpx;
 
@@ -740,8 +750,8 @@
 
 	// 搜索框
 	.search {
-		position: fixed;
-		top: 0;
+		// position: fixed;
+		// top: 0;
 		width: 100%;
 		padding: 0rpx 20rpx 20rpx 20rpx;
 		// padding-top 已改为动态计算,在模板中通过 :style 设置
@@ -960,6 +970,7 @@
 		padding: 20rpx;
 		z-index: 100;
 		position: relative;
+		//border:1px solid red
 	}
 
 	.talent-card {

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 2
static/images/index/changsha.svg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
static/images/index/delete.svg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 31
static/images/index/wuhan.svg


+ 3 - 0
static/images/jobApplicant/account.svg

@@ -0,0 +1,3 @@
+<svg viewBox="0 0 13.1182 13.1179" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="13.118164" height="13.117920" fill="none" customFrame="#000000">
+	<path id="矢量 32" d="M6.559 0C2.933 0 0 2.94 0 6.559C0 10.178 2.933 13.118 6.559 13.118C10.178 13.118 13.118 10.185 13.118 6.559C13.111 2.94 10.178 1.56462e-07 6.559 1.56462e-07L6.559 0ZM9.1 8.89C9.1 9.114 8.911 9.303 8.673 9.303L4.438 9.303C4.207 9.303 4.018 9.121 4.018 8.89L4.018 6.153C4.018 5.929 4.207 5.74 4.438 5.74L4.529 5.74C4.522 5.719 4.522 5.705 4.522 5.684L4.522 5.32C4.522 4.424 5.488 3.57 6.461 3.535C7.434 3.5 8.281 4.039 8.414 4.872C8.435 5.012 8.337 5.138 8.197 5.159C8.064 5.18 7.931 5.089 7.91 4.949C7.826 4.403 7.217 4.018 6.475 4.046C5.761 4.067 5.026 4.718 5.026 5.32L5.026 5.684C5.026 5.705 5.026 5.719 5.019 5.74L8.666 5.74C8.897 5.74 9.093 5.922 9.093 6.153L9.093 8.89L9.1 8.89Z" fill="rgb(255,255,255)" fill-rule="nonzero" />
+</svg>

+ 4 - 0
static/images/jobApplicant/wx.svg

@@ -0,0 +1,4 @@
+<svg viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14.000000" height="14.000000" fill="none">
+	<rect id="svg 30" width="14.000000" height="14.000000" x="0.000000" y="0.000000" />
+	<path id="矢量 31" d="M9.47625 4.74773C9.63725 4.74773 9.79562 4.75998 9.95487 4.77748C9.52612 2.78073 7.392 1.29761 4.95512 1.29761C2.23125 1.29761 0 3.15348 0 5.51161C0 6.87223 0.742 7.98961 1.98275 8.85761L1.4875 10.3477L3.22 9.47973C3.8395 9.60136 4.3365 9.72736 4.95512 9.72736C5.11087 9.72736 5.26487 9.72036 5.41712 9.70898C5.32087 9.37736 5.264 9.03086 5.264 8.66948C5.26488 6.50473 7.12337 4.74773 9.47625 4.74773ZM6.81275 3.40461C7.18725 3.40461 7.43313 3.65048 7.43313 4.02323C7.43313 4.39423 7.18725 4.64273 6.81275 4.64273C6.44263 4.64273 6.06987 4.39423 6.06987 4.02323C6.06987 3.64961 6.44175 3.40461 6.81275 3.40461ZM3.34512 4.64273C2.97325 4.64273 2.59875 4.39423 2.59875 4.02323C2.59875 3.65048 2.97325 3.40461 3.34512 3.40461C3.717 3.40461 3.96375 3.64961 3.96375 4.02323C3.96375 4.39423 3.717 4.64273 3.34512 4.64273ZM14 8.60998C14 6.62898 12.0173 5.01461 9.79037 5.01461C7.43225 5.01461 5.57638 6.62986 5.57638 8.60998C5.57638 10.5962 7.43312 12.2054 9.79037 12.2054C10.2839 12.2054 10.7818 12.082 11.277 11.9577L12.6359 12.7032L12.2631 11.4642C13.258 10.717 14 9.72736 14 8.60998ZM8.42362 7.98961C8.17775 7.98961 7.92837 7.74461 7.92837 7.49436C7.92837 7.24761 8.17775 6.99911 8.42362 6.99911C8.79988 6.99911 9.044 7.24761 9.044 7.49436C9.044 7.74461 8.79988 7.98961 8.42362 7.98961ZM11.1493 7.98961C10.9051 7.98961 10.6566 7.74461 10.6566 7.49436C10.6566 7.24761 10.9043 6.99911 11.1493 6.99911C11.522 6.99911 11.7696 7.24761 11.7696 7.49436C11.7696 7.74461 11.522 7.98961 11.1493 7.98961Z" fill="rgb(255,255,255)" fill-rule="nonzero" />
+</svg>

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott